API reference
Browse the operations, permissions, parameters and response schemas from the versioned contract. Paths are relative to /api/v1 at the API origin assigned during onboarding; this documentation hostname is not the API service address.
Download OpenAPI 3.1 · Download request and response examples
Browse the contract in Swagger UI
GET /appointments · List appointments
List tenant-scoped Elynext appointments resources.
Permissions
[
{
"ElynextOAuth2": [
"appointments.read"
]
},
{
"ElynextApiKey": []
}
]Parameters
[
{
"description": "Optional opaque request correlation identifier supplied by the client.",
"in": "header",
"name": "X-Request-Id",
"required": false,
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
},
{
"in": "query",
"name": "limit",
"schema": {
"default": 50,
"maximum": 100,
"minimum": 1,
"type": "integer"
}
},
{
"in": "query",
"name": "offset",
"schema": {
"default": 0,
"minimum": 0,
"type": "integer"
}
},
{
"description": "Public field name, optionally prefixed with - for descending order.",
"in": "query",
"name": "sort",
"schema": {
"type": "string"
}
},
{
"description": "Free-text search. Use POST search for structured filters.",
"in": "query",
"name": "search",
"schema": {
"type": "string"
}
}
]Responses
200 Appointments response.
application/json
Schema: AppointmentCollection
Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}400 Request is invalid.
application/json
Schema: Error
Example · badRequest
{
"error": {
"code": "unsupported_grant_type",
"details": {},
"message": "Only client_credentials grant type is supported.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}401 Authentication is required.
application/json
Schema: Error
Example · unauthorized
{
"error": {
"code": "unauthorized",
"details": {},
"message": "Authentication is required.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}403 Insufficient permissions.
application/json
Schema: Error
Example · forbidden
{
"error": {
"code": "forbidden",
"details": {},
"message": "Insufficient permissions.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}404 Resource not found.
application/json
Schema: Error
Example · notFound
{
"error": {
"code": "not_found",
"details": {},
"message": "Elynext API resource not found.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}405 HTTP method is not allowed for this resource.
application/json
Schema: Error
Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}409 Request conflicts with a previous idempotent request.
application/json
Schema: Error
Example · idempotencyConflict
{
"error": {
"code": "idempotency_conflict",
"details": {},
"message": "Idempotency key was already used with a different payload.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}429 Rate limit exceeded.
application/json
Schema: Error
Example · rateLimited
{
"error": {
"code": "rate_limited",
"details": {},
"message": "Rate limit exceeded.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"Retry-After": {
"description": "Seconds to wait before retrying a rate-limited request.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}500 Request failed.
application/json
Schema: Error
Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}POST /appointments · Create appointments
Create tenant-scoped Elynext appointments resources.
Permissions
[
{
"ElynextOAuth2": [
"appointments.write"
]
},
{
"ElynextApiKey": []
}
]Parameters
[
{
"description": "Optional opaque request correlation identifier supplied by the client.",
"in": "header",
"name": "X-Request-Id",
"required": false,
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
},
{
"description": "Optional key used to make critical POST requests safe to retry.",
"in": "header",
"name": "Idempotency-Key",
"required": false,
"schema": {
"maxLength": 255,
"minLength": 1,
"type": "string"
}
}
]Request body
application/json
Schema: AppointmentWrite
Responses
201 Appointments response.
application/json
Schema: AppointmentEnvelope
Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}400 Request is invalid.
application/json
Schema: Error
Example · badRequest
{
"error": {
"code": "unsupported_grant_type",
"details": {},
"message": "Only client_credentials grant type is supported.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}401 Authentication is required.
application/json
Schema: Error
Example · unauthorized
{
"error": {
"code": "unauthorized",
"details": {},
"message": "Authentication is required.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}403 Insufficient permissions.
application/json
Schema: Error
Example · forbidden
{
"error": {
"code": "forbidden",
"details": {},
"message": "Insufficient permissions.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}404 Resource not found.
application/json
Schema: Error
Example · notFound
{
"error": {
"code": "not_found",
"details": {},
"message": "Elynext API resource not found.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}405 HTTP method is not allowed for this resource.
application/json
Schema: Error
Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}409 Request conflicts with a previous idempotent request.
application/json
Schema: Error
Example · idempotencyConflict
{
"error": {
"code": "idempotency_conflict",
"details": {},
"message": "Idempotency key was already used with a different payload.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}429 Rate limit exceeded.
application/json
Schema: Error
Example · rateLimited
{
"error": {
"code": "rate_limited",
"details": {},
"message": "Rate limit exceeded.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"Retry-After": {
"description": "Seconds to wait before retrying a rate-limited request.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}500 Request failed.
application/json
Schema: Error
Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}POST /appointments/search · Search appointments
Search tenant-scoped Elynext appointments resources.
Permissions
[
{
"ElynextOAuth2": [
"appointments.read"
]
},
{
"ElynextApiKey": []
}
]Parameters
[
{
"description": "Optional opaque request correlation identifier supplied by the client.",
"in": "header",
"name": "X-Request-Id",
"required": false,
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
]Request body
application/json
Schema: SearchRequest
Responses
200 Appointments response.
application/json
Schema: AppointmentCollection
Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}400 Request is invalid.
application/json
Schema: Error
Example · badRequest
{
"error": {
"code": "unsupported_grant_type",
"details": {},
"message": "Only client_credentials grant type is supported.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}401 Authentication is required.
application/json
Schema: Error
Example · unauthorized
{
"error": {
"code": "unauthorized",
"details": {},
"message": "Authentication is required.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}403 Insufficient permissions.
application/json
Schema: Error
Example · forbidden
{
"error": {
"code": "forbidden",
"details": {},
"message": "Insufficient permissions.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}404 Resource not found.
application/json
Schema: Error
Example · notFound
{
"error": {
"code": "not_found",
"details": {},
"message": "Elynext API resource not found.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}405 HTTP method is not allowed for this resource.
application/json
Schema: Error
Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}409 Request conflicts with a previous idempotent request.
application/json
Schema: Error
Example · idempotencyConflict
{
"error": {
"code": "idempotency_conflict",
"details": {},
"message": "Idempotency key was already used with a different payload.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}429 Rate limit exceeded.
application/json
Schema: Error
Example · rateLimited
{
"error": {
"code": "rate_limited",
"details": {},
"message": "Rate limit exceeded.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"Retry-After": {
"description": "Seconds to wait before retrying a rate-limited request.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}500 Request failed.
application/json
Schema: Error
Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}GET /appointments/{id} · Get appointments
Get tenant-scoped Elynext appointments resources.
Permissions
[
{
"ElynextOAuth2": [
"appointments.read"
]
},
{
"ElynextApiKey": []
}
]Parameters
[
{
"description": "Optional opaque request correlation identifier supplied by the client.",
"in": "header",
"name": "X-Request-Id",
"required": false,
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
},
{
"description": "Opaque Elynext resource identifier.",
"in": "path",
"name": "id",
"required": true,
"schema": {
"maxLength": 160,
"minLength": 1,
"type": "string"
}
}
]Responses
200 Appointments response.
application/json
Schema: AppointmentEnvelope
Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}400 Request is invalid.
application/json
Schema: Error
Example · badRequest
{
"error": {
"code": "unsupported_grant_type",
"details": {},
"message": "Only client_credentials grant type is supported.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}401 Authentication is required.
application/json
Schema: Error
Example · unauthorized
{
"error": {
"code": "unauthorized",
"details": {},
"message": "Authentication is required.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}403 Insufficient permissions.
application/json
Schema: Error
Example · forbidden
{
"error": {
"code": "forbidden",
"details": {},
"message": "Insufficient permissions.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}404 Resource not found.
application/json
Schema: Error
Example · notFound
{
"error": {
"code": "not_found",
"details": {},
"message": "Elynext API resource not found.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}405 HTTP method is not allowed for this resource.
application/json
Schema: Error
Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}409 Request conflicts with a previous idempotent request.
application/json
Schema: Error
Example · idempotencyConflict
{
"error": {
"code": "idempotency_conflict",
"details": {},
"message": "Idempotency key was already used with a different payload.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}429 Rate limit exceeded.
application/json
Schema: Error
Example · rateLimited
{
"error": {
"code": "rate_limited",
"details": {},
"message": "Rate limit exceeded.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"Retry-After": {
"description": "Seconds to wait before retrying a rate-limited request.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}500 Request failed.
application/json
Schema: Error
Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}PATCH /appointments/{id} · Update appointments
Update tenant-scoped Elynext appointments resources.
Permissions
[
{
"ElynextOAuth2": [
"appointments.write"
]
},
{
"ElynextApiKey": []
}
]Parameters
[
{
"description": "Optional opaque request correlation identifier supplied by the client.",
"in": "header",
"name": "X-Request-Id",
"required": false,
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
},
{
"description": "Opaque Elynext resource identifier.",
"in": "path",
"name": "id",
"required": true,
"schema": {
"maxLength": 160,
"minLength": 1,
"type": "string"
}
}
]Request body
application/json
Schema: AppointmentWrite
Responses
200 Appointments response.
application/json
Schema: AppointmentEnvelope
Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}400 Request is invalid.
application/json
Schema: Error
Example · badRequest
{
"error": {
"code": "unsupported_grant_type",
"details": {},
"message": "Only client_credentials grant type is supported.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}401 Authentication is required.
application/json
Schema: Error
Example · unauthorized
{
"error": {
"code": "unauthorized",
"details": {},
"message": "Authentication is required.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}403 Insufficient permissions.
application/json
Schema: Error
Example · forbidden
{
"error": {
"code": "forbidden",
"details": {},
"message": "Insufficient permissions.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}404 Resource not found.
application/json
Schema: Error
Example · notFound
{
"error": {
"code": "not_found",
"details": {},
"message": "Elynext API resource not found.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}405 HTTP method is not allowed for this resource.
application/json
Schema: Error
Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}409 Request conflicts with a previous idempotent request.
application/json
Schema: Error
Example · idempotencyConflict
{
"error": {
"code": "idempotency_conflict",
"details": {},
"message": "Idempotency key was already used with a different payload.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}429 Rate limit exceeded.
application/json
Schema: Error
Example · rateLimited
{
"error": {
"code": "rate_limited",
"details": {},
"message": "Rate limit exceeded.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"Retry-After": {
"description": "Seconds to wait before retrying a rate-limited request.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}500 Request failed.
application/json
Schema: Error
Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}DELETE /appointments/{id} · Cancel an appointment
Set status to Annullato, without physically deleting the record. Cancellation policies and reason handling require acceptance verification.
Permissions
[
{
"ElynextOAuth2": [
"appointments.write"
]
},
{
"ElynextApiKey": []
}
]Parameters
[
{
"description": "Optional opaque request correlation identifier supplied by the client.",
"in": "header",
"name": "X-Request-Id",
"required": false,
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
},
{
"description": "Opaque Elynext resource identifier.",
"in": "path",
"name": "id",
"required": true,
"schema": {
"maxLength": 160,
"minLength": 1,
"type": "string"
}
}
]Responses
200 Appointments response.
application/json
Schema: ArchiveEnvelope
Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}400 Request is invalid.
application/json
Schema: Error
Example · badRequest
{
"error": {
"code": "unsupported_grant_type",
"details": {},
"message": "Only client_credentials grant type is supported.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}401 Authentication is required.
application/json
Schema: Error
Example · unauthorized
{
"error": {
"code": "unauthorized",
"details": {},
"message": "Authentication is required.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}403 Insufficient permissions.
application/json
Schema: Error
Example · forbidden
{
"error": {
"code": "forbidden",
"details": {},
"message": "Insufficient permissions.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}404 Resource not found.
application/json
Schema: Error
Example · notFound
{
"error": {
"code": "not_found",
"details": {},
"message": "Elynext API resource not found.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}405 HTTP method is not allowed for this resource.
application/json
Schema: Error
Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}409 Request conflicts with a previous idempotent request.
application/json
Schema: Error
Example · idempotencyConflict
{
"error": {
"code": "idempotency_conflict",
"details": {},
"message": "Idempotency key was already used with a different payload.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}429 Rate limit exceeded.
application/json
Schema: Error
Example · rateLimited
{
"error": {
"code": "rate_limited",
"details": {},
"message": "Rate limit exceeded.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"Retry-After": {
"description": "Seconds to wait before retrying a rate-limited request.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}500 Request failed.
application/json
Schema: Error
Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}GET /availability · Read booking availability
Credential-scoped read. Locations represent the credential's studio. Availability is advisory for one doctor/service/day, not a reservation or a service eligibility guarantee.
Permissions
[
{
"ElynextOAuth2": [
"appointments.read"
]
},
{
"ElynextApiKey": []
}
]Parameters
[
{
"description": "Optional opaque request correlation identifier supplied by the client.",
"in": "header",
"name": "X-Request-Id",
"required": false,
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
},
{
"in": "query",
"name": "date",
"required": true,
"schema": {
"format": "date",
"type": "string"
}
},
{
"in": "query",
"name": "doctorId",
"required": true,
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "serviceId",
"required": true,
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "locationId",
"required": false,
"schema": {
"type": "string"
}
}
]Responses
200 Booking response.
application/json
Schema: AvailabilityEnvelope
Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}400 Request is invalid.
application/json
Schema: Error
Example · badRequest
{
"error": {
"code": "unsupported_grant_type",
"details": {},
"message": "Only client_credentials grant type is supported.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}401 Authentication is required.
application/json
Schema: Error
Example · unauthorized
{
"error": {
"code": "unauthorized",
"details": {},
"message": "Authentication is required.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}403 Insufficient permissions.
application/json
Schema: Error
Example · forbidden
{
"error": {
"code": "forbidden",
"details": {},
"message": "Insufficient permissions.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}404 Resource not found.
application/json
Schema: Error
Example · notFound
{
"error": {
"code": "not_found",
"details": {},
"message": "Elynext API resource not found.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}405 HTTP method is not allowed for this resource.
application/json
Schema: Error
Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}409 Request conflicts with a previous idempotent request.
application/json
Schema: Error
Example · idempotencyConflict
{
"error": {
"code": "idempotency_conflict",
"details": {},
"message": "Idempotency key was already used with a different payload.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}429 Rate limit exceeded.
application/json
Schema: Error
Example · rateLimited
{
"error": {
"code": "rate_limited",
"details": {},
"message": "Rate limit exceeded.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"Retry-After": {
"description": "Seconds to wait before retrying a rate-limited request.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}500 Request failed.
application/json
Schema: Error
Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}GET /clinical-records · List clinical-records
List tenant-scoped Elynext clinical-records resources.
Permissions
[
{
"ElynextOAuth2": [
"clinical-records.read"
]
},
{
"ElynextApiKey": []
}
]Parameters
[
{
"description": "Optional opaque request correlation identifier supplied by the client.",
"in": "header",
"name": "X-Request-Id",
"required": false,
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
},
{
"in": "query",
"name": "limit",
"schema": {
"default": 50,
"maximum": 100,
"minimum": 1,
"type": "integer"
}
},
{
"in": "query",
"name": "offset",
"schema": {
"default": 0,
"minimum": 0,
"type": "integer"
}
},
{
"description": "Public field name, optionally prefixed with - for descending order.",
"in": "query",
"name": "sort",
"schema": {
"type": "string"
}
},
{
"description": "Free-text search. Use POST search for structured filters.",
"in": "query",
"name": "search",
"schema": {
"type": "string"
}
}
]Responses
200 Clinical Records response.
application/json
Schema: ClinicalRecordCollection
Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}400 Request is invalid.
application/json
Schema: Error
Example · badRequest
{
"error": {
"code": "unsupported_grant_type",
"details": {},
"message": "Only client_credentials grant type is supported.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}401 Authentication is required.
application/json
Schema: Error
Example · unauthorized
{
"error": {
"code": "unauthorized",
"details": {},
"message": "Authentication is required.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}403 Insufficient permissions.
application/json
Schema: Error
Example · forbidden
{
"error": {
"code": "forbidden",
"details": {},
"message": "Insufficient permissions.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}404 Resource not found.
application/json
Schema: Error
Example · notFound
{
"error": {
"code": "not_found",
"details": {},
"message": "Elynext API resource not found.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}405 HTTP method is not allowed for this resource.
application/json
Schema: Error
Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}409 Request conflicts with a previous idempotent request.
application/json
Schema: Error
Example · idempotencyConflict
{
"error": {
"code": "idempotency_conflict",
"details": {},
"message": "Idempotency key was already used with a different payload.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}429 Rate limit exceeded.
application/json
Schema: Error
Example · rateLimited
{
"error": {
"code": "rate_limited",
"details": {},
"message": "Rate limit exceeded.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"Retry-After": {
"description": "Seconds to wait before retrying a rate-limited request.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}500 Request failed.
application/json
Schema: Error
Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}POST /clinical-records · Create clinical-records
Create tenant-scoped Elynext clinical-records resources.
Permissions
[
{
"ElynextOAuth2": [
"clinical-records.write"
]
},
{
"ElynextApiKey": []
}
]Parameters
[
{
"description": "Optional opaque request correlation identifier supplied by the client.",
"in": "header",
"name": "X-Request-Id",
"required": false,
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
},
{
"description": "Optional key used to make critical POST requests safe to retry.",
"in": "header",
"name": "Idempotency-Key",
"required": false,
"schema": {
"maxLength": 255,
"minLength": 1,
"type": "string"
}
}
]Request body
application/json
Schema: ClinicalRecordWrite
Responses
201 Clinical Records response.
application/json
Schema: ClinicalRecordEnvelope
Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}400 Request is invalid.
application/json
Schema: Error
Example · badRequest
{
"error": {
"code": "unsupported_grant_type",
"details": {},
"message": "Only client_credentials grant type is supported.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}401 Authentication is required.
application/json
Schema: Error
Example · unauthorized
{
"error": {
"code": "unauthorized",
"details": {},
"message": "Authentication is required.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}403 Insufficient permissions.
application/json
Schema: Error
Example · forbidden
{
"error": {
"code": "forbidden",
"details": {},
"message": "Insufficient permissions.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}404 Resource not found.
application/json
Schema: Error
Example · notFound
{
"error": {
"code": "not_found",
"details": {},
"message": "Elynext API resource not found.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}405 HTTP method is not allowed for this resource.
application/json
Schema: Error
Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}409 Request conflicts with a previous idempotent request.
application/json
Schema: Error
Example · idempotencyConflict
{
"error": {
"code": "idempotency_conflict",
"details": {},
"message": "Idempotency key was already used with a different payload.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}429 Rate limit exceeded.
application/json
Schema: Error
Example · rateLimited
{
"error": {
"code": "rate_limited",
"details": {},
"message": "Rate limit exceeded.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"Retry-After": {
"description": "Seconds to wait before retrying a rate-limited request.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}500 Request failed.
application/json
Schema: Error
Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}POST /clinical-records/search · Search clinical-records
Search tenant-scoped Elynext clinical-records resources.
Permissions
[
{
"ElynextOAuth2": [
"clinical-records.read"
]
},
{
"ElynextApiKey": []
}
]Parameters
[
{
"description": "Optional opaque request correlation identifier supplied by the client.",
"in": "header",
"name": "X-Request-Id",
"required": false,
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
]Request body
application/json
Schema: SearchRequest
Responses
200 Clinical Records response.
application/json
Schema: ClinicalRecordCollection
Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}400 Request is invalid.
application/json
Schema: Error
Example · badRequest
{
"error": {
"code": "unsupported_grant_type",
"details": {},
"message": "Only client_credentials grant type is supported.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}401 Authentication is required.
application/json
Schema: Error
Example · unauthorized
{
"error": {
"code": "unauthorized",
"details": {},
"message": "Authentication is required.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}403 Insufficient permissions.
application/json
Schema: Error
Example · forbidden
{
"error": {
"code": "forbidden",
"details": {},
"message": "Insufficient permissions.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}404 Resource not found.
application/json
Schema: Error
Example · notFound
{
"error": {
"code": "not_found",
"details": {},
"message": "Elynext API resource not found.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}405 HTTP method is not allowed for this resource.
application/json
Schema: Error
Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}409 Request conflicts with a previous idempotent request.
application/json
Schema: Error
Example · idempotencyConflict
{
"error": {
"code": "idempotency_conflict",
"details": {},
"message": "Idempotency key was already used with a different payload.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}429 Rate limit exceeded.
application/json
Schema: Error
Example · rateLimited
{
"error": {
"code": "rate_limited",
"details": {},
"message": "Rate limit exceeded.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"Retry-After": {
"description": "Seconds to wait before retrying a rate-limited request.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}500 Request failed.
application/json
Schema: Error
Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}GET /clinical-records/{id} · Get clinical-records
Get tenant-scoped Elynext clinical-records resources.
Permissions
[
{
"ElynextOAuth2": [
"clinical-records.read"
]
},
{
"ElynextApiKey": []
}
]Parameters
[
{
"description": "Optional opaque request correlation identifier supplied by the client.",
"in": "header",
"name": "X-Request-Id",
"required": false,
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
},
{
"description": "Opaque Elynext resource identifier.",
"in": "path",
"name": "id",
"required": true,
"schema": {
"maxLength": 160,
"minLength": 1,
"type": "string"
}
}
]Responses
200 Clinical Records response.
application/json
Schema: ClinicalRecordEnvelope
Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}400 Request is invalid.
application/json
Schema: Error
Example · badRequest
{
"error": {
"code": "unsupported_grant_type",
"details": {},
"message": "Only client_credentials grant type is supported.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}401 Authentication is required.
application/json
Schema: Error
Example · unauthorized
{
"error": {
"code": "unauthorized",
"details": {},
"message": "Authentication is required.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}403 Insufficient permissions.
application/json
Schema: Error
Example · forbidden
{
"error": {
"code": "forbidden",
"details": {},
"message": "Insufficient permissions.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}404 Resource not found.
application/json
Schema: Error
Example · notFound
{
"error": {
"code": "not_found",
"details": {},
"message": "Elynext API resource not found.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}405 HTTP method is not allowed for this resource.
application/json
Schema: Error
Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}409 Request conflicts with a previous idempotent request.
application/json
Schema: Error
Example · idempotencyConflict
{
"error": {
"code": "idempotency_conflict",
"details": {},
"message": "Idempotency key was already used with a different payload.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}429 Rate limit exceeded.
application/json
Schema: Error
Example · rateLimited
{
"error": {
"code": "rate_limited",
"details": {},
"message": "Rate limit exceeded.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"Retry-After": {
"description": "Seconds to wait before retrying a rate-limited request.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}500 Request failed.
application/json
Schema: Error
Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}PATCH /clinical-records/{id} · Update clinical-records
Update tenant-scoped Elynext clinical-records resources.
Permissions
[
{
"ElynextOAuth2": [
"clinical-records.write"
]
},
{
"ElynextApiKey": []
}
]Parameters
[
{
"description": "Optional opaque request correlation identifier supplied by the client.",
"in": "header",
"name": "X-Request-Id",
"required": false,
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
},
{
"description": "Opaque Elynext resource identifier.",
"in": "path",
"name": "id",
"required": true,
"schema": {
"maxLength": 160,
"minLength": 1,
"type": "string"
}
}
]Request body
application/json
Schema: ClinicalRecordWrite
Responses
200 Clinical Records response.
application/json
Schema: ClinicalRecordEnvelope
Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}400 Request is invalid.
application/json
Schema: Error
Example · badRequest
{
"error": {
"code": "unsupported_grant_type",
"details": {},
"message": "Only client_credentials grant type is supported.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}401 Authentication is required.
application/json
Schema: Error
Example · unauthorized
{
"error": {
"code": "unauthorized",
"details": {},
"message": "Authentication is required.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}403 Insufficient permissions.
application/json
Schema: Error
Example · forbidden
{
"error": {
"code": "forbidden",
"details": {},
"message": "Insufficient permissions.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}404 Resource not found.
application/json
Schema: Error
Example · notFound
{
"error": {
"code": "not_found",
"details": {},
"message": "Elynext API resource not found.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}405 HTTP method is not allowed for this resource.
application/json
Schema: Error
Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}409 Request conflicts with a previous idempotent request.
application/json
Schema: Error
Example · idempotencyConflict
{
"error": {
"code": "idempotency_conflict",
"details": {},
"message": "Idempotency key was already used with a different payload.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}429 Rate limit exceeded.
application/json
Schema: Error
Example · rateLimited
{
"error": {
"code": "rate_limited",
"details": {},
"message": "Rate limit exceeded.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"Retry-After": {
"description": "Seconds to wait before retrying a rate-limited request.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}500 Request failed.
application/json
Schema: Error
Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}DELETE /clinical-records/{id} · Archive clinical-records
Archive tenant-scoped Elynext clinical-records resources.
Permissions
[
{
"ElynextOAuth2": [
"clinical-records.write"
]
},
{
"ElynextApiKey": []
}
]Parameters
[
{
"description": "Optional opaque request correlation identifier supplied by the client.",
"in": "header",
"name": "X-Request-Id",
"required": false,
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
},
{
"description": "Opaque Elynext resource identifier.",
"in": "path",
"name": "id",
"required": true,
"schema": {
"maxLength": 160,
"minLength": 1,
"type": "string"
}
}
]Responses
200 Clinical Records response.
application/json
Schema: ArchiveEnvelope
Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}400 Request is invalid.
application/json
Schema: Error
Example · badRequest
{
"error": {
"code": "unsupported_grant_type",
"details": {},
"message": "Only client_credentials grant type is supported.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}401 Authentication is required.
application/json
Schema: Error
Example · unauthorized
{
"error": {
"code": "unauthorized",
"details": {},
"message": "Authentication is required.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}403 Insufficient permissions.
application/json
Schema: Error
Example · forbidden
{
"error": {
"code": "forbidden",
"details": {},
"message": "Insufficient permissions.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}404 Resource not found.
application/json
Schema: Error
Example · notFound
{
"error": {
"code": "not_found",
"details": {},
"message": "Elynext API resource not found.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}405 HTTP method is not allowed for this resource.
application/json
Schema: Error
Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}409 Request conflicts with a previous idempotent request.
application/json
Schema: Error
Example · idempotencyConflict
{
"error": {
"code": "idempotency_conflict",
"details": {},
"message": "Idempotency key was already used with a different payload.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}429 Rate limit exceeded.
application/json
Schema: Error
Example · rateLimited
{
"error": {
"code": "rate_limited",
"details": {},
"message": "Rate limit exceeded.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"Retry-After": {
"description": "Seconds to wait before retrying a rate-limited request.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}500 Request failed.
application/json
Schema: Error
Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}GET /docs · Open Swagger UI
Parameters
[
{
"description": "Optional opaque request correlation identifier supplied by the client.",
"in": "header",
"name": "X-Request-Id",
"required": false,
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
]Responses
200 Swagger UI for the Elynext Public API.
text/html
{
"type": "string"
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}405 HTTP method is not allowed for this resource.
application/json
Schema: Error
Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}429 Rate limit exceeded.
application/json
Schema: Error
Example · rateLimited
{
"error": {
"code": "rate_limited",
"details": {},
"message": "Rate limit exceeded.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"Retry-After": {
"description": "Seconds to wait before retrying a rate-limited request.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}500 Request failed.
application/json
Schema: Error
Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}GET /doctors · Read booking doctors
Credential-scoped read. Locations represent the credential's studio. Availability is advisory for one doctor/service/day, not a reservation or a service eligibility guarantee.
Permissions
[
{
"ElynextOAuth2": [
"appointments.read"
]
},
{
"ElynextApiKey": []
}
]Parameters
[
{
"description": "Optional opaque request correlation identifier supplied by the client.",
"in": "header",
"name": "X-Request-Id",
"required": false,
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
},
{
"in": "query",
"name": "limit",
"required": false,
"schema": {
"default": 50,
"maximum": 100,
"minimum": 1,
"type": "integer"
}
},
{
"in": "query",
"name": "offset",
"required": false,
"schema": {
"default": 0,
"maximum": 100000,
"minimum": 0,
"type": "integer"
}
}
]Responses
200 Booking response.
application/json
Schema: DoctorsCollection
Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}400 Request is invalid.
application/json
Schema: Error
Example · badRequest
{
"error": {
"code": "unsupported_grant_type",
"details": {},
"message": "Only client_credentials grant type is supported.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}401 Authentication is required.
application/json
Schema: Error
Example · unauthorized
{
"error": {
"code": "unauthorized",
"details": {},
"message": "Authentication is required.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}403 Insufficient permissions.
application/json
Schema: Error
Example · forbidden
{
"error": {
"code": "forbidden",
"details": {},
"message": "Insufficient permissions.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}404 Resource not found.
application/json
Schema: Error
Example · notFound
{
"error": {
"code": "not_found",
"details": {},
"message": "Elynext API resource not found.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}405 HTTP method is not allowed for this resource.
application/json
Schema: Error
Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}409 Request conflicts with a previous idempotent request.
application/json
Schema: Error
Example · idempotencyConflict
{
"error": {
"code": "idempotency_conflict",
"details": {},
"message": "Idempotency key was already used with a different payload.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}429 Rate limit exceeded.
application/json
Schema: Error
Example · rateLimited
{
"error": {
"code": "rate_limited",
"details": {},
"message": "Rate limit exceeded.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"Retry-After": {
"description": "Seconds to wait before retrying a rate-limited request.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}500 Request failed.
application/json
Schema: Error
Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}GET /documents · List documents
List tenant-scoped Elynext documents resources.
Permissions
[
{
"ElynextOAuth2": [
"documents.read"
]
},
{
"ElynextApiKey": []
}
]Parameters
[
{
"description": "Optional opaque request correlation identifier supplied by the client.",
"in": "header",
"name": "X-Request-Id",
"required": false,
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
},
{
"in": "query",
"name": "limit",
"schema": {
"default": 50,
"maximum": 100,
"minimum": 1,
"type": "integer"
}
},
{
"in": "query",
"name": "offset",
"schema": {
"default": 0,
"minimum": 0,
"type": "integer"
}
},
{
"description": "Public field name, optionally prefixed with - for descending order.",
"in": "query",
"name": "sort",
"schema": {
"type": "string"
}
},
{
"description": "Free-text search. Use POST search for structured filters.",
"in": "query",
"name": "search",
"schema": {
"type": "string"
}
}
]Responses
200 Documents response.
application/json
Schema: DocumentCollection
Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}400 Request is invalid.
application/json
Schema: Error
Example · badRequest
{
"error": {
"code": "unsupported_grant_type",
"details": {},
"message": "Only client_credentials grant type is supported.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}401 Authentication is required.
application/json
Schema: Error
Example · unauthorized
{
"error": {
"code": "unauthorized",
"details": {},
"message": "Authentication is required.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}403 Insufficient permissions.
application/json
Schema: Error
Example · forbidden
{
"error": {
"code": "forbidden",
"details": {},
"message": "Insufficient permissions.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}404 Resource not found.
application/json
Schema: Error
Example · notFound
{
"error": {
"code": "not_found",
"details": {},
"message": "Elynext API resource not found.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}405 HTTP method is not allowed for this resource.
application/json
Schema: Error
Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}409 Request conflicts with a previous idempotent request.
application/json
Schema: Error
Example · idempotencyConflict
{
"error": {
"code": "idempotency_conflict",
"details": {},
"message": "Idempotency key was already used with a different payload.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}429 Rate limit exceeded.
application/json
Schema: Error
Example · rateLimited
{
"error": {
"code": "rate_limited",
"details": {},
"message": "Rate limit exceeded.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"Retry-After": {
"description": "Seconds to wait before retrying a rate-limited request.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}500 Request failed.
application/json
Schema: Error
Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}POST /documents · Create documents
Create tenant-scoped Elynext documents resources.
Permissions
[
{
"ElynextOAuth2": [
"documents.write"
]
},
{
"ElynextApiKey": []
}
]Parameters
[
{
"description": "Optional opaque request correlation identifier supplied by the client.",
"in": "header",
"name": "X-Request-Id",
"required": false,
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
},
{
"description": "Optional key used to make critical POST requests safe to retry.",
"in": "header",
"name": "Idempotency-Key",
"required": false,
"schema": {
"maxLength": 255,
"minLength": 1,
"type": "string"
}
}
]Request body
application/json
Schema: DocumentWrite
Responses
201 Documents response.
application/json
Schema: DocumentEnvelope
Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}400 Request is invalid.
application/json
Schema: Error
Example · badRequest
{
"error": {
"code": "unsupported_grant_type",
"details": {},
"message": "Only client_credentials grant type is supported.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}401 Authentication is required.
application/json
Schema: Error
Example · unauthorized
{
"error": {
"code": "unauthorized",
"details": {},
"message": "Authentication is required.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}403 Insufficient permissions.
application/json
Schema: Error
Example · forbidden
{
"error": {
"code": "forbidden",
"details": {},
"message": "Insufficient permissions.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}404 Resource not found.
application/json
Schema: Error
Example · notFound
{
"error": {
"code": "not_found",
"details": {},
"message": "Elynext API resource not found.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}405 HTTP method is not allowed for this resource.
application/json
Schema: Error
Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}409 Request conflicts with a previous idempotent request.
application/json
Schema: Error
Example · idempotencyConflict
{
"error": {
"code": "idempotency_conflict",
"details": {},
"message": "Idempotency key was already used with a different payload.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}429 Rate limit exceeded.
application/json
Schema: Error
Example · rateLimited
{
"error": {
"code": "rate_limited",
"details": {},
"message": "Rate limit exceeded.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"Retry-After": {
"description": "Seconds to wait before retrying a rate-limited request.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}500 Request failed.
application/json
Schema: Error
Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}POST /documents/search · Search documents
Search tenant-scoped Elynext documents resources.
Permissions
[
{
"ElynextOAuth2": [
"documents.read"
]
},
{
"ElynextApiKey": []
}
]Parameters
[
{
"description": "Optional opaque request correlation identifier supplied by the client.",
"in": "header",
"name": "X-Request-Id",
"required": false,
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
]Request body
application/json
Schema: SearchRequest
Responses
200 Documents response.
application/json
Schema: DocumentCollection
Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}400 Request is invalid.
application/json
Schema: Error
Example · badRequest
{
"error": {
"code": "unsupported_grant_type",
"details": {},
"message": "Only client_credentials grant type is supported.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}401 Authentication is required.
application/json
Schema: Error
Example · unauthorized
{
"error": {
"code": "unauthorized",
"details": {},
"message": "Authentication is required.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}403 Insufficient permissions.
application/json
Schema: Error
Example · forbidden
{
"error": {
"code": "forbidden",
"details": {},
"message": "Insufficient permissions.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}404 Resource not found.
application/json
Schema: Error
Example · notFound
{
"error": {
"code": "not_found",
"details": {},
"message": "Elynext API resource not found.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}405 HTTP method is not allowed for this resource.
application/json
Schema: Error
Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}409 Request conflicts with a previous idempotent request.
application/json
Schema: Error
Example · idempotencyConflict
{
"error": {
"code": "idempotency_conflict",
"details": {},
"message": "Idempotency key was already used with a different payload.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}429 Rate limit exceeded.
application/json
Schema: Error
Example · rateLimited
{
"error": {
"code": "rate_limited",
"details": {},
"message": "Rate limit exceeded.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"Retry-After": {
"description": "Seconds to wait before retrying a rate-limited request.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}500 Request failed.
application/json
Schema: Error
Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}GET /documents/{id} · Get documents
Get tenant-scoped Elynext documents resources.
Permissions
[
{
"ElynextOAuth2": [
"documents.read"
]
},
{
"ElynextApiKey": []
}
]Parameters
[
{
"description": "Optional opaque request correlation identifier supplied by the client.",
"in": "header",
"name": "X-Request-Id",
"required": false,
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
},
{
"description": "Opaque Elynext resource identifier.",
"in": "path",
"name": "id",
"required": true,
"schema": {
"maxLength": 160,
"minLength": 1,
"type": "string"
}
}
]Responses
200 Documents response.
application/json
Schema: DocumentEnvelope
Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}400 Request is invalid.
application/json
Schema: Error
Example · badRequest
{
"error": {
"code": "unsupported_grant_type",
"details": {},
"message": "Only client_credentials grant type is supported.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}401 Authentication is required.
application/json
Schema: Error
Example · unauthorized
{
"error": {
"code": "unauthorized",
"details": {},
"message": "Authentication is required.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}403 Insufficient permissions.
application/json
Schema: Error
Example · forbidden
{
"error": {
"code": "forbidden",
"details": {},
"message": "Insufficient permissions.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}404 Resource not found.
application/json
Schema: Error
Example · notFound
{
"error": {
"code": "not_found",
"details": {},
"message": "Elynext API resource not found.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}405 HTTP method is not allowed for this resource.
application/json
Schema: Error
Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}409 Request conflicts with a previous idempotent request.
application/json
Schema: Error
Example · idempotencyConflict
{
"error": {
"code": "idempotency_conflict",
"details": {},
"message": "Idempotency key was already used with a different payload.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}429 Rate limit exceeded.
application/json
Schema: Error
Example · rateLimited
{
"error": {
"code": "rate_limited",
"details": {},
"message": "Rate limit exceeded.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"Retry-After": {
"description": "Seconds to wait before retrying a rate-limited request.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}500 Request failed.
application/json
Schema: Error
Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}PATCH /documents/{id} · Update documents
Update tenant-scoped Elynext documents resources.
Permissions
[
{
"ElynextOAuth2": [
"documents.write"
]
},
{
"ElynextApiKey": []
}
]Parameters
[
{
"description": "Optional opaque request correlation identifier supplied by the client.",
"in": "header",
"name": "X-Request-Id",
"required": false,
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
},
{
"description": "Opaque Elynext resource identifier.",
"in": "path",
"name": "id",
"required": true,
"schema": {
"maxLength": 160,
"minLength": 1,
"type": "string"
}
}
]Request body
application/json
Schema: DocumentWrite
Responses
200 Documents response.
application/json
Schema: DocumentEnvelope
Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}400 Request is invalid.
application/json
Schema: Error
Example · badRequest
{
"error": {
"code": "unsupported_grant_type",
"details": {},
"message": "Only client_credentials grant type is supported.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}401 Authentication is required.
application/json
Schema: Error
Example · unauthorized
{
"error": {
"code": "unauthorized",
"details": {},
"message": "Authentication is required.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}403 Insufficient permissions.
application/json
Schema: Error
Example · forbidden
{
"error": {
"code": "forbidden",
"details": {},
"message": "Insufficient permissions.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}404 Resource not found.
application/json
Schema: Error
Example · notFound
{
"error": {
"code": "not_found",
"details": {},
"message": "Elynext API resource not found.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}405 HTTP method is not allowed for this resource.
application/json
Schema: Error
Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}409 Request conflicts with a previous idempotent request.
application/json
Schema: Error
Example · idempotencyConflict
{
"error": {
"code": "idempotency_conflict",
"details": {},
"message": "Idempotency key was already used with a different payload.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}429 Rate limit exceeded.
application/json
Schema: Error
Example · rateLimited
{
"error": {
"code": "rate_limited",
"details": {},
"message": "Rate limit exceeded.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"Retry-After": {
"description": "Seconds to wait before retrying a rate-limited request.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}500 Request failed.
application/json
Schema: Error
Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}DELETE /documents/{id} · Archive documents
Archive tenant-scoped Elynext documents resources.
Permissions
[
{
"ElynextOAuth2": [
"documents.write"
]
},
{
"ElynextApiKey": []
}
]Parameters
[
{
"description": "Optional opaque request correlation identifier supplied by the client.",
"in": "header",
"name": "X-Request-Id",
"required": false,
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
},
{
"description": "Opaque Elynext resource identifier.",
"in": "path",
"name": "id",
"required": true,
"schema": {
"maxLength": 160,
"minLength": 1,
"type": "string"
}
}
]Responses
200 Documents response.
application/json
Schema: ArchiveEnvelope
Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}400 Request is invalid.
application/json
Schema: Error
Example · badRequest
{
"error": {
"code": "unsupported_grant_type",
"details": {},
"message": "Only client_credentials grant type is supported.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}401 Authentication is required.
application/json
Schema: Error
Example · unauthorized
{
"error": {
"code": "unauthorized",
"details": {},
"message": "Authentication is required.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}403 Insufficient permissions.
application/json
Schema: Error
Example · forbidden
{
"error": {
"code": "forbidden",
"details": {},
"message": "Insufficient permissions.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}404 Resource not found.
application/json
Schema: Error
Example · notFound
{
"error": {
"code": "not_found",
"details": {},
"message": "Elynext API resource not found.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}405 HTTP method is not allowed for this resource.
application/json
Schema: Error
Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}409 Request conflicts with a previous idempotent request.
application/json
Schema: Error
Example · idempotencyConflict
{
"error": {
"code": "idempotency_conflict",
"details": {},
"message": "Idempotency key was already used with a different payload.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}429 Rate limit exceeded.
application/json
Schema: Error
Example · rateLimited
{
"error": {
"code": "rate_limited",
"details": {},
"message": "Rate limit exceeded.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"Retry-After": {
"description": "Seconds to wait before retrying a rate-limited request.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}500 Request failed.
application/json
Schema: Error
Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}GET /health · Read API health metadata
Parameters
[
{
"description": "Optional opaque request correlation identifier supplied by the client.",
"in": "header",
"name": "X-Request-Id",
"required": false,
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
]Responses
200 API health metadata.
application/json
Schema: HealthEnvelope
Example · ok
{
"data": {
"apiVersion": "v1",
"classification": "PUBLIC_METADATA",
"name": "Elynext API",
"status": "ok"
},
"meta": {
"apiVersion": "v1",
"requestId": "req_0000000000000001",
"timestamp": "2026-08-12T00:00:00Z"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}405 HTTP method is not allowed for this resource.
application/json
Schema: Error
Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}429 Rate limit exceeded.
application/json
Schema: Error
Example · rateLimited
{
"error": {
"code": "rate_limited",
"details": {},
"message": "Rate limit exceeded.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"Retry-After": {
"description": "Seconds to wait before retrying a rate-limited request.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}500 Request failed.
application/json
Schema: Error
Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}GET /locations · Read booking locations
Credential-scoped read. Locations represent the credential's studio. Availability is advisory for one doctor/service/day, not a reservation or a service eligibility guarantee.
Permissions
[
{
"ElynextOAuth2": [
"appointments.read"
]
},
{
"ElynextApiKey": []
}
]Parameters
[
{
"description": "Optional opaque request correlation identifier supplied by the client.",
"in": "header",
"name": "X-Request-Id",
"required": false,
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
},
{
"in": "query",
"name": "limit",
"required": false,
"schema": {
"default": 50,
"maximum": 100,
"minimum": 1,
"type": "integer"
}
},
{
"in": "query",
"name": "offset",
"required": false,
"schema": {
"default": 0,
"maximum": 100000,
"minimum": 0,
"type": "integer"
}
}
]Responses
200 Booking response.
application/json
Schema: LocationsCollection
Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}400 Request is invalid.
application/json
Schema: Error
Example · badRequest
{
"error": {
"code": "unsupported_grant_type",
"details": {},
"message": "Only client_credentials grant type is supported.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}401 Authentication is required.
application/json
Schema: Error
Example · unauthorized
{
"error": {
"code": "unauthorized",
"details": {},
"message": "Authentication is required.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}403 Insufficient permissions.
application/json
Schema: Error
Example · forbidden
{
"error": {
"code": "forbidden",
"details": {},
"message": "Insufficient permissions.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}404 Resource not found.
application/json
Schema: Error
Example · notFound
{
"error": {
"code": "not_found",
"details": {},
"message": "Elynext API resource not found.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}405 HTTP method is not allowed for this resource.
application/json
Schema: Error
Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}409 Request conflicts with a previous idempotent request.
application/json
Schema: Error
Example · idempotencyConflict
{
"error": {
"code": "idempotency_conflict",
"details": {},
"message": "Idempotency key was already used with a different payload.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}429 Rate limit exceeded.
application/json
Schema: Error
Example · rateLimited
{
"error": {
"code": "rate_limited",
"details": {},
"message": "Rate limit exceeded.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"Retry-After": {
"description": "Seconds to wait before retrying a rate-limited request.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}500 Request failed.
application/json
Schema: Error
Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}POST /oauth/token · Issue OAuth2 client credentials token
Issues an Elynext Public API bearer token for a registered partner client.
Parameters
[
{
"description": "Optional opaque request correlation identifier supplied by the client.",
"in": "header",
"name": "X-Request-Id",
"required": false,
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
]Request body
application/json
Schema: OAuthTokenRequest
application/x-www-form-urlencoded
Schema: OAuthTokenRequest
Example · clientCredentials
{
"client_id": "partner_client_01",
"client_secret": "example_client_secret_min_24_chars",
"grant_type": "client_credentials",
"scope": "api.health.read api.version.read"
}Responses
200 OAuth2 access token issued.
application/json
Schema: OAuthTokenResponse
Example · issued
{
"access_token": "<access-token>",
"api_version": "v1",
"expires_in": 3600,
"scope": "api.health.read api.version.read",
"tenant_id": "studio_001",
"token_type": "Bearer"
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}400 Request is invalid.
application/json
Schema: Error
Example · badRequest
{
"error": {
"code": "unsupported_grant_type",
"details": {},
"message": "Only client_credentials grant type is supported.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}401 Authentication is required.
application/json
Schema: Error
Example · unauthorized
{
"error": {
"code": "unauthorized",
"details": {},
"message": "Authentication is required.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}429 Rate limit exceeded.
application/json
Schema: Error
Example · rateLimited
{
"error": {
"code": "rate_limited",
"details": {},
"message": "Rate limit exceeded.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"Retry-After": {
"description": "Seconds to wait before retrying a rate-limited request.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}500 Request failed.
application/json
Schema: Error
Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}GET /openapi.json · Read the OpenAPI contract
Parameters
[
{
"description": "Optional opaque request correlation identifier supplied by the client.",
"in": "header",
"name": "X-Request-Id",
"required": false,
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
]Responses
200 OpenAPI 3.1 contract for the Elynext Public API.
application/json
{
"type": "object"
}Example · openapi
{
"info": {
"title": "Elynext API",
"version": "1.0.0"
},
"openapi": "3.1.0"
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}405 HTTP method is not allowed for this resource.
application/json
Schema: Error
Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}429 Rate limit exceeded.
application/json
Schema: Error
Example · rateLimited
{
"error": {
"code": "rate_limited",
"details": {},
"message": "Rate limit exceeded.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"Retry-After": {
"description": "Seconds to wait before retrying a rate-limited request.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}500 Request failed.
application/json
Schema: Error
Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}GET /openapi.yaml · Read the OpenAPI contract as YAML
Parameters
[
{
"description": "Optional opaque request correlation identifier supplied by the client.",
"in": "header",
"name": "X-Request-Id",
"required": false,
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
]Responses
200 OpenAPI 3.1 YAML contract for the Elynext Public API.
application/yaml
{
"type": "string"
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}405 HTTP method is not allowed for this resource.
application/json
Schema: Error
Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}429 Rate limit exceeded.
application/json
Schema: Error
Example · rateLimited
{
"error": {
"code": "rate_limited",
"details": {},
"message": "Rate limit exceeded.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"Retry-After": {
"description": "Seconds to wait before retrying a rate-limited request.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}500 Request failed.
application/json
Schema: Error
Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}GET /patients · List patients
List tenant-scoped Elynext patients resources.
Permissions
[
{
"ElynextOAuth2": [
"patients.read"
]
},
{
"ElynextApiKey": []
}
]Parameters
[
{
"description": "Optional opaque request correlation identifier supplied by the client.",
"in": "header",
"name": "X-Request-Id",
"required": false,
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
},
{
"in": "query",
"name": "limit",
"schema": {
"default": 50,
"maximum": 100,
"minimum": 1,
"type": "integer"
}
},
{
"in": "query",
"name": "offset",
"schema": {
"default": 0,
"minimum": 0,
"type": "integer"
}
},
{
"description": "Public field name, optionally prefixed with - for descending order.",
"in": "query",
"name": "sort",
"schema": {
"type": "string"
}
},
{
"description": "Free-text search. Use POST search for structured filters.",
"in": "query",
"name": "search",
"schema": {
"type": "string"
}
}
]Responses
200 Patients response.
application/json
Schema: PatientCollection
Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}400 Request is invalid.
application/json
Schema: Error
Example · badRequest
{
"error": {
"code": "unsupported_grant_type",
"details": {},
"message": "Only client_credentials grant type is supported.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}401 Authentication is required.
application/json
Schema: Error
Example · unauthorized
{
"error": {
"code": "unauthorized",
"details": {},
"message": "Authentication is required.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}403 Insufficient permissions.
application/json
Schema: Error
Example · forbidden
{
"error": {
"code": "forbidden",
"details": {},
"message": "Insufficient permissions.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}404 Resource not found.
application/json
Schema: Error
Example · notFound
{
"error": {
"code": "not_found",
"details": {},
"message": "Elynext API resource not found.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}405 HTTP method is not allowed for this resource.
application/json
Schema: Error
Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}409 Request conflicts with a previous idempotent request.
application/json
Schema: Error
Example · idempotencyConflict
{
"error": {
"code": "idempotency_conflict",
"details": {},
"message": "Idempotency key was already used with a different payload.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}429 Rate limit exceeded.
application/json
Schema: Error
Example · rateLimited
{
"error": {
"code": "rate_limited",
"details": {},
"message": "Rate limit exceeded.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"Retry-After": {
"description": "Seconds to wait before retrying a rate-limited request.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}500 Request failed.
application/json
Schema: Error
Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}POST /patients · Create patients
Create tenant-scoped Elynext patients resources.
Permissions
[
{
"ElynextOAuth2": [
"patients.write"
]
},
{
"ElynextApiKey": []
}
]Parameters
[
{
"description": "Optional opaque request correlation identifier supplied by the client.",
"in": "header",
"name": "X-Request-Id",
"required": false,
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
},
{
"description": "Optional key used to make critical POST requests safe to retry.",
"in": "header",
"name": "Idempotency-Key",
"required": false,
"schema": {
"maxLength": 255,
"minLength": 1,
"type": "string"
}
}
]Request body
application/json
Schema: PatientWrite
Responses
201 Patients response.
application/json
Schema: PatientEnvelope
Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}400 Request is invalid.
application/json
Schema: Error
Example · badRequest
{
"error": {
"code": "unsupported_grant_type",
"details": {},
"message": "Only client_credentials grant type is supported.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}401 Authentication is required.
application/json
Schema: Error
Example · unauthorized
{
"error": {
"code": "unauthorized",
"details": {},
"message": "Authentication is required.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}403 Insufficient permissions.
application/json
Schema: Error
Example · forbidden
{
"error": {
"code": "forbidden",
"details": {},
"message": "Insufficient permissions.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}404 Resource not found.
application/json
Schema: Error
Example · notFound
{
"error": {
"code": "not_found",
"details": {},
"message": "Elynext API resource not found.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}405 HTTP method is not allowed for this resource.
application/json
Schema: Error
Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}409 Request conflicts with a previous idempotent request.
application/json
Schema: Error
Example · idempotencyConflict
{
"error": {
"code": "idempotency_conflict",
"details": {},
"message": "Idempotency key was already used with a different payload.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}429 Rate limit exceeded.
application/json
Schema: Error
Example · rateLimited
{
"error": {
"code": "rate_limited",
"details": {},
"message": "Rate limit exceeded.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"Retry-After": {
"description": "Seconds to wait before retrying a rate-limited request.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}500 Request failed.
application/json
Schema: Error
Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}POST /patients/search · Search patients
Search tenant-scoped Elynext patients resources.
Permissions
[
{
"ElynextOAuth2": [
"patients.read"
]
},
{
"ElynextApiKey": []
}
]Parameters
[
{
"description": "Optional opaque request correlation identifier supplied by the client.",
"in": "header",
"name": "X-Request-Id",
"required": false,
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
]Request body
application/json
Schema: SearchRequest
Responses
200 Patients response.
application/json
Schema: PatientCollection
Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}400 Request is invalid.
application/json
Schema: Error
Example · badRequest
{
"error": {
"code": "unsupported_grant_type",
"details": {},
"message": "Only client_credentials grant type is supported.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}401 Authentication is required.
application/json
Schema: Error
Example · unauthorized
{
"error": {
"code": "unauthorized",
"details": {},
"message": "Authentication is required.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}403 Insufficient permissions.
application/json
Schema: Error
Example · forbidden
{
"error": {
"code": "forbidden",
"details": {},
"message": "Insufficient permissions.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}404 Resource not found.
application/json
Schema: Error
Example · notFound
{
"error": {
"code": "not_found",
"details": {},
"message": "Elynext API resource not found.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}405 HTTP method is not allowed for this resource.
application/json
Schema: Error
Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}409 Request conflicts with a previous idempotent request.
application/json
Schema: Error
Example · idempotencyConflict
{
"error": {
"code": "idempotency_conflict",
"details": {},
"message": "Idempotency key was already used with a different payload.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}429 Rate limit exceeded.
application/json
Schema: Error
Example · rateLimited
{
"error": {
"code": "rate_limited",
"details": {},
"message": "Rate limit exceeded.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"Retry-After": {
"description": "Seconds to wait before retrying a rate-limited request.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}500 Request failed.
application/json
Schema: Error
Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}GET /patients/{id} · Get patients
Get tenant-scoped Elynext patients resources.
Permissions
[
{
"ElynextOAuth2": [
"patients.read"
]
},
{
"ElynextApiKey": []
}
]Parameters
[
{
"description": "Optional opaque request correlation identifier supplied by the client.",
"in": "header",
"name": "X-Request-Id",
"required": false,
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
},
{
"description": "Opaque Elynext resource identifier.",
"in": "path",
"name": "id",
"required": true,
"schema": {
"maxLength": 160,
"minLength": 1,
"type": "string"
}
}
]Responses
200 Patients response.
application/json
Schema: PatientEnvelope
Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}400 Request is invalid.
application/json
Schema: Error
Example · badRequest
{
"error": {
"code": "unsupported_grant_type",
"details": {},
"message": "Only client_credentials grant type is supported.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}401 Authentication is required.
application/json
Schema: Error
Example · unauthorized
{
"error": {
"code": "unauthorized",
"details": {},
"message": "Authentication is required.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}403 Insufficient permissions.
application/json
Schema: Error
Example · forbidden
{
"error": {
"code": "forbidden",
"details": {},
"message": "Insufficient permissions.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}404 Resource not found.
application/json
Schema: Error
Example · notFound
{
"error": {
"code": "not_found",
"details": {},
"message": "Elynext API resource not found.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}405 HTTP method is not allowed for this resource.
application/json
Schema: Error
Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}409 Request conflicts with a previous idempotent request.
application/json
Schema: Error
Example · idempotencyConflict
{
"error": {
"code": "idempotency_conflict",
"details": {},
"message": "Idempotency key was already used with a different payload.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}429 Rate limit exceeded.
application/json
Schema: Error
Example · rateLimited
{
"error": {
"code": "rate_limited",
"details": {},
"message": "Rate limit exceeded.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"Retry-After": {
"description": "Seconds to wait before retrying a rate-limited request.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}500 Request failed.
application/json
Schema: Error
Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}PATCH /patients/{id} · Update patients
Update tenant-scoped Elynext patients resources.
Permissions
[
{
"ElynextOAuth2": [
"patients.write"
]
},
{
"ElynextApiKey": []
}
]Parameters
[
{
"description": "Optional opaque request correlation identifier supplied by the client.",
"in": "header",
"name": "X-Request-Id",
"required": false,
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
},
{
"description": "Opaque Elynext resource identifier.",
"in": "path",
"name": "id",
"required": true,
"schema": {
"maxLength": 160,
"minLength": 1,
"type": "string"
}
}
]Request body
application/json
Schema: PatientWrite
Responses
200 Patients response.
application/json
Schema: PatientEnvelope
Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}400 Request is invalid.
application/json
Schema: Error
Example · badRequest
{
"error": {
"code": "unsupported_grant_type",
"details": {},
"message": "Only client_credentials grant type is supported.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}401 Authentication is required.
application/json
Schema: Error
Example · unauthorized
{
"error": {
"code": "unauthorized",
"details": {},
"message": "Authentication is required.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}403 Insufficient permissions.
application/json
Schema: Error
Example · forbidden
{
"error": {
"code": "forbidden",
"details": {},
"message": "Insufficient permissions.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}404 Resource not found.
application/json
Schema: Error
Example · notFound
{
"error": {
"code": "not_found",
"details": {},
"message": "Elynext API resource not found.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}405 HTTP method is not allowed for this resource.
application/json
Schema: Error
Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}409 Request conflicts with a previous idempotent request.
application/json
Schema: Error
Example · idempotencyConflict
{
"error": {
"code": "idempotency_conflict",
"details": {},
"message": "Idempotency key was already used with a different payload.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}429 Rate limit exceeded.
application/json
Schema: Error
Example · rateLimited
{
"error": {
"code": "rate_limited",
"details": {},
"message": "Rate limit exceeded.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"Retry-After": {
"description": "Seconds to wait before retrying a rate-limited request.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}500 Request failed.
application/json
Schema: Error
Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}DELETE /patients/{id} · Archive patients
Archive tenant-scoped Elynext patients resources.
Permissions
[
{
"ElynextOAuth2": [
"patients.write"
]
},
{
"ElynextApiKey": []
}
]Parameters
[
{
"description": "Optional opaque request correlation identifier supplied by the client.",
"in": "header",
"name": "X-Request-Id",
"required": false,
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
},
{
"description": "Opaque Elynext resource identifier.",
"in": "path",
"name": "id",
"required": true,
"schema": {
"maxLength": 160,
"minLength": 1,
"type": "string"
}
}
]Responses
200 Patients response.
application/json
Schema: ArchiveEnvelope
Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}400 Request is invalid.
application/json
Schema: Error
Example · badRequest
{
"error": {
"code": "unsupported_grant_type",
"details": {},
"message": "Only client_credentials grant type is supported.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}401 Authentication is required.
application/json
Schema: Error
Example · unauthorized
{
"error": {
"code": "unauthorized",
"details": {},
"message": "Authentication is required.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}403 Insufficient permissions.
application/json
Schema: Error
Example · forbidden
{
"error": {
"code": "forbidden",
"details": {},
"message": "Insufficient permissions.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}404 Resource not found.
application/json
Schema: Error
Example · notFound
{
"error": {
"code": "not_found",
"details": {},
"message": "Elynext API resource not found.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}405 HTTP method is not allowed for this resource.
application/json
Schema: Error
Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}409 Request conflicts with a previous idempotent request.
application/json
Schema: Error
Example · idempotencyConflict
{
"error": {
"code": "idempotency_conflict",
"details": {},
"message": "Idempotency key was already used with a different payload.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}429 Rate limit exceeded.
application/json
Schema: Error
Example · rateLimited
{
"error": {
"code": "rate_limited",
"details": {},
"message": "Rate limit exceeded.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"Retry-After": {
"description": "Seconds to wait before retrying a rate-limited request.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}500 Request failed.
application/json
Schema: Error
Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}GET /reports · List reports
List tenant-scoped Elynext reports resources.
Permissions
[
{
"ElynextOAuth2": [
"reports.read"
]
},
{
"ElynextApiKey": []
}
]Parameters
[
{
"description": "Optional opaque request correlation identifier supplied by the client.",
"in": "header",
"name": "X-Request-Id",
"required": false,
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
},
{
"in": "query",
"name": "limit",
"schema": {
"default": 50,
"maximum": 100,
"minimum": 1,
"type": "integer"
}
},
{
"in": "query",
"name": "offset",
"schema": {
"default": 0,
"minimum": 0,
"type": "integer"
}
},
{
"description": "Public field name, optionally prefixed with - for descending order.",
"in": "query",
"name": "sort",
"schema": {
"type": "string"
}
},
{
"description": "Free-text search. Use POST search for structured filters.",
"in": "query",
"name": "search",
"schema": {
"type": "string"
}
}
]Responses
200 Reports response.
application/json
Schema: ReportCollection
Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}400 Request is invalid.
application/json
Schema: Error
Example · badRequest
{
"error": {
"code": "unsupported_grant_type",
"details": {},
"message": "Only client_credentials grant type is supported.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}401 Authentication is required.
application/json
Schema: Error
Example · unauthorized
{
"error": {
"code": "unauthorized",
"details": {},
"message": "Authentication is required.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}403 Insufficient permissions.
application/json
Schema: Error
Example · forbidden
{
"error": {
"code": "forbidden",
"details": {},
"message": "Insufficient permissions.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}404 Resource not found.
application/json
Schema: Error
Example · notFound
{
"error": {
"code": "not_found",
"details": {},
"message": "Elynext API resource not found.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}405 HTTP method is not allowed for this resource.
application/json
Schema: Error
Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}409 Request conflicts with a previous idempotent request.
application/json
Schema: Error
Example · idempotencyConflict
{
"error": {
"code": "idempotency_conflict",
"details": {},
"message": "Idempotency key was already used with a different payload.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}429 Rate limit exceeded.
application/json
Schema: Error
Example · rateLimited
{
"error": {
"code": "rate_limited",
"details": {},
"message": "Rate limit exceeded.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"Retry-After": {
"description": "Seconds to wait before retrying a rate-limited request.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}500 Request failed.
application/json
Schema: Error
Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}POST /reports · Create reports
Create tenant-scoped Elynext reports resources.
Permissions
[
{
"ElynextOAuth2": [
"reports.write"
]
},
{
"ElynextApiKey": []
}
]Parameters
[
{
"description": "Optional opaque request correlation identifier supplied by the client.",
"in": "header",
"name": "X-Request-Id",
"required": false,
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
},
{
"description": "Optional key used to make critical POST requests safe to retry.",
"in": "header",
"name": "Idempotency-Key",
"required": false,
"schema": {
"maxLength": 255,
"minLength": 1,
"type": "string"
}
}
]Request body
application/json
Schema: ReportWrite
Responses
201 Reports response.
application/json
Schema: ReportEnvelope
Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}400 Request is invalid.
application/json
Schema: Error
Example · badRequest
{
"error": {
"code": "unsupported_grant_type",
"details": {},
"message": "Only client_credentials grant type is supported.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}401 Authentication is required.
application/json
Schema: Error
Example · unauthorized
{
"error": {
"code": "unauthorized",
"details": {},
"message": "Authentication is required.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}403 Insufficient permissions.
application/json
Schema: Error
Example · forbidden
{
"error": {
"code": "forbidden",
"details": {},
"message": "Insufficient permissions.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}404 Resource not found.
application/json
Schema: Error
Example · notFound
{
"error": {
"code": "not_found",
"details": {},
"message": "Elynext API resource not found.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}405 HTTP method is not allowed for this resource.
application/json
Schema: Error
Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}409 Request conflicts with a previous idempotent request.
application/json
Schema: Error
Example · idempotencyConflict
{
"error": {
"code": "idempotency_conflict",
"details": {},
"message": "Idempotency key was already used with a different payload.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}429 Rate limit exceeded.
application/json
Schema: Error
Example · rateLimited
{
"error": {
"code": "rate_limited",
"details": {},
"message": "Rate limit exceeded.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"Retry-After": {
"description": "Seconds to wait before retrying a rate-limited request.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}500 Request failed.
application/json
Schema: Error
Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}POST /reports/search · Search reports
Search tenant-scoped Elynext reports resources.
Permissions
[
{
"ElynextOAuth2": [
"reports.read"
]
},
{
"ElynextApiKey": []
}
]Parameters
[
{
"description": "Optional opaque request correlation identifier supplied by the client.",
"in": "header",
"name": "X-Request-Id",
"required": false,
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
]Request body
application/json
Schema: SearchRequest
Responses
200 Reports response.
application/json
Schema: ReportCollection
Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}400 Request is invalid.
application/json
Schema: Error
Example · badRequest
{
"error": {
"code": "unsupported_grant_type",
"details": {},
"message": "Only client_credentials grant type is supported.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}401 Authentication is required.
application/json
Schema: Error
Example · unauthorized
{
"error": {
"code": "unauthorized",
"details": {},
"message": "Authentication is required.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}403 Insufficient permissions.
application/json
Schema: Error
Example · forbidden
{
"error": {
"code": "forbidden",
"details": {},
"message": "Insufficient permissions.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}404 Resource not found.
application/json
Schema: Error
Example · notFound
{
"error": {
"code": "not_found",
"details": {},
"message": "Elynext API resource not found.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}405 HTTP method is not allowed for this resource.
application/json
Schema: Error
Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}409 Request conflicts with a previous idempotent request.
application/json
Schema: Error
Example · idempotencyConflict
{
"error": {
"code": "idempotency_conflict",
"details": {},
"message": "Idempotency key was already used with a different payload.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}429 Rate limit exceeded.
application/json
Schema: Error
Example · rateLimited
{
"error": {
"code": "rate_limited",
"details": {},
"message": "Rate limit exceeded.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"Retry-After": {
"description": "Seconds to wait before retrying a rate-limited request.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}500 Request failed.
application/json
Schema: Error
Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}GET /reports/{id} · Get reports
Get tenant-scoped Elynext reports resources.
Permissions
[
{
"ElynextOAuth2": [
"reports.read"
]
},
{
"ElynextApiKey": []
}
]Parameters
[
{
"description": "Optional opaque request correlation identifier supplied by the client.",
"in": "header",
"name": "X-Request-Id",
"required": false,
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
},
{
"description": "Opaque Elynext resource identifier.",
"in": "path",
"name": "id",
"required": true,
"schema": {
"maxLength": 160,
"minLength": 1,
"type": "string"
}
}
]Responses
200 Reports response.
application/json
Schema: ReportEnvelope
Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}400 Request is invalid.
application/json
Schema: Error
Example · badRequest
{
"error": {
"code": "unsupported_grant_type",
"details": {},
"message": "Only client_credentials grant type is supported.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}401 Authentication is required.
application/json
Schema: Error
Example · unauthorized
{
"error": {
"code": "unauthorized",
"details": {},
"message": "Authentication is required.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}403 Insufficient permissions.
application/json
Schema: Error
Example · forbidden
{
"error": {
"code": "forbidden",
"details": {},
"message": "Insufficient permissions.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}404 Resource not found.
application/json
Schema: Error
Example · notFound
{
"error": {
"code": "not_found",
"details": {},
"message": "Elynext API resource not found.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}405 HTTP method is not allowed for this resource.
application/json
Schema: Error
Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}409 Request conflicts with a previous idempotent request.
application/json
Schema: Error
Example · idempotencyConflict
{
"error": {
"code": "idempotency_conflict",
"details": {},
"message": "Idempotency key was already used with a different payload.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}429 Rate limit exceeded.
application/json
Schema: Error
Example · rateLimited
{
"error": {
"code": "rate_limited",
"details": {},
"message": "Rate limit exceeded.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"Retry-After": {
"description": "Seconds to wait before retrying a rate-limited request.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}500 Request failed.
application/json
Schema: Error
Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}PATCH /reports/{id} · Update reports
Update tenant-scoped Elynext reports resources.
Permissions
[
{
"ElynextOAuth2": [
"reports.write"
]
},
{
"ElynextApiKey": []
}
]Parameters
[
{
"description": "Optional opaque request correlation identifier supplied by the client.",
"in": "header",
"name": "X-Request-Id",
"required": false,
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
},
{
"description": "Opaque Elynext resource identifier.",
"in": "path",
"name": "id",
"required": true,
"schema": {
"maxLength": 160,
"minLength": 1,
"type": "string"
}
}
]Request body
application/json
Schema: ReportWrite
Responses
200 Reports response.
application/json
Schema: ReportEnvelope
Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}400 Request is invalid.
application/json
Schema: Error
Example · badRequest
{
"error": {
"code": "unsupported_grant_type",
"details": {},
"message": "Only client_credentials grant type is supported.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}401 Authentication is required.
application/json
Schema: Error
Example · unauthorized
{
"error": {
"code": "unauthorized",
"details": {},
"message": "Authentication is required.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}403 Insufficient permissions.
application/json
Schema: Error
Example · forbidden
{
"error": {
"code": "forbidden",
"details": {},
"message": "Insufficient permissions.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}404 Resource not found.
application/json
Schema: Error
Example · notFound
{
"error": {
"code": "not_found",
"details": {},
"message": "Elynext API resource not found.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}405 HTTP method is not allowed for this resource.
application/json
Schema: Error
Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}409 Request conflicts with a previous idempotent request.
application/json
Schema: Error
Example · idempotencyConflict
{
"error": {
"code": "idempotency_conflict",
"details": {},
"message": "Idempotency key was already used with a different payload.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}429 Rate limit exceeded.
application/json
Schema: Error
Example · rateLimited
{
"error": {
"code": "rate_limited",
"details": {},
"message": "Rate limit exceeded.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"Retry-After": {
"description": "Seconds to wait before retrying a rate-limited request.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}500 Request failed.
application/json
Schema: Error
Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}DELETE /reports/{id} · Archive reports
Archive tenant-scoped Elynext reports resources.
Permissions
[
{
"ElynextOAuth2": [
"reports.write"
]
},
{
"ElynextApiKey": []
}
]Parameters
[
{
"description": "Optional opaque request correlation identifier supplied by the client.",
"in": "header",
"name": "X-Request-Id",
"required": false,
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
},
{
"description": "Opaque Elynext resource identifier.",
"in": "path",
"name": "id",
"required": true,
"schema": {
"maxLength": 160,
"minLength": 1,
"type": "string"
}
}
]Responses
200 Reports response.
application/json
Schema: ArchiveEnvelope
Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}400 Request is invalid.
application/json
Schema: Error
Example · badRequest
{
"error": {
"code": "unsupported_grant_type",
"details": {},
"message": "Only client_credentials grant type is supported.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}401 Authentication is required.
application/json
Schema: Error
Example · unauthorized
{
"error": {
"code": "unauthorized",
"details": {},
"message": "Authentication is required.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}403 Insufficient permissions.
application/json
Schema: Error
Example · forbidden
{
"error": {
"code": "forbidden",
"details": {},
"message": "Insufficient permissions.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}404 Resource not found.
application/json
Schema: Error
Example · notFound
{
"error": {
"code": "not_found",
"details": {},
"message": "Elynext API resource not found.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}405 HTTP method is not allowed for this resource.
application/json
Schema: Error
Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}409 Request conflicts with a previous idempotent request.
application/json
Schema: Error
Example · idempotencyConflict
{
"error": {
"code": "idempotency_conflict",
"details": {},
"message": "Idempotency key was already used with a different payload.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}429 Rate limit exceeded.
application/json
Schema: Error
Example · rateLimited
{
"error": {
"code": "rate_limited",
"details": {},
"message": "Rate limit exceeded.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"Retry-After": {
"description": "Seconds to wait before retrying a rate-limited request.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}500 Request failed.
application/json
Schema: Error
Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}GET /services · Read booking services
Credential-scoped read. Locations represent the credential's studio. Availability is advisory for one doctor/service/day, not a reservation or a service eligibility guarantee.
Permissions
[
{
"ElynextOAuth2": [
"appointments.read"
]
},
{
"ElynextApiKey": []
}
]Parameters
[
{
"description": "Optional opaque request correlation identifier supplied by the client.",
"in": "header",
"name": "X-Request-Id",
"required": false,
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
},
{
"in": "query",
"name": "limit",
"required": false,
"schema": {
"default": 50,
"maximum": 100,
"minimum": 1,
"type": "integer"
}
},
{
"in": "query",
"name": "offset",
"required": false,
"schema": {
"default": 0,
"maximum": 100000,
"minimum": 0,
"type": "integer"
}
}
]Responses
200 Booking response.
application/json
Schema: ServicesCollection
Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}400 Request is invalid.
application/json
Schema: Error
Example · badRequest
{
"error": {
"code": "unsupported_grant_type",
"details": {},
"message": "Only client_credentials grant type is supported.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}401 Authentication is required.
application/json
Schema: Error
Example · unauthorized
{
"error": {
"code": "unauthorized",
"details": {},
"message": "Authentication is required.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}403 Insufficient permissions.
application/json
Schema: Error
Example · forbidden
{
"error": {
"code": "forbidden",
"details": {},
"message": "Insufficient permissions.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}404 Resource not found.
application/json
Schema: Error
Example · notFound
{
"error": {
"code": "not_found",
"details": {},
"message": "Elynext API resource not found.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}405 HTTP method is not allowed for this resource.
application/json
Schema: Error
Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}409 Request conflicts with a previous idempotent request.
application/json
Schema: Error
Example · idempotencyConflict
{
"error": {
"code": "idempotency_conflict",
"details": {},
"message": "Idempotency key was already used with a different payload.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}429 Rate limit exceeded.
application/json
Schema: Error
Example · rateLimited
{
"error": {
"code": "rate_limited",
"details": {},
"message": "Rate limit exceeded.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"Retry-After": {
"description": "Seconds to wait before retrying a rate-limited request.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}500 Request failed.
application/json
Schema: Error
Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}GET /version · Read API version metadata
Parameters
[
{
"description": "Optional opaque request correlation identifier supplied by the client.",
"in": "header",
"name": "X-Request-Id",
"required": false,
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
]Responses
200 API version metadata.
application/json
Schema: VersionEnvelope
Example · foundation
{
"data": {
"apiVersion": "v1",
"applicationVersion": "0.0.0",
"capabilities": [
"api.health.read",
"api.openapi.read",
"api.version.read"
],
"contractVersion": "1.0.0",
"name": "Elynext API",
"resources": [
"docs",
"health",
"oauth/token",
"webhook-subscriptions",
"patients",
"appointments",
"clinical-records",
"documents",
"reports",
"services",
"locations",
"doctors",
"availability",
"openapi.json",
"openapi.yaml",
"version"
],
"stage": "foundation"
},
"meta": {
"apiVersion": "v1",
"requestId": "req_0000000000000001",
"timestamp": "2026-08-12T00:00:00Z"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}405 HTTP method is not allowed for this resource.
application/json
Schema: Error
Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}429 Rate limit exceeded.
application/json
Schema: Error
Example · rateLimited
{
"error": {
"code": "rate_limited",
"details": {},
"message": "Rate limit exceeded.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"Retry-After": {
"description": "Seconds to wait before retrying a rate-limited request.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}500 Request failed.
application/json
Schema: Error
Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}GET /webhook-subscriptions · List webhook subscriptions
Manage tenant-scoped Elynext webhook subscriptions.
Permissions
[
{
"ElynextOAuth2": [
"webhook-subscriptions.read"
]
},
{
"ElynextApiKey": []
}
]Parameters
[
{
"description": "Optional opaque request correlation identifier supplied by the client.",
"in": "header",
"name": "X-Request-Id",
"required": false,
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
]Responses
200 Webhook subscription response.
application/json
Schema: WebhookSubscriptionCollection
Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}400 Request is invalid.
application/json
Schema: Error
Example · badRequest
{
"error": {
"code": "unsupported_grant_type",
"details": {},
"message": "Only client_credentials grant type is supported.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}401 Authentication is required.
application/json
Schema: Error
Example · unauthorized
{
"error": {
"code": "unauthorized",
"details": {},
"message": "Authentication is required.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}403 Insufficient permissions.
application/json
Schema: Error
Example · forbidden
{
"error": {
"code": "forbidden",
"details": {},
"message": "Insufficient permissions.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}404 Resource not found.
application/json
Schema: Error
Example · notFound
{
"error": {
"code": "not_found",
"details": {},
"message": "Elynext API resource not found.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}405 HTTP method is not allowed for this resource.
application/json
Schema: Error
Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}429 Rate limit exceeded.
application/json
Schema: Error
Example · rateLimited
{
"error": {
"code": "rate_limited",
"details": {},
"message": "Rate limit exceeded.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"Retry-After": {
"description": "Seconds to wait before retrying a rate-limited request.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}500 Request failed.
application/json
Schema: Error
Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}POST /webhook-subscriptions · Create webhook subscription
Manage tenant-scoped Elynext webhook subscriptions.
Permissions
[
{
"ElynextOAuth2": [
"webhook-subscriptions.write"
]
},
{
"ElynextApiKey": []
}
]Parameters
[
{
"description": "Optional opaque request correlation identifier supplied by the client.",
"in": "header",
"name": "X-Request-Id",
"required": false,
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
]Request body
application/json
Schema: WebhookSubscriptionWrite
Responses
201 Webhook subscription response.
application/json
Schema: WebhookSubscriptionEnvelope
Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}400 Request is invalid.
application/json
Schema: Error
Example · badRequest
{
"error": {
"code": "unsupported_grant_type",
"details": {},
"message": "Only client_credentials grant type is supported.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}401 Authentication is required.
application/json
Schema: Error
Example · unauthorized
{
"error": {
"code": "unauthorized",
"details": {},
"message": "Authentication is required.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}403 Insufficient permissions.
application/json
Schema: Error
Example · forbidden
{
"error": {
"code": "forbidden",
"details": {},
"message": "Insufficient permissions.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}404 Resource not found.
application/json
Schema: Error
Example · notFound
{
"error": {
"code": "not_found",
"details": {},
"message": "Elynext API resource not found.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}405 HTTP method is not allowed for this resource.
application/json
Schema: Error
Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}429 Rate limit exceeded.
application/json
Schema: Error
Example · rateLimited
{
"error": {
"code": "rate_limited",
"details": {},
"message": "Rate limit exceeded.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"Retry-After": {
"description": "Seconds to wait before retrying a rate-limited request.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}500 Request failed.
application/json
Schema: Error
Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}GET /webhook-subscriptions/{id} · Get webhook subscription
Manage tenant-scoped Elynext webhook subscriptions.
Permissions
[
{
"ElynextOAuth2": [
"webhook-subscriptions.read"
]
},
{
"ElynextApiKey": []
}
]Parameters
[
{
"description": "Optional opaque request correlation identifier supplied by the client.",
"in": "header",
"name": "X-Request-Id",
"required": false,
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
},
{
"description": "Opaque Elynext webhook subscription identifier.",
"in": "path",
"name": "id",
"required": true,
"schema": {
"maxLength": 160,
"minLength": 1,
"type": "string"
}
}
]Responses
200 Webhook subscription response.
application/json
Schema: WebhookSubscriptionEnvelope
Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}400 Request is invalid.
application/json
Schema: Error
Example · badRequest
{
"error": {
"code": "unsupported_grant_type",
"details": {},
"message": "Only client_credentials grant type is supported.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}401 Authentication is required.
application/json
Schema: Error
Example · unauthorized
{
"error": {
"code": "unauthorized",
"details": {},
"message": "Authentication is required.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}403 Insufficient permissions.
application/json
Schema: Error
Example · forbidden
{
"error": {
"code": "forbidden",
"details": {},
"message": "Insufficient permissions.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}404 Resource not found.
application/json
Schema: Error
Example · notFound
{
"error": {
"code": "not_found",
"details": {},
"message": "Elynext API resource not found.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}405 HTTP method is not allowed for this resource.
application/json
Schema: Error
Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}429 Rate limit exceeded.
application/json
Schema: Error
Example · rateLimited
{
"error": {
"code": "rate_limited",
"details": {},
"message": "Rate limit exceeded.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"Retry-After": {
"description": "Seconds to wait before retrying a rate-limited request.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}500 Request failed.
application/json
Schema: Error
Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}PATCH /webhook-subscriptions/{id} · Update webhook subscription
Manage tenant-scoped Elynext webhook subscriptions.
Permissions
[
{
"ElynextOAuth2": [
"webhook-subscriptions.write"
]
},
{
"ElynextApiKey": []
}
]Parameters
[
{
"description": "Optional opaque request correlation identifier supplied by the client.",
"in": "header",
"name": "X-Request-Id",
"required": false,
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
},
{
"description": "Opaque Elynext webhook subscription identifier.",
"in": "path",
"name": "id",
"required": true,
"schema": {
"maxLength": 160,
"minLength": 1,
"type": "string"
}
}
]Request body
application/json
Schema: WebhookSubscriptionWrite
Responses
200 Webhook subscription response.
application/json
Schema: WebhookSubscriptionEnvelope
Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}400 Request is invalid.
application/json
Schema: Error
Example · badRequest
{
"error": {
"code": "unsupported_grant_type",
"details": {},
"message": "Only client_credentials grant type is supported.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}401 Authentication is required.
application/json
Schema: Error
Example · unauthorized
{
"error": {
"code": "unauthorized",
"details": {},
"message": "Authentication is required.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}403 Insufficient permissions.
application/json
Schema: Error
Example · forbidden
{
"error": {
"code": "forbidden",
"details": {},
"message": "Insufficient permissions.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}404 Resource not found.
application/json
Schema: Error
Example · notFound
{
"error": {
"code": "not_found",
"details": {},
"message": "Elynext API resource not found.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}405 HTTP method is not allowed for this resource.
application/json
Schema: Error
Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}429 Rate limit exceeded.
application/json
Schema: Error
Example · rateLimited
{
"error": {
"code": "rate_limited",
"details": {},
"message": "Rate limit exceeded.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"Retry-After": {
"description": "Seconds to wait before retrying a rate-limited request.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}500 Request failed.
application/json
Schema: Error
Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}DELETE /webhook-subscriptions/{id} · Revoke webhook subscription
Manage tenant-scoped Elynext webhook subscriptions.
Permissions
[
{
"ElynextOAuth2": [
"webhook-subscriptions.write"
]
},
{
"ElynextApiKey": []
}
]Parameters
[
{
"description": "Optional opaque request correlation identifier supplied by the client.",
"in": "header",
"name": "X-Request-Id",
"required": false,
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
},
{
"description": "Opaque Elynext webhook subscription identifier.",
"in": "path",
"name": "id",
"required": true,
"schema": {
"maxLength": 160,
"minLength": 1,
"type": "string"
}
}
]Responses
200 Webhook subscription response.
application/json
Schema: WebhookSubscriptionEnvelope
Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}400 Request is invalid.
application/json
Schema: Error
Example · badRequest
{
"error": {
"code": "unsupported_grant_type",
"details": {},
"message": "Only client_credentials grant type is supported.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}401 Authentication is required.
application/json
Schema: Error
Example · unauthorized
{
"error": {
"code": "unauthorized",
"details": {},
"message": "Authentication is required.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}403 Insufficient permissions.
application/json
Schema: Error
Example · forbidden
{
"error": {
"code": "forbidden",
"details": {},
"message": "Insufficient permissions.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}404 Resource not found.
application/json
Schema: Error
Example · notFound
{
"error": {
"code": "not_found",
"details": {},
"message": "Elynext API resource not found.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}405 HTTP method is not allowed for this resource.
application/json
Schema: Error
Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}429 Rate limit exceeded.
application/json
Schema: Error
Example · rateLimited
{
"error": {
"code": "rate_limited",
"details": {},
"message": "Rate limit exceeded.",
"requestId": "req_0000000000000001"
}
}Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"Retry-After": {
"description": "Seconds to wait before retrying a rate-limited request.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}500 Request failed.
application/json
Schema: Error
Response headers
{
"RateLimit-Limit": {
"description": "Maximum number of requests allowed in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Remaining": {
"description": "Remaining number of requests in the current window.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"RateLimit-Reset": {
"description": "Epoch second when the current rate-limit window resets.",
"schema": {
"minimum": 0,
"type": "integer"
}
},
"X-Request-Id": {
"description": "Opaque request correlation identifier.",
"schema": {
"maxLength": 128,
"minLength": 1,
"type": "string"
}
}
}Webhook event reference
POST appointment.cancelled · Receive appointment.cancelled webhook
Signed Elynext webhook delivery with minimized event metadata.
Parameters
[
{
"in": "header",
"name": "X-Elynext-Webhook-Event-Id",
"required": true,
"schema": {
"type": "string"
}
},
{
"in": "header",
"name": "X-Elynext-Webhook-Delivery-Id",
"required": true,
"schema": {
"type": "string"
}
},
{
"in": "header",
"name": "X-Elynext-Webhook-Event-Version",
"required": true,
"schema": {
"const": "1",
"type": "string"
}
},
{
"in": "header",
"name": "X-Elynext-Webhook-Timestamp",
"required": true,
"schema": {
"minimum": 0,
"type": "integer"
}
},
{
"in": "header",
"name": "X-Elynext-Webhook-Signature",
"required": true,
"schema": {
"pattern": "^v1=[a-f0-9]{64}$",
"type": "string"
}
}
]Request body
application/json
Schema: WebhookEvent
Responses
200 Webhook accepted by the partner endpoint.
400 Webhook rejected by the partner endpoint.
500 Partner endpoint failed; Elynext may retry delivery.
POST appointment.created · Receive appointment.created webhook
Signed Elynext webhook delivery with minimized event metadata.
Parameters
[
{
"in": "header",
"name": "X-Elynext-Webhook-Event-Id",
"required": true,
"schema": {
"type": "string"
}
},
{
"in": "header",
"name": "X-Elynext-Webhook-Delivery-Id",
"required": true,
"schema": {
"type": "string"
}
},
{
"in": "header",
"name": "X-Elynext-Webhook-Event-Version",
"required": true,
"schema": {
"const": "1",
"type": "string"
}
},
{
"in": "header",
"name": "X-Elynext-Webhook-Timestamp",
"required": true,
"schema": {
"minimum": 0,
"type": "integer"
}
},
{
"in": "header",
"name": "X-Elynext-Webhook-Signature",
"required": true,
"schema": {
"pattern": "^v1=[a-f0-9]{64}$",
"type": "string"
}
}
]Request body
application/json
Schema: WebhookEvent
Responses
200 Webhook accepted by the partner endpoint.
400 Webhook rejected by the partner endpoint.
500 Partner endpoint failed; Elynext may retry delivery.
POST appointment.updated · Receive appointment.updated webhook
Signed Elynext webhook delivery with minimized event metadata.
Parameters
[
{
"in": "header",
"name": "X-Elynext-Webhook-Event-Id",
"required": true,
"schema": {
"type": "string"
}
},
{
"in": "header",
"name": "X-Elynext-Webhook-Delivery-Id",
"required": true,
"schema": {
"type": "string"
}
},
{
"in": "header",
"name": "X-Elynext-Webhook-Event-Version",
"required": true,
"schema": {
"const": "1",
"type": "string"
}
},
{
"in": "header",
"name": "X-Elynext-Webhook-Timestamp",
"required": true,
"schema": {
"minimum": 0,
"type": "integer"
}
},
{
"in": "header",
"name": "X-Elynext-Webhook-Signature",
"required": true,
"schema": {
"pattern": "^v1=[a-f0-9]{64}$",
"type": "string"
}
}
]Request body
application/json
Schema: WebhookEvent
Responses
200 Webhook accepted by the partner endpoint.
400 Webhook rejected by the partner endpoint.
500 Partner endpoint failed; Elynext may retry delivery.
POST clinical-record.created · Receive clinical-record.created webhook
Signed Elynext webhook delivery with minimized event metadata.
Parameters
[
{
"in": "header",
"name": "X-Elynext-Webhook-Event-Id",
"required": true,
"schema": {
"type": "string"
}
},
{
"in": "header",
"name": "X-Elynext-Webhook-Delivery-Id",
"required": true,
"schema": {
"type": "string"
}
},
{
"in": "header",
"name": "X-Elynext-Webhook-Event-Version",
"required": true,
"schema": {
"const": "1",
"type": "string"
}
},
{
"in": "header",
"name": "X-Elynext-Webhook-Timestamp",
"required": true,
"schema": {
"minimum": 0,
"type": "integer"
}
},
{
"in": "header",
"name": "X-Elynext-Webhook-Signature",
"required": true,
"schema": {
"pattern": "^v1=[a-f0-9]{64}$",
"type": "string"
}
}
]Request body
application/json
Schema: WebhookEvent
Responses
200 Webhook accepted by the partner endpoint.
400 Webhook rejected by the partner endpoint.
500 Partner endpoint failed; Elynext may retry delivery.
POST document.created · Receive document.created webhook
Signed Elynext webhook delivery with minimized event metadata.
Parameters
[
{
"in": "header",
"name": "X-Elynext-Webhook-Event-Id",
"required": true,
"schema": {
"type": "string"
}
},
{
"in": "header",
"name": "X-Elynext-Webhook-Delivery-Id",
"required": true,
"schema": {
"type": "string"
}
},
{
"in": "header",
"name": "X-Elynext-Webhook-Event-Version",
"required": true,
"schema": {
"const": "1",
"type": "string"
}
},
{
"in": "header",
"name": "X-Elynext-Webhook-Timestamp",
"required": true,
"schema": {
"minimum": 0,
"type": "integer"
}
},
{
"in": "header",
"name": "X-Elynext-Webhook-Signature",
"required": true,
"schema": {
"pattern": "^v1=[a-f0-9]{64}$",
"type": "string"
}
}
]Request body
application/json
Schema: WebhookEvent
Responses
200 Webhook accepted by the partner endpoint.
400 Webhook rejected by the partner endpoint.
500 Partner endpoint failed; Elynext may retry delivery.
POST patient.created · Receive patient.created webhook
Signed Elynext webhook delivery with minimized event metadata.
Parameters
[
{
"in": "header",
"name": "X-Elynext-Webhook-Event-Id",
"required": true,
"schema": {
"type": "string"
}
},
{
"in": "header",
"name": "X-Elynext-Webhook-Delivery-Id",
"required": true,
"schema": {
"type": "string"
}
},
{
"in": "header",
"name": "X-Elynext-Webhook-Event-Version",
"required": true,
"schema": {
"const": "1",
"type": "string"
}
},
{
"in": "header",
"name": "X-Elynext-Webhook-Timestamp",
"required": true,
"schema": {
"minimum": 0,
"type": "integer"
}
},
{
"in": "header",
"name": "X-Elynext-Webhook-Signature",
"required": true,
"schema": {
"pattern": "^v1=[a-f0-9]{64}$",
"type": "string"
}
}
]Request body
application/json
Schema: WebhookEvent
Responses
200 Webhook accepted by the partner endpoint.
400 Webhook rejected by the partner endpoint.
500 Partner endpoint failed; Elynext may retry delivery.
POST patient.updated · Receive patient.updated webhook
Signed Elynext webhook delivery with minimized event metadata.
Parameters
[
{
"in": "header",
"name": "X-Elynext-Webhook-Event-Id",
"required": true,
"schema": {
"type": "string"
}
},
{
"in": "header",
"name": "X-Elynext-Webhook-Delivery-Id",
"required": true,
"schema": {
"type": "string"
}
},
{
"in": "header",
"name": "X-Elynext-Webhook-Event-Version",
"required": true,
"schema": {
"const": "1",
"type": "string"
}
},
{
"in": "header",
"name": "X-Elynext-Webhook-Timestamp",
"required": true,
"schema": {
"minimum": 0,
"type": "integer"
}
},
{
"in": "header",
"name": "X-Elynext-Webhook-Signature",
"required": true,
"schema": {
"pattern": "^v1=[a-f0-9]{64}$",
"type": "string"
}
}
]Request body
application/json
Schema: WebhookEvent
Responses
200 Webhook accepted by the partner endpoint.
400 Webhook rejected by the partner endpoint.
500 Partner endpoint failed; Elynext may retry delivery.
POST report.created · Receive report.created webhook
Signed Elynext webhook delivery with minimized event metadata.
Parameters
[
{
"in": "header",
"name": "X-Elynext-Webhook-Event-Id",
"required": true,
"schema": {
"type": "string"
}
},
{
"in": "header",
"name": "X-Elynext-Webhook-Delivery-Id",
"required": true,
"schema": {
"type": "string"
}
},
{
"in": "header",
"name": "X-Elynext-Webhook-Event-Version",
"required": true,
"schema": {
"const": "1",
"type": "string"
}
},
{
"in": "header",
"name": "X-Elynext-Webhook-Timestamp",
"required": true,
"schema": {
"minimum": 0,
"type": "integer"
}
},
{
"in": "header",
"name": "X-Elynext-Webhook-Signature",
"required": true,
"schema": {
"pattern": "^v1=[a-f0-9]{64}$",
"type": "string"
}
}
]Request body
application/json
Schema: WebhookEvent
Responses
200 Webhook accepted by the partner endpoint.
400 Webhook rejected by the partner endpoint.
500 Partner endpoint failed; Elynext may retry delivery.
POST report.updated · Receive report.updated webhook
Signed Elynext webhook delivery with minimized event metadata.
Parameters
[
{
"in": "header",
"name": "X-Elynext-Webhook-Event-Id",
"required": true,
"schema": {
"type": "string"
}
},
{
"in": "header",
"name": "X-Elynext-Webhook-Delivery-Id",
"required": true,
"schema": {
"type": "string"
}
},
{
"in": "header",
"name": "X-Elynext-Webhook-Event-Version",
"required": true,
"schema": {
"const": "1",
"type": "string"
}
},
{
"in": "header",
"name": "X-Elynext-Webhook-Timestamp",
"required": true,
"schema": {
"minimum": 0,
"type": "integer"
}
},
{
"in": "header",
"name": "X-Elynext-Webhook-Signature",
"required": true,
"schema": {
"pattern": "^v1=[a-f0-9]{64}$",
"type": "string"
}
}
]Request body
application/json
Schema: WebhookEvent
Responses
200 Webhook accepted by the partner endpoint.
400 Webhook rejected by the partner endpoint.
500 Partner endpoint failed; Elynext may retry delivery.
Data schemas
ApiKeyCredential
{
"additionalProperties": false,
"description": "Runtime API key credential model reserved for future protected Domain API requests.",
"properties": {
"header": {
"const": "X-Elynext-API-Key",
"type": "string"
},
"key_id": {
"minLength": 1,
"type": "string"
},
"scopes": {
"items": {
"type": "string"
},
"type": "array"
},
"status": {
"enum": [
"active",
"revoked"
],
"type": "string"
},
"tenant_id": {
"minLength": 1,
"type": "string"
}
},
"required": [
"key_id",
"tenant_id",
"scopes",
"status"
],
"type": "object"
}Appointment
{
"additionalProperties": false,
"properties": {
"accessType": {
"type": "string"
},
"createdAt": {
"format": "date-time",
"type": "string"
},
"doctorId": {
"type": "string"
},
"endsAt": {
"format": "date-time",
"type": "string"
},
"id": {
"type": "string"
},
"patientId": {
"type": "string"
},
"reason": {
"type": "string"
},
"room": {
"type": "string"
},
"startsAt": {
"format": "date-time",
"type": "string"
},
"status": {
"type": "string"
},
"tenantId": {
"type": "string"
},
"type": {
"type": "string"
},
"updatedAt": {
"format": "date-time",
"type": "string"
}
},
"type": "object"
}AppointmentCollection
{
"additionalProperties": false,
"properties": {
"data": {
"items": {
"$ref": "#/components/schemas/Appointment"
},
"type": "array"
},
"meta": {
"additionalProperties": false,
"properties": {
"filters": {
"type": "object"
},
"pagination": {
"$ref": "#/components/schemas/PaginationMeta"
},
"sort": {
"type": "string"
}
},
"required": [
"pagination",
"sort",
"filters"
],
"type": "object"
}
},
"required": [
"data",
"meta"
],
"type": "object"
}AppointmentEnvelope
{
"additionalProperties": false,
"properties": {
"data": {
"$ref": "#/components/schemas/Appointment"
}
},
"required": [
"data"
],
"type": "object"
}AppointmentWrite
{
"additionalProperties": false,
"description": "Business validations apply. serviceId and locationId are not accepted fields in this version. Timestamps require explicit offsets and normalize to Europe/Rome. Conflicting bookings return 409; retry concurrent_request with the same idempotency key.",
"properties": {
"accessType": {
"type": "string"
},
"doctorId": {
"type": "string"
},
"endsAt": {
"format": "date-time",
"type": "string"
},
"patientId": {
"type": "string"
},
"reason": {
"type": "string"
},
"room": {
"type": "string"
},
"startsAt": {
"format": "date-time",
"type": "string"
},
"status": {
"type": "string"
},
"type": {
"type": "string"
}
},
"type": "object"
}ArchiveEnvelope
{
"additionalProperties": false,
"properties": {
"data": {
"additionalProperties": false,
"properties": {
"archived": {
"const": true,
"type": "boolean"
},
"id": {
"type": "string"
},
"status": {
"type": "string"
}
},
"required": [
"id",
"archived",
"status"
],
"type": "object"
}
},
"required": [
"data"
],
"type": "object"
}AvailabilityEnvelope
{
"properties": {
"data": {
"additionalProperties": false,
"properties": {
"date": {
"format": "date",
"type": "string"
},
"doctorId": {
"type": "string"
},
"durationMinutes": {
"maximum": 1440,
"minimum": 5,
"type": "integer"
},
"locationId": {
"type": "string"
},
"serviceId": {
"type": "string"
},
"slots": {
"items": {
"additionalProperties": false,
"properties": {
"endsAt": {
"format": "date-time",
"type": "string"
},
"startsAt": {
"format": "date-time",
"type": "string"
}
},
"required": [
"startsAt",
"endsAt"
],
"type": "object"
},
"type": "array"
},
"timezone": {
"type": "string"
}
},
"required": [
"date",
"timezone",
"locationId",
"doctorId",
"serviceId",
"durationMinutes",
"slots"
],
"type": "object"
}
},
"required": [
"data"
],
"type": "object"
}ClinicalRecord
{
"additionalProperties": false,
"properties": {
"createdAt": {
"format": "date-time",
"type": "string"
},
"doctorId": {
"type": "string"
},
"id": {
"type": "string"
},
"occurredAt": {
"format": "date-time",
"type": "string"
},
"patientId": {
"type": "string"
},
"reason": {
"type": "string"
},
"status": {
"type": "string"
},
"tenantId": {
"type": "string"
},
"type": {
"type": "string"
},
"updatedAt": {
"format": "date-time",
"type": "string"
}
},
"type": "object"
}ClinicalRecordCollection
{
"additionalProperties": false,
"properties": {
"data": {
"items": {
"$ref": "#/components/schemas/ClinicalRecord"
},
"type": "array"
},
"meta": {
"additionalProperties": false,
"properties": {
"filters": {
"type": "object"
},
"pagination": {
"$ref": "#/components/schemas/PaginationMeta"
},
"sort": {
"type": "string"
}
},
"required": [
"pagination",
"sort",
"filters"
],
"type": "object"
}
},
"required": [
"data",
"meta"
],
"type": "object"
}ClinicalRecordEnvelope
{
"additionalProperties": false,
"properties": {
"data": {
"$ref": "#/components/schemas/ClinicalRecord"
}
},
"required": [
"data"
],
"type": "object"
}ClinicalRecordWrite
{
"additionalProperties": false,
"description": "Field shapes only; environment business validations and required fields also apply.",
"properties": {
"doctorId": {
"type": "string"
},
"occurredAt": {
"format": "date-time",
"type": "string"
},
"patientId": {
"type": "string"
},
"reason": {
"type": "string"
},
"status": {
"type": "string"
},
"type": {
"type": "string"
}
},
"type": "object"
}DoctorsCollection
{
"properties": {
"data": {
"items": {
"additionalProperties": false,
"properties": {
"id": {
"type": "string"
},
"locationId": {
"type": "string"
},
"name": {
"type": "string"
}
},
"required": [
"id",
"name",
"locationId"
],
"type": "object"
},
"type": "array"
},
"meta": {
"properties": {
"pagination": {
"$ref": "#/components/schemas/PaginationMeta"
}
},
"type": "object"
}
},
"required": [
"data",
"meta"
],
"type": "object"
}Document
{
"additionalProperties": false,
"properties": {
"author": {
"type": "string"
},
"clinicalRecordId": {
"type": "string"
},
"createdAt": {
"format": "date-time",
"type": "string"
},
"doctorId": {
"type": "string"
},
"generatedAt": {
"format": "date-time",
"type": "string"
},
"id": {
"type": "string"
},
"patientId": {
"type": "string"
},
"status": {
"type": "string"
},
"tenantId": {
"type": "string"
},
"type": {
"type": "string"
},
"updatedAt": {
"format": "date-time",
"type": "string"
},
"version": {
"type": "string"
}
},
"type": "object"
}DocumentCollection
{
"additionalProperties": false,
"properties": {
"data": {
"items": {
"$ref": "#/components/schemas/Document"
},
"type": "array"
},
"meta": {
"additionalProperties": false,
"properties": {
"filters": {
"type": "object"
},
"pagination": {
"$ref": "#/components/schemas/PaginationMeta"
},
"sort": {
"type": "string"
}
},
"required": [
"pagination",
"sort",
"filters"
],
"type": "object"
}
},
"required": [
"data",
"meta"
],
"type": "object"
}DocumentEnvelope
{
"additionalProperties": false,
"properties": {
"data": {
"$ref": "#/components/schemas/Document"
}
},
"required": [
"data"
],
"type": "object"
}DocumentWrite
{
"additionalProperties": false,
"description": "Field shapes only; environment business validations and required fields also apply.",
"properties": {
"author": {
"type": "string"
},
"clinicalRecordId": {
"type": "string"
},
"doctorId": {
"type": "string"
},
"generatedAt": {
"format": "date-time",
"type": "string"
},
"patientId": {
"type": "string"
},
"status": {
"type": "string"
},
"type": {
"type": "string"
},
"version": {
"type": "string"
}
},
"type": "object"
}Error
{
"additionalProperties": false,
"properties": {
"error": {
"additionalProperties": false,
"properties": {
"code": {
"type": "string"
},
"details": {
"type": "object"
},
"message": {
"type": "string"
},
"requestId": {
"type": "string"
}
},
"required": [
"code",
"message",
"details",
"requestId"
],
"type": "object"
}
},
"required": [
"error"
],
"type": "object"
}Health
{
"additionalProperties": false,
"properties": {
"apiVersion": {
"const": "v1",
"type": "string"
},
"classification": {
"const": "PUBLIC_METADATA",
"type": "string"
},
"name": {
"const": "Elynext API",
"type": "string"
},
"status": {
"enum": [
"ok"
],
"type": "string"
}
},
"required": [
"status",
"name",
"apiVersion",
"classification"
],
"type": "object"
}HealthEnvelope
{
"additionalProperties": false,
"properties": {
"data": {
"$ref": "#/components/schemas/Health"
},
"meta": {
"$ref": "#/components/schemas/ResponseMeta"
}
},
"required": [
"data",
"meta"
],
"type": "object"
}LocationsCollection
{
"properties": {
"data": {
"items": {
"additionalProperties": false,
"properties": {
"address": {
"type": "string"
},
"id": {
"type": "string"
},
"name": {
"type": "string"
}
},
"required": [
"id",
"name",
"address"
],
"type": "object"
},
"type": "array"
},
"meta": {
"properties": {
"pagination": {
"$ref": "#/components/schemas/PaginationMeta"
}
},
"type": "object"
}
},
"required": [
"data",
"meta"
],
"type": "object"
}OAuthTokenRequest
{
"additionalProperties": false,
"properties": {
"client_id": {
"maxLength": 128,
"minLength": 1,
"type": "string"
},
"client_secret": {
"maxLength": 512,
"minLength": 24,
"type": "string",
"writeOnly": true
},
"grant_type": {
"const": "client_credentials",
"type": "string"
},
"scope": {
"description": "Optional space-delimited subset of scopes assigned to the partner client.",
"type": "string"
}
},
"required": [
"grant_type"
],
"type": "object"
}OAuthTokenResponse
{
"additionalProperties": false,
"properties": {
"access_token": {
"minLength": 1,
"type": "string"
},
"api_version": {
"const": "v1",
"type": "string"
},
"expires_in": {
"minimum": 1,
"type": "integer"
},
"scope": {
"type": "string"
},
"tenant_id": {
"minLength": 1,
"type": "string"
},
"token_type": {
"const": "Bearer",
"type": "string"
}
},
"required": [
"access_token",
"token_type",
"expires_in",
"scope",
"tenant_id",
"api_version"
],
"type": "object"
}PaginationMeta
{
"additionalProperties": false,
"properties": {
"limit": {
"maximum": 100,
"minimum": 1,
"type": "integer"
},
"offset": {
"minimum": 0,
"type": "integer"
},
"total": {
"minimum": 0,
"type": "integer"
}
},
"required": [
"limit",
"offset",
"total"
],
"type": "object"
}Patient
{
"additionalProperties": false,
"properties": {
"city": {
"type": "string"
},
"createdAt": {
"format": "date-time",
"type": "string"
},
"dateOfBirth": {
"format": "date",
"type": "string"
},
"doctorId": {
"type": "string"
},
"email": {
"type": "string"
},
"firstName": {
"type": "string"
},
"healthDataConsent": {
"type": "boolean"
},
"id": {
"type": "string"
},
"lastName": {
"type": "string"
},
"mobile": {
"type": "string"
},
"phone": {
"type": "string"
},
"postalCode": {
"type": "string"
},
"privacyConsent": {
"type": "boolean"
},
"province": {
"type": "string"
},
"sex": {
"type": "string"
},
"status": {
"type": "string"
},
"taxCode": {
"type": "string"
},
"tenantId": {
"type": "string"
},
"updatedAt": {
"format": "date-time",
"type": "string"
}
},
"type": "object"
}PatientCollection
{
"additionalProperties": false,
"properties": {
"data": {
"items": {
"$ref": "#/components/schemas/Patient"
},
"type": "array"
},
"meta": {
"additionalProperties": false,
"properties": {
"filters": {
"type": "object"
},
"pagination": {
"$ref": "#/components/schemas/PaginationMeta"
},
"sort": {
"type": "string"
}
},
"required": [
"pagination",
"sort",
"filters"
],
"type": "object"
}
},
"required": [
"data",
"meta"
],
"type": "object"
}PatientEnvelope
{
"additionalProperties": false,
"properties": {
"data": {
"$ref": "#/components/schemas/Patient"
}
},
"required": [
"data"
],
"type": "object"
}PatientWrite
{
"additionalProperties": false,
"description": "Business validations apply in addition to field shapes. Language and communication/marketing consent are not in this version; privacyConsent and healthDataConsent are not marketing consent.",
"properties": {
"city": {
"type": "string"
},
"dateOfBirth": {
"format": "date",
"type": "string"
},
"doctorId": {
"type": "string"
},
"email": {
"type": "string"
},
"firstName": {
"type": "string"
},
"healthDataConsent": {
"type": "boolean"
},
"lastName": {
"type": "string"
},
"mobile": {
"type": "string"
},
"phone": {
"type": "string"
},
"postalCode": {
"type": "string"
},
"privacyConsent": {
"type": "boolean"
},
"province": {
"type": "string"
},
"sex": {
"type": "string"
},
"status": {
"type": "string"
},
"taxCode": {
"type": "string"
}
},
"type": "object"
}Report
{
"additionalProperties": false,
"properties": {
"clinicalRecordId": {
"type": "string"
},
"createdAt": {
"format": "date-time",
"type": "string"
},
"doctorId": {
"type": "string"
},
"documentId": {
"type": "string"
},
"examId": {
"type": "string"
},
"generatedAt": {
"format": "date-time",
"type": "string"
},
"id": {
"type": "string"
},
"patientId": {
"type": "string"
},
"status": {
"type": "string"
},
"tenantId": {
"type": "string"
},
"title": {
"type": "string"
},
"type": {
"type": "string"
},
"updatedAt": {
"format": "date-time",
"type": "string"
}
},
"type": "object"
}ReportCollection
{
"additionalProperties": false,
"properties": {
"data": {
"items": {
"$ref": "#/components/schemas/Report"
},
"type": "array"
},
"meta": {
"additionalProperties": false,
"properties": {
"filters": {
"type": "object"
},
"pagination": {
"$ref": "#/components/schemas/PaginationMeta"
},
"sort": {
"type": "string"
}
},
"required": [
"pagination",
"sort",
"filters"
],
"type": "object"
}
},
"required": [
"data",
"meta"
],
"type": "object"
}ReportEnvelope
{
"additionalProperties": false,
"properties": {
"data": {
"$ref": "#/components/schemas/Report"
}
},
"required": [
"data"
],
"type": "object"
}ReportWrite
{
"additionalProperties": false,
"description": "Field shapes only; environment business validations and required fields also apply.",
"properties": {
"clinicalRecordId": {
"type": "string"
},
"doctorId": {
"type": "string"
},
"documentId": {
"type": "string"
},
"examId": {
"type": "string"
},
"generatedAt": {
"format": "date-time",
"type": "string"
},
"patientId": {
"type": "string"
},
"status": {
"type": "string"
},
"title": {
"type": "string"
},
"type": {
"type": "string"
}
},
"type": "object"
}ResponseMeta
{
"additionalProperties": false,
"properties": {
"apiVersion": {
"const": "v1",
"type": "string"
},
"requestId": {
"maxLength": 128,
"minLength": 1,
"type": "string"
},
"timestamp": {
"format": "date-time",
"type": "string"
}
},
"required": [
"apiVersion",
"requestId",
"timestamp"
],
"type": "object"
}SearchRequest
{
"additionalProperties": true,
"description": "Portable contract: equality filters on documented public fields, free-text search and pagination. No dedicated date-range or incremental synchronization cursor is specified. Do not depend on unspecified filter operators.",
"properties": {
"filters": {
"type": "object"
},
"limit": {
"maximum": 100,
"minimum": 1,
"type": "integer"
},
"offset": {
"minimum": 0,
"type": "integer"
},
"search": {
"type": "string"
},
"sort": {
"type": "string"
}
},
"type": "object"
}ServicesCollection
{
"properties": {
"data": {
"items": {
"additionalProperties": false,
"properties": {
"durationMinutes": {
"maximum": 1440,
"minimum": 5,
"type": [
"integer",
"null"
]
},
"id": {
"type": "string"
},
"name": {
"type": "string"
}
},
"required": [
"id",
"name",
"durationMinutes"
],
"type": "object"
},
"type": "array"
},
"meta": {
"properties": {
"pagination": {
"$ref": "#/components/schemas/PaginationMeta"
}
},
"type": "object"
}
},
"required": [
"data",
"meta"
],
"type": "object"
}Version
{
"additionalProperties": false,
"properties": {
"apiVersion": {
"const": "v1",
"type": "string"
},
"applicationVersion": {
"type": "string"
},
"capabilities": {
"items": {
"pattern": "^(api\\.|[a-z][a-z0-9-]*\\.(read|write|create|update|delete|download|export|publish|manage)$)",
"type": "string"
},
"type": "array"
},
"contractVersion": {
"type": "string"
},
"name": {
"const": "Elynext API",
"type": "string"
},
"resources": {
"items": {
"type": "string"
},
"type": "array"
},
"stage": {
"const": "foundation",
"type": "string"
}
},
"required": [
"name",
"apiVersion",
"contractVersion",
"applicationVersion",
"stage",
"capabilities",
"resources"
],
"type": "object"
}VersionEnvelope
{
"additionalProperties": false,
"properties": {
"data": {
"$ref": "#/components/schemas/Version"
},
"meta": {
"$ref": "#/components/schemas/ResponseMeta"
}
},
"required": [
"data",
"meta"
],
"type": "object"
}WebhookEvent
{
"additionalProperties": false,
"description": "Minimal signed webhook event payload. Clinical details must be fetched through authorized Domain API calls.",
"properties": {
"eventId": {
"type": "string"
},
"eventType": {
"enum": [
"patient.created",
"patient.updated",
"appointment.created",
"appointment.updated",
"appointment.cancelled",
"clinical-record.created",
"document.created",
"report.created",
"report.updated"
],
"type": "string"
},
"eventVersion": {
"const": "1",
"type": "string"
},
"metadata": {
"additionalProperties": false,
"properties": {
"apiVersion": {
"const": "v1",
"type": "string"
},
"requestId": {
"type": "string"
},
"resourceType": {
"type": "string"
}
},
"required": [
"apiVersion",
"requestId",
"resourceType"
],
"type": "object"
},
"resourceId": {
"type": "string"
},
"tenantId": {
"type": "string"
},
"timestamp": {
"format": "date-time",
"type": "string"
}
},
"required": [
"eventId",
"eventType",
"eventVersion",
"tenantId",
"resourceId",
"timestamp",
"metadata"
],
"type": "object"
}WebhookSubscription
{
"additionalProperties": false,
"properties": {
"createdAt": {
"format": "date-time",
"type": "string"
},
"eventTypes": {
"items": {
"enum": [
"patient.created",
"patient.updated",
"appointment.created",
"appointment.updated",
"appointment.cancelled",
"clinical-record.created",
"document.created",
"report.created",
"report.updated"
],
"type": "string"
},
"type": "array"
},
"id": {
"type": "string"
},
"status": {
"enum": [
"active",
"paused",
"revoked"
],
"type": "string"
},
"targetUrl": {
"format": "uri",
"type": "string"
},
"tenantId": {
"type": "string"
},
"updatedAt": {
"format": "date-time",
"type": "string"
}
},
"required": [
"id",
"tenantId",
"targetUrl",
"eventTypes",
"status",
"createdAt",
"updatedAt"
],
"type": "object"
}WebhookSubscriptionCollection
{
"additionalProperties": false,
"properties": {
"data": {
"items": {
"$ref": "#/components/schemas/WebhookSubscription"
},
"type": "array"
},
"meta": {
"additionalProperties": false,
"properties": {
"total": {
"minimum": 0,
"type": "integer"
}
},
"required": [
"total"
],
"type": "object"
}
},
"required": [
"data",
"meta"
],
"type": "object"
}WebhookSubscriptionEnvelope
{
"additionalProperties": false,
"properties": {
"data": {
"$ref": "#/components/schemas/WebhookSubscription"
}
},
"required": [
"data"
],
"type": "object"
}WebhookSubscriptionWrite
{
"additionalProperties": false,
"properties": {
"eventTypes": {
"items": {
"enum": [
"patient.created",
"patient.updated",
"appointment.created",
"appointment.updated",
"appointment.cancelled",
"clinical-record.created",
"document.created",
"report.created",
"report.updated"
],
"type": "string"
},
"type": "array"
},
"signingSecret": {
"minLength": 24,
"type": "string",
"writeOnly": true
},
"status": {
"enum": [
"active",
"paused",
"revoked"
],
"type": "string"
},
"targetUrl": {
"format": "uri",
"type": "string"
}
},
"type": "object"
}