Ingest a connection-scoped SDK-derived signal
Persists an SDK-derived signal under the APP tenant when the presented API key has signal:write scope and the SDK connection allows the requested signal type. Signal payloads are limited to JSON objects no larger than 64 KiB and are validated against the namespace's payload schema (shallow event shape — scalars, shallow arrays/objects of scalars; SDK_SIGNAL_PAYLOAD_SCHEMA_MISMATCH on violation). Payloads MUST NOT contain PHI: no identifiers (names, emails, phone numbers, MRNs, external patient ids), free-text clinical notes, diagnoses, or document content — the subject is identified by the connection, and clinical facts belong on the FHIR surfaces. Requests must include Idempotency-Key for safe retries.
/api/sdk/v1/signalsPersists an SDK-derived signal under the APP tenant when the presented API key has signal:write scope and the SDK connection allows the requested signal type. Signal payloads are limited to JSON objects no larger than 64 KiB and are validated against the namespace's payload schema (shallow event shape — scalars, shallow arrays/objects of scalars; SDK_SIGNAL_PAYLOAD_SCHEMA_MISMATCH on violation). Payloads MUST NOT contain PHI: no identifiers (names, emails, phone numbers, MRNs, external patient ids), free-text clinical notes, diagnoses, or document content — the subject is identified by the connection, and clinical facts belong on the FHIR surfaces. Requests must include Idempotency-Key for safe retries.
Authorization
platformApiKey CuraeAI Platform API key using the format Bearer . Keys are opaque credentials such as cae_live_..., not JWTs.
In: header
Header Parameters
Required mutation idempotency key for SDK signal retries.
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/problem+json
curl -X POST "https://example.com/api/sdk/v1/signals" \ -H "Idempotency-Key: string" \ -H "Content-Type: application/json" \ -d '{ "connectionId": "84b500d7-71c8-4b1f-adf4-f1eb0000973d", "signalType": { "namespace": "sti", "code": "exposure_event", "version": "v1" }, "payload": {} }'{ "id": "string", "signalType": { "namespace": "sti", "code": "exposure_event", "version": "v1" }, "sensitivity": "string", "observedAt": "2019-08-24T14:15:22Z", "createdAt": "2019-08-24T14:15:22Z"}{ "type": "string", "title": "string", "status": 0, "detail": "string", "instance": "string", "code": "string", "details": {}, "retryable": true}Search connection-scoped immunizations through the SDK gateway POST
Returns a FHIR Bundle containing Immunization resources authorized by the presented APP tenant API key with immunization:read scope and the request body's `connectionId`. The gateway enforces APP tenant residency, SpiceDB app-install projection, subject lifecycle capability, resource-type scope, and service-level CVX, sensitivity, and time-window scope before any PHI read is returned. When `statuses` is omitted the platform defaults to `['COMPLETED']`; consumers needing the refusal signal can opt in with `statuses: ['COMPLETED', 'NOT_DONE']`.
Queue a connection-scoped records export POST
Creates a durable export job for authorized records covered by the SDK connection. The response contains job status and metadata; artifact materialization is asynchronous.