Skip to content

Featurebase API (2026-01-01.nova)

Welcome to the Featurebase API. This API allows you to programmatically interact with your Featurebase organization.

This documentation reflects API version 2026-01-01.nova.

Download OpenAPI description
Languages
Servers
Mock server
https://docs.featurebase.app/_mock/rest-api/
Production
https://do.featurebase.app/

API Versioning

This API uses date-based versioning. Each version is identified by a release date and slug, e.g., 2026-01-01.nova.

Specifying a Version

Include the version in the request header:

Featurebase-Version: 2026-01-01.nova

Or set a default version for your organization in the dashboard settings.

Version Compatibility

  • Newer versions may add new fields to responses (always backwards-compatible)
  • Breaking changes (removed/renamed fields, changed behavior) only occur in new versions
  • Your integration will continue to work as long as you pin to a specific version

Authentication

All API requests require authentication via API key.

Include in headers:

Authorization: Bearer <api-key>

Create and manage your API keys in the Featurebase dashboard.

Error Handling

The API uses conventional HTTP response codes to indicate success or failure:

  • 2xx - Success
  • 4xx - Client errors (bad request, unauthorized, not found, etc.)
  • 5xx - Server errors (internal error)

Error Response Format

All errors follow a consistent format:

{
  "error": {
    "type": "invalid_request_error",
    "code": "resource_not_found",
    "message": "Post not found",
    "param": "id",
    "status": 404
  }
}

Error Types

TypeDescription
authentication_errorAuthentication failed (401)
authorization_errorPermission denied (403)
invalid_request_errorInvalid request parameters or resource not found (400, 404, 410)
api_errorServer-side error (500)
rate_limit_errorToo many requests (429)

Boards

Boards (post categories) organize feedback into distinct containers with their own settings.

Operations

Posts

User-submitted feedback and feature requests. Posts belong to boards and can be upvoted, commented on, and tracked through statuses.

Operations

Post Statuses

Post statuses define the workflow stages for posts (e.g., In Review, Active, Completed).

Operations

Comments

Threaded discussions on posts and changelogs. Comments support voting, moderation, and privacy controls.

Operations

Custom Fields

Configurable input fields for posts in your Featurebase organization. Custom fields allow you to collect additional structured data when users create posts.

Operations

Changelogs

Release notes and updates published by the organization. Changelogs keep users informed about new features, improvements, and fixes.

Operations

Admins

Team members who manage your Featurebase organization. Admins have roles that define their permissions.

Operations

Teams

Teams are groups within your Featurebase organization. Use this endpoint to list and retrieve team information for conversation assignment and organization management.

Operations

Contacts

Contacts are the customers and leads in your Featurebase organization. Use this endpoint to list and retrieve contact information.

Operations

Companies

Companies represent organizations or businesses that your users belong to. Use this endpoint to list and retrieve company information.

Operations

List all companies

Request

Returns all companies in your organization with cursor-based pagination.

Query Parameters

  • limit - Number of companies to return (1-100, default: 10)
  • cursor - Opaque cursor from a previous response for pagination

Response Structure

The response includes:

  • object - Always "list"
  • data - Array of company objects
  • nextCursor - Cursor for the next page (null if no more results)

Company Object

Each company includes:

  • id - Featurebase internal ID (MongoDB ObjectId)
  • companyId - External company ID from your system
  • name - Company name
  • monthlySpend - Monthly spend/revenue
  • industry - Industry
  • website - Company website URL
  • plan - Plan/tier name
  • linkedUsers - Number of users linked to this company
  • companySize - Employee headcount
  • lastActivity - Last activity timestamp
  • customFields - Custom field values
  • createdAt - Creation timestamp
  • updatedAt - Last update timestamp

Example Response

{
  "object": "list",
  "data": [
    {
      "object": "company",
      "id": "507f1f77bcf86cd799439011",
      "companyId": "comp_12345",
      "name": "Acme Inc",
      "monthlySpend": 5000,
      "industry": "Technology",
      "website": "https://acme.com",
      "plan": "enterprise",
      "linkedUsers": 15,
      "companySize": 250,
      "lastActivity": "2025-01-15T00:00:00.000Z",
      "customFields": { "location": "Europe" },
      "createdAt": "2025-01-01T12:00:00.000Z",
      "updatedAt": "2025-01-10T15:30:00.000Z"
    }
  ],
  "nextCursor": "eyJpZCI6IjUwN2YxZjc3YmNmODZjZDc5OTQzOTAxMSJ9"
}

Version Availability

This endpoint is only available in API version 2026-01-01.nova and newer.

Security
bearerAuth
Query
limitinteger[ 1 .. 100 ]

A limit on the number of companies to be returned, between 1 and 100.

Default 10
Example: limit=10
cursorstring<= 512 characters

An opaque cursor for pagination. Use the nextCursor value from a previous response to fetch the next page of results.

Example: cursor=eyJpZCI6IjUwN2YxZjc3YmNmODZjZDc5OTQzOTAxMSJ9
Headers
Featurebase-Versionstring(FeaturebaseVersion)

API version for this request. Defaults to your organization's configured API version if not specified.

Example: 2026-01-01.nova
curl -i -X GET \
  'https://docs.featurebase.app/_mock/rest-api/v2/companies?limit=10&cursor=eyJpZCI6IjUwN2YxZjc3YmNmODZjZDc5OTQzOTAxMSJ9' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'Featurebase-Version: 2026-01-01.nova'

Responses

Success

Bodyapplication/json
objectstringrequired

Object type identifier

Value"list"
Example: "list"
dataArray of objects(Company)required

Array of companies

Example: []
data[].​objectstringrequired

Object type identifier

Value"company"
Example: "company"
data[].​idstringrequired

Featurebase internal ID

Example: "507f1f77bcf86cd799439011"
data[].​companyIdstringrequired

External company ID from your system

Example: "comp_12345"
data[].​namestringrequired

Company name

Example: "Acme Inc"
data[].​monthlySpendnumber or nullrequired

Monthly spend

Example: 5000
data[].​industrystring or nullrequired

Industry

Example: "Technology"
data[].​websitestring or nullrequired

Company website URL

Example: "https://acme.com"
data[].​planstring or nullrequired

Plan or tier name

Example: "enterprise"
data[].​linkedUsersnumber or nullrequired

Number of users linked to this company

Example: 15
data[].​companySizenumber or nullrequired

Company employee headcount

Example: 250
data[].​lastActivitystring or nullrequired

ISO date of last activity

Example: "2025-01-15T00:00:00.000Z"
data[].​customFieldsobject

Custom field values

Example: {"location":"Europe","priority":"high"}
data[].​createdAtstring or nullrequired

ISO date when company was created

Example: "2025-01-01T12:00:00.000Z"
data[].​updatedAtstring or nullrequired

ISO date when company was last updated

Example: "2025-01-10T15:30:00.000Z"
nextCursorstring or null<= 512 charactersrequired

Cursor for fetching the next page (cursor-based pagination)

Example: "eyJpZCI6IjUwN2YxZjc3YmNmODZjZDc5OTQzOTAxMSJ9"
Response
application/json
{ "object": "list", "data": [], "nextCursor": "eyJpZCI6IjUwN2YxZjc3YmNmODZjZDc5OTQzOTAxMSJ9" }

Create or update a company

Request

Creates a new company or updates an existing one.

Uses the external companyId as the unique identifier for upsert matching. If a company with the given companyId already exists, it will be updated. Otherwise, a new company will be created.

Request Body

FieldTypeRequiredDescription
companyIdstringYesExternal company ID from your system (unique identifier)
namestringYesCompany name
monthlySpendnumberNoMonthly spend/revenue from this company
industrystringNoIndustry the company operates in
websitestringNoCompany website URL
planstringNoCurrent plan/subscription name
companySizenumberNoNumber of employees
createdAtstringNoWhen the company was created (ISO 8601)
customFieldsobjectNoCustom field values

Example Request

{
  "companyId": "comp_12345",
  "name": "Acme Inc",
  "monthlySpend": 5000,
  "industry": "Technology",
  "website": "https://acme.com",
  "plan": "enterprise",
  "companySize": 250,
  "customFields": {
    "region": "EMEA",
    "tier": "gold"
  }
}

Example Response

{
  "object": "company",
  "id": "507f1f77bcf86cd799439011",
  "companyId": "comp_12345",
  "name": "Acme Inc",
  "monthlySpend": 5000,
  "industry": "Technology",
  "website": "https://acme.com",
  "plan": "enterprise",
  "linkedUsers": 1,
  "companySize": 250,
  "lastActivity": "2025-01-15T00:00:00.000Z",
  "customFields": { "region": "EMEA", "tier": "gold" },
  "createdAt": "2025-01-01T12:00:00.000Z",
  "updatedAt": "2025-01-15T10:30:00.000Z"
}

Error Responses

  • 400 Bad Request - Invalid company data

Version Availability

This endpoint is only available in API version 2026-01-01.nova and newer.

Security
bearerAuth
Headers
Featurebase-Versionstring(FeaturebaseVersion)

API version for this request. Defaults to your organization's configured API version if not specified.

Example: 2026-01-01.nova
Bodyapplication/json
companyIdstring[ 1 .. 500 ] charactersrequired

External company ID from your system. Used as the unique identifier for upsert matching.

Example: "comp_12345"
namestring[ 1 .. 500 ] charactersrequired

Company name

Example: "Acme Inc"
monthlySpendnumber>= 0

Monthly spend/revenue from this company

Example: 5000
industrystring<= 500 characters

Industry the company operates in

Example: "Technology"
websitestring<= 500 characters

Company website URL

Example: "https://acme.com"
planstring<= 500 characters

Current plan/subscription name

Example: "enterprise"
companySizenumber or null>= 0

Number of employees in the company

Example: 250
createdAtstring or null

When the company was created in your system (ISO 8601)

Example: "2024-01-15T10:30:00Z"
customFieldsobject

Custom field values on the company. Values can be string, number, boolean, null, or array of primitives.

curl -i -X POST \
  https://docs.featurebase.app/_mock/rest-api/v2/companies \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'Content-Type: application/json' \
  -H 'Featurebase-Version: 2026-01-01.nova' \
  -d '{
    "companyId": "comp_12345",
    "name": "Acme Inc",
    "monthlySpend": 5000,
    "industry": "Technology",
    "website": "https://acme.com",
    "plan": "enterprise",
    "companySize": 250,
    "createdAt": "2024-01-15T10:30:00Z",
    "customFields": {
      "region": "EMEA",
      "tier": "gold",
      "priority": "high"
    }
  }'

Responses

Success

Bodyapplication/json
objectstringrequired

Object type identifier

Value"company"
Example: "company"
idstringrequired

Featurebase internal ID

Example: "507f1f77bcf86cd799439011"
companyIdstringrequired

External company ID from your system

Example: "comp_12345"
namestringrequired

Company name

Example: "Acme Inc"
monthlySpendnumber or nullrequired

Monthly spend

Example: 5000
industrystring or nullrequired

Industry

Example: "Technology"
websitestring or nullrequired

Company website URL

Example: "https://acme.com"
planstring or nullrequired

Plan or tier name

Example: "enterprise"
linkedUsersnumber or nullrequired

Number of users linked to this company

Example: 15
companySizenumber or nullrequired

Company employee headcount

Example: 250
lastActivitystring or nullrequired

ISO date of last activity

Example: "2025-01-15T00:00:00.000Z"
customFieldsobject

Custom field values

Example: {"location":"Europe","priority":"high"}
createdAtstring or nullrequired

ISO date when company was created

Example: "2025-01-01T12:00:00.000Z"
updatedAtstring or nullrequired

ISO date when company was last updated

Example: "2025-01-10T15:30:00.000Z"
Response
application/json
{ "object": "company", "id": "507f1f77bcf86cd799439011", "companyId": "comp_12345", "name": "Acme Inc", "monthlySpend": 5000, "industry": "Technology", "website": "https://acme.com", "plan": "enterprise", "linkedUsers": 15, "companySize": 250, "lastActivity": "2025-01-15T00:00:00.000Z", "customFields": { "location": "Europe", "priority": "high" }, "createdAt": "2025-01-01T12:00:00.000Z", "updatedAt": "2025-01-10T15:30:00.000Z" }

Get company by ID

Request

Retrieves a single company by its Featurebase ID.

Path Parameters

  • id - The Featurebase internal ID of the company (MongoDB ObjectId)

Response

Returns a company object with:

  • id - Featurebase internal ID
  • companyId - External company ID from your system
  • name - Company name
  • monthlySpend - Monthly spend/revenue
  • industry - Industry
  • website - Company website URL
  • plan - Plan/tier name
  • linkedUsers - Number of users linked to this company
  • companySize - Employee headcount
  • lastActivity - Last activity timestamp
  • customFields - Custom field values
  • createdAt - Creation timestamp
  • updatedAt - Last update timestamp

Example Response

{
  "object": "company",
  "id": "507f1f77bcf86cd799439011",
  "companyId": "comp_12345",
  "name": "Acme Inc",
  "monthlySpend": 5000,
  "industry": "Technology",
  "website": "https://acme.com",
  "plan": "enterprise",
  "linkedUsers": 15,
  "companySize": 250,
  "lastActivity": "2025-01-15T00:00:00.000Z",
  "customFields": { "location": "Europe" },
  "createdAt": "2025-01-01T12:00:00.000Z",
  "updatedAt": "2025-01-10T15:30:00.000Z"
}

Error Responses

  • 404 Not Found - Company with the specified ID does not exist

Version Availability

This endpoint is only available in API version 2026-01-01.nova and newer.

Security
bearerAuth
Path
idstringrequired

The Featurebase internal ID of the company (MongoDB ObjectId)

Example: 507f1f77bcf86cd799439011
Headers
Featurebase-Versionstring(FeaturebaseVersion)

API version for this request. Defaults to your organization's configured API version if not specified.

Example: 2026-01-01.nova
curl -i -X GET \
  https://docs.featurebase.app/_mock/rest-api/v2/companies/507f1f77bcf86cd799439011 \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'Featurebase-Version: 2026-01-01.nova'

Responses

Success

Bodyapplication/json
objectstringrequired

Object type identifier

Value"company"
Example: "company"
idstringrequired

Featurebase internal ID

Example: "507f1f77bcf86cd799439011"
companyIdstringrequired

External company ID from your system

Example: "comp_12345"
namestringrequired

Company name

Example: "Acme Inc"
monthlySpendnumber or nullrequired

Monthly spend

Example: 5000
industrystring or nullrequired

Industry

Example: "Technology"
websitestring or nullrequired

Company website URL

Example: "https://acme.com"
planstring or nullrequired

Plan or tier name

Example: "enterprise"
linkedUsersnumber or nullrequired

Number of users linked to this company

Example: 15
companySizenumber or nullrequired

Company employee headcount

Example: 250
lastActivitystring or nullrequired

ISO date of last activity

Example: "2025-01-15T00:00:00.000Z"
customFieldsobject

Custom field values

Example: {"location":"Europe","priority":"high"}
createdAtstring or nullrequired

ISO date when company was created

Example: "2025-01-01T12:00:00.000Z"
updatedAtstring or nullrequired

ISO date when company was last updated

Example: "2025-01-10T15:30:00.000Z"
Response
application/json
{ "object": "company", "id": "507f1f77bcf86cd799439011", "companyId": "comp_12345", "name": "Acme Inc", "monthlySpend": 5000, "industry": "Technology", "website": "https://acme.com", "plan": "enterprise", "linkedUsers": 15, "companySize": 250, "lastActivity": "2025-01-15T00:00:00.000Z", "customFields": { "location": "Europe", "priority": "high" }, "createdAt": "2025-01-01T12:00:00.000Z", "updatedAt": "2025-01-10T15:30:00.000Z" }

Surveys

Surveys allow you to collect targeted feedback from your users within your product. Surveys can be targeted to specific user segments or pages and can contain multiple questions with conditional logic.

Operations

Help Centers

Help centers allow organizations to create and manage knowledge bases with articles and collections. Currently, Featurebase supports one help center per organization.

Operations

Conversations

Conversations are messenger/inbox conversations in your Featurebase organization. Use this endpoint to list and retrieve conversation information.

Operations

Webhooks

Webhooks allow you to receive real-time HTTP callbacks when events occur in your Featurebase organization. Configure webhook endpoints to subscribe to specific event types.

Operations