Deck Docs

Public API

Read Deck feedback intelligence, manage Projects, and execute scoped Build write mutations from external tools and scripts.

Public API

Deck’s Public API gives your team a stable way to read structured customer feedback data, manage Deck Projects, and execute scoped Build mutations. It is built for internal tools, automations, reporting pipelines, partner integrations, and workflows that need direct access to Deck themes, insights, Projects, initiatives, subthemes, and approved Build write actions.

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
  • 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 → API Access
  • 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 → API Access 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
/meVerify the key and inspect resolved identity
/themesList themes
/themes/{themeId}Get a single theme
/insightsList insights
/insights/{insightId}Get a single insight
/projectsList or create Projects
/projects/{projectId}Get, update, or archive a single Project
/build/projectsExecute one Project build mutation
/initiativesList initiatives
/initiatives/{initiativeId}Get a single initiative
/build/initiativesExecute one initiative build mutation
/build/opportunitiesExecute one opportunity build mutation
/subthemesList subthemes
/subthemes/{subthemeId}Get a single subtheme
/openapiFetch the OpenAPI 3.1 spec

Pagination

Deck uses two pagination styles:

  • Cursor pagination for 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
  • generate typed clients
  • import requests into your API tools

Next steps