Unblocked Answers API
Ask Unblocked questions and retrieve answers asynchronously. Submit a question using the PUT endpoint and poll for the response using the GET endpoint.
Ask Unblocked questions and retrieve answers asynchronously. Submit a question using the PUT endpoint and poll for the response using the GET endpoint.
openapi: 3.0.3
info:
contact:
email: help@getunblocked.com
name: Unblocked
description: "The Unblocked Public API offers seamless collection for managing custom data sources through a structured set of endpoints.\nIt allows users to create collections and organize and upload documents.\n\n# Base URL\nThe base URL for all requests is:\n\n```jsx\nhttps://getunblocked.com/api/v1\n```\n\n# Authentication\nAuthentication requires an API key, obtainable from the web dashboard,\nwhich must be included in the `Authorization` request header for all endpoints.\n\n```bash\ncurl -X GET https://getunblocked.com/api/v1/collections \\\n -H \"Authorization: Bearer YOUR_API_KEY\"\n```\n\n# Rate Limits & Quotas\n\n**Resource Limits:**\n- Collections: Maximum 25 per team\n- Request Size: Maximum 10MB per request\n- Pagination: 1-200 items per page (default: 25)\n\n**Answers API:**\n- Daily Limit: 1000 questions per day per organization\n- Quota Reset: Midnight PST\n- Exceeding the limit returns a 429 Too Many Requests error\n\n**Field Constraints:**\n- Collection name: 1-32 characters\n- Collection description: 1-4096 characters\n"
title: Unblocked Public API Reference Answers API
version: v1
x-logo:
url: https://avatars.githubusercontent.com/u/91906527?s=300
altText: Unblocked
servers:
- url: https://getunblocked.com/api/v1
security:
- ApiKeyBearerAuth: []
tags:
- description: 'Ask Unblocked questions and retrieve answers asynchronously. Submit a question using the PUT endpoint and poll for the response using the GET endpoint.
'
name: Answers
paths:
/answers:
get:
description: '
List all questions and answers for your organization, ordered by creation time (newest first).
**Authentication behavior:**
- **Personal Access Token (PAT) keys**: Only questions asked by that specific user are returned (user-level isolation)
- **Organization-wide API keys**: All questions in the organization are returned
'
operationId: listAnswers
parameters:
- description: 'Limit used to constrain results of list operations. When not specified a default limit of 25 is used.
A maximum limit is applied to the results, so the server may respond with fewer results than requested; clients must not use this as a signal that this is the final page of results.
'
in: query
name: limit
required: false
schema:
format: int32
maximum: 200
minimum: 1
type: integer
- in: query
name: after
required: false
schema:
$ref: '#/components/schemas/Cursor'
- in: query
name: before
required: false
schema:
$ref: '#/components/schemas/Cursor'
responses:
'200':
content:
application/json:
schema:
items:
$ref: '#/components/schemas/Answer'
type: array
description: OK
headers:
link:
$ref: '#/components/headers/Link'
'401':
$ref: '#/components/responses/ErrorResponse'
'403':
$ref: '#/components/responses/ErrorResponse'
'500':
$ref: '#/components/responses/ErrorResponse'
summary: List Answers
tags:
- Answers
/answers/{questionId}:
delete:
description: 'Permanently delete a question and its associated answer. This operation cannot be undone.
'
operationId: deleteAnswer
parameters:
- in: path
name: questionId
required: true
schema:
$ref: '#/components/schemas/ApiResourceId'
responses:
'204':
description: No Content
'401':
$ref: '#/components/responses/ErrorResponse'
'403':
$ref: '#/components/responses/ErrorResponse'
'404':
$ref: '#/components/responses/ErrorResponse'
'500':
$ref: '#/components/responses/ErrorResponse'
summary: Delete a Question
tags:
- Answers
get:
description: 'Poll a pending question for a response. Use this endpoint to check if your question has been processed and retrieve the answer.
'
operationId: getAnswer
parameters:
- in: path
name: questionId
required: true
schema:
$ref: '#/components/schemas/ApiResourceId'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/Answer'
description: OK
'401':
$ref: '#/components/responses/ErrorResponse'
'403':
$ref: '#/components/responses/ErrorResponse'
'404':
$ref: '#/components/responses/ErrorResponse'
'500':
$ref: '#/components/responses/ErrorResponse'
summary: Retrieve an Answer
tags:
- Answers
put:
description: 'Submit a question to Unblocked. This endpoint initiates an asynchronous question processing. Use the GET endpoint to poll for the response.
'
operationId: askQuestion
parameters:
- in: path
name: questionId
required: true
schema:
$ref: '#/components/schemas/ApiResourceId'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/Question'
required: true
responses:
'204':
description: No Content
'400':
$ref: '#/components/responses/ErrorResponse'
'401':
$ref: '#/components/responses/ErrorResponse'
'403':
$ref: '#/components/responses/ErrorResponse'
'429':
$ref: '#/components/responses/ErrorResponse'
'500':
$ref: '#/components/responses/ErrorResponse'
summary: Ask a Question
tags:
- Answers
components:
schemas:
Answer:
properties:
state:
enum:
- processing
- complete
type: string
questionId:
description: The unique identifier for the question
format: uuid
type: string
question:
description: The original question text that was asked
type: string
answer:
description: The answer to the question in Markdown format
type: string
references:
description: References used in the answer
items:
$ref: '#/components/schemas/Reference'
type: array
required:
- state
type: object
Cursor:
description: 'Opaque cursor to be used for paging in a forward or backward direction. Cursors are stateless and so they never expire.
'
maxLength: 10000
minLength: 1
type: string
Question:
properties:
question:
description: The question to ask
type: string
required:
- question
type: object
Reference:
properties:
htmlUrl:
type: string
required:
- htmlUrl
type: object
ApiResourceId:
description: The ID of a resource that can be retrieved from the service.
format: uuid
type: string
responses:
ErrorResponse:
content:
application/json:
schema:
properties:
status:
description: The HTTP status code
example: 400
type: integer
required:
- status
type: object
description: Error response
headers:
Link:
description: 'A link header providing navigation links related to the response.
'
example: <https://api.example.com/some/resource>; rel="next"
schema:
type: string
securitySchemes:
ApiKeyBearerAuth:
bearerFormat: Unblocked API Key
description: The API key to authenticate requests. Obtainable from the web dashboard.
scheme: bearer
type: http
x-tagGroups:
- name: Resources
tags:
- Collections
- Documents
- Answers