Open Connector
External record API

External record API

Publish versioned service, deployment, and ticket summaries for approved context on mapped Solarius resources.

External records belong to one customer integration. A mapped record adds external context without changing a native finding, policy, or infrastructure resource.

Use the shared request contract for authentication, pagination, preconditions, idempotency, and common errors. Exact response members are defined in API data types and the downloadable OpenAPI contract.

List external records

GET/api/v1/connector/organizations/{organization_id}/integrations/{integration_id}/records
Scope
resources:read
Auth
Bearer API key

Lists records owned by this custom integration.

Query parameters
limitintegeroptional

Number of records; bounds are inclusive.

default50rule1–200
cursorstringoptional

Opaque continuation; preserve the original filters.

200Result

Returns a data array of ExternalRecord records, pagination.next_cursor, and request_id.

Read an external record

GET/api/v1/connector/organizations/{organization_id}/integrations/{integration_id}/records/{external_id}
Scope
resources:read
Auth
Bearer API key

Returns the external record, assigned resource key, and current ETag.

200Result

Returns data as ExternalRecord, plus request_id.

Create or replace an external record

PUT/api/v1/connector/organizations/{organization_id}/integrations/{integration_id}/records/{external_id}
Scope
records:write
Auth
Bearer API key
Repeat calls
Organization-scoped Idempotency-Key; 24 hours

Creates or replaces a custom service, deployment, or ticket summary.

Requires Idempotency-Key.

Use If-None-Match: * to create and If-Match with the record ETag to replace. Creation returns 201; replacement returns 200. Missing preconditions return 428; stale or conflicting preconditions return 412.

External IDs match [A-Za-z0-9_-]{1,128}. Omitted labels become {}; other fields are required. Kind cannot change.

Visibility in native product context additionally requires an active external_context grant and explicit mapping. Connector assigns revisions; callers cannot overwrite a native product record.

Request body
kindstringrequired

Immutable record category after creation.

one ofservice, deployment, ticket
namestringrequired

Name shown beside mapped native resources.

rule1–120 characters
urlstringrequired

HTTPS link to the source record; credentials and fragments are rejected.

statestringrequired

External lifecycle summary, not a Guard enforcement result.

one ofunknown, active, resolved
labelsobjectoptional

Selected label keys and string values; at most 20 entries.

default{}
200Result

Returns data as ExternalRecord, plus request_id.

201Created

Returns the created ExternalRecord in data, its ETag, and request_id.

Delete an external record

DELETE/api/v1/connector/organizations/{organization_id}/integrations/{integration_id}/records/{external_id}
Scope
records:write
Auth
Bearer API key

Removes present custom context and marks its mappings stale.

Requires If-Match from a current read.

Emits external.record.removed for authorized receivers. Journal history and previously exported copies retain their separate retention. A mapping is not silently rebound if an external ID is recreated; review a replacement resource key.

204Removed

Returns no body.