> ## Documentation Index
> Fetch the complete documentation index at: https://docs.api.tamtam.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Ask a research question about a contact

> Ask a grounded research question about one person. Returns immediately; poll [Get research answers for a contact](/api-reference/contacts/get-research-answers-for-a-contact) to collect the answer.

The answer is grounded in the person's profile, their company, and a web search, so use it for what differs between people at the same company rather than for facts about the company itself.

Costs 1 credit per contact. Asking the same question text again reuses the question you already have — the ID stays stable, so asking it about a hundred people gives you one question and a hundred answers, not a hundred questions.



## OpenAPI

````yaml /reference/openapi.yaml post /v2/contacts/{contactID}/research-questions
openapi: 3.1.0
info:
  title: Tamtam Public API
  version: 2.0.0
servers:
  - url: https://api.tamtam.ai/api
security: []
paths:
  /v2/contacts/{contactID}/research-questions:
    post:
      tags:
        - Contacts
      summary: Ask a research question about a contact
      description: >-
        Ask a grounded research question about one person. Returns immediately;
        poll [Get research answers for a
        contact](/api-reference/contacts/get-research-answers-for-a-contact) to
        collect the answer.


        The answer is grounded in the person's profile, their company, and a web
        search, so use it for what differs between people at the same company
        rather than for facts about the company itself.


        Costs 1 credit per contact. Asking the same question text again reuses
        the question you already have — the ID stays stable, so asking it about
        a hundred people gives you one question and a hundred answers, not a
        hundred questions.
      operationId: ask-contact-research-question
      parameters:
        - description: Tamtam contact ID.
          in: path
          name: contactID
          required: true
          schema:
            description: Tamtam contact ID.
            examples:
              - b3c6f5e2-1234-4abc-9def-0123456789ab
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AskContactResearchQuestionInputBody'
        required: true
      responses:
        '202':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContactResearchQuestionDto'
          description: Accepted
        default:
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ErrorModel'
          description: Error
      security:
        - apikeyAuth: []
        - bearerAuth: []
components:
  schemas:
    AskContactResearchQuestionInputBody:
      additionalProperties: false
      properties:
        name:
          description: >-
            Short label for the question, as a CRM column name would be.
            Defaults to the question text.
          examples:
            - Brands managed
          type: string
        question:
          description: >-
            The question to answer about this contact, in plain language.
            Grounded in the person's profile, their company, and a web search.
          examples:
            - Which brands does this person look after?
          maxLength: 2000
          minLength: 3
          type: string
      required:
        - question
      type: object
    ContactResearchQuestionDto:
      additionalProperties: false
      properties:
        answer:
          description: The answer, present once the status is COMPLETED.
          type: string
        id:
          description: >-
            ID of the question. Stable across contacts: the same question asked
            about ten people carries one ID.
          examples:
            - b3c6f5e2-1234-4abc-9def-0123456789ab
          type: string
        name:
          description: The column name given to this question.
          examples:
            - Brands managed
          type: string
        question:
          description: The question as configured.
          examples:
            - Which brands does this person look after?
          type: string
        status:
          description: One of COMPLETED, PROCESSING, FAILED.
          examples:
            - COMPLETED
          type: string
        updated_at:
          description: When this question last produced an answer for this contact.
          format: date-time
          type: string
      required:
        - id
        - name
        - question
        - status
      type: object
    ErrorModel:
      additionalProperties: false
      properties:
        detail:
          description: >-
            A human-readable explanation specific to this occurrence of the
            problem.
          examples:
            - Property foo is required but is missing.
          type: string
        errors:
          description: Optional list of individual error details
          items:
            $ref: '#/components/schemas/ErrorDetail'
          type:
            - array
            - 'null'
        instance:
          description: >-
            A URI reference that identifies the specific occurrence of the
            problem.
          examples:
            - https://example.com/error-log/abc123
          format: uri
          type: string
        status:
          description: HTTP status code
          examples:
            - 400
          format: int64
          type: integer
        title:
          description: >-
            A short, human-readable summary of the problem type. This value
            should not change between occurrences of the error.
          examples:
            - Bad Request
          type: string
        type:
          default: about:blank
          description: A URI reference to human-readable documentation for the error.
          examples:
            - https://example.com/errors/example
          format: uri
          type: string
      type: object
    ErrorDetail:
      additionalProperties: false
      properties:
        location:
          description: >-
            Where the error occurred, e.g. 'body.items[3].tags' or
            'path.thing-id'
          type: string
        message:
          description: Error message text
          type: string
        value:
          description: The value at the given location
      type: object
  securitySchemes:
    apikeyAuth:
      description: Account API key passed in the Authorization header
      in: header
      name: Authorization
      type: apiKey
    bearerAuth:
      description: Bearer JWT obtained via the OAuth 2.1 authorization flow
      scheme: bearer
      type: http

````