---
updatedAt: 2026-06-06T16:54:20.000Z
agentTools:
  projectIndex: https://apidocs.apptoto.com/llms.txt
---

# /v1/contact

Fetch one contact by either "id"  or "external\_id".

One of the "id" or "external\_id" parameters must be specified.

Example Result:

```json
{
  id: 1,
  external_id: "yourid",
  name: "Fred Smith",
  first_name: "Fred",
  last_name: "Smith",
  zip: "97701",
  address_book_id: 123,
  address_book_name: "Apptoto Address Book",
  writable: true,
  notes: "Long string of notes",
  tags: "#prospect",
  deleted: false,
  phone_numbers: [
    {
      id: 3,
      number: "650-555-1212",
      normalized: "+16505551212",
      type: "mobile",
      is_primary: true
    }
  ],
  email_addresses: [
    {
      id: 4,
      address: "fredsmith@gmail.com",
      type: "work"
    }
  ],
  custom_data: {
    field_1: "vip"
  }
}
```

### OAuth scope

Calls authenticated with an [OAuth 2.0](/reference/oauth-authentication) bearer token must include the `contacts:read` scope. A token without it receives a `403` `insufficient_scope` response. HTTP Basic auth is not scope-gated.

# OpenAPI definition

```json
{
  "openapi": "3.1.0",
  "info": {
    "title": "api-settings",
    "version": "1.0"
  },
  "servers": [
    {
      "url": "https://api.apptoto.com"
    }
  ],
  "components": {
    "securitySchemes": {
      "sec0": {
        "type": "http",
        "scheme": "basic"
      },
      "sec1": {
        "type": "oauth2",
        "flows": {
          "authorizationCode": {
            "authorizationUrl": "https://www.apptoto.com/oauth/authorize",
            "tokenUrl": "https://api.apptoto.com/oauth/token",
            "refreshUrl": "https://api.apptoto.com/oauth/token",
            "scopes": {
              "calendars:read": "View calendars",
              "address_books:read": "View address books",
              "contacts:read": "View contacts",
              "contacts:write": "Create, update, and delete contacts",
              "events:read": "View calendar events",
              "events:write": "Create, update, and delete events; mark event statuses",
              "bookings:read": "View booking page availability and existing bookings",
              "bookings:write": "Create bookings on booking pages",
              "imports:read": "Check the status of imports",
              "imports:write": "Upload imports (CSV / ICS / XML) that bulk-create data",
              "lists:read": "View opt-in and opt-out lists",
              "lists:write": "Modify opt-in and opt-out lists",
              "messaging:read": "View conversations and message history",
              "messaging:send": "Send SMS or email messages on the user's behalf",
              "webhooks:read": "View webhooks",
              "webhooks:write": "Create, update, and delete webhooks that send account activity to other services"
            }
          }
        }
      }
    }
  },
  "security": [
    {
      "sec0": []
    },
    {
      "sec1": []
    }
  ],
  "paths": {
    "/v1/contact": {
      "get": {
        "summary": "/v1/contact",
        "description": "",
        "operationId": "v1contact",
        "parameters": [
          {
            "name": "id",
            "in": "query",
            "description": "The Apptoto id for the contact.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "external_id",
            "in": "query",
            "description": "Fetch one contact with the \"external_id\" provided when created through the API.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "address_book_id",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "deprecated": false,
        "security": [
          {
            "sec0": []
          },
          {
            "sec1": [
              "contacts:read"
            ]
          }
        ]
      }
    }
  },
  "x-readme": {
    "headers": [],
    "explorer-enabled": true,
    "proxy-enabled": true
  },
  "x-readme-fauxas": true
}
```