Deck Docs

Public API

Read and manage Deck product data, run supported asynchronous work, and execute scoped Build mutations from external tools and scripts.

Public API

Deck’s Public API gives your team a stable way to read and manage Deck product data, run supported asynchronous work, and execute scoped Build mutations. It is built for internal tools, automations, reporting pipelines, partner integrations, and workflows that need direct access to feedback intelligence and the Build workflow.

What you can do

  • verify a key and inspect the resolved organization and role
  • list and retrieve themes with insight counts
  • fetch insights with theme, sentiment, and category filters
  • work with categories, segments, contacts, feedback, interviews, surveys, NPS data, and CSV uploads
  • inspect integrations and start supported import, sync, synthesis, generation, and processing jobs
  • read Projects and their document sections, external links, and evidence references
  • create, update, and archive Projects through resource-style endpoints
  • read initiatives and their structured content sections
  • execute approved Build write mutations for Projects, initiatives, and opportunities
  • access subtheme analysis for eligible organizations
  • generate your own client from Deck’s OpenAPI specification

Before you start

To use the Public API, all of the following must be true:

  • your organization has Public API enabled in Settings → Deck API
  • your current org role is allowed by the API access policy
  • you have created an API key in Deck

Write access requires write scope. Resource-style Project writes use POST /projects, PATCH /projects/{projectId}, and DELETE /projects/{projectId}. Action-based Build mutations use POST /build/projects, POST /build/initiatives, and POST /build/opportunities and require Idempotency-Key.

Quickstart

1. Create an API key

Go to Settings → Deck API and create a key for your user account.

Keys start with a dk_ prefix, for example:

  • dk_us_...
  • dk_eu_...
  • dk_au_...

2. Verify the key

Use the /me endpoint first:

curl --request GET \
  --url https://api.getdeck.io/api/v1/me \
  --header "Authorization: Bearer dk_us_your_key_here"

Successful response:

{
  "data": {
    "org_id": "org_123",
    "user_id": "user_123",
    "role": "org:admin",
    "scope": "read"
  }
}

3. Fetch your first resource

curl --request GET \
  --url "https://api.getdeck.io/api/v1/themes?limit=10" \
  --header "Authorization: Bearer dk_us_your_key_here"

Base URL

Production:

https://api.getdeck.io/api/v1

Authentication

You can send your API key using either:

Authorization: Bearer dk_us_...

or

X-API-Key: dk_us_...

Available resources

EndpointPurpose
/me, /context, /org-members, /dashboard, /searchVerify access and query shared organization data
/themes, /subthemes, /insights, /categories, /segmentsExplore and maintain synthesized feedback intelligence
/contacts, /feedback, /interviews, /surveys, /npsRead customer and feedback-source data
/csv-uploads, /integrations, /jobsManage supported imports and integrations, then poll async work
/projects, /initiatives, /opportunitiesRead and manage Build resources and their links
/build/projects, /build/initiatives, /build/opportunitiesExecute bounded, write-scoped Build actions
/support/csRead customer-service ticket data
/openapiFetch the complete OpenAPI 3.1 contract

Pagination

Deck uses two pagination styles:

  • Cursor pagination for the resource endpoints that return chronological lists, including themes, insights, Projects, and initiatives
  • Offset pagination for subthemes

Treat cursor values as opaque. Do not parse or construct them yourself.

OpenAPI spec

The Public API contract is published at:

/api/v1/openapi

Use it to:

  • inspect the latest schema
  • find the exact methods, request bodies, filters, and response fields for every endpoint family
  • generate typed clients
  • import requests into your API tools

Next steps