List registered repositories.
const url = 'https://shiftagent.example.com/repositories?limit=20';const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url 'https://shiftagent.example.com/repositories?limit=20' \ --header 'Authorization: Bearer <token>'Lists all repositories in the integration registry.
Authorizations
Section titled “Authorizations ”Parameters
Section titled “ Parameters ”Query Parameters
Section titled “Query Parameters ”Page size (1–100).
Cursor: return items after this object ID (forward pagination). Use the id of the last item of the previous page.
Cursor: return items before this object ID (backward pagination). Mutually exclusive with starting_after.
Exact-match filter on the registry-unique name.
Responses
Section titled “ Responses ”A page of repositories.
object
Envelope discriminator.
The page of items.
Whether more items exist beyond this page.
Opaque cursor for the next page (pass as starting_after). Null when has_more is false.
Top-level, pre-authenticated registry entry for a git repository. The repository dictates which skills exist; it is attached to tenants and overridable down the resolution cascade.
object
Unique across the registry.
Git remote URL.
Branch scanned for skills (tenant attachments may override).
Git hosting flavor (drives auth mechanics).
Vault credential used to access the repository. Secret material is never readable — pre-authenticated at registration.
Skill-discovery sync state of a repository.
object
pending — not yet scanned (or invalidated by an update); syncing — scan in flight; ready — skill catalog current; error — last scan failed (see error).
Completion time of the last successful scan.
Human-readable failure reason when state is error.
Number of skills currently cataloged.
Free-form string key–value map for host/adapter bookkeeping (e.g. a host-side reference ID). Max 50 keys; values max 500 chars. Replaced wholesale when provided in updates.
object
RFC 3339 / ISO 8601 timestamp, UTC.
RFC 3339 / ISO 8601 timestamp, UTC.
Example
{ "object": "list", "data": [ { "object": "repository", "branch": "main", "provider": "github", "sync": { "state": "pending" } } ]}Bad request — malformed body/parameters or an invalid parameter combination (e.g. neither or both of user_id/tenant_id on listConversations, or both pagination cursors).
RFC 9457 problem+json error envelope. type is a URI under https://shiftagent.example.com/problems/{slug} (deployment host substituted); see the API-level problem registry for every slug.
object
Problem type URI (registry slug).
Short, human-readable summary of the problem type.
HTTP status code.
Human-readable explanation specific to this occurrence.
URI reference identifying this occurrence.
Correlation ID for support and log lookup.
On name-conflict, external-id-conflict, and resource-in-use: the ID of the existing/depended-on resource — fetch it and continue (replay recovery).
On validation-error, field-level details.
object
JSON pointer to the offending field.
What failed.
Examples
Invalid parameter combination
{ "type": "https://shiftagent.example.com/problems/validation-error", "title": "Invalid request", "status": 400, "detail": "Exactly one of user_id or tenant_id is required.", "request_id": "req_01hzx8bad001"}Missing or invalid credentials — no bearer token, an unknown/revoked sk_int_ key, or an expired platform JWT.
RFC 9457 problem+json error envelope. type is a URI under https://shiftagent.example.com/problems/{slug} (deployment host substituted); see the API-level problem registry for every slug.
object
Problem type URI (registry slug).
Short, human-readable summary of the problem type.
HTTP status code.
Human-readable explanation specific to this occurrence.
URI reference identifying this occurrence.
Correlation ID for support and log lookup.
On name-conflict, external-id-conflict, and resource-in-use: the ID of the existing/depended-on resource — fetch it and continue (replay recovery).
On validation-error, field-level details.
object
JSON pointer to the offending field.
What failed.
Examples
Missing or invalid bearer token
{ "type": "https://shiftagent.example.com/problems/insufficient-scope", "title": "Unauthorized", "status": 401, "detail": "Provide a valid sk_int_ service key or platform JWT.", "request_id": "req_01hzx8auth001"}