API Reference
Complete reference for all Simple Product API endpoints.
Base URL
https://simpleproduct.dev/api/v1Authentication
All API requests require authentication via API key (except public endpoints):
Get your API key from Settings → API Keys in your workspace.
Feedback
/api/v1/feedback
Submit customer feedback.
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
| title | string | Yes | Feedback title |
| content | string | Yes | The feedback message |
| string | No | Customer email | |
| name | string | No | Customer name |
| externalId | string | No | Your user ID |
| source | string | No | Feedback source |
| metadata | object | No | Custom JSON data |
People (Customers)
/api/v1/people
Create or update a customer record.
Request Body
/api/v1/people?email=customer@example.com
Look up a customer by email.
/api/v1/people/:id
Get a customer by ID.
Organizations
/api/v1/organizations
Create or update an organization.
Request Body
Import (CSV)
/api/v1/imports
Import cards from a CSV, such as a Shortcut, Linear, Jira or Trello export, onto a new board that mirrors the old tool. Its stages are the export's states in workflow order, each row becomes a card in its stage, and every other column goes at the bottom of the card's description. Imported cards don't fire card.created, so skills and webhooks stay quiet. To undo an import, delete the board.
Send the file as the body with Content-Type: text/csv, or as JSON ({ "csv": "...", "fileName": "...", "boardName": "..." }). The board is named after the tool ("Shortcut import") unless you pass boardName. Up to 5,000 rows and 5MB.
Example
Response
Releases (Changelog)
/api/v1/releases/public?workspace=YOUR_WORKSPACE_SLUG
Get published releases, newest first. No authentication required.
Paginated: limit (1–100, default 20) and cursor (the previous page's meta.nextCursor). The response's meta has count, nextCursor and hasMore. The same parameters work on /api/v1/docs/public. Responses are cacheable (60s, with an ETag).
/api/v1/releases
Create a new release.
Request Body
Events (Analytics)
/api/v1/events
Track a custom event.
Request Body
Error Responses
All errors return JSON with an error message:
Status Codes
| Code | Description |
|---|---|
| 400 | Bad request (missing/invalid fields) |
| 401 | Unauthorized (missing/invalid API key) |
| 404 | Not found |
| 429 | Rate limited |
| 500 | Server error |