Skip to content

List OCI registries

GET
/api/v1/registries/oci
curl --request GET \
--url 'http://localhost:3000/api/v1/registries/oci?name=container&enabled=true&registryType=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.

name
string
Example
container

Filter by registry name (partial match)

enabled
boolean
Example
true

Filter by enabled status

registryType
string
Allowed values: GENERIC
Example
GENERIC

Filter by registry type

authType
string
Allowed values: NONE BASIC TOKEN
Example
BASIC

Filter by authentication type

search
string
Example
docker

Search across name, URL, and description

limit
number
default: 20 >= 1 <= 100
Example
20

Maximum number of items to return

offset
number
0
Example
0

Number of items to skip

cursor
string
Example
550e8400-e29b-41d4-a716-446655440000

Cursor for pagination (registry ID)

x-organization-id
string format: uuid

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.

OCI registries retrieved successfully

Media typeapplication/json
object
items
required

List of OCI registries

Array<object>
object
id
required

Unique identifier

string
organizationId
required

Organization ID that owns this registry

string
name
required

Registry name

string
description

Registry description

string
nullable
url
required

OCI registry URL

string
registryType
required

Registry type

string
Allowed values: GENERIC
authType
required

Authentication type

string
Allowed values: NONE BASIC TOKEN
hasCredentials
required

Whether credentials are configured

boolean
verifyTls
required

Whether TLS verification is enabled

boolean
lastHealthCheck

Last health check timestamp

string format: date-time
nullable
healthStatus

Health status (healthy, unhealthy, unknown)

string
nullable
pullVerified

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.

string
nullable
Allowed values: TRUE FALSE NOT_APPLICABLE
pullVerifiedRepository

The one repository the pull probe used (the first configured repository)

string
nullable
pullVerifiedDetail

Why pullVerified is FALSE (status, scope, registry message)

string
nullable
pullVerifiedAt

When pull access was last probed

string format: date-time
nullable
lastSyncAt

Last sync timestamp

string format: date-time
nullable
lastSyncError

Last sync error message

string
nullable
syncIntervalMinutes
required

Sync interval in minutes

number
enabled
required

Whether the registry is enabled

boolean
repositories
required

Repositories this registry syncs, e.g. library/nginx. Registry-side catalog enumeration is not used (FM-839): an empty list syncs nothing.

Array<string>
createdAt
required

Creation timestamp

string format: date-time
updatedAt
required

Last update timestamp

string format: date-time
total
required

Total number of registries matching the query

number
limit
required

Number of items returned

number
offset
required

Number of items skipped

number
hasMore
required

Whether there are more items

boolean
nextCursor

Cursor for fetching next page

string
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