Connections / API reference
Connection link status
Check whether a customer's connection flow completed.
/v1/connections/{id}/connect-sessions/{sessionId}Authentication: Bearer consumer API key with an explicit connection grant.
Preview contract. Availability depends on the deployed release, authorized connection and asset.
How to use this endpoint
- Use the sessionId returned when your backend created the link.
- States are created, started, consumed, complete, failed, cancelled and expired. Complete confirms verified credential enrollment and a durable approval receipt, not active collection or production acceptance.
- The enrollment method (oauth, api_token or service_account), disclosure version, selected signals and acceptance/completion times distinguish customer approval from provider login and collection activation. A new connection link is needed after expiry; a used callback cannot be replayed.
- Access is restricted to the initiating consumer with the connection's management grant.
Parameters
| Name | Where | Required | Type and behavior |
|---|---|---|---|
id | path | Yes | string |
sessionId | path | Yes | string |
Request example
curl "$TELEMATICS_ORIGIN/v1/connections/$CONNECTION_ID/connect-sessions/$SESSION_ID" \
--header "Authorization: Bearer $TELEMATICS_CONSUMER_KEY"Response fields
HTTP 200 returns SessionStatus. Fields listed as required are guaranteed by this contract; optional fields may be absent.
| Field | Type | Required |
|---|---|---|
id | string | Yes |
status | created | started | consumed | complete | failed | cancelled | expired | Yes |
expires_at | string | Yes |
enrollment_method | oauth | api_token | service_account | null | No |
disclosure_version | string | null | No |
selected_signals | array | null | No |
accepted_at | string | null | No |
completed_at | string | null | No |
Nested field shapes and constraints are defined in the OpenAPI contract. For latest telemetry values, see normalized units and availability.
Response example
Synthetic values; this is a shape example, not a live customer response.
{
"id": "20000000-0000-4000-8000-000000000002",
"status": "complete",
"expires_at": "2026-10-01T00:10:00Z",
"enrollment_method": "oauth",
"disclosure_version": "vehicle-signals-v1",
"selected_signals": [
"odometer",
"faults",
"engineHours",
"location"
],
"accepted_at": "2026-10-01T00:00:00Z",
"completed_at": "2026-10-01T00:01:00Z"
}Errors and retries
| HTTP status | Meaning |
|---|---|
401 | Consumer authentication denied |
404 | Resource missing or connection access denied |
503 | Service or database unavailable |
Errors return {"error":"reason_code"}. Honor Retry-After when a 429 includes it. Permission and provider failures never become zero-valued telemetry. Connection health and reading status provide separate signals.
Response schema
{
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid"
},
"status": {
"type": "string",
"enum": [
"created",
"started",
"consumed",
"complete",
"failed",
"cancelled",
"expired"
]
},
"expires_at": {
"type": "string",
"format": "date-time"
},
"enrollment_method": {
"type": [
"string",
"null"
],
"enum": [
"oauth",
"api_token",
"service_account",
null
]
},
"disclosure_version": {
"type": [
"string",
"null"
]
},
"selected_signals": {
"type": [
"array",
"null"
],
"items": {
"type": "string",
"enum": [
"odometer",
"faults",
"engineHours",
"location"
]
},
"minItems": 1,
"maxItems": 4,
"uniqueItems": true
},
"accepted_at": {
"type": [
"string",
"null"
],
"format": "date-time"
},
"completed_at": {
"type": [
"string",
"null"
],
"format": "date-time"
}
},
"required": [
"id",
"status",
"expires_at"
]
}