ErzyCall API
    ErzyCall API

    Getting Started

    Quick StartAuthentication

    Guides

    Rate LimitingError HandlingWebhooks

    API Reference

    CallsContactsCasesAssistantsPhone NumbersContact GroupsWebhook EndpointsWhatsApp

    Contacts

    Create, read, update, delete, and search contacts.

    List Contacts

    Retrieve a paginated list of contacts.

    GET /api/v1/contacts

    Required scope: contacts:read

    Query Parameters

    ParameterTypeDefaultDescription
    limitinteger25Results per page (1–100)
    cursorstring—Pagination cursor from a previous response
    searchstring—Filter by name or phone number
    groupIdstring—Filter by contact group ID
    tagsstring—Filter by tag (comma-separated for multiple)

    Example Request

    curl -X GET "https://app.erzycall.com/api/v1/contacts?limit=20&tags=vip" \
      -H "X-API-Key: ek_live_abc123"

    Example Response

    {
      "data": [
        {
          "id": "contact_456",
          "title": "John Doe",
          "phone": "+14155551234",
          "email": "john@example.com",
          "tags": ["vip", "enterprise"],
          "createdAt": "2025-01-10T08:00:00Z"
        }
      ],
      "pagination": {
        "cursor": "eyJwb3...",
        "hasMore": false,
        "pageSize": 20
      }
    }

    Search Contacts

    Full-text search across contact names and phone numbers.

    GET /api/v1/contacts/search

    Required scope: contacts:read

    Query Parameters

    ParameterTypeDefaultDescription
    qstring—Search query (min 2 characters)
    limitinteger10Max results (1–50)

    Example Request

    curl -X GET "https://app.erzycall.com/api/v1/contacts/search?q=john&limit=5" \
      -H "X-API-Key: ek_live_abc123"

    Example Response

    {
      "data": [
        {
          "id": "contact_456",
          "title": "John Doe",
          "phone": "+14155551234",
          "email": "john@example.com"
        }
      ]
    }

    Create Contact

    Create a new contact.

    POST /api/v1/contacts

    Required scope: contacts:write

    Request Body

    FieldTypeRequiredDescription
    titlestringYesContact name (1–200 chars)
    phonestringYesPhone in E.164 format (e.g., +14155551234)
    emailstringNoEmail address
    notesstringNoNotes (max 5,000 chars)
    tagsstring[]NoTags (max 20 tags, each max 50 chars)
    groupIdsstring[]NoContact group IDs to add this contact to (max 20)
    customFieldsobjectNoArbitrary key-value custom fields

    Example Request

    curl -X POST "https://app.erzycall.com/api/v1/contacts" \
      -H "X-API-Key: ek_live_abc123" \
      -H "Content-Type: application/json" \
      -H "Idempotency-Key: create-contact-john" \
      -d '{
        "title": "John Doe",
        "phone": "+14155551234",
        "email": "john@example.com",
        "tags": ["vip"],
        "customFields": {"company": "Acme Inc"}
      }'

    Example Response (201 Created)

    {
      "data": {
        "id": "contact_456",
        "title": "John Doe",
        "phone": "+14155551234",
        "email": "john@example.com",
        "tags": ["vip"],
        "customFields": {"company": "Acme Inc"},
        "createdAt": "2025-01-15T10:30:00Z"
      }
    }

    Errors

    StatusCodeDescription
    409CONFLICTA contact with this phone number already exists

    Get Contact

    Retrieve details for a single contact.

    GET /api/v1/contacts/{id}

    Required scope: contacts:read

    Example Request

    curl -X GET "https://app.erzycall.com/api/v1/contacts/contact_456" \
      -H "X-API-Key: ek_live_abc123"

    Example Response

    {
      "data": {
        "id": "contact_456",
        "title": "John Doe",
        "phone": "+14155551234",
        "email": "john@example.com",
        "tags": ["vip", "enterprise"],
        "createdAt": "2025-01-10T08:00:00Z"
      }
    }

    Update Contact

    Update fields on an existing contact. Only include the fields you want to change.

    PATCH /api/v1/contacts/{id}

    Required scope: contacts:write

    Request Body

    All fields are optional. Only provided fields are updated.

    FieldTypeDescription
    titlestringContact name (1–200 chars)
    phonestringPhone in E.164 format
    emailstringEmail address
    notesstringNotes (max 5,000 chars)
    tagsstring[]Replace all tags
    groupIdsstring[]Replace all group memberships
    customFieldsobjectReplace all custom fields

    Example Request

    curl -X PATCH "https://app.erzycall.com/api/v1/contacts/contact_456" \
      -H "X-API-Key: ek_live_abc123" \
      -H "Content-Type: application/json" \
      -d '{"tags": ["vip", "enterprise"], "notes": "Updated notes"}'

    Example Response

    {
      "data": {
        "id": "contact_456",
        "title": "John Doe",
        "phone": "+14155551234",
        "email": "john@example.com",
        "tags": ["vip", "enterprise"],
        "notes": "Updated notes",
        "createdAt": "2025-01-10T08:00:00Z"
      }
    }

    Delete Contact

    Permanently delete a contact.

    DELETE /api/v1/contacts/{id}

    Required scope: contacts:write

    Example Request

    curl -X DELETE "https://app.erzycall.com/api/v1/contacts/contact_456" \
      -H "X-API-Key: ek_live_abc123"

    Response

    Returns 204 No Content on success.

    Calls

    List, create, view, and cancel outbound voice calls.

    Cases

    List and view case records — reusable call scripts with AI instructions.

    On this page

    List ContactsQuery ParametersExample RequestExample ResponseSearch ContactsQuery ParametersExample RequestExample ResponseCreate ContactRequest BodyExample RequestExample Response (201 Created)ErrorsGet ContactExample RequestExample ResponseUpdate ContactRequest BodyExample RequestExample ResponseDelete ContactExample RequestResponse