initialed.ai API (v1)

The initialed.ai API starts contract reviews and drafts for a signed-in initialed.ai account and reports their results. It powers the Zapier integration. Results carry a summary and a link; the full review or draft opens on initialed.ai.

Base URL

https://api.initialed.ai

Requests and responses are JSON. Every error is { "error": "<code>", "message": "<text>" }.

Authentication

OAuth 2.1 (authorization code with PKCE, plus refresh tokens). The user signs in to initialed.ai and approves the connecting app; requests then send Authorization: Bearer <access token>.

  • Authorize: https://api.initialed.ai/oauth/authorize
  • Token: https://api.initialed.ai/oauth/token

Only tokens issued to an approved app are accepted. To register an app, email hello@initialed.ai.

Endpoints

GET /v1/me

The connected account.

Returns: { id, email, surface }

POST /v1/reviews

Start a contract review. Provide exactly one of file_base64 (a PDF or .docx, up to 25 MB), file_url or text. The review runs to completion without further input.

Body: { file_base64 | file_url | text, file_name?, user_party, concerns?, depth?: "full" | "deal_breakers", callback_url? }

Returns: 201 with a Review (status "processing")

GET /v1/reviews/{id}

One review.

Returns: a Review

GET /v1/reviews?status=completed&limit=10

Recently completed reviews, newest first (at most 10).

Returns: { items: Review[] }

POST /v1/drafts

Start a contract draft from a plain-language request. Anything not provided becomes a placeholder to fill in on initialed.ai.

Body: { request, state?, details?, callback_url? }

Returns: 201 with a Draft (status "processing")

GET /v1/drafts/{id}

One draft.

Returns: a Draft

GET /v1/drafts?status=completed&limit=10

Recently completed drafts, newest first (at most 10).

Returns: { items: Draft[] }

POST /v1/hooks

Subscribe a webhook to review.completed or draft.completed (REST hooks).

Body: { event: "review.completed" | "draft.completed", target_url }

Returns: 201 { id, event }

DELETE /v1/hooks/{id}

Remove a webhook subscription.

Returns: 204, or 404 if unknown

Review and Draft objects

A Review has id, status (processing, completed, failed or unsupported), the document name and type, a summary, risk counts by severity, up to three top risks, the counts held back for the full report, an error message when it failed, and a link to the full review on initialed.ai.

On a free account the preview never includes a high-severity risk; those are counted in the held-back totals and shown in the full report.

A Draft has id, status (processing, needs_input, completed, failed, declined or not_available), its title and document type, the original request, an error message when it failed, and a link to the draft on initialed.ai.

Webhooks

  • When a review or draft finishes, initialed.ai POSTs { event, id, status } to each subscribed URL. Read the item with the GET endpoint for its details.
  • Subscriptions fire on successful completion. A callback_url given when starting a review or draft fires once on any final status.
  • A 410 response removes the subscription. Webhook targets must be on an approved host.

Limits

  • 60 requests per minute per account.
  • 4 new reviews or drafts per minute, and 20 of each per day.
  • 25 webhooks per account.
  • Each review uses one review credit, the same as on the website.

Errors

HTTPCodes
400invalid_input, invalid_json, invalid_callback_url, invalid_target_url
401unauthorized (missing or expired token)
402quota_exceeded (no review credits left on the account)
403account_required
404not_found
413file_too_large (over 25 MB)
415unsupported_file (only PDF and .docx)
422file_download_failed
429rate_limited, webhook_limit
500 / 503failed, internal, busy

Support

Email hello@initialed.ai.

initialed is not a law firm and does not give legal advice.