Download OpenAPI specification:Download
IONOS CLOUD Tracing enables you to create and manage OpenTelemetry trace pipelines through a REST API. For product information, see IONOS CLOUD Tracing Guide.
The IONOS CLOUD Tracing API collects OpenTelemetry Protocol (OTLP) traces from any compatible source. It routes them through tenant-isolated pipelines. Each pipeline exposes a Grafana endpoint for querying and correlating traces with logs and metrics. If you are new to the Tracing API, see What Can You Do with the Tracing API?. If you manage observability infrastructure, see Tracing API Workflows.
Using the Tracing API, you can:
The Tracing API is available at the following endpoints.
| Location | Region | Endpoint |
|---|---|---|
| Frankfurt, Germany | de-fra |
https://tracing.de-fra.ionos.com |
| Berlin, Germany | de-txl |
https://tracing.de-txl.ionos.com |
| Logroño, Spain | es-vit |
https://tracing.es-vit.ionos.com |
| Worcester, UK | gb-bhx |
https://tracing.gb-bhx.ionos.com |
| London, UK | gb-lhr |
https://tracing.gb-lhr.ionos.com |
| Paris, France | fr-par |
https://tracing.fr-par.ionos.com |
| Lenexa, US | us-mci |
https://tracing.us-mci.ionos.com |
| Newark, US | us-ewr |
https://tracing.us-ewr.ionos.com |
| Las Vegas, US | us-las |
https://tracing.us-las.ionos.com |
To authenticate with the API, see Authentication. To make your first API call, see Quick Start.
protocol per pipeline. Changing it later with
Ensure Pipeline reprovisions the ingestion route
behind the same DNS name and may temporarily interrupt ingestion while you reconfigure
your exporter.metadata.state
reaches AVAILABLE before connecting exporters.PUT operations use full-replacement semantics. Both properties.name
and properties.protocol are required in every PUT request. The API returns 400 if
either is missing.metadata.key) only
in the 201 create response and in Rotate Key
responses. Subsequent GET responses omit the key.100. The maximum is 1000. To retrieve the next page, increment offset by the
limit value, or follow _links.next when it is present in the response.All requests to the Tracing API require a Bearer token in the Authorization header:
Authorization: Bearer <your-token>
To generate a token, use IONOS CLOUD Authentication API. The Tracing API supports only token-based authentication (tokenAuth). Basic authentication is not supported.
List your pipelines to confirm your access token works. The following
example uses the Frankfurt (de-fra) endpoint:
curl -X GET "https://tracing.de-fra.ionos.com/pipelines" \
-H "Authorization: Bearer $IONOS_TOKEN"
A successful response returns HTTP 200 with a paginated items array. If you have
no pipelines yet, items is empty.
To connect to a specific region, replace the endpoint host with the corresponding
regional host from Endpoints.
To provision your first pipeline, see Deploy a Pipeline.
Use these end-to-end workflows to deploy, connect, and operate resources using the IONOS CLOUD Tracing API.
AVAILABLE state.Note: If an operation returns an error, refer to the response details of each operation for API-specific error codes. For generic HTTP status codes used across IONOS CLOUD APIs, see HTTP Status Codes.
Use this workflow to plan and provision a new pipeline.
otlp-http: Use for OTLP HTTP exporters. Exporters must append /v1/traces to
the otlpEndpoint when sending traces.otlp-grpc: Use for OTLP gRPC exporters. Exporters connect to the otlpEndpoint
on port 443 without a URL path.Note: Changing the protocol after creation reprovisions the ingestion route behind the same DNS name and may temporarily interrupt ingestion while you reconfigure your exporter.
properties.name (1-36 characters) and
properties.protocol (otlp-grpc or otlp-http).
Example request body:{
"properties": {
"name": "trace-pipeline-prod",
"protocol": "otlp-grpc"
}
}
201 with the pipeline id and metadata.state
as PROVISIONING. Note the id and metadata.key. You need them in every subsequent
operation.Note:
- Pipeline provisioning is asynchronous. Poll Retrieve Pipeline until
metadata.stateisAVAILABLE.- Once
AVAILABLE,metadata.otlpEndpointcontains the stable ingestion endpoint andmetadata.grafanaEndpointcontains the Grafana URL.- Save
metadata.key: the API returns it only in this response and in the Rotate Key response. You cannot retrieve it later.- If
metadata.statereturnsFAILED, retrieve the pipeline using Retrieve Pipeline and inspectmetadata.statusMessagefor details. Submit a new Create Pipeline request to retry. Failed pipelines cannot be recovered in place.
Next steps: To connect your exporter to the pipeline, see Connect to Your Pipeline.
Use this workflow to retrieve the pipeline ingestion endpoint and connect your OTLP exporter.
AVAILABLE state.id (UUID) of the pipeline. You receive this when you complete the
Deploy a Pipeline workflow.metadata.key you saved in Step 2 of the
Deploy a Pipeline workflow.pipelineId: The UUID of your pipeline.200 with the full pipeline object. Note
metadata.otlpEndpoint and metadata.grafanaEndpoint for Step 2.| Property | Value |
|---|---|
| Endpoint | metadata.otlpEndpoint from Step 1 |
| Authorization | Bearer <metadata.key> from the deploy or key rotation response |
| Protocol | Matches properties.protocol: otlp-http or otlp-grpc |
Note: For OTLP HTTP exporters, append
/v1/tracesto theotlpEndpoint. For OTLP gRPC exporters, use theotlpEndpointon port 443 without a URL path.
Next steps: For day-2 tasks on a running pipeline, see Operate a Pipeline.
Use this workflow to perform day-2 tasks on a running pipeline.
Note: All pipeline updates use Ensure (full-replacement) semantics. Retrieve the full pipeline configuration before you submit any
PUTrequest. Any field omitted is set to its schema default or cleared to empty. It does not retain its previous value.
AVAILABLE state.id (UUID) of the pipeline. You receive this when you complete
Deploy a Pipeline.pipelineId: The UUID of the pipeline.properties.name or
properties.protocol. Both fields must be present in every request.200 and the pipeline transitions to UPDATING, then
back to AVAILABLE. Poll Retrieve Pipeline
on metadata.state to confirm.Note: If
metadata.statereturnsFAILED, retrieve the pipeline using Retrieve Pipeline and inspectmetadata.statusMessagefor details. Submit a new Ensure Pipeline request to retry.
Generate a new authentication key to invalidate the current key.
pipelineId: The UUID of the pipeline.201 with the new key value. Save this key: the
API returns it only in this response, and you cannot retrieve it again.Note: Update your OTLP exporter configuration with the new key immediately after rotation. Rotation invalidates the previous key, and exporters using it stop sending traces.
Warning: Deleting a pipeline is irreversible. The delete operation permanently removes the pipeline and all associated ingestion configuration.
Deprovision the pipeline when it is no longer needed to release resources.
pipelineId: The UUID of the pipeline to delete.202 and accepts the delete request. Deletion is
asynchronous, and it permanently removes the pipeline and all associated resources. You
cannot recover them.Note: If
metadata.statereturnsFAILEDinstead of the pipeline being removed, retrieve the pipeline using Retrieve Pipeline and inspectmetadata.statusMessagefor details. Submit a new Delete Pipeline request to retry.
Configure the tracing pipeline that defines the OTLP ingestion protocol and endpoint for tenant-isolated trace collection.
Use these operations to create, retrieve, update, and delete pipelines. Changing protocol reprovisions the ingestion route behind the same DNS name and requires clients to switch exporter configuration between OTLP HTTP and OTLP gRPC.
This tag groups all operations for pipelines.
This endpoint enables retrieving all Pipelines using pagination and optional filters.
| offset | integer <int32> >= 0 Default: 0 The first element (of the total list of elements) to include in the response. Use this parameter together with the limit for pagination. |
| limit | integer <int32> [ 1 .. 1000 ] Default: 100 Example: limit=100 The maximum number of elements to return. Use this parameter together with the offset for pagination. |
| orderBy | string Default: "-createdDate" Enum: "-createdDate" "-lastModifiedDate" "-name" "name" "createdDate" "lastModifiedDate" The field to order the results by. If not provided, the results will be ordered by the default field. |
{- "id": "930b1f07-e846-54fa-b447-9b78905ff2ef",
- "type": "collection",
- "href": "/pipelines",
- "items": [
- {
- "id": "f72521ba-1590-5998-bf96-6eb997a5887d",
- "type": "pipeline",
- "href": "/pipelines/f72521ba-1590-5998-bf96-6eb997a5887d",
- "metadata": {
- "createdDate": "2020-12-10T13:37:50+01:00",
- "createdBy": "ionos:identity:::users/87f9a82e-b28d-49ed-9d04-fba2c0459cd3",
- "createdByUserId": "87f9a82e-b28d-49ed-9d04-fba2c0459cd3",
- "lastModifiedDate": "2020-12-11T13:37:50+01:00",
- "lastModifiedBy": "ionos:identity:::users/87f9a82e-b28d-49ed-9d04-fba2c0459cd3",
- "lastModifiedByUserId": "87f9a82e-b28d-49ed-9d04-fba2c0459cd3",
- "resourceURN": "ionos:<product>:<location>:<contract>:<resource-path>",
- "state": "AVAILABLE",
- "statusMessage": null,
- "otlpEndpoint": "grpcs://f8ss7fgr7s-traces.jf9ejf8t6hrt.tracing.de-txl.ionos.com",
- "key": "your-pipeline-key"
}, - "properties": {
- "name": "trace-pipeline-prod",
- "protocol": "otlp-grpc"
}
}
], - "offset": 0,
- "limit": 42,
- "_links": {
}
}Creates a new Pipeline. The full Pipeline needs to be provided to create the object. Optional data will be filled with defaults or left empty.
Pipeline to create.
object Metadata | |
required | object (Pipeline) Configure the tracing pipeline that defines the OTLP ingestion protocol and endpoint for tenant-isolated trace collection. |
{- "metadata": { },
- "properties": {
- "name": "trace-pipeline-prod",
- "protocol": "otlp-grpc"
}
}{- "id": "f72521ba-1590-5998-bf96-6eb997a5887d",
- "type": "pipeline",
- "href": "/pipelines/f72521ba-1590-5998-bf96-6eb997a5887d",
- "metadata": {
- "createdDate": "2020-12-10T13:37:50+01:00",
- "createdBy": "ionos:identity:::users/87f9a82e-b28d-49ed-9d04-fba2c0459cd3",
- "createdByUserId": "87f9a82e-b28d-49ed-9d04-fba2c0459cd3",
- "lastModifiedDate": "2020-12-11T13:37:50+01:00",
- "lastModifiedBy": "ionos:identity:::users/87f9a82e-b28d-49ed-9d04-fba2c0459cd3",
- "lastModifiedByUserId": "87f9a82e-b28d-49ed-9d04-fba2c0459cd3",
- "resourceURN": "ionos:<product>:<location>:<contract>:<resource-path>",
- "state": "AVAILABLE",
- "statusMessage": null,
- "otlpEndpoint": "grpcs://f8ss7fgr7s-traces.jf9ejf8t6hrt.tracing.de-txl.ionos.com",
- "key": "your-pipeline-key"
}, - "properties": {
- "name": "trace-pipeline-prod",
- "protocol": "otlp-grpc"
}
}Returns the Pipeline by ID.
| pipelineId required | string <uuid> Example: f72521ba-1590-5998-bf96-6eb997a5887d The ID (UUID) of the Pipeline. |
{- "id": "f72521ba-1590-5998-bf96-6eb997a5887d",
- "type": "pipeline",
- "href": "/pipelines/f72521ba-1590-5998-bf96-6eb997a5887d",
- "metadata": {
- "createdDate": "2020-12-10T13:37:50+01:00",
- "createdBy": "ionos:identity:::users/87f9a82e-b28d-49ed-9d04-fba2c0459cd3",
- "createdByUserId": "87f9a82e-b28d-49ed-9d04-fba2c0459cd3",
- "lastModifiedDate": "2020-12-11T13:37:50+01:00",
- "lastModifiedBy": "ionos:identity:::users/87f9a82e-b28d-49ed-9d04-fba2c0459cd3",
- "lastModifiedByUserId": "87f9a82e-b28d-49ed-9d04-fba2c0459cd3",
- "resourceURN": "ionos:<product>:<location>:<contract>:<resource-path>",
- "state": "AVAILABLE",
- "statusMessage": null,
- "otlpEndpoint": "grpcs://f8ss7fgr7s-traces.jf9ejf8t6hrt.tracing.de-txl.ionos.com",
- "key": "your-pipeline-key"
}, - "properties": {
- "name": "trace-pipeline-prod",
- "protocol": "otlp-grpc"
}
}Ensures that the Pipeline with the provided ID is created or modified. The full Pipeline needs to be provided to ensure (either update or create) the Pipeline. Non present data will only be filled with defaults or left empty, but not take previous values into consideration.
| pipelineId required | string <uuid> Example: f72521ba-1590-5998-bf96-6eb997a5887d The ID (UUID) of the Pipeline. |
update Pipeline
| id required | string <uuid> The ID (UUID) of the Pipeline. |
object Metadata | |
required | object (Pipeline) Configure the tracing pipeline that defines the OTLP ingestion protocol and endpoint for tenant-isolated trace collection. |
{- "id": "f72521ba-1590-5998-bf96-6eb997a5887d",
- "metadata": { },
- "properties": {
- "name": "trace-pipeline-prod",
- "protocol": "otlp-grpc"
}
}{- "id": "f72521ba-1590-5998-bf96-6eb997a5887d",
- "type": "pipeline",
- "href": "/pipelines/f72521ba-1590-5998-bf96-6eb997a5887d",
- "metadata": {
- "createdDate": "2020-12-10T13:37:50+01:00",
- "createdBy": "ionos:identity:::users/87f9a82e-b28d-49ed-9d04-fba2c0459cd3",
- "createdByUserId": "87f9a82e-b28d-49ed-9d04-fba2c0459cd3",
- "lastModifiedDate": "2020-12-11T13:37:50+01:00",
- "lastModifiedBy": "ionos:identity:::users/87f9a82e-b28d-49ed-9d04-fba2c0459cd3",
- "lastModifiedByUserId": "87f9a82e-b28d-49ed-9d04-fba2c0459cd3",
- "resourceURN": "ionos:<product>:<location>:<contract>:<resource-path>",
- "state": "AVAILABLE",
- "statusMessage": null,
- "otlpEndpoint": "grpcs://f8ss7fgr7s-traces.jf9ejf8t6hrt.tracing.de-txl.ionos.com",
- "key": "your-pipeline-key"
}, - "properties": {
- "name": "trace-pipeline-prod",
- "protocol": "otlp-grpc"
}
}Deletes the specified Pipeline.
| pipelineId required | string <uuid> Example: f72521ba-1590-5998-bf96-6eb997a5887d The ID (UUID) of the Pipeline. |
{- "httpStatus": 400,
- "messages": [
- {
- "errorCode": "err-1234",
- "message": "Error message example"
}
]
}Rotate the pipeline key to invalidate the previous one. The key rotation operation returns the new key only once. You cannot retrieve it again. This tag groups all operations for key.
Rotate the tracing pipeline key, invalidating the previous one. The API returns the new key only in this response. You cannot retrieve it again.
| pipelineId required | string <uuid> Example: f72521ba-1590-5998-bf96-6eb997a5887d The ID (UUID) of the Pipeline. |
{- "key": "your-pipeline-key"
}