---
title: API overview
description: One key, one call to run a workflow on a packet, one call to check on the case. What the API is for, and what it is not.
section: API
order: 1
---

The API exposes what the product does: cases, workflows, filing and the ledger. You hand over a packet and name a workflow. Sheaf files every document against the case's expected document list and tells you when the case has landed.

## What stays with Sheaf

The expected document list, the document schemas and the workflow live in your organization, versioned, and a call names them by id. Nothing about what to look for travels with the request. Only the file does. What your team teaches the platform stays taught, and your integration stays a few lines.

## The shape of an integration

1. [Authenticate](/docs/api/authentication) with an organization key.
2. [Run a workflow](/docs/api/run-a-workflow) on a packet. One call.
3. [Read the results](/docs/api/reading-results) by polling the case, or let [webhooks](/docs/api/webhooks) tell you.

The [quickstart](/docs/api/quickstart) is those three steps as commands.

## Base URL and format

`https://sheaf.us/api`. JSON in and out. Files are sent as `multipart/form-data`.

## The contract

The exact contract is OpenAPI, served at [/api/openapi.json](/api/openapi.json) and readable without a key. Generate a typed client in your language from it. There are no hand-written SDKs for an API this small.

Use of the API is covered by the [terms](/terms.html), which have a section on keys, agents and webhooks.

## What it is not

There is no parse or extract call on a loose file with no case around it. If that is all you need, a parsing API is the right purchase, and the [comparison pages](/compare.html) say so.
