Projects

Create a Project

POST
/projects

Creates a Project from a URL or GitHub Spec. Automatic generation is enabled by default for a saved Project.

Free includes one saved Project, all selected Targets, and the first 25 operations per Target, with regeneration, history, delivery pull requests, and previews. Pro supports additional Projects and all operations. One-shot generation does not use a Project slot.

AuthorizationBearer <token>

Organization API key from the console (ak_...), or an OAuth access token with user:org:read, the organization selected during consent, and the capability required by the operation.

In: header

Header Parameters

Idempotency-Key?string

Identifies one logical write for 24 hours. The key is scoped to the authenticated organization and operation; generation without an organization uses a hashed network identity. Retrying the same method, path, query, If-Match header, and JSON body replays the original response. Reusing the key with changed intent returns 409. After expiry the key starts a new write.

Match^[!-~]+$
Length1 <= length <= 255

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://example.com/projects" \  -H "Content-Type: application/json" \  -d '{    "name": "Parcel API",    "spec": {      "source": {        "type": "url",        "url": {          "url": "https://api.parcel.example/openapi.json"        }      }    },    "targets": [      {        "name": "Parcel CLI",        "type": "cli",        "deliveries": [          {            "type": "repository",            "repository": {              "provider": "github",              "identifier": "parcel-example/parcel-client",              "module_path": "github.com/parcel-example/parcel-client",              "publish_on_merge": false            }          }        ]      }    ]  }'
{  "id": "prj_4f8k2m7x9q1v6b3n",  "object": "project",  "name": "Parcel API",  "spec_id": "spec_2p8m4q7k1v9d6h3c",  "auto_generate": true,  "config": null,  "created_at": "2026-09-23T08:00:00Z",  "updated_at": "2026-09-23T08:00:00Z",  "request_id": "req_3k8m1v6q9p2d7h4c"}