# VEED API > The VEED API gives you programmatic access to VEED's AI video models over a simple REST interface. Every page linked below is Markdown. On the site, append `.md` to a docs, pricing or schema page's URL for the same. ## Start here - [Quickstart](https://api.veed.io/docs/quickstart.md) — get a key, submit a job, read the result - [Core concepts](https://api.veed.io/docs/concepts.md) — authentication, the job lifecycle, errors, media - [Media retention](https://api.veed.io/docs/media-retention.md) — how long result URLs and stored request bodies last - [Accounts, billing and support](https://api.veed.io/docs/accounts.md) — the API workspace, credits, content rules, and how to reach support ## Guides - [Getting started with the Node SDK](https://api.veed.io/docs/guides/getting-started-node.md) — Install the SDK, submit your first job, and poll it to completion — the submit-and-poll loop every VEED model shares. - [Getting started with the Go SDK](https://api.veed.io/docs/guides/getting-started-go.md) — Install the SDK, submit your first job, and poll it to completion — the submit-and-poll loop every VEED model shares. - [Choosing and using a lipsync model](https://api.veed.io/docs/guides/lipsync.md) — Fabric 1.0 for an image that talks, Lipsync 2.0 for new audio on existing footage — what each takes, and how to get good results. - [Removing a video background](https://api.veed.io/docs/guides/background-removal.md) — Choose between Standard, Fast and Green screen, pick an output codec, and get clean edges. - [Cleaning speech audio](https://api.veed.io/docs/guides/clean-audio.md) — Remove background noise from speech, then tune how much is removed and how loud the result is. - [Dubbing a video into another language](https://api.veed.io/docs/guides/dubbing.md) — Translate the speech in a video, keep each speaker's voice, and choose between Standard and Pro. ## Models - [Clean Audio](https://api.veed.io/docs/api/post-v1-clean-audio.md) — Remove background noise from speech, keeping quiet and distant words intact. - [Dubbing](https://api.veed.io/docs/api/post-v1-dubbing-pro.md) — Translate the speech in a video into another language and lip-sync the speakers to it. - [Fabric 1.0](https://api.veed.io/docs/api/post-v1-fabric-1-0.md) — Turn an image and an audio track into a talking, lip-synced video. - [Lipsync 2.0](https://api.veed.io/docs/api/post-v1-lipsync-2-0.md) — Re-sync an existing video to a new audio track. - [Video Background Removal](https://api.veed.io/docs/api/post-v1-video-background-removal.md) — Cut the background out of any video. ## Endpoints - `POST /v1/clean-audio` — Submit a clean audio job [reference](https://api.veed.io/docs/api/post-v1-clean-audio.md) - `GET /v1/clean-audio/{job_id}` — Get a clean audio job [reference](https://api.veed.io/docs/api/get-v1-clean-audio-job-id.md) - `POST /v1/clean-audio-video` — Submit a clean audio (video) job [reference](https://api.veed.io/docs/api/post-v1-clean-audio-video.md) - `GET /v1/clean-audio-video/{job_id}` — Get a clean audio (video) job [reference](https://api.veed.io/docs/api/get-v1-clean-audio-video-job-id.md) - `POST /v1/dubbing` — Submit a dubbing job [reference](https://api.veed.io/docs/api/post-v1-dubbing.md) - `GET /v1/dubbing/{job_id}` — Get a dubbing job [reference](https://api.veed.io/docs/api/get-v1-dubbing-job-id.md) - `POST /v1/dubbing-pro` — Submit a dubbing pro job [reference](https://api.veed.io/docs/api/post-v1-dubbing-pro.md) - `GET /v1/dubbing-pro/{job_id}` — Get a dubbing pro job [reference](https://api.veed.io/docs/api/get-v1-dubbing-pro-job-id.md) - `POST /v1/fabric-1.0` — Submit a fabric-1.0 job [reference](https://api.veed.io/docs/api/post-v1-fabric-1-0.md) - `GET /v1/fabric-1.0/{job_id}` — Get a fabric-1.0 job [reference](https://api.veed.io/docs/api/get-v1-fabric-1-0-job-id.md) - `POST /v1/lipsync-2.0` — Submit a Lipsync 2.0 job [reference](https://api.veed.io/docs/api/post-v1-lipsync-2-0.md) - `GET /v1/lipsync-2.0/{job_id}` — Get a Lipsync 2.0 job [reference](https://api.veed.io/docs/api/get-v1-lipsync-2-0-job-id.md) - `POST /v1/video-background-removal` — Submit a video background removal job [reference](https://api.veed.io/docs/api/post-v1-video-background-removal.md) - `GET /v1/video-background-removal/{job_id}` — Get a video background removal job [reference](https://api.veed.io/docs/api/get-v1-video-background-removal-job-id.md) - `POST /v1/video-background-removal-fast` — Submit a video background removal (fast) job [reference](https://api.veed.io/docs/api/post-v1-video-background-removal-fast.md) - `GET /v1/video-background-removal-fast/{job_id}` — Get a video background removal (fast) job [reference](https://api.veed.io/docs/api/get-v1-video-background-removal-fast-job-id.md) - `POST /v1/video-background-removal-green-screen` — Submit a video background removal (green screen) job [reference](https://api.veed.io/docs/api/post-v1-video-background-removal-green-screen.md) - `GET /v1/video-background-removal-green-screen/{job_id}` — Get a video background removal (green screen) job [reference](https://api.veed.io/docs/api/get-v1-video-background-removal-green-screen-job-id.md) ## Authentication Send the workspace API key as a bearer token on every request: `Authorization: Bearer $VEED_API_KEY`. A request without a valid key is rejected with `401` and the code `unauthenticated`. ## The job lifecycle `POST` returns `202 Accepted` with a `job_id` and status `PROCESSING`. `GET` the job until `status` is one of `PROCESSING, COMPLETED, FAILED, CANCELLED`. Only `COMPLETED` carries a `result`; only `FAILED` carries an `error`. An accepted job that fails while rendering is reported on the poll response, not as an HTTP error. ## Errors Every HTTP error carries `{ error: { code, message, request_id, details } }`. The codes are: `invalid_request`, `unauthenticated`, `insufficient_tokens`, `permission_denied`, `not_found`, `conflict`, `rate_limited`, `unavailable`, `internal`. ## Pricing Usage-based, billed per completed job. Rates run from $0.008–$0.15, and the unit differs by model — per second, frame, or minute of media, some with rounding or a minimum. Full breakdown: [pricing](https://api.veed.io/pricing.md). ## Machine-readable - [OpenAPI 3.1 spec](https://api.veed.io/openapi.yaml) — the whole API contract - [Every page in one file](https://api.veed.io/llms-full.txt) — all of the above, for loading the docs in one fetch - [Agent skill](https://api.veed.io/skill.md) — the workflow, gotchas and a pre-ship checklist, to install in a coding agent - [Schemas](https://api.veed.io/reference.md) — every object the API accepts or returns, with its JSON Schema