Skip to main content

Projects

Create a project

Create a new docs project under the authenticated organization. The slug must be unique across the platform — pick something specific to your brand.

POST/projects
Create a project
curl --request POST \
  --url 'https://api.nookdocs.com/v1/projects' \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
  "name": "<string>",
  "slug": "<string>",
  "github_repo": "<string>"
}'
{
  "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "name": "<string>",
  "slug": "<string>",
  "status": "pending",
  "created_at": "2023-11-07T05:31:56Z",
  "github_repo": "<string>",
  "custom_domain": "<string>",
  "github_branch": "main",
  "last_deploy_at": "2023-11-07T05:31:56Z"
}

Authorizations

Authorizationstringheaderrequired

API key issued from your dashboard (Settings → API Keys). Format: nook_... — pass as Authorization: Bearer nook_.... Keys carry scopes (projects:read/write, pages:read, deployments:read/trigger, analytics:read) — calls without the required scope return 403.

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Request bodyapplication/json

namestringbodyrequired
Display name for the project (1–80 characters)
slugstringbodyrequired
URL slug — used as the subdomain. Lowercase letters, numbers, and hyphens only.
github_repostringbody
Optional `owner/name` GitHub repo to auto-connect after creation

Response

application/json

Project created

idstring (uuid)required
Unique project identifier
namestringrequired
Human-readable project name
slugstringrequired
URL slug — used as the subdomain `{slug}.nookdocs.site`
statusenum<string>required
Current project status
options:pendingbuildingactivefailed
created_atstring (date-time)required
Project creation timestamp
github_repostring
Connected GitHub repo in `owner/name` format
custom_domainstring
Custom domain (e.g. `docs.acme.com`) if configured
github_branchstring
Branch synced for deployments
last_deploy_atstring (date-time)
Timestamp of the most recent successful deployment