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

# Get a contact

> One customer with their details and their 10 most recent conversations. Customer API.



## OpenAPI

````yaml /openapi.yaml get /contacts/{contact_id}
openapi: 3.0.0
info:
  title: Answering Agent API
  description: >
    The Customer API reads a team's conversations, transcripts, recordings,
    tasks, contacts, and reports. It also updates tasks and adds notes to them.
    The Partner API lets reseller accounts manage organizations, users,
    locations, partner links, and embed tokens. Both use an X-API-KEY header.
    Requests from this playground go to production.
  version: 1.0.0
servers:
  - url: https://answeringagent.com/api/v1
    description: Production
security: []
tags:
  - name: Account
    description: Customer API. Your team, phone lines, and members.
  - name: Conversations
    description: >-
      Customer API. Calls, texts, website chats, and emails, with transcripts
      and recordings.
  - name: Tasks
    description: >-
      Customer API. Follow-up tasks. Read them, update their status or assignee,
      and add notes.
  - name: Contacts
    description: Customer API. Your customers.
  - name: Reports
    description: Customer API. Report metrics, totals, and breakdowns.
  - name: Organizations
    description: Partner API, reseller accounts only.
  - name: Users
    description: Partner API, reseller accounts only.
  - name: Locations
    description: Partner API, reseller accounts only.
  - name: Account Linking
    description: Partner API, reseller accounts only.
  - name: Embed Tokens
    description: Partner API, reseller accounts only.
paths:
  /contacts/{contact_id}:
    get:
      tags:
        - Contacts
      summary: Get a contact
      description: >-
        One customer with their details and their 10 most recent conversations.
        Customer API.
      operationId: getContact
      parameters:
        - in: path
          name: contact_id
          required: true
          schema:
            type: integer
            minimum: 1
          description: The contact ID.
      responses:
        '200':
          description: The contact.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContactDetail'
        '400':
          $ref: '#/components/responses/CustomerBadRequest'
        '401':
          $ref: '#/components/responses/CustomerUnauthorized'
        '403':
          $ref: '#/components/responses/CustomerForbidden'
        '404':
          $ref: '#/components/responses/CustomerNotFound'
        '405':
          $ref: '#/components/responses/CustomerMethodNotAllowed'
        '429':
          $ref: '#/components/responses/CustomerRateLimited'
      security:
        - ApiKeyAuth: []
components:
  schemas:
    ContactDetail:
      allOf:
        - $ref: '#/components/schemas/Contact'
        - type: object
          properties:
            recent_conversations:
              type: array
              maxItems: 10
              items:
                $ref: '#/components/schemas/Conversation'
    Contact:
      type: object
      properties:
        id:
          type: integer
          example: 77310
        url:
          type: string
          example: https://answeringagent.com/dashboard/contacts/77310
        name:
          type: string
          nullable: true
        phone:
          type: string
          nullable: true
        email:
          type: string
          nullable: true
        company:
          type: string
          nullable: true
        stage:
          type: string
          nullable: true
        tags:
          type: array
          items:
            type: string
        notes:
          type: string
          nullable: true
        blocked:
          type: boolean
        phone_call_count:
          type: integer
          description: >-
            Phone calls with this contact that the key can see. Texts, chats,
            and emails that started on their own are not counted.
        first_contact_at:
          type: string
          format: date-time
          nullable: true
          description: >-
            When the contact record was created. Not always the first
            conversation.
        last_call_at:
          type: string
          format: date-time
          nullable: true
          description: >-
            When the contact's latest phone call or website chat handoff
            started. Null when the key cannot see it.
    Conversation:
      type: object
      properties:
        id:
          type: integer
          example: 184532
        url:
          type: string
          example: https://answeringagent.com/dashboard/conversations/184532
        channel:
          anyOf:
            - $ref: '#/components/schemas/Channel'
            - $ref: '#/components/schemas/NullValue'
        channels:
          type: array
          description: >
            Every channel the conversation happened on. A call the customer
            replied to by text lists phone and text. Texts the AI sent during or
            after a call appear in written.messages but don't add text.
          items:
            $ref: '#/components/schemas/Channel'
        started_at:
          type: string
          format: date-time
          nullable: true
        last_activity_at:
          type: string
          format: date-time
          nullable: true
        title:
          type: string
          nullable: true
          example: Cancel monthly membership
        summary:
          type: string
          nullable: true
        category:
          anyOf:
            - $ref: '#/components/schemas/Category'
            - $ref: '#/components/schemas/NullValue'
        customer:
          $ref: '#/components/schemas/CustomerRef'
        phone_line:
          anyOf:
            - $ref: '#/components/schemas/PhoneLine'
            - $ref: '#/components/schemas/NullValue'
        duration_seconds:
          type: integer
          nullable: true
          example: 214
        has_recording:
          type: boolean
          description: >
            True when GET /conversations/{conversation_id}/recording has audio
            to stream. For some calls the recording provider stores the audio
            and can delete it, so true can still get a 404.
    CustomerError:
      type: object
      required:
        - error
        - code
      properties:
        error:
          type: string
          description: A message for people. The text can change.
          example: That conversation is not available.
        code:
          type: string
          description: A stable code to branch on.
          enum:
            - invalid_request
            - unauthorized
            - forbidden
            - not_found
            - method_not_allowed
            - conflict
            - unprocessable
            - rate_limited
            - internal
          example: not_found
        issues:
          type: array
          description: >-
            Present when code is invalid_request. One entry for each input that
            failed validation.
          items:
            type: object
            properties:
              path:
                type: array
                items: {}
              message:
                type: string
    Channel:
      type: string
      enum:
        - phone
        - text
        - web_chat
        - email
    NullValue:
      description: No value.
      type: object
      nullable: true
      enum:
        - null
    Category:
      type: string
      description: >
        A category key. Conversations, tasks, and reports share one list. A form
        task has form. GET /reports/metrics lists every key with its label under
        categories. Older records can have a retired key that is not in that
        list.
      example: cancellation
    CustomerRef:
      type: object
      properties:
        name:
          type: string
          nullable: true
          example: Dana Ruiz
        phone:
          type: string
          nullable: true
          example: '+15125550118'
        email:
          type: string
          nullable: true
          example: dana.ruiz@example.com
    PhoneLine:
      type: object
      properties:
        id:
          type: integer
          example: 2181
        name:
          type: string
          nullable: true
          example: Westside Wash
        phone_number:
          type: string
          nullable: true
          example: '+15125550142'
  responses:
    CustomerBadRequest:
      description: An input is missing or invalid.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CustomerError'
    CustomerUnauthorized:
      description: >-
        The X-API-KEY header is missing, the key is wrong or revoked, or its
        owner was deactivated.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CustomerError'
    CustomerForbidden:
      description: The key's owner is not an owner, admin, or manager on the team.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CustomerError'
    CustomerNotFound:
      description: The record does not exist, or the key's owner cannot see it.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CustomerError'
    CustomerMethodNotAllowed:
      description: The endpoint does not support that HTTP method. Nothing changed.
      headers:
        Allow:
          description: The methods the endpoint supports, such as GET, HEAD, OPTIONS.
          schema:
            type: string
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CustomerError'
          example:
            error: This endpoint accepts GET.
            code: method_not_allowed
    CustomerRateLimited:
      description: More than 120 requests in a minute for this user.
      headers:
        Retry-After:
          description: Seconds to wait before retrying.
          schema:
            type: integer
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CustomerError'
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: X-API-KEY

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.