Create a project
Creates a project and starts its processing service, unless options.autoStart is false. The config is checked in full first, and every problem is answered at once. Also accepted as YAML (Content-Type: application/yaml).
The config’s sourceMedia says where the media comes from: the project’s input folder (S3FolderSource, also what a config without one gets), an RSS feed (RssSource, the media in each item’s <enclosure>) or a Media RSS feed (MrssSource, each item’s <media:content>). Its outputs say where the results go: the output folder (S3FolderOutput) and, for a feed project, re-published feeds (RssOutput or MrssOutput, served at GET /feeds/{id}/{language}/feed.xml).
Each call creates a project, even with the same name. To repeat a create safely after a timeout or a dropped connection, send an Idempotency-Key: a repeat with the same key and body answers what the first call did, with Idempotency-Replayed: true, and creates nothing. Or look the name up with GET /projects?name= before creating it again. If the config is valid but the service does not start, the project is kept in error and the 422 carries its id: call POST /projects/{id}/start, not create.
Guide: The project config
Authorizations
A token from POST /token/create, made with your API key pair.
Headers
Any string of your choice, unique per project you mean to create: a UUID is a good one. A repeat of the call with the same key and body answers what the first call did and creates nothing. The same key with another body is refused (idempotency_key_reused). Keys belong to your account and are kept for 24 hours. A key whose call created nothing (a 4xx other than service_start_failed, or a 5xx) can be used again.
1 - 255^[!-~]+$Body
Your name for the project. Need not be unique.
255The processing instructions, validated against the schema of the project’s build. Shown here: build 0.9.0-alpha1-2026-10-20T14-10Z-3f05aa; GET /schema has any build’s.
2000The build to run on, from GET /build-versions. Left out, your account’s default.
When the project is stopped and a new file lands in its input folder, start it: at once when an API upload completes, and within a minute when the project stopped itself after its last file and the file came another way (the AWS CLI, an SDK, a one-PUT upload). False: new files wait for POST …/start. Retrying a file starts the project either way. See Auto-stop.
Where the project keeps its input and output folders: one of your storage connections — your own bucket — with a folder for each, or connectionId: null for SyncWords’ storage. Left out on create, your account’s default decides; left out on a change, nothing moves. A project on your own bucket reads its input folder and writes its output folder: no feed source, no feed outputs.
Instructions for the create itself: acted on once, not stored, not returned. Refused on PUT/PATCH.
Response
Created