List OCI registries
const url = 'http://localhost:3000/api/v1/registries/oci?name=container&enabled=true®istryType=GENERIC&authType=NONE&search=docker&limit=20&offset=0&cursor=550e8400-e29b-41d4-a716-446655440000';const options = {method: 'GET', headers: {'X-API-Key': '<X-API-Key>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url 'http://localhost:3000/api/v1/registries/oci?name=container&enabled=true®istryType=GENERIC&authType=NONE&search=docker&limit=20&offset=0&cursor=550e8400-e29b-41d4-a716-446655440000' \ --header 'X-API-Key: <X-API-Key>'Retrieves a list of OCI registries for the current organization.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Query Parameters
Section titled “Query Parameters”Example
containerFilter by registry name (partial match)
Example
trueFilter by enabled status
Example
GENERICFilter by registry type
Example
BASICFilter by authentication type
Example
dockerSearch across name, URL, and description
Example
20Maximum number of items to return
Example
0Number of items to skip
Example
550e8400-e29b-41d4-a716-446655440000Cursor for pagination (registry ID)
Header Parameters
Section titled “Header Parameters”UUID of the organization (tenant) the request acts in. It selects the tenant and grants nothing: the server checks membership or an open tenant switch. Not needed for global operations. A malformed value returns 400. API keys are fixed to their own organization; another organization returns 403. The x-organization-source header grants nothing.
Responses
Section titled “Responses”OCI registries retrieved successfully
object
List of OCI registries
object
Unique identifier
Organization ID that owns this registry
Registry name
Registry description
OCI registry URL
Registry type
Authentication type
Whether credentials are configured
Whether TLS verification is enabled
Last health check timestamp
Health status (healthy, unhealthy, unknown)
FM-1265 (ADR-0016-1): pull verification, separate from healthStatus. TRUE: the probed repository (pullVerifiedRepository) is pullable, NOT every configured repository. FALSE: the registry is reachable and the credentials are accepted, but they grant no pull on that repository. NOT_APPLICABLE: no repository is configured. Null until first probed.
The one repository the pull probe used (the first configured repository)
Why pullVerified is FALSE (status, scope, registry message)
When pull access was last probed
Last sync timestamp
Last sync error message
Sync interval in minutes
Whether the registry is enabled
Repositories this registry syncs, e.g. library/nginx. Registry-side catalog enumeration is not used (FM-839): an empty list syncs nothing.
Creation timestamp
Last update timestamp
Total number of registries matching the query
Number of items returned
Number of items skipped
Whether there are more items
Cursor for fetching next page
Example
{ "items": [ { "id": "550e8400-e29b-41d4-a716-446655440000", "organizationId": "550e8400-e29b-41d4-a716-446655440001", "name": "my-container-registry", "description": "Production container images", "url": "https://registry.example.com", "registryType": "GENERIC", "authType": "NONE", "hasCredentials": false, "verifyTls": true, "lastHealthCheck": "2024-01-15T10:30:00Z", "healthStatus": "healthy", "pullVerified": "TRUE", "pullVerifiedRepository": "team/app", "pullVerifiedDetail": "The token server issued no token for scope repository:team/app:pull.", "pullVerifiedAt": "2024-01-15T10:30:00Z", "lastSyncAt": "2024-01-15T10:30:00Z", "syncIntervalMinutes": 60, "enabled": true, "repositories": [], "createdAt": "2024-01-01T00:00:00Z", "updatedAt": "2024-01-15T10:30:00Z" } ], "total": 10, "limit": 20, "offset": 0, "hasMore": false, "nextCursor": "550e8400-e29b-41d4-a716-446655440000"}Unauthorized
Forbidden