{"openapi":"3.0.0","paths":{"/api/v2/admin/audit-logs":{"get":{"operationId":"AdminAuditController_list","parameters":[],"responses":{"200":{"description":""}},"tags":["AdminAudit"]}},"/api/v2/admin/audit-logs/verify":{"post":{"operationId":"AdminAuditController_verify","parameters":[],"responses":{"201":{"description":""}},"tags":["AdminAudit"]}},"/api/v2/admin/orgs":{"get":{"operationId":"AdminOrgsController_list","parameters":[],"responses":{"200":{"description":""}},"tags":["AdminOrgs"]},"post":{"operationId":"AdminOrgsController_create","parameters":[],"responses":{"201":{"description":""}},"tags":["AdminOrgs"]}},"/api/v2/admin/orgs/{id}":{"get":{"operationId":"AdminOrgsController_detail","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["AdminOrgs"]},"patch":{"operationId":"AdminOrgSettingsController_update","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"summary":"Update an organization's settings and billing details (staff)","tags":["admin-org-settings"]}},"/api/v2/admin/orgs/{id}/environments/{env}":{"put":{"operationId":"AdminOrgsController_upsertEnvironment","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"name":"env","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["AdminOrgs"]}},"/api/v2/admin/orgs/{id}/lago-sync/retry":{"post":{"operationId":"AdminOrgsController_retryLagoSync","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"tags":["AdminOrgs"]}},"/api/v2/admin/orgs/{id}/live-keys":{"put":{"operationId":"AdminOrgsController_setLiveKeys","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["AdminOrgs"]}},"/api/v2/admin/orgs/{id}/pricing":{"get":{"operationId":"AdminOrgPricingController_view","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["AdminOrgPricing"]}},"/api/v2/admin/orgs/{id}/pricing/rates":{"put":{"operationId":"AdminOrgPricingController_setRate","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"name":"x-idempotency-key","required":true,"in":"header","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["AdminOrgPricing"]}},"/api/v2/admin/orgs/{id}/pricing/rates/reset":{"post":{"operationId":"AdminOrgPricingController_resetRate","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"name":"x-idempotency-key","required":true,"in":"header","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"tags":["AdminOrgPricing"]}},"/api/v2/admin/orgs/{id}/pricing/otp-bands":{"put":{"operationId":"AdminOrgPricingController_setBandAssignment","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"name":"x-idempotency-key","required":true,"in":"header","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["AdminOrgPricing"]}},"/api/v2/admin/orgs/{id}/pricing/sms-high-bands":{"put":{"operationId":"AdminOrgPricingController_setSmsHighBands","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"name":"x-idempotency-key","required":true,"in":"header","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["AdminOrgPricing"]}},"/api/v2/admin/orgs/{id}/pricing/free-sessions":{"put":{"operationId":"AdminOrgPricingController_setFreeSessions","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"name":"x-idempotency-key","required":true,"in":"header","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["AdminOrgPricing"]}},"/api/v2/admin/orgs/{id}/pricing/history":{"get":{"operationId":"AdminOrgPricingController_history","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["AdminOrgPricing"]}},"/api/v2/sessions/{id}/media":{"post":{"operationId":"MediaController_presign","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"security":[{"session-token":[]}],"tags":["Media"]}},"/api/v2/sessions/{id}/media/capture-nonces":{"post":{"operationId":"MediaController_captureNonces","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"security":[{"session-token":[]}],"tags":["Media"]}},"/api/v2/sessions/{id}/media/complete":{"post":{"operationId":"MediaController_complete","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"security":[{"session-token":[]}],"tags":["Media"]}},"/internal/webhooks/lago":{"post":{"operationId":"LagoWebhookController_receive","parameters":[],"responses":{"201":{"description":""}},"tags":["LagoWebhook"]}},"/internal/webhooks/email-bounce":{"post":{"operationId":"BounceController_handle","parameters":[],"responses":{"201":{"description":""}},"tags":["Bounce"]}},"/internal/webhooks/sms-delivery/africastalking":{"post":{"operationId":"SmsDeliveryController_africastalking","parameters":[],"responses":{"201":{"description":""}},"tags":["SmsDelivery"]}},"/internal/webhooks/sms-delivery/twilio":{"post":{"operationId":"SmsDeliveryController_twilio","parameters":[],"responses":{"201":{"description":""}},"tags":["SmsDelivery"]}},"/api/v2/webhooks":{"post":{"operationId":"WebhookController_create","parameters":[],"responses":{"201":{"description":""}},"tags":["Webhook"]},"get":{"operationId":"WebhookController_list","parameters":[],"responses":{"200":{"description":""}},"tags":["Webhook"]}},"/api/v2/webhooks/{id}":{"get":{"operationId":"WebhookController_get","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Webhook"]},"patch":{"operationId":"WebhookController_update","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Webhook"]},"delete":{"operationId":"WebhookController_remove","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Webhook"]}},"/api/v2/webhooks/{id}/rotate-secret":{"post":{"operationId":"WebhookController_rotateSecret","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"tags":["Webhook"]}},"/api/v2/webhooks/test":{"post":{"operationId":"WebhookController_sendTest","parameters":[],"responses":{"201":{"description":""}},"tags":["Webhook"]}},"/api/v2/webhooks/{id}/deliveries":{"get":{"operationId":"WebhookController_listDeliveries","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"name":"page","required":true,"in":"query","schema":{"type":"string"}},{"name":"perPage","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Webhook"]}},"/api/v2/webhooks/deliveries/{id}/retry":{"post":{"operationId":"WebhookController_retryDelivery","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"tags":["Webhook"]}},"/api/v2/admin/billing/org-sync/pending":{"get":{"operationId":"OrgSyncStatusController_listPending","parameters":[],"responses":{"200":{"description":""}},"tags":["OrgSyncStatus"]}},"/api/v2/admin/usage":{"get":{"operationId":"AdminUsageController_usage","parameters":[],"responses":{"200":{"description":""}},"tags":["AdminUsage"]}},"/api/v2/dashboard/billing/wallet":{"get":{"operationId":"BillingController_wallet","parameters":[],"responses":{"200":{"description":""}},"tags":["Billing"]}},"/api/v2/dashboard/billing/pricing":{"get":{"operationId":"BillingController_pricing","parameters":[],"responses":{"200":{"description":""}},"tags":["Billing"]}},"/api/v2/dashboard/billing/subscription":{"get":{"operationId":"BillingController_subscription","parameters":[],"responses":{"200":{"description":""}},"tags":["Billing"]}},"/api/v2/dashboard/billing/invoices":{"get":{"operationId":"BillingController_invoices","parameters":[{"name":"page","required":true,"in":"query","schema":{"type":"string"}},{"name":"env","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Billing"]}},"/api/v2/dashboard/billing/invoices/{id}":{"get":{"operationId":"BillingController_invoice","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Billing"]}},"/api/v2/dashboard/billing/invoices/{id}/pdf":{"get":{"operationId":"BillingController_invoicePdf","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Billing"]}},"/api/v2/dashboard/billing/available_rails":{"get":{"operationId":"BillingController_availableRails","parameters":[],"responses":{"200":{"description":""}},"tags":["Billing"]}},"/api/v2/dashboard/billing/topup-intent":{"post":{"operationId":"BillingController_topupIntent","parameters":[],"responses":{"201":{"description":""}},"tags":["Billing"]}},"/api/v2/dashboard/billing/refund-request":{"post":{"operationId":"BillingController_refundRequest","parameters":[],"responses":{"201":{"description":""}},"tags":["Billing"]}},"/api/v2/dashboard/billing/dunning-state":{"get":{"operationId":"BillingController_dunningState","parameters":[],"responses":{"200":{"description":""}},"tags":["Billing"]}},"/api/v2/dashboard/billing/disputes":{"get":{"operationId":"BillingController_listDisputes","parameters":[],"responses":{"200":{"description":""}},"tags":["Billing"]}},"/api/v2/public/pricing":{"get":{"operationId":"PublicPricingController_list","parameters":[],"responses":{"200":{"description":""}},"tags":["PublicPricing"]}},"/api/v2/public/leads":{"post":{"operationId":"PublicLeadsController_create","parameters":[],"responses":{"202":{"description":""}},"tags":["PublicLeads"]}},"/api/v2/admin/users":{"post":{"operationId":"AdminUsersController_provision","parameters":[],"responses":{"201":{"description":""}},"tags":["AdminUsers"]},"get":{"operationId":"AdminUsersController_list","parameters":[],"responses":{"200":{"description":""}},"tags":["AdminUsers"]}},"/api/v2/admin/users/{id}/role":{"patch":{"operationId":"AdminUsersController_updateRole","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["AdminUsers"]}},"/api/v2/admin/users/{id}/deactivate":{"post":{"operationId":"AdminUsersController_deactivate","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"tags":["AdminUsers"]}},"/api/v2/admin/me":{"get":{"operationId":"AdminMeController_me","parameters":[],"responses":{"200":{"description":""}},"tags":["AdminMe"]}},"/api/v2/admin/orgs/{id}/members":{"get":{"operationId":"AdminMembersController_list","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["AdminMembers"]}},"/api/v2/admin/orgs/{id}/members/invitations":{"post":{"operationId":"AdminMembersController_invite","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"tags":["AdminMembers"]}},"/api/v2/admin/orgs/{id}/members/invitations/{invitationId}/resend":{"post":{"operationId":"AdminMembersController_resend","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"name":"invitationId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["AdminMembers"]}},"/api/v2/admin/orgs/{id}/members/invitations/{invitationId}":{"delete":{"operationId":"AdminMembersController_revoke","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"name":"invitationId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["AdminMembers"]}},"/api/v2/admin/orgs/{id}/members/{membershipId}":{"patch":{"operationId":"AdminMembersController_changeRole","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"name":"membershipId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["AdminMembers"]},"delete":{"operationId":"AdminMembersController_remove","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"name":"membershipId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["AdminMembers"]}},"/api/v2/admin/orgs/{id}/support-view":{"post":{"operationId":"AdminSupportViewController_start","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"tags":["AdminSupportView"]}},"/api/v2/admin/orgs/{id}/support-view/{grantId}/end":{"post":{"operationId":"AdminSupportViewController_end","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"name":"grantId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["AdminSupportView"]}},"/api/v2/dashboard/support-view/end":{"post":{"operationId":"DashboardSupportViewController_end","parameters":[],"responses":{"200":{"description":""}},"tags":["DashboardSupportView"]}},"/api/v2/admin/staff":{"get":{"operationId":"StaffController_list","parameters":[],"responses":{"200":{"description":""}},"tags":["Staff"]}},"/api/v2/admin/staff/{userId}":{"patch":{"operationId":"StaffController_changeRoles","parameters":[{"name":"userId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Staff"]},"delete":{"operationId":"StaffController_remove","parameters":[{"name":"userId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Staff"]}},"/api/v2/admin/staff/invitations":{"post":{"operationId":"StaffInvitationsController_invite","parameters":[],"responses":{"201":{"description":""}},"tags":["StaffInvitations"]}},"/api/v2/admin/staff/invitations/{id}/resend":{"post":{"operationId":"StaffInvitationsController_resend","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["StaffInvitations"]}},"/api/v2/admin/staff/invitations/{id}":{"delete":{"operationId":"StaffInvitationsController_revoke","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["StaffInvitations"]}},"/api/v2/admin/staff/invitations/lookup":{"get":{"operationId":"StaffInvitationsController_lookup","parameters":[],"responses":{"200":{"description":""}},"tags":["StaffInvitations"]}},"/api/v2/admin/staff/invitations/accept":{"post":{"operationId":"StaffInvitationsController_accept","parameters":[],"responses":{"200":{"description":""}},"tags":["StaffInvitations"]}},"/api/v2/admin/ops/queues-session":{"post":{"operationId":"QueuesSessionController_create","parameters":[],"responses":{"200":{"description":""}},"tags":["QueuesSession"]}},"/api/v2/sessions/{id}/reference-outcome":{"put":{"operationId":"ReferenceOutcomeController_put","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["ReferenceOutcome"]}},"/api/v2/admin/evaluation":{"get":{"operationId":"ComparisonController_overview","parameters":[],"responses":{"200":{"description":""}},"tags":["Comparison"]}},"/api/v2/admin/evaluation/attempts/{id}":{"get":{"operationId":"ComparisonController_detail","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Comparison"]}},"/api/v2/admin/evaluation/attempts/{id}/media":{"get":{"operationId":"ComparisonController_media","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Comparison"]}},"/api/v2/admin/evaluation/attempts/{id}/original-media":{"get":{"operationId":"ComparisonController_originalMedia","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Comparison"]}},"/api/v2/admin/evaluation/runs":{"get":{"operationId":"RunsController_list","parameters":[],"responses":{"200":{"description":""}},"tags":["Runs"]},"post":{"operationId":"RunsController_request","parameters":[],"responses":{"201":{"description":""}},"tags":["Runs"]}},"/api/v2/admin/evaluation/runs/{id}":{"get":{"operationId":"RunsController_detail","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Runs"]}},"/api/v2/admin/evaluation/runs/{id}/nominate":{"post":{"operationId":"RunsController_nominate","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"tags":["Runs"]}},"/api/v2/admin/evaluation/runs/{id}/cancel":{"post":{"operationId":"RunsController_cancel","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"tags":["Runs"]}},"/api/v2/admin/evaluation/runs/{id}/resume":{"post":{"operationId":"RunsController_resume","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"tags":["Runs"]}},"/api/v2/admin/evaluation/recipes":{"get":{"operationId":"EvaluationRegistryController_listRecipes","parameters":[],"responses":{"200":{"description":""}},"tags":["EvaluationRegistry"]},"post":{"operationId":"EvaluationRegistryController_recipe","parameters":[],"responses":{"201":{"description":""}},"tags":["EvaluationRegistry"]}},"/api/v2/admin/evaluation/policies":{"get":{"operationId":"EvaluationRegistryController_listPolicies","parameters":[],"responses":{"200":{"description":""}},"tags":["EvaluationRegistry"]},"post":{"operationId":"EvaluationRegistryController_policy","parameters":[],"responses":{"201":{"description":""}},"tags":["EvaluationRegistry"]}},"/api/v2/admin/evaluation/label":{"get":{"operationId":"AnnotationController_list","parameters":[],"responses":{"200":{"description":""}},"tags":["Annotation"]}},"/api/v2/admin/evaluation/label/claim":{"post":{"operationId":"AnnotationController_claim","parameters":[],"responses":{"201":{"description":""}},"tags":["Annotation"]}},"/api/v2/admin/evaluation/label/{taskId}":{"get":{"operationId":"AnnotationController_owned","parameters":[{"name":"taskId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Annotation"]}},"/api/v2/admin/evaluation/label/{taskId}/renew":{"post":{"operationId":"AnnotationController_renew","parameters":[{"name":"taskId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"tags":["Annotation"]}},"/api/v2/admin/evaluation/label/{taskId}/submit":{"post":{"operationId":"AnnotationController_submit","parameters":[{"name":"taskId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"tags":["Annotation"]}},"/api/v2/admin/evaluation/label/{taskId}/unavailable":{"post":{"operationId":"AnnotationController_unavailable","parameters":[{"name":"taskId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"tags":["Annotation"]}},"/api/v2/admin/evaluation/label/{taskId}/media":{"get":{"operationId":"AnnotationController_media","parameters":[{"name":"taskId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Annotation"]}},"/api/v2/admin/evaluation/adjudicate":{"get":{"operationId":"AdjudicationController_list","parameters":[],"responses":{"200":{"description":""}},"tags":["Adjudication"]}},"/api/v2/admin/evaluation/adjudicate/claim":{"post":{"operationId":"AdjudicationController_claim","parameters":[],"responses":{"201":{"description":""}},"tags":["Adjudication"]}},"/api/v2/admin/evaluation/adjudicate/{taskId}":{"get":{"operationId":"AdjudicationController_owned","parameters":[{"name":"taskId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Adjudication"]}},"/api/v2/admin/evaluation/adjudicate/{taskId}/renew":{"post":{"operationId":"AdjudicationController_renew","parameters":[{"name":"taskId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"tags":["Adjudication"]}},"/api/v2/admin/evaluation/adjudicate/{taskId}/submit":{"post":{"operationId":"AdjudicationController_submit","parameters":[{"name":"taskId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"tags":["Adjudication"]}},"/api/v2/admin/evaluation/adjudicate/{taskId}/unavailable":{"post":{"operationId":"AdjudicationController_unavailable","parameters":[{"name":"taskId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"tags":["Adjudication"]}},"/api/v2/admin/evaluation/adjudicate/{taskId}/media":{"get":{"operationId":"AdjudicationController_media","parameters":[{"name":"taskId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Adjudication"]}},"/api/v2/admin/evaluation/quality":{"get":{"operationId":"ReviewQualityController_reviewers","parameters":[],"responses":{"200":{"description":""}},"tags":["ReviewQuality"]}},"/api/v2/admin/evaluation/weekly-report":{"get":{"operationId":"ReviewQualityController_report","parameters":[],"responses":{"200":{"description":""}},"tags":["ReviewQuality"]}},"/api/v2/admin/evaluation/curation":{"get":{"operationId":"CurationController_list","parameters":[],"responses":{"200":{"description":""}},"tags":["Curation"]}},"/api/v2/admin/evaluation/curation/batches":{"post":{"operationId":"CurationController_batch","parameters":[],"responses":{"201":{"description":""}},"tags":["Curation"]}},"/api/v2/admin/evaluation/samples/{id}/correction":{"post":{"operationId":"CurationController_correction","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"tags":["Curation"]}},"/api/v2/admin/evaluation/samples/{id}/exclude":{"post":{"operationId":"CurationController_exclude","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"tags":["Curation"]}},"/api/v2/admin/evaluation/samples/{id}/remediate":{"post":{"operationId":"CurationController_remediate","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"tags":["Curation"]}},"/api/v2/admin/evaluation/variants/eligible":{"get":{"operationId":"CurationController_variants","parameters":[],"responses":{"200":{"description":""}},"tags":["Curation"]}},"/api/v2/admin/evaluation/summary":{"get":{"operationId":"CurationController_summary","parameters":[],"responses":{"200":{"description":""}},"tags":["Curation"]}},"/api/v2/admin/evaluation/attempts/{id}/lineage":{"get":{"operationId":"CurationController_lineage","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Curation"]}},"/api/v2/admin/evaluation/selected-cases":{"get":{"operationId":"SelectedCasesController_list","parameters":[],"responses":{"200":{"description":""}},"tags":["SelectedCases"]}},"/api/v2/admin/evaluation/datasets":{"get":{"operationId":"DatasetController_list","parameters":[],"responses":{"200":{"description":""}},"tags":["Dataset"]},"post":{"operationId":"DatasetController_prepare","parameters":[],"responses":{"201":{"description":""}},"tags":["Dataset"]}},"/api/v2/admin/evaluation/datasets/{id}":{"get":{"operationId":"DatasetController_detail","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Dataset"]}},"/api/v2/admin/evaluation/samples/{id}/remove":{"post":{"operationId":"DatasetController_remove","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"tags":["Dataset"]}},"/api/v2/admin/evaluation/removals/{id}":{"get":{"operationId":"DatasetController_removalStatus","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Dataset"]}},"/api/v2/admin/evaluation/my-reviews":{"get":{"operationId":"MyReviewsController_list","parameters":[],"responses":{"200":{"description":""}},"tags":["MyReviews"]}},"/api/v2/admin/evaluation/my-reviews/{id}":{"get":{"operationId":"MyReviewsController_detail","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["MyReviews"]}},"/internal/evaluation/jobs":{"get":{"operationId":"EvaluationWorkerController_pending","parameters":[{"name":"capabilities","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["EvaluationWorker"]}},"/internal/evaluation/jobs/claim":{"post":{"operationId":"EvaluationWorkerController_claim","parameters":[],"responses":{"201":{"description":""}},"tags":["EvaluationWorker"]}},"/internal/evaluation/jobs/{id}/heartbeat":{"post":{"operationId":"EvaluationWorkerController_heartbeat","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"tags":["EvaluationWorker"]}},"/internal/evaluation/jobs/{id}/complete":{"post":{"operationId":"EvaluationWorkerController_complete","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"tags":["EvaluationWorker"]}},"/internal/evaluation/jobs/{id}/fail":{"post":{"operationId":"EvaluationWorkerController_fail","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"tags":["EvaluationWorker"]}},"/internal/evaluation/jobs/{id}/cleanup":{"post":{"operationId":"EvaluationWorkerController_cleanup","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"tags":["EvaluationWorker"]}},"/internal/evaluation/jobs/{id}/artifacts/reserve":{"post":{"operationId":"EvaluationWorkerController_reserve","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"tags":["EvaluationWorker"]}},"/internal/evaluation/jobs/{id}/media/read":{"post":{"operationId":"EvaluationWorkerController_readMedia","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"tags":["EvaluationWorker"]}},"/internal/evaluation/jobs/{id}/artifacts/verify":{"post":{"operationId":"EvaluationWorkerController_verify","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"tags":["EvaluationWorker"]}},"/internal/evaluation/jobs/{id}/artifacts/{artifactId}/read":{"post":{"operationId":"EvaluationWorkerController_read","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"name":"artifactId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"tags":["EvaluationWorker"]}},"/internal/evaluation/jobs/{id}/artifacts/{artifactId}/upload":{"post":{"operationId":"EvaluationWorkerController_upload","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"name":"artifactId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"tags":["EvaluationWorker"]}},"/api/v2/sessions":{"post":{"description":"Organizations in the `supplied` mode may send partner-supplied identity data — the person's biographic record and photo — in `input.suppliedIdentity` (with `input.nni`). It is stored as identity data supplied by the organization, never treated as a registry lookup; Sekyro AI makes no registry call for it and never accepts a registry key.","operationId":"SessionController_create","parameters":[],"responses":{"400":{"description":"`input_field_misplaced` — a session-input field (`nni`, `phone`, `fullName`, `birthDate`) was sent at the top level; send it under `input` (e.g. `input.nni`). Other invalid bodies answer `validation_error`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerErrorInputFieldMisplaced"}}}},"403":{"description":"`supplied_identity_not_entitled` — `input.suppliedIdentity` was sent but this environment is not in the `supplied` mode."},"413":{"description":"`payload_too_large` — the create body exceeds 2 MB."},"422":{"description":"`supplied_identity_required` (the environment is in the `supplied` mode and the app verifies identity, but `input.suppliedIdentity` was not sent), `supplied_identity_stale` (`fetchedAt` older than 24 h) or `supplied_identity_photo_unusable` (not a JPEG/PNG of at most 1 MB within the size bounds). No face processing runs at create: the face on the supplied photo is checked after consent, at the face match (an unusable face fails that step with `no_face_reference` or `low_quality_reference`). An `input.suppliedIdentity.nni` different from `input.nni` is 400 `supplied_identity_nni_mismatch`."}},"summary":"Create a verification session","tags":["Session"]},"get":{"operationId":"SessionController_list","parameters":[],"responses":{"200":{"description":""}},"tags":["Session"]}},"/api/v2/sessions/{id}/method":{"post":{"operationId":"SessionController_selectMethod","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Session"]}},"/api/v2/sessions/{id}":{"get":{"operationId":"SessionController_get","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Session"]}},"/api/v2/sessions/{id}/portrait":{"get":{"operationId":"SessionController_portrait","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Session"]}},"/api/v2/sessions/{id}/checks/{checkType}":{"post":{"operationId":"ChecksController_submit","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"name":"checkType","required":true,"in":"path","schema":{"type":"string"}},{"name":"X-Idempotency-Key","in":"header","description":"Idempotency key for the submit. A repeat POST with the same key (and same body) replays the first response without burning another attempt; the same key with a different body returns 409 idempotency_key_collision. Keys are scoped to the verification session and expire after 24h (default).","required":false,"schema":{"type":"string"}}],"responses":{"201":{"description":""}},"security":[{"session-token":[]}],"tags":["Checks"]}},"/api/v2/hosted/session":{"get":{"operationId":"HostedController_view","parameters":[],"responses":{"200":{"description":""}},"security":[{"session-token":[]}],"tags":["Hosted"]}},"/api/v2/hosted/consent":{"post":{"operationId":"HostedController_consent","parameters":[],"responses":{"201":{"description":""}},"security":[{"session-token":[]}],"tags":["Hosted"]}},"/api/v2/hosted/method":{"post":{"operationId":"HostedController_method","parameters":[],"responses":{"200":{"description":""}},"security":[{"session-token":[]}],"tags":["Hosted"]}},"/api/v2/hosted/contact":{"post":{"description":"Flow model 2026-10-23 (`contact.mode: one_of`): returns the hosted view; 409 `contact_locked` once a contact check settled or when the session has no choice.","operationId":"HostedController_contact","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["channel"],"properties":{"channel":{"type":"string","enum":["phone","email"]}}}}}},"responses":{"200":{"description":"The hosted session view (`otpChoice.selected` set)."},"400":{"description":"`validation_error` — channel is not phone | email."},"409":{"description":"`contact_locked` (no choice / a contact check settled), `consent_required`, `session_not_active`."}},"security":[{"session-token":[]}],"summary":"Choose the contact check (phone or email) of a one-of session","tags":["Hosted"]}},"/api/v2/hosted/identity/confirm":{"post":{"description":"Flow model 2026-10-23 (Step 2b): `confirm` lets the live photo start; `retake` re-opens the document capture (or the national-number entry), attempts keep counting. Nothing is pending (and the live photo is not held) when the identity came from the partner — an NNI bound at create, supplied identity data — or a national eID. 409 `identity_confirm_locked` when nothing is pending or no retake is left.","operationId":"HostedController_confirmIdentity","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["decision"],"properties":{"decision":{"type":"string","enum":["confirm","retake"]}}}}}},"responses":{"200":{"description":"The hosted session view (a replayed confirm answers the same view)."},"400":{"description":"`validation_error` — decision is not confirm | retake."},"409":{"description":"`identity_confirm_locked` (nothing to confirm / no retake left), `consent_required`, `session_not_active`."}},"security":[{"session-token":[]}],"summary":"Confirm the identity summary, or retake the identity capture","tags":["Hosted"]}},"/api/v2/hosted/identity/portrait":{"get":{"description":"While a `full` Step 2b summary (document or chip read) is pending only: this session's own document / chip crop, never a registry portrait (a typed-NNI `partial` summary has none). `Cache-Control: private, no-store`. 404 `portrait_not_available` otherwise.","operationId":"HostedController_identityPortrait","parameters":[],"responses":{"200":{"description":"The portrait (image/jpeg), `Cache-Control: private, no-store`.","content":{"image/jpeg":{"schema":{"type":"string","format":"binary"}}}},"404":{"description":"`portrait_not_available`."},"429":{"description":"`rate_limit_exceeded` (scope `portrait`): over 10/min per session or 60/min per IP."}},"security":[{"session-token":[]}],"summary":"The identity summary portrait (JPEG)","tags":["Hosted"]}},"/api/v2/hosted/capture-reports":{"post":{"operationId":"HostedCaptureReportsController_report","parameters":[],"responses":{"202":{"description":""}},"security":[{"session-token":[]}],"tags":["HostedCaptureReports"]}},"/api/v2/admin/sessions":{"get":{"operationId":"AdminSessionsController_list","parameters":[],"responses":{"200":{"description":""}},"tags":["AdminSessions"]}},"/api/v2/admin/sessions/{id}":{"get":{"operationId":"AdminSessionsController_detail","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["AdminSessions"]}},"/api/v2/admin/sessions/{id}/evidence":{"get":{"operationId":"AdminSessionsController_evidence","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["AdminSessions"]}},"/api/v2/admin/sessions/{id}/review-decision":{"post":{"operationId":"AdminSessionsController_reviewDecision","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"tags":["AdminSessions"]}},"/api/v2/hosted/app-attest/challenge":{"post":{"operationId":"HostedAppAttestController_challenge","parameters":[],"responses":{"200":{"description":""}},"security":[{"session-token":[]}],"tags":["HostedAppAttest"]}},"/api/v2/hosted/app-attest/attest":{"post":{"operationId":"HostedAppAttestController_attest","parameters":[],"responses":{"200":{"description":""}},"security":[{"session-token":[]}],"tags":["HostedAppAttest"]}},"/api/v2/admin/models":{"post":{"operationId":"ModelRegistryController_create","parameters":[{"name":"x-idempotency-key","required":true,"in":"header","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"tags":["ModelRegistry"]},"get":{"operationId":"ModelRegistryController_list","parameters":[{"name":"checkType","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["ModelRegistry"]}},"/api/v2/admin/models/{id}":{"get":{"operationId":"ModelRegistryController_get","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["ModelRegistry"]},"patch":{"operationId":"ModelRegistryController_update","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"name":"x-idempotency-key","required":true,"in":"header","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["ModelRegistry"]},"delete":{"operationId":"ModelRegistryController_remove","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"name":"x-idempotency-key","required":true,"in":"header","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["ModelRegistry"]}},"/api/v2/admin/models/{id}/promote":{"post":{"operationId":"ModelRegistryController_promote","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"name":"x-idempotency-key","required":true,"in":"header","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"tags":["ModelRegistry"]}},"/api/v2/admin/models/{id}/deprecate":{"post":{"operationId":"ModelRegistryController_deprecate","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"name":"x-idempotency-key","required":true,"in":"header","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"tags":["ModelRegistry"]}},"/api/v2/admin/inference-config/mutations":{"post":{"operationId":"InferenceConfigController_apply","parameters":[],"responses":{"201":{"description":""}},"tags":["InferenceConfig"]}},"/api/v2/admin/inference-config/adopt-unversioned":{"post":{"operationId":"InferenceConfigController_adopt","parameters":[],"responses":{"201":{"description":""}},"tags":["InferenceConfig"]}},"/api/v2/admin/check-bands":{"get":{"operationId":"CheckBandsController_list","parameters":[],"responses":{"200":{"description":""}},"tags":["CheckBands"]}},"/api/v2/admin/check-bands/liveness/engine-rates":{"get":{"operationId":"CheckBandsController_engineRates","parameters":[],"responses":{"200":{"description":""}},"tags":["CheckBands"]}},"/api/v2/admin/check-bands/{checkType}":{"get":{"operationId":"CheckBandsController_get","parameters":[{"name":"checkType","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["CheckBands"]},"put":{"operationId":"CheckBandsController_update","parameters":[{"name":"checkType","required":true,"in":"path","schema":{"type":"string"}},{"name":"x-idempotency-key","required":true,"in":"header","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["CheckBands"]}},"/api/v2/admin/check-bands/{checkType}/engines/{engine}":{"put":{"operationId":"CheckBandsController_updateEngine","parameters":[{"name":"checkType","required":true,"in":"path","schema":{"type":"string"}},{"name":"engine","required":true,"in":"path","schema":{"type":"string"}},{"name":"x-idempotency-key","required":true,"in":"header","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["CheckBands"]},"delete":{"operationId":"CheckBandsController_removeEngine","parameters":[{"name":"checkType","required":true,"in":"path","schema":{"type":"string"}},{"name":"engine","required":true,"in":"path","schema":{"type":"string"}},{"name":"x-idempotency-key","required":true,"in":"header","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["CheckBands"]}},"/api/v2/admin/orgs/{orgId}/anrpts-key":{"put":{"operationId":"PopulationAdminController_setKey","parameters":[{"name":"orgId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["PopulationAdmin"]}},"/api/v2/admin/personnes/{nni}/refresh-portrait":{"post":{"operationId":"AdminPersonnesController_refreshPortrait","parameters":[{"name":"nni","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"tags":["AdminPersonnes"]}},"/api/v2/subjects/{id}":{"get":{"operationId":"SubjectsController_get","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Subjects"]},"delete":{"operationId":"SubjectsController_remove","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Subjects"]}},"/api/v2/subjects":{"get":{"operationId":"SubjectsController_find","parameters":[],"responses":{"200":{"description":""}},"tags":["Subjects"]}},"/api/v2/subjects/{id}/revoke":{"post":{"operationId":"SubjectsController_revoke","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Subjects"]}},"/api/v2/dashboard/subjects":{"get":{"operationId":"DashboardSubjectsController_list","parameters":[],"responses":{"200":{"description":""}},"tags":["DashboardSubjects"]}},"/api/v2/dashboard/subjects/{id}":{"get":{"operationId":"DashboardSubjectsController_detail","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["DashboardSubjects"]}},"/api/v2/dashboard/subjects/{id}/revoke":{"post":{"operationId":"DashboardSubjectsController_revoke","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["DashboardSubjects"]}},"/api/v2/admin/orgs/{id}/apps":{"get":{"operationId":"AdminAppsController_list","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"summary":"List an org's apps (staff)","tags":["admin-apps"]}},"/api/v2/admin/orgs/{id}/apps/{appId}/platforms":{"patch":{"operationId":"AdminAppsController_updatePlatforms","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"name":"appId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"summary":"Replace an app's platforms (staff)","tags":["admin-apps"]}},"/api/v2/admin/orgs/{id}/apps/{appId}/capture-overrides":{"get":{"operationId":"AdminAppsController_getCaptureOverrides","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"name":"appId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"summary":"An app's capture rollout overrides (staff)","tags":["admin-apps"]},"patch":{"operationId":"AdminAppsController_updateCaptureOverrides","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"name":"appId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"summary":"Replace an app's capture rollout overrides (staff)","tags":["admin-apps"]}},"/api/v2/dashboard/sessions/{id}/device-cooldown/lift":{"post":{"operationId":"DashboardDeviceCooldownController_lift","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["DashboardDeviceCooldown"]}},"/api/v2/admin/orgs/{orgId}/sessions/{id}/device-cooldown/lift":{"post":{"operationId":"AdminDeviceCooldownController_lift","parameters":[{"name":"orgId","required":true,"in":"path","schema":{"type":"string"}},{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["AdminDeviceCooldown"]}},"/api/v2/admin/evaluation/lab":{"get":{"operationId":"LabController_bootstrap","parameters":[],"responses":{"200":{"description":""}},"tags":["Lab"]}},"/api/v2/admin/evaluation/lab/references":{"post":{"operationId":"LabController_reference","parameters":[],"responses":{"201":{"description":""}},"tags":["Lab"]}},"/api/v2/admin/evaluation/lab/opt-in":{"patch":{"operationId":"LabController_optIn","parameters":[],"responses":{"200":{"description":""}},"tags":["Lab"]}},"/api/v2/admin/evaluation/lab/consent":{"post":{"operationId":"LabController_consent","parameters":[],"responses":{"201":{"description":""}},"tags":["Lab"]},"delete":{"operationId":"LabController_revoke","parameters":[],"responses":{"200":{"description":""}},"tags":["Lab"]}},"/api/v2/admin/evaluation/lab/sessions":{"post":{"operationId":"LabController_create","parameters":[],"responses":{"201":{"description":""}},"tags":["Lab"]},"get":{"operationId":"LabController_sessions","parameters":[],"responses":{"200":{"description":""}},"tags":["Lab"]}},"/api/v2/admin/evaluation/lab/variants":{"post":{"operationId":"LabController_disabled","parameters":[],"responses":{"201":{"description":""}},"tags":["Lab"]}},"/api/v2/admin/evaluation/lab/sessions/{id}":{"get":{"operationId":"LabController_session","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Lab"]}},"/api/v2/admin/evaluation/lab/sessions/{id}/media/{executionId}/{role}":{"get":{"operationId":"LabController_media","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"name":"executionId","required":true,"in":"path","schema":{"type":"string"}},{"name":"role","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Lab"]}},"/api/v2/admin/evaluation/lab/reports":{"post":{"operationId":"LabController_createReport","parameters":[],"responses":{"201":{"description":""}},"tags":["Lab"]},"get":{"operationId":"LabController_triageReports","parameters":[],"responses":{"200":{"description":""}},"tags":["Lab"]}},"/api/v2/admin/evaluation/lab/reports/mine":{"get":{"operationId":"LabController_myReports","parameters":[],"responses":{"200":{"description":""}},"tags":["Lab"]}},"/api/v2/admin/evaluation/lab/reports/{id}":{"get":{"operationId":"LabController_triageReport","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Lab"]}},"/api/v2/admin/evaluation/lab/reports/{id}/status":{"patch":{"operationId":"LabController_updateReportStatus","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Lab"]}},"/api/v2/admin/evaluation/lab/invitations":{"get":{"operationId":"LabInvitationsController_list","parameters":[],"responses":{"200":{"description":""}},"tags":["LabInvitations"]},"post":{"operationId":"LabInvitationsController_create","parameters":[],"responses":{"201":{"description":""}},"tags":["LabInvitations"]}},"/api/v2/admin/evaluation/lab/invitations/bulk":{"post":{"operationId":"LabInvitationsController_bulk","parameters":[],"responses":{"201":{"description":""}},"tags":["LabInvitations"]}},"/api/v2/admin/evaluation/lab/invitations/{id}/revoke":{"post":{"operationId":"LabInvitationsController_revoke","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"tags":["LabInvitations"]}},"/api/v2/admin/evaluation/lab/invitations/{id}/bind-recipient":{"post":{"operationId":"LabInvitationsController_bindRecipient","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"tags":["LabInvitations"]}},"/api/v2/lab/invitations/describe":{"post":{"operationId":"LabInvitationParticipantController_describe","parameters":[],"responses":{"201":{"description":""}},"tags":["LabInvitationParticipant"]}},"/api/v2/lab/invitations/accept":{"post":{"operationId":"LabInvitationParticipantController_accept","parameters":[],"responses":{"201":{"description":""}},"tags":["LabInvitationParticipant"]}},"/api/v2/lab/invitations/reference":{"post":{"operationId":"LabInvitationParticipantController_reference","parameters":[],"responses":{"201":{"description":""}},"tags":["LabInvitationParticipant"]}},"/api/v2/lab/invitations/start":{"post":{"operationId":"LabInvitationParticipantController_start","parameters":[],"responses":{"201":{"description":""}},"tags":["LabInvitationParticipant"]}},"/api/v2/lab/invitations/status":{"post":{"operationId":"LabInvitationParticipantController_status","parameters":[],"responses":{"201":{"description":""}},"tags":["LabInvitationParticipant"]}},"/api/v2/lab/invitations/reference-status":{"post":{"operationId":"LabInvitationParticipantController_referenceStatus","parameters":[],"responses":{"201":{"description":""}},"tags":["LabInvitationParticipant"]}},"/api/v2/admin/evaluation/lab/invitations/{id}/history":{"get":{"operationId":"LabInvitationMediaController_history","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["LabInvitationMedia"]}},"/api/v2/admin/evaluation/lab/invitations/{id}/media/{executionId}/{role}":{"get":{"operationId":"LabInvitationMediaController_read","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"name":"executionId","required":true,"in":"path","schema":{"type":"string"}},{"name":"role","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["LabInvitationMedia"]}},"/api/v2/dashboard/org/live-activation":{"get":{"operationId":"DashboardLiveActivationController_status","parameters":[],"responses":{"200":{"description":""}},"tags":["DashboardLiveActivation"]},"post":{"operationId":"DashboardLiveActivationController_activate","parameters":[],"responses":{"200":{"description":""}},"tags":["DashboardLiveActivation"]}},"/api/v2/dashboard/me":{"get":{"operationId":"DashboardMeController_me","parameters":[],"responses":{"200":{"description":""}},"tags":["DashboardMe"]},"patch":{"operationId":"DashboardMeController_update","parameters":[],"responses":{"200":{"description":""}},"tags":["DashboardMe"]}},"/api/v2/dashboard/me/orgs":{"get":{"operationId":"DashboardMeController_orgsList","parameters":[],"responses":{"200":{"description":""}},"tags":["DashboardMe"]}},"/api/v2/dashboard/me/invitations/lookup":{"post":{"operationId":"DashboardMeController_lookup","parameters":[],"responses":{"200":{"description":""}},"tags":["DashboardMe"]}},"/api/v2/dashboard/me/invitations/accept":{"post":{"operationId":"DashboardMeController_acceptByToken","parameters":[],"responses":{"200":{"description":""}},"tags":["DashboardMe"]}},"/api/v2/dashboard/me/invitations/decline":{"post":{"operationId":"DashboardMeController_declineByToken","parameters":[],"responses":{"200":{"description":""}},"tags":["DashboardMe"]}},"/api/v2/dashboard/me/invitations/{id}/accept":{"post":{"operationId":"DashboardMeController_accept","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["DashboardMe"]}},"/api/v2/dashboard/me/invitations/{id}/decline":{"post":{"operationId":"DashboardMeController_decline","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["DashboardMe"]}},"/api/v2/dashboard/me/notifications":{"get":{"operationId":"DashboardMeController_notifications","parameters":[],"responses":{"200":{"description":""}},"tags":["DashboardMe"]},"put":{"operationId":"DashboardMeController_updateNotifications","parameters":[],"responses":{"200":{"description":""}},"tags":["DashboardMe"]}},"/api/v2/dashboard/me/orgs/{orgId}/leave":{"post":{"operationId":"DashboardMeController_leave","parameters":[{"name":"orgId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["DashboardMe"]}},"/api/v2/dashboard/org":{"get":{"operationId":"DashboardOrgController_org","parameters":[],"responses":{"200":{"description":""}},"tags":["DashboardOrg"]},"patch":{"operationId":"DashboardOrgSettingsController_update","parameters":[],"responses":{"200":{"description":""}},"summary":"Update the organization settings (general, two-factor, low balance)","tags":["dashboard-settings"]}},"/api/v2/dashboard/members":{"get":{"operationId":"DashboardMembersController_list","parameters":[],"responses":{"200":{"description":""}},"tags":["DashboardMembers"]}},"/api/v2/dashboard/members/invitations":{"post":{"operationId":"DashboardMembersController_invite","parameters":[],"responses":{"201":{"description":""}},"tags":["DashboardMembers"]}},"/api/v2/dashboard/members/invitations/{id}/resend":{"post":{"operationId":"DashboardMembersController_resend","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["DashboardMembers"]}},"/api/v2/dashboard/members/invitations/{id}":{"delete":{"operationId":"DashboardMembersController_revoke","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["DashboardMembers"]}},"/api/v2/dashboard/members/{membershipId}":{"patch":{"operationId":"DashboardMembersController_changeRole","parameters":[{"name":"membershipId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["DashboardMembers"]},"delete":{"operationId":"DashboardMembersController_remove","parameters":[{"name":"membershipId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["DashboardMembers"]}},"/api/v2/dashboard/sessions":{"get":{"operationId":"DashboardSessionsController_list","parameters":[],"responses":{"200":{"description":""}},"tags":["DashboardSessions"]},"post":{"operationId":"DashboardSessionsController_mint","parameters":[],"responses":{"201":{"description":""}},"tags":["DashboardSessions"]}},"/api/v2/dashboard/sessions/{id}":{"get":{"operationId":"DashboardSessionsController_detail","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["DashboardSessions"]}},"/api/v2/dashboard/sessions/{id}/review-decision":{"post":{"operationId":"DashboardSessionsController_reviewDecision","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"tags":["DashboardSessions"]}},"/api/v2/dashboard/sessions/{id}/evidence":{"get":{"operationId":"DashboardEvidenceController_evidence","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["DashboardEvidence"]}},"/api/v2/dashboard/usage":{"get":{"operationId":"DashboardUsageController_usage","parameters":[],"responses":{"200":{"description":""}},"tags":["DashboardUsage"]}},"/api/v2/dashboard/sandbox/personnes":{"post":{"operationId":"DashboardSandboxPersonnesController_seed","parameters":[],"responses":{"201":{"description":""}},"tags":["DashboardSandboxPersonnes"]},"get":{"operationId":"DashboardSandboxPersonnesController_list","parameters":[],"responses":{"200":{"description":""}},"tags":["DashboardSandboxPersonnes"]}},"/api/v2/dashboard/sandbox/personnes/{nni}":{"delete":{"operationId":"DashboardSandboxPersonnesController_remove","parameters":[{"name":"nni","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"204":{"description":""}},"tags":["DashboardSandboxPersonnes"]}},"/api/v2/dashboard/apps":{"get":{"operationId":"DashboardAppsController_list","parameters":[],"responses":{"200":{"description":""}},"summary":"List the org's apps (with key counts per environment)","tags":["dashboard-apps"]},"post":{"operationId":"DashboardAppsController_create","parameters":[],"responses":{"201":{"description":""}},"summary":"Create an app from a preset or by copying another app profile","tags":["dashboard-apps"]}},"/api/v2/dashboard/apps/{id}":{"get":{"operationId":"DashboardAppsController_get","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"summary":"Get one app (with its branding view)","tags":["dashboard-apps"]},"patch":{"operationId":"DashboardAppsController_update","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"summary":"Rename an app or replace its platforms","tags":["dashboard-apps"]}},"/api/v2/dashboard/apps/{id}/archive":{"post":{"operationId":"DashboardAppsController_archive","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"summary":"Archive an app (its keys stop working)","tags":["dashboard-apps"]}},"/api/v2/dashboard/apps/{id}/profile":{"get":{"operationId":"DashboardAppsController_getProfile","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"summary":"The app's current eKYC profile","tags":["dashboard-apps"]},"put":{"operationId":"DashboardAppsController_putProfile","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"summary":"Save a new eKYC profile version (optimistic on expectedVersion)","tags":["dashboard-apps"]}},"/api/v2/dashboard/apps/{id}/profile/versions":{"get":{"operationId":"DashboardAppsController_versions","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"summary":"The app's profile version history (newest first)","tags":["dashboard-apps"]}},"/api/v2/dashboard/apps/{appId}/keys":{"get":{"operationId":"DashboardAppKeysController_list","parameters":[{"name":"appId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"summary":"List an app's API keys (masked)","tags":["dashboard-apps"]},"post":{"operationId":"DashboardAppKeysController_mint","parameters":[{"name":"appId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"summary":"Mint a secret key for this app (secret shown once)","tags":["dashboard-apps"]}},"/api/v2/dashboard/apps/{appId}/keys/{keyId}/revoke":{"post":{"operationId":"DashboardAppKeysController_revoke","parameters":[{"name":"appId","required":true,"in":"path","schema":{"type":"string"}},{"name":"keyId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"summary":"Revoke one of the app's keys (immediate)","tags":["dashboard-apps"]}},"/api/v2/dashboard/apps/{appId}/keys/{keyId}/rotate":{"post":{"operationId":"DashboardAppKeysController_rotate","parameters":[{"name":"appId","required":true,"in":"path","schema":{"type":"string"}},{"name":"keyId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"summary":"Rotate one of the app's keys (30-day grace on the old key)","tags":["dashboard-apps"]}},"/api/v2/dashboard/apps/{appId}/keys/{keyId}":{"patch":{"operationId":"DashboardAppKeysController_update","parameters":[{"name":"appId","required":true,"in":"path","schema":{"type":"string"}},{"name":"keyId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"summary":"Set the IP allowlist of one of the app's keys ([] clears it)","tags":["dashboard-apps"]}},"/api/v2/dashboard/audit":{"get":{"operationId":"AuditReadController_list","parameters":[],"responses":{"200":{"description":""}},"tags":["AuditRead"]}},"/api/v2/dashboard/webhooks":{"get":{"operationId":"DashboardWebhooksController_list","parameters":[],"responses":{"200":{"description":""}},"summary":"List webhook endpoints of the active org/env","tags":["dashboard-webhooks"]},"post":{"operationId":"DashboardWebhooksController_create","parameters":[],"responses":{"201":{"description":""}},"summary":"Create a webhook endpoint (secret shown once)","tags":["dashboard-webhooks"]}},"/api/v2/dashboard/webhooks/event-types":{"get":{"operationId":"DashboardWebhooksController_eventTypes","parameters":[],"responses":{"200":{"description":""}},"summary":"Event types the active org may subscribe to","tags":["dashboard-webhooks"]}},"/api/v2/dashboard/webhooks/deliveries/{deliveryId}/retry":{"post":{"operationId":"DashboardWebhooksController_retry","parameters":[{"name":"deliveryId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"summary":"Retry a failed or dead delivery","tags":["dashboard-webhooks"]}},"/api/v2/dashboard/webhooks/{id}":{"get":{"operationId":"DashboardWebhooksController_get","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"summary":"Get one webhook endpoint","tags":["dashboard-webhooks"]},"patch":{"operationId":"DashboardWebhooksController_update","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"summary":"Update url / events / description / status","tags":["dashboard-webhooks"]},"delete":{"operationId":"DashboardWebhooksController_remove","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"summary":"Delete a webhook endpoint","tags":["dashboard-webhooks"]}},"/api/v2/dashboard/webhooks/{id}/rotate-secret":{"post":{"operationId":"DashboardWebhooksController_rotateSecret","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"summary":"Rotate the signing secret (new secret shown once)","tags":["dashboard-webhooks"]}},"/api/v2/dashboard/webhooks/{id}/test":{"post":{"operationId":"DashboardWebhooksController_sendTest","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"summary":"Send a webhook.test event to this endpoint","tags":["dashboard-webhooks"]}},"/api/v2/dashboard/webhooks/{id}/deliveries":{"get":{"operationId":"DashboardWebhooksController_deliveries","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"name":"page","required":true,"in":"query","schema":{"type":"string"}},{"name":"perPage","required":true,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"summary":"Delivery history of one endpoint (newest first, ≤50 per page)","tags":["dashboard-webhooks"]}},"/api/v2/dashboard/org/branding":{"put":{"operationId":"DashboardOrgSettingsController_putBranding","parameters":[],"responses":{"200":{"description":""}},"summary":"Replace the organization's branding (colours, radius, font)","tags":["dashboard-settings"]}},"/api/v2/dashboard/org/branding/logo-upload":{"post":{"operationId":"DashboardOrgSettingsController_logoUpload","parameters":[],"responses":{"200":{"description":""}},"summary":"Presign a direct upload of a logo (PNG or SVG, up to 200 KB)","tags":["dashboard-settings"]}},"/api/v2/dashboard/org/branding/logo":{"post":{"operationId":"DashboardOrgSettingsController_commitLogo","parameters":[],"responses":{"200":{"description":""}},"summary":"Validate an uploaded logo and set it as the organization logo","tags":["dashboard-settings"]},"delete":{"operationId":"DashboardOrgSettingsController_removeLogo","parameters":[],"responses":{"200":{"description":""}},"summary":"Remove the organization logo","tags":["dashboard-settings"]}},"/api/v2/dashboard/org/retention":{"put":{"operationId":"DashboardOrgSettingsController_putRetention","parameters":[],"responses":{"200":{"description":""}},"summary":"Shorten evidence / personal-data retention (or reset to the default)","tags":["dashboard-settings"]}},"/api/v2/dashboard/org/retention/runs":{"get":{"operationId":"DashboardOrgSettingsController_retentionRuns","parameters":[],"responses":{"200":{"description":""}},"summary":"The last 5 retention runs for this organization and environment","tags":["dashboard-settings"]}},"/api/v2/dashboard/org/billing-details":{"get":{"operationId":"DashboardOrgSettingsController_billingDetails","parameters":[],"responses":{"200":{"description":""}},"summary":"The billing email, address, tax ID and invoice language","tags":["dashboard-settings"]},"patch":{"operationId":"DashboardOrgSettingsController_updateBillingDetails","parameters":[],"responses":{"200":{"description":""}},"summary":"Update the billing email, address, tax ID and invoice language","tags":["dashboard-settings"]}},"/api/v2/dashboard/apps/{id}/branding":{"get":{"operationId":"DashboardAppBrandingController_get","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"summary":"The app's merged branding with the fields it overrides","tags":["dashboard-apps"]},"put":{"operationId":"DashboardAppBrandingController_put","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"summary":"Replace the app's branding override (omitted fields use the org value)","tags":["dashboard-apps"]}},"/api/v2/dashboard/apps/{id}/branding/logo-upload":{"post":{"operationId":"DashboardAppBrandingController_logoUpload","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"summary":"Presign a direct upload of an app logo (PNG or SVG, up to 200 KB)","tags":["dashboard-apps"]}},"/api/v2/dashboard/apps/{id}/branding/logo":{"post":{"operationId":"DashboardAppBrandingController_commitLogo","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"summary":"Validate an uploaded logo and set it as the app logo","tags":["dashboard-apps"]},"delete":{"operationId":"DashboardAppBrandingController_removeLogo","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"summary":"Remove the app logo (the org logo is used again)","tags":["dashboard-apps"]}},"/api/v2/admin/orgs/{id}/environments/{env}/registry-access":{"put":{"operationId":"AdminOrgSettingsController_setRegistryAccess","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"name":"env","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"summary":"Turn the managed registry on or off for one environment (billed)","tags":["admin-org-settings"]}},"/api/v2/admin/orgs/{id}/device-attestation":{"put":{"operationId":"AdminOrgSettingsController_setDeviceAttestation","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"summary":"Set an organization's native device attestation mode (staff)","tags":["admin-org-settings"]}},"/api/v2/admin/orgs/{id}/otp-channels":{"put":{"operationId":"AdminOrgSettingsController_setOtpChannels","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"summary":"Set an organization's phone OTP channels (staff)","tags":["admin-org-settings"]}},"/api/v2/admin/orgs/{id}/retention":{"put":{"operationId":"AdminOrgSettingsController_putRetention","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"summary":"Set an organization's retention within the platform bounds (staff)","tags":["admin-org-settings"]}},"/api/v2/admin/orgs/{id}/branding":{"put":{"operationId":"AdminOrgSettingsController_putBranding","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"summary":"Replace an organization's branding (staff)","tags":["admin-org-settings"]}},"/api/v2/admin/orgs/{id}/branding/logo-upload":{"post":{"operationId":"AdminOrgSettingsController_logoUpload","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"summary":"Presign a direct upload of an organization logo (staff)","tags":["admin-org-settings"]}},"/api/v2/admin/orgs/{id}/branding/logo":{"post":{"operationId":"AdminOrgSettingsController_commitLogo","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"summary":"Validate an uploaded logo and set it as the organization's (staff)","tags":["admin-org-settings"]},"delete":{"operationId":"AdminOrgSettingsController_removeLogo","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"summary":"Remove an organization's logo (staff)","tags":["admin-org-settings"]}},"/api/v2/admin/platform-settings":{"get":{"operationId":"AdminPlatformSettingsController_get","parameters":[],"responses":{"200":{"description":""}},"summary":"Platform settings, the staff org and the last retention dry run","tags":["admin-platform-settings"]},"patch":{"operationId":"AdminPlatformSettingsController_update","parameters":[],"responses":{"200":{"description":""}},"summary":"Update the platform settings","tags":["admin-platform-settings"]}},"/api/v2/admin/platform-settings/otp-destination-blocklist":{"put":{"operationId":"AdminPlatformSettingsController_putOtpDestinationBlocklist","parameters":[],"responses":{"200":{"description":""}},"summary":"Replace the high-risk OTP destination blocklist (staff)","tags":["admin-platform-settings"]}},"/api/v2/admin/voice-clip-sets":{"get":{"operationId":"AdminVoiceClipsController_list","parameters":[],"responses":{"200":{"description":""}},"summary":"Every voice clip set (draft, active, retired)","tags":["admin-voice-clips"]}},"/api/v2/admin/voice-clip-sets/{id}/activate":{"post":{"operationId":"AdminVoiceClipsController_activate","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"summary":"Activate a voice clip set (retires the current one)","tags":["admin-voice-clips"]}},"/api/v2/admin/voice-clip-sets/{id}/retire":{"post":{"operationId":"AdminVoiceClipsController_retire","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"summary":"Retire the active voice clip set (device voice until another is active)","tags":["admin-voice-clips"]}},"/api/v2/dashboard/campaigns":{"get":{"operationId":"DashboardCampaignsController_list","parameters":[],"responses":{"200":{"description":""}},"tags":["DashboardCampaigns"]},"post":{"operationId":"DashboardCampaignsController_create","parameters":[],"responses":{"201":{"description":""}},"tags":["DashboardCampaigns"]}},"/api/v2/dashboard/campaigns/{id}":{"get":{"operationId":"DashboardCampaignsController_detail","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["DashboardCampaigns"]}},"/api/v2/dashboard/campaigns/{id}/rows":{"post":{"operationId":"DashboardCampaignsController_importRows","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"tags":["DashboardCampaigns"]}},"/api/v2/dashboard/campaigns/{id}/export":{"get":{"operationId":"DashboardCampaignsController_export","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["DashboardCampaigns"]}},"/api/v2/dashboard/campaigns/{id}/send":{"post":{"operationId":"DashboardCampaignsController_send","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"tags":["DashboardCampaigns"]}},"/api/v2/dashboard/campaigns/{id}/resend-failed":{"post":{"operationId":"DashboardCampaignsController_resendFailed","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"tags":["DashboardCampaigns"]}},"/api/v2/dashboard/campaigns/{id}/archive":{"post":{"operationId":"DashboardCampaignsController_archive","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"tags":["DashboardCampaigns"]}},"/api/v2/admin/api-keys":{"post":{"operationId":"AdminApiKeysController_mint","parameters":[],"responses":{"201":{"description":""}},"tags":["AdminApiKeys"]},"get":{"operationId":"AdminApiKeysController_list","parameters":[],"responses":{"200":{"description":""}},"tags":["AdminApiKeys"]}},"/api/v2/admin/api-keys/{id}/revoke":{"post":{"operationId":"AdminApiKeysController_revoke","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":""}},"tags":["AdminApiKeys"]}},"/api/v2/__alive":{"get":{"operationId":"HealthController_alive","parameters":[],"responses":{"200":{"description":""}},"tags":["Health"]}},"/health/live":{"get":{"operationId":"HealthController_live","parameters":[],"responses":{"200":{"description":""}},"tags":["Health"]}},"/health/ready":{"get":{"operationId":"HealthController_ready","parameters":[],"responses":{"200":{"description":"The Health Check is successful","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","example":"ok"},"info":{"type":"object","example":{"database":{"status":"up"}},"additionalProperties":{"type":"object","required":["status"],"properties":{"status":{"type":"string"}},"additionalProperties":true},"nullable":true},"error":{"type":"object","example":{},"additionalProperties":{"type":"object","required":["status"],"properties":{"status":{"type":"string"}},"additionalProperties":true},"nullable":true},"details":{"type":"object","example":{"database":{"status":"up"}},"additionalProperties":{"type":"object","required":["status"],"properties":{"status":{"type":"string"}},"additionalProperties":true}}}}}}},"503":{"description":"The Health Check is not successful","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","example":"error"},"info":{"type":"object","example":{"database":{"status":"up"}},"additionalProperties":{"type":"object","required":["status"],"properties":{"status":{"type":"string"}},"additionalProperties":true},"nullable":true},"error":{"type":"object","example":{"redis":{"status":"down","message":"Could not connect"}},"additionalProperties":{"type":"object","required":["status"],"properties":{"status":{"type":"string"}},"additionalProperties":true},"nullable":true},"details":{"type":"object","example":{"database":{"status":"up"},"redis":{"status":"down","message":"Could not connect"}},"additionalProperties":{"type":"object","required":["status"],"properties":{"status":{"type":"string"}},"additionalProperties":true}}}}}}}},"tags":["Health"]}},"/api/v2/readyz":{"get":{"operationId":"HealthController_readyz","parameters":[],"responses":{"200":{"description":"The Health Check is successful","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","example":"ok"},"info":{"type":"object","example":{"database":{"status":"up"}},"additionalProperties":{"type":"object","required":["status"],"properties":{"status":{"type":"string"}},"additionalProperties":true},"nullable":true},"error":{"type":"object","example":{},"additionalProperties":{"type":"object","required":["status"],"properties":{"status":{"type":"string"}},"additionalProperties":true},"nullable":true},"details":{"type":"object","example":{"database":{"status":"up"}},"additionalProperties":{"type":"object","required":["status"],"properties":{"status":{"type":"string"}},"additionalProperties":true}}}}}}},"503":{"description":"The Health Check is not successful","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","example":"error"},"info":{"type":"object","example":{"database":{"status":"up"}},"additionalProperties":{"type":"object","required":["status"],"properties":{"status":{"type":"string"}},"additionalProperties":true},"nullable":true},"error":{"type":"object","example":{"redis":{"status":"down","message":"Could not connect"}},"additionalProperties":{"type":"object","required":["status"],"properties":{"status":{"type":"string"}},"additionalProperties":true},"nullable":true},"details":{"type":"object","example":{"database":{"status":"up"},"redis":{"status":"down","message":"Could not connect"}},"additionalProperties":{"type":"object","required":["status"],"properties":{"status":{"type":"string"}},"additionalProperties":true}}}}}}}},"tags":["Health"]}}},"info":{"title":"identity-backend","description":"Sekyro AI platform API","version":"staging","contact":{}},"tags":[],"servers":[],"components":{"securitySchemes":{"bearer":{"scheme":"bearer","bearerFormat":"JWT","type":"http"},"session-token":{"type":"apiKey","in":"header","name":"x-session-token","description":"Verification-session client token — a short code (`xxx-xxxx-xxx`) minted by POST /sessions (legacy `cst_…` tokens are still accepted during their TTL). Scoped to a single session; expires with it."}},"schemas":{"PartnerErrorDetailInputFieldMisplaced":{"type":"object","properties":{"code":{"type":"string","enum":["input_field_misplaced"]},"message":{"type":"string","example":"`nni` must be sent as `input.nni` — session input fields belong under `input`"},"request_id":{"type":"string","example":"01907f4e-3b1a-7c2d-9e8f-0a1b2c3d4e5f"}},"required":["code","message","request_id"]},"PartnerErrorInputFieldMisplaced":{"type":"object","properties":{"status":{"type":"string","enum":["error"]},"error":{"$ref":"#/components/schemas/PartnerErrorDetailInputFieldMisplaced"}},"required":["status","error"]},"PartnerErrorDetailOrgNotFound":{"type":"object","properties":{"code":{"type":"string","enum":["org_not_found"]},"message":{"type":"string","example":"Organisation not found"},"request_id":{"type":"string","example":"01907f4e-3b1a-7c2d-9e8f-0a1b2c3d4e5f"}},"required":["code","message","request_id"]},"PartnerErrorOrgNotFound":{"type":"object","properties":{"status":{"type":"string","enum":["error"]},"error":{"$ref":"#/components/schemas/PartnerErrorDetailOrgNotFound"}},"required":["status","error"]},"InternalErrorOrgNotFound":{"type":"object","properties":{"code":{"type":"string","enum":["org_not_found"]},"message":{"type":"string","example":"Organisation not found"},"traceId":{"type":"string","example":"00000000000000000000000000000000"}},"required":["code","message"]},"PartnerErrorDetailPaymentRequired":{"type":"object","properties":{"code":{"type":"string","enum":["payment_required"]},"message":{"type":"string","example":"Active subscription required"},"request_id":{"type":"string","example":"01907f4e-3b1a-7c2d-9e8f-0a1b2c3d4e5f"}},"required":["code","message","request_id"]},"PartnerErrorPaymentRequired":{"type":"object","properties":{"status":{"type":"string","enum":["error"]},"error":{"$ref":"#/components/schemas/PartnerErrorDetailPaymentRequired"}},"required":["status","error"]},"InternalErrorPaymentRequired":{"type":"object","properties":{"code":{"type":"string","enum":["payment_required"]},"message":{"type":"string","example":"Active subscription required"},"traceId":{"type":"string","example":"00000000000000000000000000000000"}},"required":["code","message"]},"PartnerErrorDetailIdempotencyConflict":{"type":"object","properties":{"code":{"type":"string","enum":["idempotency_conflict"]},"message":{"type":"string","example":"Idempotency key already used with different request parameters"},"request_id":{"type":"string","example":"01907f4e-3b1a-7c2d-9e8f-0a1b2c3d4e5f"}},"required":["code","message","request_id"]},"PartnerErrorIdempotencyConflict":{"type":"object","properties":{"status":{"type":"string","enum":["error"]},"error":{"$ref":"#/components/schemas/PartnerErrorDetailIdempotencyConflict"}},"required":["status","error"]},"InternalErrorIdempotencyConflict":{"type":"object","properties":{"code":{"type":"string","enum":["idempotency_conflict"]},"message":{"type":"string","example":"Idempotency key already used with different request parameters"},"traceId":{"type":"string","example":"00000000000000000000000000000000"}},"required":["code","message"]}}}}