thesignup docs
APISignupsFrom description

Draft a signup from a plain-language description

Returns a structured draft (title, time slots, items, reminder cadence) ready for review. Free-tier orgs are capped at 3 lifetime drafts across the in-app wizard and this endpoint combined; the cap returns 402 with an `upgrade_required` payload. The draft is *not* saved — pass it to `POST /v1/signups` to create the actual signup.

POST
/signups/from-description

Returns a structured draft (title, time slots, items, reminder cadence) ready for review. Free-tier orgs are capped at 3 lifetime drafts across the in-app wizard and this endpoint combined; the cap returns 402 with an upgrade_required payload. The draft is not saved — pass it to POST /v1/signups to create the actual signup.

AuthorizationBearer <token>

Long-lived org-scoped API key. Generate one from your account dashboard. Pass as Authorization: Bearer sgn_live_….

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/problem+json

application/problem+json

application/problem+json

application/problem+json

application/problem+json

application/problem+json

application/problem+json

curl -X POST "https://example.com/signups/from-description" \  -H "Content-Type: application/json" \  -d '{    "description": "Saturday potluck for my soccer team after practice, around 20 people. Need salads, sides, desserts, and drinks."  }'
{
  "draft": {
    "title": "string",
    "description": "string",
    "category": "potluck",
    "suggestedDate": "string",
    "timeSlots": [
      {
        "label": "string",
        "startTime": "string",
        "endTime": "string",
        "capacity": 1
      }
    ],
    "itemList": [
      {
        "name": "string",
        "quantityNeeded": 1,
        "notes": "string"
      }
    ],
    "reminderCadence": "none",
    "estimatedParticipants": 1
  }
}
{
  "type": "https://thesignup.app/problems/not-found",
  "title": "Not found",
  "status": 404,
  "detail": "string",
  "code": "missing_credentials",
  "errors": [
    {
      "path": "string",
      "message": "string"
    }
  ],
  "cause": {
    "property1": null,
    "property2": null
  }
}
{
  "type": "https://thesignup.app/problems/not-found",
  "title": "Not found",
  "status": 404,
  "detail": "string",
  "code": "missing_credentials",
  "errors": [
    {
      "path": "string",
      "message": "string"
    }
  ],
  "cause": {
    "property1": null,
    "property2": null
  }
}
{
  "type": "https://thesignup.app/problems/not-found",
  "title": "Not found",
  "status": 404,
  "detail": "string",
  "code": "missing_credentials",
  "errors": [
    {
      "path": "string",
      "message": "string"
    }
  ],
  "cause": {
    "property1": null,
    "property2": null
  }
}
{
  "type": "https://thesignup.app/problems/not-found",
  "title": "Not found",
  "status": 404,
  "detail": "string",
  "code": "missing_credentials",
  "errors": [
    {
      "path": "string",
      "message": "string"
    }
  ],
  "cause": {
    "property1": null,
    "property2": null
  }
}
{
  "type": "https://thesignup.app/problems/not-found",
  "title": "Not found",
  "status": 404,
  "detail": "string",
  "code": "missing_credentials",
  "errors": [
    {
      "path": "string",
      "message": "string"
    }
  ],
  "cause": {
    "property1": null,
    "property2": null
  }
}
{
  "type": "https://thesignup.app/problems/not-found",
  "title": "Not found",
  "status": 404,
  "detail": "string",
  "code": "missing_credentials",
  "errors": [
    {
      "path": "string",
      "message": "string"
    }
  ],
  "cause": {
    "property1": null,
    "property2": null
  }
}
{
  "type": "https://thesignup.app/problems/not-found",
  "title": "Not found",
  "status": 404,
  "detail": "string",
  "code": "missing_credentials",
  "errors": [
    {
      "path": "string",
      "message": "string"
    }
  ],
  "cause": {
    "property1": null,
    "property2": null
  }
}