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
AuthorizationstringRequiredBearer <token>. Authentication lists the tokens it accepts.
Query parameters
limitintegerMaximum number of projects to return.
- Default:
50 - Minimum:
1 - Maximum:
100
- Default:
cursorstringOpaque cursor returned as
next_cursorby the previous page.
Header parameters
X-Org-NamestringOrganization 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 isorg_assertion_mismatch. A portal session token is bound to none and must send it (org_assertion_required).- Pattern:
^[A-Za-z0-9._-]{1,255}$
- Pattern:
Responses
200A page of projects currently eligible for attachment.application/json
orgstringRequiredHandle of the organization the page was scoped to, being the one
X-Org-Namenamed or the credential's own when it named none. Always present, so an emptyprojectssays which organization has no eligible project rather than leaving a client to guess whether its active organization was the one searched.projectsarray of objectRequired5 properties
idinteger (int64)RequirednamestringRequiredorgstringRequiredOrganization handle.
regionstring | nullRequiredProject control-plane region, if assigned.
instancesarray of objectRequired3 properties
idstringRequiredInstance external identifier.
locationstring | nullRequiredCustomer-declared instance location.
enrolled_atstring (date-time) | nullRequired
next_cursorstring | nullRequiredOpaque 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>"GET /v1/cloud-connect/attachable-projects HTTP/1.1
Host: api.spice.ai
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
No response body
No response body
No response body
No response body