API docs
A read-only REST API for your projects, boards and feedback posts with their votes and status. It can’t create, edit or delete anything. Included in the Solo and Pro plans. Base URL: https://figvote.app/api/v1
Authentication
Create a key in Dashboard → Account → API keys. The key is shown once: we only keep a hash of it, so copy it somewhere safe. Send it in the X-API-KEY header (Authorization: Bearer <key> works too). A key reads only the projects of the account that created it. Revoke a key on the same page: requests with it stop working right away.
curl https://figvote.app/api/v1/posts -H "X-API-KEY: fv_your_key"401missing, unknown or revoked key.402the account has no Solo or Pro plan.429more than 60 requests in a minute with one key (retry after theRetry-Afterseconds).400a bad query parameter (theerrorfield says which),404a project or board that isn’t yours.
GET/api/v1/projects
Your projects, oldest first, each with its boards (id, slug, name, visibility).
{ "data": [{ "id": "0b9e…", "slug": "acme", "name": "Acme", "url": "https://figvote.app/acme",
"created_at": "…", "boards": [{ "id": "51aa…", "slug": "features", "name": "Feature requests", "visibility": "public" }] }] }GET/api/v1/posts
Posts of your projects, newest first. Query parameters, all optional:
project: a project id or slug (default: all your projects).board: a board id or slug.status:open,planned,in_progress,shipped,closedorall(default).include_merged:trueto also list duplicates merged into another post (left out by default: their votes moved to that post).since: an ISO 8601 date, only posts created after it.limit: 1 to 100 (default 25). When a page is full, pass itsnext_beforevalue asbeforeto get the next one.
{
"data": [
{
"id": "6f1c…",
"number": 42,
"url": "https://figvote.app/acme/p/42",
"project": { "id": "0b9e…", "slug": "acme", "name": "Acme" },
"board": { "id": "51aa…", "slug": "features", "name": "Feature requests", "visibility": "public" },
"title": "Dark mode",
"body": "Please add a dark theme.",
"status": "planned",
"votes": 37,
"legacy_votes": 12,
"approved": true,
"pinned": false,
"merged_into": null,
"status_changed_at": "2026-10-12T10:02:11.000Z",
"created_at": "2026-10-01T09:30:00.000Z",
"updated_at": "2026-10-12T10:02:11.000Z"
}
],
"next_before": null
}votes is the count shown on the board, including legacy_votes imported from another tool. Posts waiting for your approval are listed with approved: false. Never in a response: who wrote a post, who voted, or an email.