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