---
title: "Create Multiple Recipients"
method: POST
path: "/recipients-utils/create-multiple"
tags: ["Recipients"]
---

# Create Multiple Recipients

`POST /recipients-utils/create-multiple`

## Request

- Base URL: `https://api.thanks.io/api/v2`
- URL: `https://api.thanks.io/api/v2/recipients-utils/create-multiple`
- Auth: HTTP bearer

Add multiple recipients at once using a JSON array of recipient objects. If a recipient does not include a valid mailing address but does include a valid email address, thanks.io can attempt to look up a street address for an additional fee.

## Request body

- RecipientCreate[]
  - union
    - object: Create a recipient by providing address details
      - `id` integer
      - `mailing_list_id` integer, required
      - `name` string
      - `company` string
      - `address` string, required
      - `address2` string
      - `city` string
      - `province` string: State or Province
      - `postal_code` string
      - `country` string
      - `dob` string: Date of Birth in ISO 8601 format (YYYY-MM-DD) or null if not set. If provided as MM/DD/YYYY in requests, it will be converted to ISO 8601 format.
      - `anniversary` string: Can be used for house purchase anniversaries, move-in dates, or any recurring annual milestone. Anniversary date in ISO 8601 format (YYYY-MM-DD) or null if not set. If provided as MM/DD/YYYY in requests, it will be converted to ISO 8601 format.
      - `email` string
      - `phone` string
      - `custom1` string: Custom field for additional information about the recipient
      - `custom2` string: Custom field for additional information about the recipient
      - `custom3` string: Custom field for additional information about the recipient
      - `custom4` string: Custom field for additional information about the recipient
      - `custom5` string: Custom field for additional information about the recipient
      - `custom6` string: Custom field for additional information about the recipient
      - `custom7` string: Custom field for additional information about the recipient
      - `custom8` string: Custom field for additional information about the recipient
      - `custom9` string: Custom field for additional information about the recipient
      - `custom10` string: Custom field for additional information about the recipient
      - `absentee_address` string: The property (absentee) address for this recipient, such as a house an absentee owner owns, as opposed to where they get mail. Give either the whole address here, or the street line here with `absentee_city`, `absentee_province` and `absentee_postal_code`. When set, the `~ABSENTEE_STREET~`, `~ABSENTEE_FULL_ADDRESS~`, `~FULL_ADDRESS~` and `~STREET_VIEW~` image template variables, and `%ABSENTEE_STREET%` in messages, use this address instead of the mailing address. The mailer is still delivered to `address`. Include the city, state and ZIP so Street View finds the right property. It is stored and returned in its own `absentee_address` field, and also copied into `custom2` when that is empty, so templates that print `%CUSTOM2%` keep working; a `custom2` you send is never changed. The older convention of `custom1` = `absentee` with `custom2` = the property address is still accepted and copied into `absentee_address`.
      - `absentee_city` string: City of the absentee (property) address. Requires `absentee_address` in the same request.
      - `absentee_province` string: State or province of the absentee (property) address. Requires `absentee_address` in the same request.
      - `absentee_postal_code` string: ZIP or postal code of the absentee (property) address. Requires `absentee_address` in the same request.
      - `mailing-list` MailingList
        - `id` integer
        - `user_id` integer
        - `sub_account_id` integer, nullable
        - `type` 'csv' | 'manual' | 'map' | 'friends' | 'retarget' | 'leads' | 'zapier' | 'radius' | 'highlevel' | 'qrscans'
        - `description` string
        - `qrcode_url` string, nullable
        - `total_recipients` integer
        - `processed` boolean
        - `is_suppression_list` boolean
        - `total_scans` integer
        - `unique_scans` integer
        - `last_scan` string, nullable
        - `total_sends` integer
        - `last_send` string, nullable
        - `api_key` string: API key that can be used to add recipients to this mailing list with thanks.io Webhooks
        - `created_at` string, date-time
        - `created_at_diff` string: Human-friendly relative time since creation
        - `updated_at` string, date-time
      - `created_at` string
      - `updated_at` string
    - object: Create a recipient by providing email address
      - `id` integer
      - `mailing_list_id` integer, required
      - `name` string
      - `company` string
      - `address` string
      - `address2` string
      - `city` string
      - `province` string: State or Province
      - `postal_code` string
      - `country` string
      - `dob` string: Date of Birth in ISO 8601 format (YYYY-MM-DD) or null if not set. If provided as MM/DD/YYYY in requests, it will be converted to ISO 8601 format.
      - `anniversary` string: Can be used for house purchase anniversaries, move-in dates, or any recurring annual milestone. Anniversary date in ISO 8601 format (YYYY-MM-DD) or null if not set. If provided as MM/DD/YYYY in requests, it will be converted to ISO 8601 format.
      - `email` string, required
      - `phone` string
      - `custom1` string: Custom field for additional information about the recipient
      - `custom2` string: Custom field for additional information about the recipient
      - `custom3` string: Custom field for additional information about the recipient
      - `custom4` string: Custom field for additional information about the recipient
      - `custom5` string: Custom field for additional information about the recipient
      - `custom6` string: Custom field for additional information about the recipient
      - `custom7` string: Custom field for additional information about the recipient
      - `custom8` string: Custom field for additional information about the recipient
      - `custom9` string: Custom field for additional information about the recipient
      - `custom10` string: Custom field for additional information about the recipient
      - `absentee_address` string: The property (absentee) address for this recipient, such as a house an absentee owner owns, as opposed to where they get mail. Give either the whole address here, or the street line here with `absentee_city`, `absentee_province` and `absentee_postal_code`. When set, the `~ABSENTEE_STREET~`, `~ABSENTEE_FULL_ADDRESS~`, `~FULL_ADDRESS~` and `~STREET_VIEW~` image template variables, and `%ABSENTEE_STREET%` in messages, use this address instead of the mailing address. The mailer is still delivered to `address`. Include the city, state and ZIP so Street View finds the right property. It is stored and returned in its own `absentee_address` field, and also copied into `custom2` when that is empty, so templates that print `%CUSTOM2%` keep working; a `custom2` you send is never changed. The older convention of `custom1` = `absentee` with `custom2` = the property address is still accepted and copied into `absentee_address`.
      - `absentee_city` string: City of the absentee (property) address. Requires `absentee_address` in the same request.
      - `absentee_province` string: State or province of the absentee (property) address. Requires `absentee_address` in the same request.
      - `absentee_postal_code` string: ZIP or postal code of the absentee (property) address. Requires `absentee_address` in the same request.
      - `mailing-list` MailingList
        - `id` integer
        - `user_id` integer
        - `sub_account_id` integer, nullable
        - `type` 'csv' | 'manual' | 'map' | 'friends' | 'retarget' | 'leads' | 'zapier' | 'radius' | 'highlevel' | 'qrscans'
        - `description` string
        - `qrcode_url` string, nullable
        - `total_recipients` integer
        - `processed` boolean
        - `is_suppression_list` boolean
        - `total_scans` integer
        - `unique_scans` integer
        - `last_scan` string, nullable
        - `total_sends` integer
        - `last_send` string, nullable
        - `api_key` string: API key that can be used to add recipients to this mailing list with thanks.io Webhooks
        - `created_at` string, date-time
        - `created_at_diff` string: Human-friendly relative time since creation
        - `updated_at` string, date-time
      - `created_at` string
      - `updated_at` string

## Response `200`

OK

- Recipient[]: Array of recipient objects
  - `id` integer
  - `mailing_list_id` integer
  - `name` string
  - `company` string
  - `address` string
  - `address2` string
  - `city` string
  - `province` string: State or Province
  - `postal_code` string
  - `country` string
  - `dob` string: Date of Birth in ISO 8601 format (YYYY-MM-DD) or null if not set. If provided as MM/DD/YYYY in requests, it will be converted to ISO 8601 format.
  - `anniversary` string: Can be used for house purchase anniversaries, move-in dates, or any recurring annual milestone. Anniversary date in ISO 8601 format (YYYY-MM-DD) or null if not set. If provided as MM/DD/YYYY in requests, it will be converted to ISO 8601 format.
  - `email` string
  - `phone` string
  - `custom1` string: Custom field for additional information about the recipient
  - `custom2` string: Custom field for additional information about the recipient
  - `custom3` string: Custom field for additional information about the recipient
  - `custom4` string: Custom field for additional information about the recipient
  - `custom5` string: Custom field for additional information about the recipient
  - `custom6` string: Custom field for additional information about the recipient
  - `custom7` string: Custom field for additional information about the recipient
  - `custom8` string: Custom field for additional information about the recipient
  - `custom9` string: Custom field for additional information about the recipient
  - `custom10` string: Custom field for additional information about the recipient
  - `absentee_address` string, nullable: The property (absentee) address the absentee image template and message variables use, or null when none is set. Mail is delivered to `address`, not here.
  - `mailing-list` MailingList
    - `id` integer
    - `user_id` integer
    - `sub_account_id` integer, nullable
    - `type` 'csv' | 'manual' | 'map' | 'friends' | 'retarget' | 'leads' | 'zapier' | 'radius' | 'highlevel' | 'qrscans'
    - `description` string
    - `qrcode_url` string, nullable
    - `total_recipients` integer
    - `processed` boolean
    - `is_suppression_list` boolean
    - `total_scans` integer
    - `unique_scans` integer
    - `last_scan` string, nullable
    - `total_sends` integer
    - `last_send` string, nullable
    - `api_key` string: API key that can be used to add recipients to this mailing list with thanks.io Webhooks
    - `created_at` string, date-time
    - `created_at_diff` string: Human-friendly relative time since creation
    - `updated_at` string, date-time
  - `created_at` string
  - `updated_at` string

## Changes

- **2026-10-19** `bbe02ffe74f3`: 1 info
  - added the optional property `items/absentee_address` to the response with the `200` status
- **2026-10-18** `c10cfeb34552`: 1 warning
  - removed the optional property `items/absentee_address` from the response with the `200` status
- **2026-10-17** `10023a95b079`: 1 info
  - added the optional property `items/absentee_address` to the response with the `200` status
- **2026-10-03** `1c7f08ab8dcd`: 1 warning, 4 info
  - removed the request property `items/absentee_street`
  - added the new optional request property `items/absentee_address`
  - added the new optional request property `items/absentee_city`
  - added the new optional request property `items/absentee_postal_code`
  - …1 more
- **2026-10-03** `91e51cdec675`: 13 info
  - added the new optional request property `items/absentee_street`
  - added the new optional request property `items/custom10`
  - added the new optional request property `items/custom5`
  - added the new optional request property `items/custom6`
  - …9 more

[Operation history](https://skmtc.dev/thanks-io/apis/thanks-io-api/changes/recipients-utils/create-multiple/post.md)

---

[API](https://skmtc.dev/thanks-io/apis/thanks-io-api.md) · [All operations](https://skmtc.dev/thanks-io/apis/thanks-io-api/llms.txt) · [OpenAPI document](https://skmtc.dev/thanks-io/apis/thanks-io-api/revisions/c403fbf3dc0f?raw)
