Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we
store it to create your key and to recognise you if you sign in with another
provider. See our Privacy Policy and
Terms.
openapi: 3.2.0
info:
title: Deliverd Dev Drafts API
version: 1.0.0
x-refined-note:
- x-source differs across the merged source definitions and was not carried
description: 'Operations tagged Drafts across 2 of this provider''s published API definitions: deliverd-dev-openapi.json, deliverd-dev-openapi.yml. Each path carries the servers of the definition it was published in.'
servers:
- url: https://deliverd.dev
description: 'Deliverd REST API (paths carry the /api/v1 prefix; https://deliverd.dev/llms.txt: "REST API: https://deliverd.dev/api/v1")'
tags:
- name: Drafts
paths:
/api/v1/drafts:
post:
summary: Publish now, claim later — no credential
description: For an AI with no Deliverd connection. Send an HTML document (JSON `{ html, title?, sourceTool? }` or a raw `text/html` body) and give the person the `claimUrl` that comes back. They sign in, or create a free account, and publish it with one click; it is private to them until they share it. Nothing is served from a draft before then. Drafts are scanned for credentials, capped at 2 MB, rate limited per address, single use, and expire after 24 hours. Answers `413 too_large`, `422 scan_blocked` or `429 rate_limited` when refused.
security: []
requestBody:
content:
application/json:
schema:
type: object
properties:
html:
type: string
description: The complete HTML document.
title:
type: string
maxLength: 300
sourceTool:
type: string
maxLength: 100
description: Which AI or tool produced it.
required:
- html
text/html:
schema:
type: string
responses:
'201':
description: Draft stored; hand the claim link to the person
content:
application/json:
schema:
type: object
properties:
id:
type: string
format: uuid
claimUrl:
type: string
expiresAt:
type: string
warnings:
type: array
items:
type: string
next:
type: string
description: What to tell the person, in words.
required:
- id
- claimUrl
- expiresAt
- warnings
- next
tags:
- Drafts
operationId: postApiV1Drafts
x-operation-id-source: derived
components:
securitySchemes:
bearerAuth:
type: http
scheme: bearer
description: 'API key (dlv_…) created in Settings → API tokens, or an OAuth access token (dlvo_…). Every route below can answer `401 auth_error` — the credential was not accepted — or `403 insufficient_scope`, which is a different thing: the credential is fine and was not issued with the scope this route needs. Reissue it with that scope rather than replacing it with another of the same ones. Older clients may still branch on `auth_error` for both.'
x-refined-from:
- deliverd-dev-openapi.json
- deliverd-dev-openapi.yml