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

# Affinity: V2 Persons Get

> List people (contacts) in your Affinity CRM, with the field values you ask for. Includes SDK V2 examples, input constraints, response fields, and Deepline cost.

List people (contacts) in your Affinity CRM, with the field values you ask for.

> [!NOTE]
>
> Tool ID: `affinity_v2_persons_get`

## Run this action

Use the TypeScript SDK for one call. Use `ctx.tools.execute(...)` inside a Play for durable calls, scheduled calls, or CSV processing.

```ts theme={"languages":{"custom":["/languages/deepline-prompt.json"]}}
import { Deepline } from 'deepline';

const deepline = await Deepline.connect();
const result = await deepline.tools.execute(
  'affinity_v2_persons_get',
  {
    "cursor": "cursor_123",
    "limit": 100,
    "ids": [
      123
    ]
  },
);

console.log(result.toolResponse.raw);
```

### CLI

```bash theme={"languages":{"custom":["/languages/deepline-prompt.json"]}}
deepline tools execute affinity_v2_persons_get --input '{
  "cursor": "cursor_123",
  "limit": 100,
  "ids": [
    123
  ]
}' --json
```

## Example response

The SDK returns this shape at `result.toolResponse.raw`. The example values illustrate the response.

```json theme={"languages":{"custom":["/languages/deepline-prompt.json"]}}
{
  "data": {
    "data": [
      {
        "id": 123,
        "firstName": "Jane",
        "lastName": "Doe",
        "primaryEmailAddress": "jane.doe@example.com",
        "emailAddresses": [
          "jane.doe@example.com"
        ],
        "type": "internal"
      }
    ],
    "pagination": {
      "prevUrl": "https://example.com",
      "nextUrl": "https://example.com"
    }
  }
}
```

Use `deepline describe affinity_v2_persons_get --json` for the latest machine-readable contract.

## Input reference

Paginate through Persons in Affinity. Returns basic information and non-list-specific field data on each Person. To retrieve field data, you must use either the `fieldIds` or the `fieldTypes` parameter to specify the Fields for which you want data returned. These Field IDs and Types can be found using the GET `/v2/persons/fields` endpoint. When no `fieldIds` or `fieldTypes` are provided, Persons will be returned without any field data attached. To supply multiple `fieldIds` or `fieldTypes` parameters, generate a query string that looks like this: `?fieldIds=field-1234&fieldIds=affinity-data-location` or `?fieldTypes=enriched&fieldTypes=global`. Requires the "Export All People directory" [permission](https://deepline.com/docs/pages/external-api-v2/permissions).

| Name | Type | Required | Default | Details |
| - | - | - | - | - |
| `payload.cursor` | `string` | No | — | Cursor for the next or previous page |
| `payload.limit` | `integer` | No | `100` | Number of items to include in the page Format: `int32`. Minimum: 1. Maximum: 100. |
| `payload.ids` | `array` | No | — | People IDs |
| `payload.fieldIds` | `array` | No | — | Field IDs for which to return field data |
| `payload.fieldTypes` | `array` | No | — | Field Types for which to return field data |

<details>
  <summary>Show raw input schema</summary>

  ### Input JSON Schema

  ```json theme={"languages":{"custom":["/languages/deepline-prompt.json"]}}
  {
    "type": "object",
    "description": "Paginate through Persons in Affinity. Returns basic information and non-list-specific field data on each Person. To retrieve field data, you must use either the `fieldIds` or the `fieldTypes` parameter to specify the Fields for which you want data returned. These Field IDs and Types can be found using the GET `/v2/persons/fields` endpoint. When no `fieldIds` or `fieldTypes` are provided, Persons will be returned without any field data attached. To supply multiple `fieldIds` or `fieldTypes` parameters, generate a query string that looks like this: `?fieldIds=field-1234&fieldIds=affinity-data-location` or `?fieldTypes=enriched&fieldTypes=global`. Requires the \"Export All People directory\" [permission](/pages/external-api-v2/permissions).",
    "properties": {
      "cursor": {
        "type": "string",
        "description": "Cursor for the next or previous page"
      },
      "limit": {
        "type": "integer",
        "description": "Number of items to include in the page",
        "default": 100,
        "minimum": 1,
        "maximum": 100,
        "format": "int32"
      },
      "ids": {
        "type": "array",
        "description": "People IDs",
        "items": {
          "type": "integer",
          "minimum": 1,
          "maximum": 9007199254740991,
          "format": "int64"
        }
      },
      "fieldIds": {
        "type": "array",
        "description": "Field IDs for which to return field data",
        "items": {
          "type": "string"
        }
      },
      "fieldTypes": {
        "type": "array",
        "description": "Field Types for which to return field data",
        "items": {
          "type": "string",
          "enum": [
            "enriched",
            "global",
            "relationship-intelligence"
          ]
        }
      }
    },
    "required": [],
    "additionalProperties": false
  }
  ```
</details>

## Output reference

| Name | Type | Required | Default | Details |
| - | - | - | - | - |
| `result.data` | `object` | Yes | — | — |
| `result.data.data` | `array` | Yes | — | Maximum items: 100. |
| `result.data.data[].id` | `integer` | Yes | — | Format: `int64`. Minimum: 1. Maximum: 9007199254740991. |
| `result.data.data[].firstName` | `string` | Yes | — | — |
| `result.data.data[].lastName` | `string \| null` | Yes | — | — |
| `result.data.data[].primaryEmailAddress` | `string \| null` | Yes | — | Format: `email`. |
| `result.data.data[].emailAddresses` | `array` | Yes | — | — |
| `result.data.data[].type` | `"internal" \| "external"` | Yes | — | Allowed: `internal`, `external`. |
| `result.data.data[].fields` | `array` | No | — | — |
| `result.data.data[].fields[].id` | `string` | Yes | — | — |
| `result.data.data[].fields[].name` | `string` | Yes | — | — |
| `result.data.data[].fields[].type` | `"enriched" \| "global" \| "list" \| "relationship-intelligence" \| "hidden"` | Yes | — | Allowed: `enriched`, `global`, `list`, `relationship-intelligence`, `hidden`. |
| `result.data.data[].fields[].enrichmentSource` | `"affinity-data" \| "dealroom" \| "eventbrite" \| "mailchimp" \| null` | Yes | — | Allowed: `affinity-data`, `dealroom`, `eventbrite`, `mailchimp`, `null`. |
| `result.data.data[].fields[].value` | `object` | Yes | — | — |
| `result.data.data[].fields[].value.type` | `"company-multi"` | Yes | — | — |
| `result.data.data[].fields[].value.data` | `array \| null` | Yes | — | — |
| `result.data.data[].fields[].value.data[].id` | `integer` | Yes | — | — |
| `result.data.data[].fields[].value.data[].name` | `string` | Yes | — | — |
| `result.data.data[].fields[].value.data[].domain` | `string \| null` | Yes | — | — |
| `result.data.data[].fields[].value.totalCount` | `integer` | No | — | Format: `int32`. Minimum: 0. Maximum: 2147483647. |
| `result.data.data[].fields[].value.data[].dropdownOptionId` | `integer` | Yes | — | — |
| `result.data.data[].fields[].value.data[].text` | `string` | Yes | — | — |
| `result.data.data[].fields[].value.data[].streetAddress` | `string \| null` | Yes | — | — |
| `result.data.data[].fields[].value.data[].city` | `string \| null` | Yes | — | — |
| `result.data.data[].fields[].value.data[].state` | `string \| null` | Yes | — | — |
| `result.data.data[].fields[].value.data[].country` | `string \| null` | Yes | — | — |
| `result.data.data[].fields[].value.data[].continent` | `string \| null` | Yes | — | — |
| `result.data.data[].fields[].value.data[].firstName` | `string \| null` | Yes | — | — |
| `result.data.data[].fields[].value.data[].lastName` | `string \| null` | Yes | — | — |
| `result.data.data[].fields[].value.data[].primaryEmailAddress` | `string \| null` | Yes | — | — |
| `result.data.data[].fields[].value.data[].type` | `"internal" \| "collaborator" \| "external"` | Yes | — | — |
| `result.data.pagination` | `object` | Yes | — | — |
| `result.data.pagination.prevUrl` | `string \| null` | No | — | Format: `uri`. |
| `result.data.pagination.nextUrl` | `string \| null` | No | — | Format: `uri`. |
| `result.meta` | `object` | No | — | — |

> [!NOTE]
>
> This output schema is too large for an inline display. Read the complete live contract with `deepline describe affinity_v2_persons_get --json`.

## Deepline cost

* Pricing model: `fixed` (per call).
* Estimated Deepline credits: `0` per pricing unit.
* Provider-native pricing may still exist outside Deepline credit billing.

## Related documentation

* [Affinity provider guide](https://deepline.com/docs/providers/affinity/guide.md)
* [SDK V2 quickstart](https://deepline.com/docs/sdk-v2/quickstart.md)
* [SDK reference](https://deepline.com/docs/sdk-v2/sdk-reference.md)
* [Run tools across a CSV](https://deepline.com/docs/sdk-v2/batch-csv.md)


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