# AI Content Drop Drops API

**Canonical:** https://apis.io/apis/aicontentdrop-com/aicontentdrop-com-drops-api/  
**Provider:** AI Content Drop — https://apis.io/providers/aicontentdrop-com/  
**Base URL:** https://aicontentdrop.com  
**Documentation:** https://aicontentdrop.com/developers

AI Content Drop Drops API is one of 7 APIs that [AI Content Drop](https://apis.io/providers/aicontentdrop-com/) publishes on the [APIs.io](https://apis.io/) network, described by a machine-readable OpenAPI specification. This API exposes 6 JSON Schema definitions. Tagged areas include Drops. The published artifact set on APIs.io includes an OpenAPI specification and 6 JSON Schemas.

A drop is one piece of work that runs from research through concepts, a plan, generation and assembly without the caller moving it between endpoints. Available to accounts enabled for drops; every path here answers `404 not_found` on an account that is not, so an unlisted caller cannot tell the surface apart from one that does not exist. **One verb.** POST /v1/engine/chat is the only endpoint that does work: research, concepts, a storyboard, a board, a render or a scheduled post are all asked for in words, and the engine picks the phase itself. The rest read a drop or a reference, answer a question, decide a spend, act on one thing a drop made, or stop it. **Nothing spends without a decision.** A step that would charge credits is priced with a signed quote and parked until POST /v1/engine/runs/{id}/approve answers it. The quote fixes the credit ceiling and lapses after a few minutes; a lapsed quote is refused and the engine prices the step again by itself, so read the drop for the current `quote_id` rather than asking for the step a second time. Credits are charged only when a step succeeds. A request that could release a charge needs an API key with the `generations:create` scope, and one without it is answered 403 `INSUFFICIENT_SCOPE`. Starting a drop needs the Professional plan or higher (402 `PLAN_REQUIRED`), and messages and new drops are counted per account per day (429 `DAILY_LIMIT`, with `reset_at`). `X-Sandbox: true` is refused on every path here with 400 `SANDBOX_UNSUPPORTED`: opening a drop costs nothing by itself, so there is nothing to rehearse. **From a reference.** POST /v1/engine/analyze reads an image or a clip the caller has the rights to into words: the shots, the cast, the look, any lines, and a reference class. It costs no credits, is capped per account per day, needs `canvas:write` on an API key, and never returns the media (the file is deleted once it is read); GET /v1/engine/references/{id} reads the words back. An image or a clip of up to 30 seconds is answered with the words; a longer clip is answered 202 and read in the background, and GET /v1/engine/references/{id} reaches `ready`, or `failed` with `error_message`, by itself. To make something from it, send the first message to POST /v1/engine/chat with `brief.reference` set to `{"kind": "upload", "url": <reference_url>}`: the drop takes the reading as its first step, at no charge. A drop started while a long clip is still being read waits for that reading, and reads the clip itself if the background reading was lost. Sending the `facts` back as `brief.reference_facts` skips that step; both `brief.reference_class` and `brief.reference_facts` are dropped while reference reading is off for the account. `features.reference_intake` on GET /v1/engine/lanes says whether this account may send references. **Reviewed pieces.** Where `features.judge` is on, each finished video, image and ad carries `review`: a 0-100 score, a verdict, the reasons and the notes. A retry the review proposes is an ordinary step in `tasks`, with `retry_of` naming the step it makes again; it waits for POST /v1/engine/runs/{id}/approve with its own quote like every other step, and `review.retry_task_id` names it. When there is no retry step, `review.offer` names another model by its product label, and the piece's `actions` list carries the matching `try-model-…` action for POST /v1/engine/runs/{id}/actions/{actionId}. **Live narration.** Two routes answer `text/event-stream` and are not listed as JSON operations, because a function-calling client built from this document would wait on them forever: POST /v1/engine/chat with any Accept other than `application/json`, and GET /v1/engine/runs/{id}/stream, which re-attaches to a drop already in flight and closes by itself after 30 minutes. Both emit the same events (`started`, `phase`, `thinking`, `status`, `tool_start`, `tool_progress`, `tool_complete`, `artifact_ready`, `answer_delta`, `answer_reset`, `questions`, `approval_required`, `followups`, `error`, `done`); a lost connection never cancels a drop. A browser can follow a drop live at GET /v1/engine/runs/{id}/stream (text/event-stream); agents send `Accept: application/json` to POST /v1/engine/chat and poll getDrop (GET /v1/engine/runs/{id}).

## Operations (19)

| Method | Path | Summary |
|---|---|---|
| POST | `/v1/engine/chat` | Say the next thing to a drop |
| GET | `/v1/engine/lanes` | List the recipes a drop can follow |
| POST | `/v1/engine/analyze` | Read a reference into words |
| POST | `/v1/engine/references` | Store and read a reference |
| GET | `/v1/engine/references/{id}` | Read what was seen in a reference |
| GET | `/v1/engine/runs` | List the account's drops |
| POST | `/v1/engine/runs` | Start a drop |
| POST | `/v1/engine/runs/propose` | Read a page into a proposed brief |
| GET | `/v1/engine/runs/{id}` | Read one drop in full |
| PATCH | `/v1/engine/runs/{id}` | Rename a drop or change its credit ceiling |
| DELETE | `/v1/engine/runs/{id}` | Delete a drop |
| POST | `/v1/engine/runs/{id}/answer` | Answer the questions a drop asked |
| POST | `/v1/engine/runs/{id}/approve` | Answer the decision a drop is waiting on |
| POST | `/v1/engine/runs/{id}/interject` | Steer a drop that is already working |
| POST | `/v1/engine/runs/{id}/actions/{actionId}` | Run one action on something a drop made |
| POST | `/v1/engine/runs/{id}/stop` | Stop a drop |
| POST | `/v1/engine/runs/{id}/reference-class` | Change a drop's reference class |
| POST | `/v1/engine/runs/{id}/share` | Mint a public link for a drop |
| DELETE | `/v1/engine/runs/{id}/share` | Revoke a drop's public link |

## Machine-readable artifacts (7)

- **OpenAPI** — https://artifacts.apis.io/aicontentdrop-com/openapi/aicontentdrop-com-drops-api-openapi.yml
- **JSONSchema** — https://artifacts.apis.io/aicontentdrop-com/json-schema/aicontentdrop-com-plans-schema.json
- **JSONSchema** — https://artifacts.apis.io/aicontentdrop-com/json-schema/aicontentdrop-com-drop-brief-schema.json
- **JSONSchema** — https://artifacts.apis.io/aicontentdrop-com/json-schema/aicontentdrop-com-signup-initiated-schema.json
- **JSONSchema** — https://artifacts.apis.io/aicontentdrop-com/json-schema/aicontentdrop-com-drop-proposal-schema.json
- **JSONSchema** — https://artifacts.apis.io/aicontentdrop-com/json-schema/aicontentdrop-com-agent-registration-schema.json
- **JSONSchema** — https://artifacts.apis.io/aicontentdrop-com/json-schema/aicontentdrop-com-drop-lanes-schema.json

## Other AI Content Drop APIs (6)

- [AI Content Drop Account API](https://apis.io/apis/aicontentdrop-com/aicontentdrop-com-account-api/)
- [AI Content Drop Authentication API](https://apis.io/apis/aicontentdrop-com/aicontentdrop-com-authentication-api/)
- [AI Content Drop Batch API](https://apis.io/apis/aicontentdrop-com/aicontentdrop-com-batch-api/)
- [AI Content Drop Discovery API](https://apis.io/apis/aicontentdrop-com/aicontentdrop-com-discovery-api/)
- [AI Content Drop Generation API](https://apis.io/apis/aicontentdrop-com/aicontentdrop-com-generation-api/)
- [AI Content Drop Models API](https://apis.io/apis/aicontentdrop-com/aicontentdrop-com-models-api/)

## Tags

Drops

---

Profiled by [API Evangelist](https://apievangelist.com) and published on [APIs.io](https://apis.io/apis/aicontentdrop-com/aicontentdrop-com-drops-api/). The API's provider profile, Kin Score and agent-readiness rating are at https://apis.io/providers/aicontentdrop-com/.
