Skip to content

API Reference

Complete API documentation for the OriginalVoices API. All endpoints require authentication using a Bearer token in the Authorization header.

API for generating audience insights and topic analysis

Servers

https://api.originalvoices.aiAPI server

Ask


POST /v1/ask/choices

POST
/v1/ask/choices

Ask a choices question to the audience and get summary and themes

Authorizations

bearerAuth
TypeHTTP (bearer)

Request Body

application/json
JSON
{
"audienceId": "string",
"audiencePrompt": "string",
"question": "string",
"choices": [
"string"
],
"isMultipleChoice": false,
"sampleSize": "medium"
}

Responses

Default Response

application/json
JSON
{
"requestId": "string",
"data": {
"choices": [
{
"choice": "string",
"percentage": 0
}
]
}
}

Playground

Authorization
Body

Samples


POST /v1/ask/open

POST
/v1/ask/open

Ask an open-ended question to the audience and get raw answers

Authorizations

bearerAuth
TypeHTTP (bearer)

Request Body

application/json
JSON
{
"audienceId": "string",
"audiencePrompt": "string",
"question": "string",
"questions": [
"string"
],
"sampleSize": "medium"
}

Responses

Default Response

application/json
JSON
{
"requestId": "string",
"data": {
"answers": [
[
]
]
},
"error": null
}

Playground

Authorization
Body

Samples


GET /v1/audiences

GET
/v1/audiences

List all audiences owned by the authenticated organization

Authorizations

bearerAuth
TypeHTTP (bearer)

Responses

Default Response

application/json
JSON
{
"requestId": "string",
"data": {
"audiences": [
{
"id": "string",
"title": "string",
"prompt": "string"
}
]
},
"error": null
}

Playground

Authorization

Samples


POST /v1/audiences

POST
/v1/audiences

Create a new audience with title and prompt

Authorizations

bearerAuth
TypeHTTP (bearer)

Request Body

application/json
JSON
{
"title": "string",
"prompt": "string"
}

Responses

Default Response

application/json
JSON
{
"requestId": "string",
"data": {
"id": "string",
"title": "string"
},
"error": null
}

Playground

Authorization
Body

Samples


DELETE /v1/audiences/{id}

DELETE
/v1/audiences/{id}

Delete an audience

Authorizations

bearerAuth
TypeHTTP (bearer)

Parameters

Path Parameters

id*
Typestring
Required
Format"uuid"

Responses

Default Response

application/json
JSON
{
"requestId": "string",
"data": {
"success": true
},
"error": null
}

Playground

Authorization
Variables
Key
Value

Samples


PATCH /v1/audiences/{id}

PATCH
/v1/audiences/{id}

Update the title of an audience

Authorizations

bearerAuth
TypeHTTP (bearer)

Parameters

Path Parameters

id*
Typestring
Required
Format"uuid"

Request Body

application/json
JSON
{
"title": "string"
}

Responses

Default Response

application/json
JSON
{
"requestId": "string",
"data": {
"id": "string",
"title": "string"
},
"error": null
}

Playground

Authorization
Variables
Key
Value
Body

Samples


GET /v1/projects

GET
/v1/projects

List all projects in the organization with their survey questions and audiences

Authorizations

bearerAuth
TypeHTTP (bearer)

Responses

Default Response

application/json
JSON
{
"requestId": "string",
"data": [
{
"id": "string",
"title": "string",
"description": "string",
"surveyQuestions": [
"string"
],
"audiences": [
{
"id": "string",
"title": "string",
"prompt": "string"
}
]
}
],
"error": null
}

Playground

Authorization

Samples


POST /v1/project/{projectId}/ask

POST
/v1/project/{projectId}/ask

Ask questions to a filtered subset of a project's survey respondents

Authorizations

bearerAuth
TypeHTTP (bearer)

Parameters

Path Parameters

projectId*
Typestring
Required
Format"uuid"

Request Body

application/json
JSON
{
"filter": "string",
"questions": [
"string"
]
}

Responses

Default Response

application/json
JSON
{
"requestId": "string",
"data": {
"answers": [
[
]
],
"matchedTwins": 0,
"totalTwins": 0
},
"error": null
}

Playground

Authorization
Variables
Key
Value
Body

Samples


POST /v1/cms/audience/search

POST
/v1/cms/audience/search

Responses

Default Response

Playground

Samples


GET /.well-known/oauth-authorization-server

GET
/.well-known/oauth-authorization-server

Responses

Default Response

Playground

Samples


GET /.well-known/oauth-protected-resource

GET
/.well-known/oauth-protected-resource

Responses

Default Response

Playground

Samples


GET /.well-known/openai-apps-challenge

GET
/.well-known/openai-apps-challenge

Responses

Default Response

Playground

Samples


GET /mcp

GET
/mcp

Responses

Default Response

Playground

Samples


POST /mcp

POST
/mcp

Responses

Default Response

Playground

Samples


DELETE /mcp

DELETE
/mcp

Responses

Default Response

Playground

Samples


GET /mcp/sse

GET
/mcp/sse

Responses

Default Response

Playground

Samples


POST /mcp/sse

POST
/mcp/sse

Responses

Default Response

Playground

Samples


Health


GET /v1/healthcheck

GET
/v1/healthcheck

Checks if the database connection is healthy

Responses

Default Response

application/json
JSON
{
"status": "string",
"db": "string",
"timestamp": "string"
}

Playground

Samples


Powered by VitePress OpenAPI

Authentication

All API requests require authentication using a Bearer token. Include your API key in the Authorization header:

bash
Authorization: Bearer YOUR_API_KEY

When using the originalvoices npm package, authentication is handled automatically:

javascript
import { OriginalVoices } from "originalvoices";

const client = new OriginalVoices({
  apiKey: "your-api-key-here",
});

Base URL

All API requests should be made to:

https://api.originalvoices.ai

Rate Limits

Rate limits may apply based on your plan. Check your OriginalVoices Platform for current limits.

Error Responses

The API uses standard HTTP status codes. Error responses follow this format:

json
{
  "error": {
    "message": "Error description",
    "type": "error_type",
    "code": "error_code",
    "param": null
  },
  "requestId": "unique-request-id"
}

Common Error Codes

  • 400 - Invalid request body
  • 401 - Missing or invalid API token
  • 402 - Payment Required - Insufficient credits balance
  • 422 - Unprocessable Entity - Insufficient matches found for the audience
  • 500 - Internal server error

Support

For additional support or questions, please contact support@originalvoices.ai or visit our support portal.

Powered by OriginalVoices