API ReferenceServices
All endpoints

Services

Manages the service catalog. Create, update, archive, and restore operations require the manage_settings permission. Archived services remain available by ID and retain incident references. They are read-only and absent from default lists.

GET/api/v1/servicesList services

#

Returns one page sorted by configured tier rank, normalized service name, and service ID. The first page includes up to 100 historical service values from incidents that do not match a catalog service. These values are sorted by incident count. Later pages return an empty unmanaged_references array. If more than 100 unmatched values exist, unmanaged_references_truncated is true.

Operation ID
listServices
Prerequisites
None
Retry guidance
This operation is repeat-safe. Respect Retry-After and use bounded retries. Retry rules

Example request

Replace {company}, <token>, and any other placeholders with your values.

bash
curl --request GET \
  --url 'https://{company}.api.tellagen.com/api/v1/services' \
  --header 'Authorization: Bearer <token>'

Success: 200

Returns services, unmanaged incident references, and pagination fields.

Success response JSON
json
{
  "services": [
    {
      "id": 5,
      "revision": 3,
      "company_id": 12,
      "name": "Payment Service",
      "slug": "payment_service",
      "description": "Handles all payment processing",
      "owner_team_id": 42,
      "owner_team_name": "Platform Team",
      "owner_team_slug": "platform_team",
      "tier": "critical",
      "tags": [
        "critical",
        "payments"
      ],
      "external_id": "payments-prod",
      "observability_names": [
        "payments-api",
        "payments-worker"
      ],
      "created_at": "2025-01-15T10:00:00Z",
      "updated_at": "2025-01-15T10:00:00Z"
    }
  ],
  "unmanaged_references": [
    {
      "value": "Legacy Billing",
      "incident_count": 3
    }
  ],
  "unmanaged_references_truncated": false,
  "pagination": {
    "limit": 50,
    "has_more": true,
    "next_cursor": "opaque-server-cursor"
  }
}
Request and response contract

Query parameters

Nested fields apply when their parent is supplied. Optional does not imply nullable. Read each field’s clearing rules.

Query parameters
FieldTypeRequiredDescription
limitintegerNoThe maximum number of items in one page. The default is 50, and the maximum is 100.

Minimum: 1. · Maximum: 100. · Default: 50.

cursorstringNoThe next_cursor value from the previous page. Clients treat this value as opaque and do not create, inspect, or change it.

Minimum length: 1 characters. · Maximum length: 4096 characters.

include_archivedbooleanNoControls whether the response includes archived services. The default is false.

Default: false.

Response 200

Returns services, unmanaged incident references, and pagination fields.

Always means present when the parent object exists. A present field can be null. Child fields apply to each array item.

Response fields
FieldTypeReturnedDescription
servicesobject[]AlwaysThe services in this page.
services[].idintegerAlwaysThe positive numeric ID of the service.
services[].revisionintegerAlwaysThe resource version for concurrency control.

Minimum: 1.

services[].company_idintegerAlwaysThe ID of the workspace that owns the service.
services[].namestringAlwaysThe service name after whitespace is removed from both ends. The length is measured in Unicode code points.

Minimum length: 1 characters. · Maximum length: 128 characters.

services[].slugstringAlwaysA permanent lowercase service key. It starts with a Unicode letter and then contains lowercase Unicode letters, digits, or underscores. The maximum size is 64 UTF-8 bytes.
services[].descriptionstringOptionalThe workspace description of the service.
services[].owner_team_idintegerOptionalThe positive numeric ID of the owning team. A service without an owning team omits this field.
services[].owner_team_namestringOptionalThe display name of the owning team. A service without an owning team omits this field.
services[].owner_team_slugstringOptionalThe permanent key of the owning team. A service without an owning team omits this field.
services[].tierstringAlwaysThe service-tier key from the workspace configuration.
services[].tagsstring[]AlwaysThe normalized service tags.
services[].external_idstringOptionalThe service identifier from an external system.
services[].observability_namesstring[]OptionalAlternative service names for telemetry systems. The API trims values and removes case-insensitive duplicates.
services[].created_atstring (RFC 3339)AlwaysThe service creation time.
services[].updated_atstring (RFC 3339)AlwaysThe time of the latest service change.
services[].archived_atstring (RFC 3339)OptionalThe service archive time. This field is absent for an active service.
unmanaged_referencesobject[]AlwaysUp to 100 historical incident service values that do not match a catalog service. Later pages return an empty array.

Maximum items: 100.

unmanaged_references[].valuestringAlwaysThe unmatched service value stored on incidents.
unmanaged_references[].incident_countintegerAlwaysThe number of incidents that contain this value.

Minimum: 1.

unmanaged_references_truncatedbooleanAlwaysIndicates whether more than 100 unmatched values exist. This value is false on later pages.
paginationobjectAlwaysPagination details for a collection response.
pagination.limitintegerAlwaysThe maximum number of items requested for this page.

Minimum: 1. · Maximum: 100.

pagination.has_morebooleanAlwaysIndicates whether another page is available.
pagination.next_cursorstringOptionalThe opaque cursor for the next page. This field is absent on the final page.
Errors and recovery (7)

Error responses (7)

400
The API rejected the request because its syntax or one of its values is invalid.
401
The request does not contain valid authentication.
403
Authentication succeeded, but the caller lacks the required API scope or workspace permission.
404
The requested resource does not exist or is not available to the caller.
409
The request conflicts with the current resource state. idempotency_key_reused means that the key belongs to different request content. idempotency_in_progress means that an identical request is still in progress. idempotency_outcome_unknown means that an earlier request may have completed, but its result could not be stored and must not be retried automatically.
429
The workspace exceeded an active request limit.
500
An internal server error prevented completion of the request.

POST/api/v1/servicesCreate service

#

Creates a service. If slug is omitted, the API creates a lowercase slug with underscores. A supplied tier must match a key in the workspace tier configuration. If tier is omitted, the API uses the default tier.

Operation ID
createService
Retry guidance
Retry an identical request with the same Idempotency-Key used on the first attempt, within 24 hours. Never retry an unknown outcome automatically. Retry rules

Example request

Replace {company}, <token>, and any other placeholders with your values.

For <idempotency-key>, choose a unique key on the first attempt. Reuse it only when retrying the identical request.

bash
curl --request POST \
  --url 'https://{company}.api.tellagen.com/api/v1/services' \
  --header 'Authorization: Bearer <token>' \
  --header 'Idempotency-Key: <idempotency-key>' \
  --header 'Content-Type: application/json' \
  --data '{
  "name": "Payment Service",
  "tier": "critical",
  "tags": [
    "critical",
    "payments"
  ],
  "external_id": "payments-prod",
  "observability_names": [
    "payments-api",
    "payments-worker"
  ]
}'

Success: 201

Returns the created service.

Success response JSON
json
{
  "service": {
    "id": 5,
    "revision": 3,
    "company_id": 12,
    "name": "Payment Service",
    "slug": "payment_service",
    "description": "Handles all payment processing",
    "owner_team_id": 42,
    "owner_team_name": "Platform Team",
    "owner_team_slug": "platform_team",
    "tier": "critical",
    "tags": [
      "critical",
      "payments"
    ],
    "external_id": "payments-prod",
    "observability_names": [
      "payments-api",
      "payments-worker"
    ],
    "created_at": "2025-01-15T10:00:00Z",
    "updated_at": "2025-01-15T10:00:00Z"
  }
}
Related operations: List available service tiers
Request and response contract

Request headers

Nested fields apply when their parent is supplied. Optional does not imply nullable. Read each field’s clearing rules.

Request headers
FieldTypeRequiredDescription
Idempotency-KeystringNoA key for safe retries of a create request. It must contain 1–128 visible, non-space ASCII characters. The same key applies only to an identical request.

Minimum length: 1 characters. · Maximum length: 128 characters. · Pattern: ^[\x21-\x7E]+$.

Request body

Nested fields apply when their parent is supplied. Optional does not imply nullable. Read each field’s clearing rules.

Request body fields
FieldTypeRequiredDescription
namestringYesThe service name. The length must be from 1 through 128 Unicode characters.

Minimum length: 1 characters. · Maximum length: 128 characters.

slugstringNoA permanent lowercase service key. It must start with a Unicode letter and use at most 64 UTF-8 bytes. Later characters can be lowercase Unicode letters, digits, or underscores.
descriptionstringNoThe workspace description of the service.
owner_team_idintegerNoThe positive ID of an active owning team.

Minimum: 1.

tierstringNoA service-tier key from the workspace configuration. If tier is omitted, the API uses the configured default tier.
tagsstring[]NoThe service tags. The API trims each value and removes blank values.
external_idstringNoThe service identifier from an external system. The API removes whitespace from both ends.
observability_namesstring[]NoAlternative service names for telemetry systems. The API trims values and removes case-insensitive duplicates.

Response 201

Returns the created service.

Always means present when the parent object exists. A present field can be null. Child fields apply to each array item.

Response fields
FieldTypeReturnedDescription
serviceobjectAlwaysThe complete public record for a service.
service.idintegerAlwaysThe positive numeric ID of the service.
service.revisionintegerAlwaysThe resource version for concurrency control.

Minimum: 1.

service.company_idintegerAlwaysThe ID of the workspace that owns the service.
service.namestringAlwaysThe service name after whitespace is removed from both ends. The length is measured in Unicode code points.

Minimum length: 1 characters. · Maximum length: 128 characters.

service.slugstringAlwaysA permanent lowercase service key. It starts with a Unicode letter and then contains lowercase Unicode letters, digits, or underscores. The maximum size is 64 UTF-8 bytes.
service.descriptionstringOptionalThe workspace description of the service.
service.owner_team_idintegerOptionalThe positive numeric ID of the owning team. A service without an owning team omits this field.
service.owner_team_namestringOptionalThe display name of the owning team. A service without an owning team omits this field.
service.owner_team_slugstringOptionalThe permanent key of the owning team. A service without an owning team omits this field.
service.tierstringAlwaysThe service-tier key from the workspace configuration.
service.tagsstring[]AlwaysThe normalized service tags.
service.external_idstringOptionalThe service identifier from an external system.
service.observability_namesstring[]OptionalAlternative service names for telemetry systems. The API trims values and removes case-insensitive duplicates.
service.created_atstring (RFC 3339)AlwaysThe service creation time.
service.updated_atstring (RFC 3339)AlwaysThe time of the latest service change.
service.archived_atstring (RFC 3339)OptionalThe service archive time. This field is absent for an active service.

Response headers

Always means present when the parent object exists. A present field can be null. Child fields apply to each array item.

Response headers
FieldTypeReturnedDescription
Tellagen-Resource-VersionintegerAlwaysThe positive resource version for If-Tellagen-Resource-Version in the next API-key PATCH request.

Minimum: 1.

Errors and recovery (7)

Error responses (7)

400
The API rejected the request because its syntax or one of its values is invalid.
401
The request does not contain valid authentication.
403
Authentication succeeded, but the caller lacks the required API scope or workspace permission.
404
The requested resource does not exist or is not available to the caller.
409
The request conflicts with the current resource state. idempotency_key_reused means that the key belongs to different request content. idempotency_in_progress means that an identical request is still in progress. idempotency_outcome_unknown means that an earlier request may have completed, but its result could not be stored and must not be retried automatically.
429
The workspace exceeded an active request limit.
500
An internal server error prevented completion of the request.

GET/api/v1/services/{id}Get service

#

Returns one service. The response contains the same service fields as the list operation. A service remains available by ID after it is archived.

Operation ID
getService
Prerequisites
None
Retry guidance
This operation is repeat-safe. Respect Retry-After and use bounded retries. Retry rules

Example request

Replace {company}, <token>, and any other placeholders with your values.

bash
curl --request GET \
  --url 'https://{company}.api.tellagen.com/api/v1/services/{id}' \
  --header 'Authorization: Bearer <token>'

Success: 200

Returns the service.

Success response JSON
json
{
  "service": {
    "id": 5,
    "revision": 3,
    "company_id": 12,
    "name": "Payment Service",
    "slug": "payment_service",
    "description": "Handles all payment processing",
    "owner_team_id": 42,
    "owner_team_name": "Platform Team",
    "owner_team_slug": "platform_team",
    "tier": "critical",
    "tags": [
      "critical",
      "payments"
    ],
    "external_id": "payments-prod",
    "observability_names": [
      "payments-api",
      "payments-worker"
    ],
    "created_at": "2025-01-15T10:00:00Z",
    "updated_at": "2025-01-15T10:00:00Z"
  }
}
Request and response contract

Path parameters

Nested fields apply when their parent is supplied. Optional does not imply nullable. Read each field’s clearing rules.

Path parameters
FieldTypeRequiredDescription
idintegerYesA positive numeric service ID returned by this API.

Minimum: 1.

Response 200

Returns the service.

Always means present when the parent object exists. A present field can be null. Child fields apply to each array item.

Response fields
FieldTypeReturnedDescription
serviceobjectAlwaysThe complete public record for a service.
service.idintegerAlwaysThe positive numeric ID of the service.
service.revisionintegerAlwaysThe resource version for concurrency control.

Minimum: 1.

service.company_idintegerAlwaysThe ID of the workspace that owns the service.
service.namestringAlwaysThe service name after whitespace is removed from both ends. The length is measured in Unicode code points.

Minimum length: 1 characters. · Maximum length: 128 characters.

service.slugstringAlwaysA permanent lowercase service key. It starts with a Unicode letter and then contains lowercase Unicode letters, digits, or underscores. The maximum size is 64 UTF-8 bytes.
service.descriptionstringOptionalThe workspace description of the service.
service.owner_team_idintegerOptionalThe positive numeric ID of the owning team. A service without an owning team omits this field.
service.owner_team_namestringOptionalThe display name of the owning team. A service without an owning team omits this field.
service.owner_team_slugstringOptionalThe permanent key of the owning team. A service without an owning team omits this field.
service.tierstringAlwaysThe service-tier key from the workspace configuration.
service.tagsstring[]AlwaysThe normalized service tags.
service.external_idstringOptionalThe service identifier from an external system.
service.observability_namesstring[]OptionalAlternative service names for telemetry systems. The API trims values and removes case-insensitive duplicates.
service.created_atstring (RFC 3339)AlwaysThe service creation time.
service.updated_atstring (RFC 3339)AlwaysThe time of the latest service change.
service.archived_atstring (RFC 3339)OptionalThe service archive time. This field is absent for an active service.

Response headers

Always means present when the parent object exists. A present field can be null. Child fields apply to each array item.

Response headers
FieldTypeReturnedDescription
Tellagen-Resource-VersionintegerAlwaysThe positive resource version for If-Tellagen-Resource-Version in the next API-key PATCH request.

Minimum: 1.

Errors and recovery (7)

Error responses (7)

400
The API rejected the request because its syntax or one of its values is invalid.
401
The request does not contain valid authentication.
403
Authentication succeeded, but the caller lacks the required API scope or workspace permission.
404
The requested resource does not exist or is not available to the caller.
409
The request conflicts with the current resource state. idempotency_key_reused means that the key belongs to different request content. idempotency_in_progress means that an identical request is still in progress. idempotency_outcome_unknown means that an earlier request may have completed, but its result could not be stored and must not be retried automatically.
429
The workspace exceeded an active request limit.
500
An internal server error prevented completion of the request.

PATCH/api/v1/services/{id}Update service

#

Updates an active service. If a field is omitted, its current value remains unchanged. JSON null clears description, owner_team_id, or external_id. An empty tags or observability_names array removes all values from that field. The slug cannot change. An archived service returns 409.

Operation ID
updateService
Retry guidance
Read the current resource and reconcile changes before retrying with its current version. A stale version returns 412. Retry rules

Example request

Replace {company}, <token>, and any other placeholders with your values.

Use the Tellagen-Resource-Version header from a GET of this resource for <resource-version>.

bash
curl --request PATCH \
  --url 'https://{company}.api.tellagen.com/api/v1/services/{id}' \
  --header 'Authorization: Bearer <token>' \
  --header 'If-Tellagen-Resource-Version: <resource-version>' \
  --header 'Content-Type: application/json' \
  --data '{
  "tier": "important",
  "tags": [],
  "external_id": null,
  "observability_names": [
    "payments-v2"
  ]
}'

Success: 200

Returns the updated service.

Success response JSON
json
{
  "service": {
    "id": 5,
    "revision": 3,
    "company_id": 12,
    "name": "Payment Service",
    "slug": "payment_service",
    "description": "Handles all payment processing",
    "owner_team_id": 42,
    "owner_team_name": "Platform Team",
    "owner_team_slug": "platform_team",
    "tier": "important",
    "tags": [],
    "external_id": "payments-prod",
    "observability_names": [
      "payments-v2"
    ],
    "created_at": "2025-01-15T10:00:00Z",
    "updated_at": "2025-01-30T12:00:00Z"
  }
}
Request and response contract

Path parameters

Nested fields apply when their parent is supplied. Optional does not imply nullable. Read each field’s clearing rules.

Path parameters
FieldTypeRequiredDescription
idintegerYesA positive numeric service ID returned by this API.

Minimum: 1.

Request headers

Nested fields apply when their parent is supplied. Optional does not imply nullable. Read each field’s clearing rules.

Request headers
FieldTypeRequiredDescription
If-Tellagen-Resource-VersionintegerYesThe current positive resource version from the latest response. API-key PATCH requests must send this value.

Minimum: 1.

Request body

Nested fields apply when their parent is supplied. Optional does not imply nullable. Read each field’s clearing rules.

Request body fields
FieldTypeRequiredDescription
namestringNoThe service name. The length must be from 1 through 128 Unicode characters.

Minimum length: 1 characters. · Maximum length: 128 characters.

descriptionstring | nullNoThe replacement service description. A null value removes the description.
owner_team_idinteger | nullNoThe positive ID of an active owning team. A null value removes team ownership.

Minimum: 1.

tierstringNoA service-tier key from the workspace configuration.
tagsstring[]NoThe complete replacement list of tags. An empty array removes all tags.
external_idstring | nullNoThe replacement external identifier. A null or blank value removes the identifier.
observability_namesstring[]NoThe complete replacement list of telemetry names. An empty array removes all telemetry names.

Response 200

Returns the updated service.

Always means present when the parent object exists. A present field can be null. Child fields apply to each array item.

Response fields
FieldTypeReturnedDescription
serviceobjectAlwaysThe complete public record for a service.
service.idintegerAlwaysThe positive numeric ID of the service.
service.revisionintegerAlwaysThe resource version for concurrency control.

Minimum: 1.

service.company_idintegerAlwaysThe ID of the workspace that owns the service.
service.namestringAlwaysThe service name after whitespace is removed from both ends. The length is measured in Unicode code points.

Minimum length: 1 characters. · Maximum length: 128 characters.

service.slugstringAlwaysA permanent lowercase service key. It starts with a Unicode letter and then contains lowercase Unicode letters, digits, or underscores. The maximum size is 64 UTF-8 bytes.
service.descriptionstringOptionalThe workspace description of the service.
service.owner_team_idintegerOptionalThe positive numeric ID of the owning team. A service without an owning team omits this field.
service.owner_team_namestringOptionalThe display name of the owning team. A service without an owning team omits this field.
service.owner_team_slugstringOptionalThe permanent key of the owning team. A service without an owning team omits this field.
service.tierstringAlwaysThe service-tier key from the workspace configuration.
service.tagsstring[]AlwaysThe normalized service tags.
service.external_idstringOptionalThe service identifier from an external system.
service.observability_namesstring[]OptionalAlternative service names for telemetry systems. The API trims values and removes case-insensitive duplicates.
service.created_atstring (RFC 3339)AlwaysThe service creation time.
service.updated_atstring (RFC 3339)AlwaysThe time of the latest service change.
service.archived_atstring (RFC 3339)OptionalThe service archive time. This field is absent for an active service.

Response headers

Always means present when the parent object exists. A present field can be null. Child fields apply to each array item.

Response headers
FieldTypeReturnedDescription
Tellagen-Resource-VersionintegerAlwaysThe positive resource version for If-Tellagen-Resource-Version in the next API-key PATCH request.

Minimum: 1.

Errors and recovery (9)

Error responses (9)

400
The API rejected the request because its syntax or one of its values is invalid.
401
The request does not contain valid authentication.
403
Authentication succeeded, but the caller lacks the required API scope or workspace permission.
404
The requested resource does not exist or is not available to the caller.
409
The request conflicts with the current resource state. idempotency_key_reused means that the key belongs to different request content. idempotency_in_progress means that an identical request is still in progress. idempotency_outcome_unknown means that an earlier request may have completed, but its result could not be stored and must not be retried automatically.
412
The resource changed after the client obtained its If-Tellagen-Resource-Version value.
428
An API-key PATCH request did not include the required If-Tellagen-Resource-Version header.
429
The workspace exceeded an active request limit.
500
An internal server error prevented completion of the request.

DELETE/api/v1/services/{id}Archive service

#

Archives a service. A repeated request returns 204 without changing the archive time or resource version. By default, list operations exclude archived services. The include_archived=true parameter includes them. Archived services remain available by ID and retain incident references. They cannot be updated.

Operation ID
archiveService
Retry guidance
Do not retry automatically after an uncertain outcome. Read the resource state and follow this operation’s recovery guidance. Retry rules

Example request

Replace {company}, <token>, and any other placeholders with your values.

bash
curl --request DELETE \
  --url 'https://{company}.api.tellagen.com/api/v1/services/{id}' \
  --header 'Authorization: Bearer <token>'

Success: 204

No response body. Do not try to parse this response as JSON.

Request and response contract

Path parameters

Nested fields apply when their parent is supplied. Optional does not imply nullable. Read each field’s clearing rules.

Path parameters
FieldTypeRequiredDescription
idintegerYesA positive numeric service ID returned by this API.

Minimum: 1.

Returns 204 with no body.

Errors and recovery (7)

Error responses (7)

400
The API rejected the request because its syntax or one of its values is invalid.
401
The request does not contain valid authentication.
403
Authentication succeeded, but the caller lacks the required API scope or workspace permission.
404
The requested resource does not exist or is not available to the caller.
409
The request conflicts with the current resource state. idempotency_key_reused means that the key belongs to different request content. idempotency_in_progress means that an identical request is still in progress. idempotency_outcome_unknown means that an earlier request may have completed, but its result could not be stored and must not be retried automatically.
429
The workspace exceeded an active request limit.
500
An internal server error prevented completion of the request.

POST/api/v1/services/{id}/restoreRestore service

#

Restores an archived service and returns the active service. A repeated request returns the active service without changing its resource version. If the service has owner_team_id, that team must be active. Otherwise, the API returns 409 invalid_relationship_state.

Operation ID
restoreService
Retry guidance
Do not retry automatically after an uncertain outcome. Read the resource state and follow this operation’s recovery guidance. Retry rules

Example request

Replace {company}, <token>, and any other placeholders with your values.

bash
curl --request POST \
  --url 'https://{company}.api.tellagen.com/api/v1/services/{id}/restore' \
  --header 'Authorization: Bearer <token>'

Success: 200

Returns the complete active service.

Success response JSON
json
{
  "service": {
    "id": 5,
    "revision": 3,
    "company_id": 12,
    "name": "Payment Service",
    "slug": "payment_service",
    "description": "Handles all payment processing",
    "owner_team_id": 42,
    "owner_team_name": "Platform Team",
    "owner_team_slug": "platform_team",
    "tier": "critical",
    "tags": [
      "critical",
      "payments"
    ],
    "external_id": "payments-prod",
    "observability_names": [
      "payments-api",
      "payments-worker"
    ],
    "created_at": "2025-01-15T10:00:00Z",
    "updated_at": "2025-01-15T10:00:00Z"
  }
}
Request and response contract

Path parameters

Nested fields apply when their parent is supplied. Optional does not imply nullable. Read each field’s clearing rules.

Path parameters
FieldTypeRequiredDescription
idintegerYesA positive numeric service ID returned by this API.

Minimum: 1.

Response 200

Returns the complete active service.

Always means present when the parent object exists. A present field can be null. Child fields apply to each array item.

Response fields
FieldTypeReturnedDescription
serviceobjectAlwaysThe complete public record for a service.
service.idintegerAlwaysThe positive numeric ID of the service.
service.revisionintegerAlwaysThe resource version for concurrency control.

Minimum: 1.

service.company_idintegerAlwaysThe ID of the workspace that owns the service.
service.namestringAlwaysThe service name after whitespace is removed from both ends. The length is measured in Unicode code points.

Minimum length: 1 characters. · Maximum length: 128 characters.

service.slugstringAlwaysA permanent lowercase service key. It starts with a Unicode letter and then contains lowercase Unicode letters, digits, or underscores. The maximum size is 64 UTF-8 bytes.
service.descriptionstringOptionalThe workspace description of the service.
service.owner_team_idintegerOptionalThe positive numeric ID of the owning team. A service without an owning team omits this field.
service.owner_team_namestringOptionalThe display name of the owning team. A service without an owning team omits this field.
service.owner_team_slugstringOptionalThe permanent key of the owning team. A service without an owning team omits this field.
service.tierstringAlwaysThe service-tier key from the workspace configuration.
service.tagsstring[]AlwaysThe normalized service tags.
service.external_idstringOptionalThe service identifier from an external system.
service.observability_namesstring[]OptionalAlternative service names for telemetry systems. The API trims values and removes case-insensitive duplicates.
service.created_atstring (RFC 3339)AlwaysThe service creation time.
service.updated_atstring (RFC 3339)AlwaysThe time of the latest service change.
service.archived_atstring (RFC 3339)OptionalThe service archive time. This field is absent for an active service.

Response headers

Always means present when the parent object exists. A present field can be null. Child fields apply to each array item.

Response headers
FieldTypeReturnedDescription
Tellagen-Resource-VersionintegerAlwaysThe positive resource version for If-Tellagen-Resource-Version in the next API-key PATCH request.

Minimum: 1.

Errors and recovery (7)

Error responses (7)

400
The API rejected the request because its syntax or one of its values is invalid.
401
The request does not contain valid authentication.
403
Authentication succeeded, but the caller lacks the required API scope or workspace permission.
404
The requested resource does not exist or is not available to the caller.
409
The request conflicts with the current resource state. idempotency_key_reused means that the key belongs to different request content. idempotency_in_progress means that an identical request is still in progress. idempotency_outcome_unknown means that an earlier request may have completed, but its result could not be stored and must not be retried automatically.
429
The workspace exceeded an active request limit.
500
An internal server error prevented completion of the request.

Read this resource as Markdown · OpenAPI contract