SteveSteve

External API Overview

What integrators can build with Steve's live API-keyed HTTP surface.

Steve's external API is a headless workflow processing and submission review platform.

At a high level, an integration can:

  1. Discover which workflows its company is allowed to use.
  2. Create a session and upload files directly to Cloudflare R2.
  3. Submit the session for asynchronous processing.
  4. Receive completion via webhook or poll the session job endpoint.
  5. Read the resulting submission, resolve fraud matches, and approve, reject, or cancel it.

Namespace

/api/v1

Every endpoint in this namespace requires:

Authorization: Bearer aok_<key>

Endpoint map

Workflows

EndpointPurpose
GET /api/v1/workflowsList workflows accessible to the authenticated company
GET /api/v1/workflows/{slug}Read the currently published workflow summary
GET /api/v1/workflows/{slug}/versions/{version}Read the immutable upload and output contract for one workflow version
POST /api/v1/workflows/{slug}/sessionsCreate an upload session and receive pre-signed R2 URLs
POST /api/v1/workflows/{slug}/sessions/{sessionId}/submitQueue a session for processing

Session utilities

EndpointPurpose
GET /api/v1/jobs/{sessionId}Poll asynchronous session state and the current business outcome
POST /api/v1/webhooks/testVerify webhook reachability before enabling production deliveries
GET /api/v1/companiesList active companies for setup or migration tooling

Submission review

EndpointPurpose
GET /api/v1/submissionsList submissions visible to the authenticated company
GET /api/v1/submissions/{submissionId}Fetch full submission detail, files, fraud matches, and event history
POST /api/v1/submissions/{submissionId}/approveApprove a submission in review
POST /api/v1/submissions/{submissionId}/rejectReject a submission in review
POST /api/v1/submissions/{submissionId}/cancelCancel a submission before it is approved or synced

Fraud

EndpointPurpose
GET /api/v1/submissions/{submissionId}/fraud-matchesInspect duplicate or suspicious match candidates
POST /api/v1/submissions/{submissionId}/fraud-matches/{matchId}/resolveResolve an individual fraud match

Contract boundaries

  • This is a server-to-server API. Do not embed Steve API keys in browsers or mobile apps.
  • The API is company-scoped. A key only sees workflows and submissions for the company attached to that key.
  • Workflow outputs are versioned. Use the workflow version endpoint when you need a stable machine-readable contract.
  • Workflow authoring, API key self-service, company management, and admin-only routes are not part of this external contract.
  • The file upload step is direct-to-R2. Steve coordinates the session, not the file transfer itself.
  • All body field names are camelCase. All body timestamps are ISO 8601 strings.
  • Every non-2xx response uses RFC 9457 application/problem+json.

On this page