{"version":"2026.4.0","lastUpdated":"2026-05-08","description":"Knogin external integration documentation for app registration, OAuth, JWKS verification, webhook delivery, and GraphQL transport.","baseUrl":"https://knogin.com","endpoints":{"index":"https://knogin.com/api/docs","fullMarkdown":"https://knogin.com/api/docs?format=markdown","topic":"https://knogin.com/api/docs/{topic}","llmsTxt":"https://knogin.com/llms.txt"},"topics":[{"id":"api-reference","title":"Knogin External Integration API","description":"Stable public integration documentation for external integrators. This surface covers app registration, OAuth, JWKS verification, webhooks, and GraphQL transport only.","url":"https://knogin.com/api/docs/api-reference","sections":["Contract Boundary","Base URLs","Quick Start","Capabilities Available By Request"],"lastUpdated":"2026-05-08"},{"id":"identity-app-registration","title":"Identity and app registration","description":"Register an integration, inspect allowed scopes, and manage governance settings for an external app.","url":"https://knogin.com/api/docs/identity-app-registration","sections":["GET /v1/platform/scopes · List available scopes","GET/POST /v1/platform/apps · Create and list platform apps","GET /v1/platform/apps/{client_id} · Inspect an integration app","PATCH /v1/platform/apps/{client_id}/governance · Update app governance"],"lastUpdated":"2026-05-08"},{"id":"oauth-service-tokens","title":"OAuth and service tokens","description":"Use OAuth 2.0 authorization code or client credentials flows, then rotate credentials without exposing internal auth flows.","url":"https://knogin.com/api/docs/oauth-service-tokens","sections":["GET /v1/oauth/authorize · Start OAuth authorization code flow","POST /v1/oauth/token · Exchange or mint access tokens","POST /v1/platform/apps/{client_id}/service-token · Mint a service token","POST /v1/platform/apps/{client_id}/rotate-secret · Rotate an app secret"],"lastUpdated":"2026-05-08"},{"id":"jwks-token-verification","title":"JWKS and token verification","description":"Verify Knogin-issued JWTs against public JWKS endpoints rather than relying on private signing details.","url":"https://knogin.com/api/docs/jwks-token-verification","sections":["GET /.well-known/jwks.json · OpenID-compatible JWKS discovery","GET /v1/auth/jwks.json · Versioned JWKS endpoint"],"lastUpdated":"2026-05-08"},{"id":"event-delivery-webhooks","title":"Event delivery and webhooks","description":"Create, test, and observe webhook deliveries for approved outbound integrations.","url":"https://knogin.com/api/docs/event-delivery-webhooks","sections":["GET/POST /v1/webhooks · Create and list webhooks","GET/PUT/DELETE /v1/webhooks/{webhook_id} · Inspect, update, or delete a webhook","GET /v1/webhooks/{webhook_id}/deliveries · Review delivery attempts","POST /v1/webhooks/{webhook_id}/test · Send a test webhook"],"lastUpdated":"2026-05-08"},{"id":"graphql-transport-contract","title":"GraphQL transport contract","description":"Connect to the shared GraphQL transport with bearer authentication and tenant scoping, without publishing the full schema or operation inventory.","url":"https://knogin.com/api/docs/graphql-transport-contract","sections":["POST /graphql · Use the shared GraphQL transport","GET /api/v1/epcr/encounters/{encounterId} · Fetch an ePCR encounter","GET /api/v1/epcr/encounters/{encounterId}/fhir-bundle · Export encounter as FHIR R4 Bundle","POST /api/v1/epcr/encounters · Create an ePCR encounter","GET /api/v1/devices · List medical devices","POST /api/v1/devices/enrol · Enrol a medical device","POST /api/v1/devices/{deviceId}/observations · Submit a PHD observation","query acqiMetrics(fromDate, toDate) · Query ACQI metrics"],"lastUpdated":"2026-05-08"},{"id":"observability-and-tracing","title":"Observability and tracing","description":"W3C Trace Context propagation, OpenTelemetry instrumentation, X-Argus-Trace-ID and X-Argus-Span-ID response headers, and a tenant-scoped trace lookup endpoint.","url":"https://knogin.com/api/docs/observability-and-tracing","sections":["GET /v1/observability/traces/{trace_id} · Look up a recorded trace"],"lastUpdated":"2026-05-08"},{"id":"async-jobs","title":"Async jobs","description":"Enqueue long-running work (intelligence.enrich.bulk, export.bulk, import.bulk, graph.compute), poll status, fetch results, cancel, list, and receive HMAC-signed webhook callbacks. Tenant-scoped with 24h Idempotency-Key replay.","url":"https://knogin.com/api/docs/async-jobs","sections":["POST /v1/jobs · Enqueue an async job","GET /v1/jobs/{id} · Get job status","GET /v1/jobs/{id}/result · Get job result","DELETE /v1/jobs/{id} · Cancel a job","GET /v1/jobs · List jobs"],"lastUpdated":"2026-05-08"},{"id":"sandbox-environment","title":"Sandbox environment","description":"Issue short-lived sandbox tokens (aud=sandbox) and route the entire v2026.4 surface to deterministic mock connectors at https://sandbox-api.knogin.com. Dual gate prevents leak between sandbox and live.","url":"https://knogin.com/api/docs/sandbox-environment","sections":["POST /v1/platform/apps/{client_id}/sandbox-token · Issue a sandbox token","GET /v1/sandbox/scenarios · List sandbox scenarios"],"lastUpdated":"2026-05-08"},{"id":"provenance-and-compliance","title":"Provenance and compliance","description":"Signed Merkle-chained transcripts of every evidence operation. Fetch as JSON or PROV-O JSON-LD, verify server-side or offline in the SDK, and present as a chain of custody for legal proceedings. HMAC-SHA256 default with ML-DSA-65 (post-quantum) opt-in.","url":"https://knogin.com/api/docs/provenance-and-compliance","sections":["GET /v1/evidence/{evidence_id}/provenance · Get evidence provenance transcript","POST /v1/evidence/{evidence_id}/provenance/verify · Verify a provenance transcript","GET /.well-known/provenance-keys/{algorithm} · Fetch a provenance verify key"],"lastUpdated":"2026-05-08"},{"id":"discovery-and-governance","title":"Discovery and governance","description":"Standards-aligned API discovery (RFC 8615 OpenAPI well-known, RFC 9727 API catalog, reflective tenant-aware data schema listing) plus Sunset and Deprecation header behaviour driven by the published deprecation matrix.","url":"https://knogin.com/api/docs/discovery-and-governance","sections":["GET /.well-known/openapi.json · Fetch the OpenAPI well-known descriptor (JSON)","GET /.well-known/openapi.yaml · Fetch the OpenAPI well-known descriptor (YAML)","GET /.well-known/api-catalog · Fetch the API catalog link-set","GET /v1/discovery/data-schemas · List visible data schemas for the caller"],"lastUpdated":"2026-05-08"}],"quickStart":{"steps":["Register an external app with the auth service.","Request only approved scopes for your tenant.","Obtain OAuth or service tokens for your workflow.","Verify JWTs against the public JWKS endpoints.","Use webhooks or request access for advanced platform capabilities."],"cliInstall":""},"partnerPortal":{"contractVersion":"2026.4.0","requestAccessUrl":"https://knogin.com/en/docs/integration-guide#vendor-contact","graphqlBundle":{"path":"/partners/contract/v2026.4/external.graphql","availability":"approved_partner"},"openapiBundle":{"path":"/partners/contract/v2026.4/external-openapi.json","availability":"approved_partner"},"sdkPackages":[{"name":"@argus/connector-sdk","language":"typescript","version":"2026.4.0","availability":"approved_partner"},{"name":"argus-connector-sdk","language":"python","version":"2026.4.0","availability":"approved_partner"},{"name":"@argus/client","language":"typescript","version":"2026.4.0","availability":"approved_partner"},{"name":"argus-client","language":"python","version":"2026.4.0","availability":"approved_partner"}]}}