---
title: "Create contact view"
method: POST
path: "/v1/views"
tags: ["Views"]
---

# Create contact view

`POST /v1/views`

## Request

- Base URL: `https://api.talktohumans.app`
- URL: `https://api.talktohumans.app/v1/views`
- Auth: HTTP bearer

Creates a TalkToHumans contact view from specific contacts.

## Request body

- CreateViewRequest
  - `account_id` string: LinkedIn account ID returned by `GET /v1/accounts`. Required when the organization has multiple LinkedIn accounts.
  - `type` 'contact' | 'member': V1 supports contact views only.
  - `view_kind` 'member': Advanced alias for the underlying TalkToHumans saved-view kind. V1 supports `member` only.
  - `name` string, required
  - `description` string, nullable
  - `filters` CreateViewFilters, required
    - `specific_contacts` SpecificContactsFilter, required
      - `contact_ids` string[], required: Contact IDs returned by `GET /v1/contacts`.

## Response `201`

Contact view created.

- CreateViewEnvelope
  - `data` CreateViewResponse, required
    - `view` CreatedView, required
      - `id` string, required: TalkToHumans view ID. Pass as `view_id` on `GET /v1/contacts` to page through its contacts.
      - `public_id` string, required: Public saved-view ID used in app URLs. Also accepted as `view_id` on `GET /v1/contacts`.
      - `type` 'contact', required
      - `view_kind` 'member', required
      - `name` string, required
      - `description` string, nullable
      - `account` AccountSummary, required
        - `account_id` string, required: TalkToHumans account ID.
        - `display_name` string, required
        - `provider_account_id` string, required: LinkedIn provider account ID.
        - `owner_user_id` string, required: TalkToHumans user ID that owns the account.
      - `selected_contact_ids` string[], required
      - `simple_filters_json` string, required: Serialized TalkToHumans saved-view simple filter group.
      - `advanced_filters_json` string, nullable: Serialized TalkToHumans saved-view advanced filter group. V1 returns null.
      - `app_url` string, uri, required
      - `created_at` string, date-time, required
      - `updated_at` string, date-time, required

## Other responses

- `400`: Invalid request parameters.
- `401`: Missing, malformed, invalid, or retired local API key.
- `403`: API access is not enabled for the organization, the API key cannot resolve to an active organization user, or the credential cannot access the requested LinkedIn account.
- `429`: Rate limit exceeded. Public routes allow 50 requests per 10 seconds per IP and endpoint.
- `500`: Unexpected server error.

---

[API](https://skmtc.dev/talktohumans/apis/talktohumans-public-api.md) · [All operations](https://skmtc.dev/talktohumans/apis/talktohumans-public-api/llms.txt) · [OpenAPI document](https://skmtc.dev/talktohumans/apis/talktohumans-public-api/revisions/4551ad2f26af?raw)
