Management APIs / Cloud Connect

List projects available for Cloud Connect attachment

GEThttps://api.spice.ai/v1/cloud-connect/attachable-projects

Returns every project the authenticated caller may attach an enrolled Cloud Connect instance to. Policy is evaluated entirely by the server: today, results include only live, unattached standalone projects in the resolved organization, and user credentials require that organization's owner or admin role. Exactly one organization is searched per request and the response names it in org, so an empty projects states which organization has no eligible project rather than leaving a client to wonder whether the one it meant was searched at all; name another with X-Org-Name. Clients must render every returned project and instance without applying their own eligibility filters. The instances array is part of the stable contract and may be populated when server policy permits projects with existing attachments.

Authorizations

  • AuthorizationstringRequired

    Bearer <token>. Authentication lists the tokens it accepts.

Query parameters

  • limitinteger

    Maximum number of projects to return.

    • Default: 50
    • Minimum: 1
    • Maximum: 100
  • cursorstring

    Opaque cursor returned as next_cursor by the previous page.

Header parameters

  • X-Org-Namestring

    Organization to list. A user token may name any organization its owner belongs to; naming one they do not is org_forbidden. Never ignored: a token bound to one organization that names another is org_assertion_mismatch. A portal session token is bound to none and must send it (org_assertion_required).

    • Pattern: ^[A-Za-z0-9._-]{1,255}$

Responses

200A page of projects currently eligible for attachment.application/json
  • orgstringRequired

    Handle of the organization the page was scoped to, being the one X-Org-Name named or the credential's own when it named none. Always present, so an empty projects says which organization has no eligible project rather than leaving a client to guess whether its active organization was the one searched.

  • projectsarray of objectRequired

    5 properties
    • idinteger (int64)Required

    • namestringRequired

    • orgstringRequired

      Organization handle.

    • regionstring | nullRequired

      Project control-plane region, if assigned.

    • instancesarray of objectRequired

      3 properties
      • idstringRequired

        Instance external identifier.

      • locationstring | nullRequired

        Customer-declared instance location.

      • enrolled_atstring (date-time) | nullRequired

  • next_cursorstring | nullRequired

    Opaque cursor for the next page, or null at the end.

400Bad Request

Invalid organization assertion (invalid_org_assertion), none from a portal session (org_assertion_required), or invalid limit/cursor (invalid_pagination).

401Missing or invalid bearer token.

403Forbidden

Organization access (org_forbidden, org_assertion_mismatch, or org_deleted), apps:read scope (insufficient_scope), or owner/admin role (forbidden) was refused.

500Organization role, project, or organization-handle lookup failed.

OpenAPIapi.spice.ai/openapi.json

curl "https://api.spice.ai/v1/cloud-connect/attachable-projects" \
  -H "Authorization: Bearer <token>"
{
  "org": "string",
  "projects": [
    {
      "id": 0,
      "name": "string",
      "org": "string",
      "region": "string",
      "instances": [
        {
          "id": "string",
          "location": "string",
          "enrolled_at": "2026-01-01T00:00:00Z"
        }
      ]
    }
  ],
  "next_cursor": "string"
}

application/json