Postal Developers
REST API

Briefs

Calls for submissions you own, and what came in.

A brief is a call for submissions: an opportunity you publish, invite people to, and receive tracks against. Both endpoints need scope read:briefs. For the other direction, where a track of yours was submitted, see Track submissions.

List briefs

GET /api/v1/briefs

Up to 200 briefs you own, newest first.

data
{
  "data": [
    {
      "id": "cm4a…",
      "name": "Indie ad campaign Q4",
      "status": "open",
      "deadline": "2026-10-01T00:00:00.000Z",
      "active": true,
      "priority": "high",
      "tags": ["indie", "advertising"],
      "contactEmail": "supervisor@agency.example",
      "createdAt": "…",
      "submissionCount": 34,
      "requestCount": 12
    }
  ]
}

requestCount is the number of email invites sent; submissionCount is the number of tracks or links received.

Brief submissions

GET /api/v1/briefs/{briefId}/submissions
data
{
  "brief": { "id": "cm4a…", "name": "Indie ad campaign Q4", "status": "open", "deadline": "…" },
  "submissions": [
    {
      "id": "…",
      "type": "track",
      "message": "Instrumental mix attached",
      "link": null,
      "createdAt": "…",
      "track": { "id": "cm1x…", "name": "Night Drive", "artist": "…" },
      "viaRequestEmail": "producer@example.com"
    },
    {
      "id": "…",
      "type": "link",
      "message": "Private SoundCloud",
      "link": "https://soundcloud.com/…",
      "createdAt": "…",
      "track": null,
      "viaRequestEmail": null
    }
  ]
}

Returns { "ok": false, "error": "BRIEF_NOT_FOUND" } for a brief you do not own.

On this page