Developer platform / v1

Verification as infrastructure.

A strict JSON contract for text, atomic claims, documents, batches and OpenAI-compatible completions—with request IDs, versioned policy records and explicit failure states.

Quickstart

API base: https://api.mephistopheles.ai/v1. Authenticate server-to-server requests with a key created in your account. The secret is displayed once and stored only as a hash.

curl --request POST \
  --url https://api.mephistopheles.ai/v1/verifications \
	  --header 'Authorization: Bearer mph_test_REDACTED' \
	  --header 'Idempotency-Key: 0198-example-request-id' \
  --header 'Content-Type: application/json' \
  --header 'X-Request-ID: your-trace-id' \
  --data '{
    "content": "The statement to examine.",
    "profile": "general_web",
    "mode": "thorough",
    "retention_hours": 24
  }'

Result contract

Each result includes aligned claims, five verdict states, evidence relationships and passages, coverage, materiality-weighted risk, abstention, policy versions, retrieval time and engine configuration. Unknown fields are rejected on write endpoints.

VerdictMeaning
supportedThe active policy obtained sufficient suitable evidence.
contradictedSuitable evidence directly conflicts with the claim.
disputedCredible evidence conflicts or context prevents a single conclusion.
unverifiableThe policy did not obtain sufficient suitable evidence.
not_checkableThe content is outside factual verification.

Complete v1 surface

The table is generated from the same route definitions that produce the OpenAPI 3.1 document, so unavailable or renamed operations cannot silently remain in this page.

MethodPathPurpose
POST/v1/verificationsCreate Verification
POST/v1/claims/verifyVerify Claim Direct
POST/v1/batchesBatch Verify
GET/v1/verifications/{verification_id}Get Verification
GET/v1/verifications/{verification_id}/exportExport Verification
GET/v1/policiesPolicies
GET/v1/modelsModels
GET/v1/engineEngine Versions
POST/v1/documentsSubmit Document
GET/v1/documents/{job_id}Document Status
GET/v1/documents/{job_id}/artifacts/{artifact_id}Document Artifact
POST/v1/documents/{job_id}/cancelCancel Document
POST/v1/documents/{job_id}/retryRetry Document
DELETE/v1/sessions/{session_id}Revoke Session
DELETE/v1/sessionsRevoke All Sessions
POST/v1/billing/checkoutBilling Checkout
POST/v1/billing/portalBilling Portal
POST/v1/api-keysApi Key Create
DELETE/v1/api-keys/{key_id}Revoke Api Key
POST/v1/api-keys/{key_id}/rotateRotate Api Key
GET/v1/organizationsList Organizations
POST/v1/organizationsCreate Organization
PATCH/v1/organizations/{organization_id}/settingsUpdate Organization Settings
GET/v1/organizations/{organization_id}/policiesList Organization Policies
POST/v1/organizations/{organization_id}/policiesCreate Organization Policy
DELETE/v1/organizations/{organization_id}/policies/{policy_id}Deactivate Organization Policy
GET/v1/organizations/{organization_id}/usageOrganization Usage
GET/v1/usage/estimateUsage Estimate
GET/v1/organizations/{organization_id}/audit-eventsOrganization Audit Events
GET/v1/organizations/{organization_id}/membersList Members
POST/v1/organizations/{organization_id}/membersAdd Member
POST/v1/organizations/{organization_id}/projectsCreate Project
GET/v1/organizations/{organization_id}/source-setsList Source Sets
POST/v1/organizations/{organization_id}/source-setsCreate Source Set
POST/v1/organizations/{organization_id}/source-sets/{source_set_id}/resourcesAdd Source Resource
DELETE/v1/organizations/{organization_id}/source-sets/{source_set_id}/resources/{resource_id}Disable Source Resource
GET/v1/organizations/{organization_id}/provider-connectionsList Provider Connections
POST/v1/organizations/{organization_id}/provider-connectionsCreate Provider Connection
POST/v1/organizations/{organization_id}/provider-connections/{connection_id}/rotateRotate Provider Connection
DELETE/v1/organizations/{organization_id}/provider-connections/{connection_id}Revoke Provider Connection
POST/v1/webhooksCreate Webhook
DELETE/v1/webhooks/{webhook_id}Disable Webhook
GET/v1/reviewsReview Queue
POST/v1/verifications/{verification_id}/reviewsReview Claim
POST/v1/chat/completionsChat Completions

Current model registry

Registry version 2026-08-28. Availability and retirement are explicit; applications should not hard-code a provider’s display name.

IDProviderStatus
OpenAIavailable
Anthropicavailable
Googleavailable
xAIavailable
DeepSeekavailable

Errors, limits and idempotency

Every response has an X-Request-ID. Metered operations also return RateLimit-Limit, RateLimit-Remaining and RateLimit-Reset. API errors use a stable code, message and request ID. Text, direct-claim, batch, chat-completion and document creation accept a stable Idempotency-Key for safe network retries. The same owner, endpoint, key and request replay the completed result; changed request material conflicts, and in-flight work returns Retry-After. Batch children are replayed independently if a later item fails. Document replay returns the original encrypted owner token. Secret-creation endpoints deliberately do not replay API-key or webhook secrets after their one-time response.

OpenAI-compatible streaming

POST /chat/completions accepts the compatible message shape. In streaming mode, the completion event arrives first and is explicitly marked unverified; the verification event follows when evidence review completes.

Provider credentials

Organisation owners and admins can create, rotate and revoke encrypted provider connections. A credential is decrypted only into request-scoped memory, propagated into bounded verification workers, excluded from logs and response objects, then discarded when the request context closes. The browser extension stores no provider secret. Direct browser-to-provider OAuth is preferred when a provider offers a suitable official flow.

Security boundary

Keep API keys on your server. Browser clients should use the same-origin workbench or extension flow. Webhook destinations, when configured, are restricted to public HTTPS endpoints and deliveries are signed. See the security page and data-flow disclosure.