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.

OpenAPI Specification

unblocked-answers-api-openapi.yml Raw ↑
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