API Documentation

The BoundaryAI API allows you to programmatically push feedback data, create data sources, and manage your organization's feedback collection workflow.

Overview

The BoundaryAI API enables you to programmatically import feedback data from any source- support tickets, CRM exports, surveys, chat logs - and leverage AI-powered analysis to extract insights.

Core Concepts

Before diving in, understand these key concepts:

Concept
Description

Feedback Group

A container that organizes related data sources (e.g., "Q1 2024 Customer Feedback")

Data Source

A collection of feedback within a group (e.g., "Zendesk Tickets", "NPS Survey")

Question

A field within a data source that holds feedback text

APS

Analysis Points - credits consumed when pushing content for AI analysis

How It Works

1. Create a Feedback Group (or use existing)

2. Create a Data Source with Questions

3. Publish the Data Source

4. Push your feedback content

5. BoundaryAI analyzes and extracts insights

Authentication

API Keys

All API requests require an API key passed in the Authorization header:

Key Format

Part
Description

inpk

Fixed prefix (Input API Key)

environment

live (production) or test (no APS deduction)

key_id

10-character unique identifier

secret

Base64-encoded secret (44 characters)

Key Permissions

When creating an API key, you choose its permission level:

Permission
Can Do
Use Case

push

Push content to existing data sources

Automated import scripts

create

Create feedback groups and data sources

Setup automation

all

Everything

Full programmatic control

Getting Your API Key

  1. Go to IntegrationsAPI in your BoundaryAI dashboard

  2. Click Create API Key

  3. Choose a name, environment, and permission level

  4. Save the key immediately — it's only shown once!

Security Notes

  • Keys are hashed server-side; we never store the plaintext

  • Use test environment keys during development (no APS charges)

  • Rotate keys regularly via the dashboard

  • Never commit keys to version control


Making Requests

Base URLs

Request Format

All requests must include:

Response Format

Success Response

Error Response

Rate Limiting

Three layers protect the API:

Layer
Limit
Scope

Per-Key

60/min (configurable)

Individual API key

Per-Org

300/min

All keys in organization

Per-IP

600/min

Fallback protection

Response headers:

When rate limited, you'll receive HTTP 429 with a Retry-After header.

Idempotency

Prevent duplicate data by including an idempotency key:

Scenario
Result

First request

Executes normally, caches response for 24h

Same key + same payload

Returns cached response (no duplicate insert)

Same key + different payload

Returns HTTP 409 conflict error

Best practice: Use a unique identifier like {source}-{date}-{batch} for each import batch.


Endpoints Reference

Quick Reference

Method
Endpoint
Description
Permission

GET

/api/input/surveys/list

List all feedback groups & data sources

any

POST

/api/input/survey_series/create

Create a feedback group

create

POST

/api/input/survey/create

Create a data source

create

POST

/api/input/survey/publish

Publish a data source

create

POST

/api/input/content/push

Push content to one question

push

POST

/api/input/content/push/bulk

Push content to multiple questions

push


List Data Sources

Retrieve all feedback groups and data sources your API key can access. Run this first to get the IDs you need for pushing content.

Query Parameters

Parameter
Type
Description

survey_series_id

integer

Filter to specific feedback group

survey_id

integer

Filter to specific data source

Response

Understanding the Response

Field
Description

survey_series

Array of feedback groups

surveys

Array of data sources within a group

questions

Fields available for content

accepts_text

Important! Only push text to questions where this is true

mode

ACCESSIBLE = published, EDITING = draft

Example


Push Content

Push feedback text to a specific question. This is the primary endpoint for importing data.

Request Body

Parameters

Field
Type
Required
Description

survey_series_id

string

Yes

Feedback group ID

survey_id

string

Yes

Data source ID

question.question_id

string

Yes

Question ID (must have accepts_text: true)

question.content

array

Yes

Array of feedback strings

source_reference

string

No

Your reference for this import batch

Content Limits

Limit
Value

Max items per request

1,000

Max characters per item

10,000

Response

Field
Description

inserted

Number of new entries added

duplicates

Number of duplicate entries skipped

aps_deducted

Analysis points consumed

Example: Python

Example: JavaScript

Example: cURL


Bulk Push Content

Push content to multiple questions in a single request. Useful when your data has multiple fields.

Request Body

Parameters

Field
Type
Required
Description

survey_series_id

string

Yes

Feedback group ID

survey_id

string

Yes

Data source ID

questions

array

Yes

Array of question objects (max 100)

questions[].question_id

string

Yes

Question ID

questions[].content

array

Yes

Array of feedback strings

source_reference

string

No

Your reference for this batch

Response


Create Feedback Group

Create a new feedback group to organize related data sources.

Required Permission: create or all

Request Body

Parameters

Field
Type
Required
Description

name

string

Yes

Group name (2-255 characters)

Response

Note: If a group with the same name exists, it returns the existing group with "created": false.


Create Data Source

Create a new data source with questions within a feedback group.

Required Permission: create or all

Request Body

Parameters

Field
Type
Required
Description

survey_series_id

string

Yes

Parent feedback group ID

survey_title

string

Yes

Data source name (1-100 chars)

survey_description

string

No

Description (max 1000 chars)

questions

array

No

Array of questions to create

Question Types

Type
Aliases
Description
Accepts Text

DEPTH_TEXT

long_answer

Long-form text (AI-analyzed)

✅ Yes

TEXT

short_answer

Short text

✅ Yes

MCQ

mcq

Multiple choice (multi-select)

❌ No

SCQ

scq

Single choice

❌ No

RATING

rating

1-5 scale

❌ No

NPS

nps

Net Promoter Score (0-10)

❌ No

Tip: Use DEPTH_TEXT for feedback text you want AI to analyze.

Response


Publish Data Source

Publish a data source to enable data collection and analysis.

Required Permission: create or all

Request Body

Response

Note: You must publish a data source before you can push content to it.


Webhooks

See Webhooks page


Complete Example

Here's a full workflow: create a feedback group, add a data source, publish it, and push content.


Support

Last updated