openapi: 3.1.0 info: title: Reachdesk API version: '1.0' servers: - url: https://app.reachdesk.com/api/v2 components: securitySchemes: sec0: type: apiKey name: Authorization in: header x-bearer-format: bearer security: - sec0: [] paths: /campaigns/{id}/trigger: post: summary: Trigger Campaign description: Trigger a gift send from a campaign. operationId: trigger-campaign parameters: - name: id in: path description: ID of the campaign being triggered schema: type: integer format: int32 required: true requestBody: content: application/json: schema: type: object properties: request_id: type: string description: Random uniquely identifier generated for each request source: type: string description: Name of the source of the trigger recipient: type: object description: Information about the recipient properties: provider: type: string description: Source of the contact (optional) enum: - salesforce - msdynamics - hubspotcrm - salesloft - influitive - marketo - hibob - outreach provider_contact_id: type: string description: ID of the contact in the source system (optional) provider_contact_type: type: string description: Type of contact in the source system (optional) enum: - contact - lead - employee first_name: type: string description: First name of the recipient last_name: type: string description: Last name of the recipient email: type: string description: Email of the recipient company_name: type: string description: Name of the recipient's company street_address_1: type: string description: First line of the recipient's address (only used in physical sends) street_address_2: type: string description: Second line of the recipient's address (only used in physical sends) city: type: string description: Recipient's city state: type: string description: Recipient's state zipcode: type: string description: Recipient's zipcode/post code country: type: string description: Recipient's 2-letter country code (ISO 3166), e.g. US phone_number: type: string description: Recipient's phone number role: type: string description: Recipient's role tax_id: type: string description: Recipient's Tax Id sender: type: string description: Email of the sender (must be a user in the platform) payment_currency: type: string description: What currency should be used when paying for the send (by default, it will use the currency set in the campaign) enum: - AUD - CAD - DKK - EUR - GBP - INR - NOK - SEK - USD items: type: array description: (Only for bundles) List of quantities for the different items in the campaign - not mandatory, defaults to the minimum in each item items: properties: sku: type: string description: SKU of item that the quantity will be defined (must be within the campaign) quantity: type: integer description: Desired quantity (must be within the range set in the campaign, defaults to the minimum) format: int32 type: object approved: type: string description: If "true", the send will be automatically processed and, if invalid, an error will be returned by the API. If "false", the send will be created in a pending state for manual review; if "auto", it will try to approve automatically, unless invalid, in which case it will be created as pending for manual review enum: - 'true' - 'false' - auto payment_wallet_type: type: string description: This determines what type of payment wallet to use for this gift send default: User enum: - User - Team team_name: type: string description: Specify which team wallet will be used as the payment wallet for this gift send. Set to the sender’s team name assigned to the team wallet. If empty, and payment_wallet_type is “Team”, it will be the sender’s default team by default. confirm_address: type: boolean description: A confirmation email will be sent before the recipient can claim the gift default: true bundle_handwritten_note: type: string description: Text that will appear on the handwritten note if you are sending a bundle campaign packaging_notes: type: string description: Text that will appear on the handwritten note if you are sending a bundle campaign custom_attributes: type: array description: List of custom attributes that can be used on campaign gift notes, options and gift emails. Add the name inside curly brackets when adding to campaigns (e.g. {{custom_gift_note}}) items: properties: name: type: string description: Use underscores instead of spaces (e.g. custom_gift_note) value: type: string description: Value of the property (e.g. sent with love) type: object send_method: type: string description: 'Delivery method. email (default) emails the gift to the recipient; link returns a shareable claim_url in the response instead of emailing. Allowed values: email, link.' enum: - email - link responses: '200': description: '200' content: application/json: examples: Result: value: "{\n \"id\": 55,\n \"type\": \"gift_card\",\n \"status\": \"processed\",\n\ \t\"payment_currency\": \"USD\",\n\t\"payment_wallet_id\": 1234,\n\t\"packaging_notes\"\ : \"Handle with care\",\n\t\"custom_attributes\": [\n {\n \"name\": \"team\"\ ,\n\t\t\t\"value\": \"Polaris\"\n\t\t}\n ],\n\t\"created_by_user\": {\n \"first_name\"\ : \"Jane\",\n \"last_name\": \"Doe\",\n \"email\": \"jane.doe@reachdesk.com\"\ \n },\n\t\"claim_url\": null,\n \"recipient\": {\n \"first_name\": \"John\",\n\ \ \"last_name\": \"Doe\",\n \"email\": \"john.doe@example.com\",\n \"company_name\"\ : \"Example Ltd.\",\n\t\t\"phone_number\": \"+1 123 123 123\",\n \"street_address_1\"\ : \"45 Rockefeller Plaza\",\n \"street_address_2\": \"5th Floor\",\n \"city\"\ : \"New York\",\n \"state\": \"NY\",\n \"zipcode\": \"10111\",\n \"country\"\ : \"US\",\n\t\t\"tax_id\": \"123456789\"\n },\n \"sender\": {\n \"first_name\"\ : \"Jane\",\n \"last_name\": \"Doe\",\n \"email\": \"jane.doe@reachdesk.com\"\ \n },\n \"gift_card\": {\n \"amount\": 15.0,\n \"currency\": \"USD\"\n }\n\ }" schema: type: object properties: id: type: integer example: 55 default: 0 type: type: string example: gift_card status: type: string example: processed payment_currency: type: string example: USD payment_wallet_id: type: integer example: 1234 default: 0 packaging_notes: type: string example: Handle with care custom_attributes: type: array items: type: object properties: name: type: string example: team value: type: string example: Polaris created_by_user: type: object properties: first_name: type: string example: Jane last_name: type: string example: Doe email: type: string example: jane.doe@reachdesk.com claim_url: {} recipient: type: object properties: first_name: type: string example: John last_name: type: string example: Doe email: type: string example: john.doe@example.com company_name: type: string example: Example Ltd. phone_number: type: string example: +1 123 123 123 street_address_1: type: string example: 45 Rockefeller Plaza street_address_2: type: string example: 5th Floor city: type: string example: New York state: type: string example: NY zipcode: type: string example: '10111' country: type: string example: US tax_id: type: string example: '123456789' sender: type: object properties: first_name: type: string example: Jane last_name: type: string example: Doe email: type: string example: jane.doe@reachdesk.com gift_card: type: object properties: amount: type: integer example: 15 default: 0 currency: type: string example: USD deprecated: false /organization: get: summary: Get Organization description: Retrieve the basic information about the Organization associated to the given API Token. operationId: get-organization responses: '200': description: '200' content: application/json: examples: Result: value: "{\n \"id\": \"570\",\n \"name\": \"Acne Inc.\"\n}" schema: type: object properties: id: type: string example: '570' name: type: string example: Acne Inc. '400': description: '400' content: application/json: examples: Result: value: '{}' schema: type: object properties: {} deprecated: false /gdpr/requests: post: summary: Create GDPR Request description: Create a GDPR Request for erasing or exporting subject data. operationId: create-gdpr-request requestBody: content: application/json: schema: type: object properties: request: type: object properties: request_type: type: string enum: - erase_subject - export_subject subject: type: string description: Email address of the subject responses: '200': description: '200' content: application/json: examples: Result: value: "{\n \"id\": 1,\n \"request_type\": \"erase_subject\",\n \"status\": \"pending\"\ ,\n \"subject\": \"john.doe@mail.com\",\n \"created_at\": \"2023-06-09T17:53\"\n\ }" schema: type: object properties: id: type: integer example: 1 default: 0 request_type: type: string example: erase_subject status: type: string example: pending subject: type: string example: john.doe@mail.com created_at: type: string example: 2023-06-09T17:53 deprecated: false /gdpr/requests/{id}: get: summary: Get GDPR Request description: Get the information and status about an existing GDPR Request (Coming Soon) operationId: get-gdpr-request parameters: - name: id in: path schema: type: integer format: int32 required: true responses: '200': description: '200' content: application/json: examples: Result: value: "{\n \"id\": 1,\n \"request_type\": \"erase_subject\",\n \"status\": \"pending\"\ ,\n \"subject\": \"john.doe@mail.com\",\n \"created_at\": \"2023-06-09T17:53\"\n\ }" schema: type: object properties: id: type: integer example: 1 default: 0 request_type: type: string example: erase_subject status: type: string example: pending subject: type: string example: john.doe@mail.com created_at: type: string example: 2023-06-09T17:53 deprecated: false /contacts: get: summary: List Contacts description: Get a list of contacts within your organization. operationId: list-contacts parameters: - name: account_name in: query description: Filter results by contact's company name schema: type: string - name: page in: query schema: type: integer format: int32 default: 1 - name: per_page in: query schema: type: integer format: int32 default: 25 responses: '200': description: '200' content: application/json: examples: Result: value: "{\n\t\"data\": [\n\t\t{\n\t\t\t\"id\": 86,\n\t\t\t\"name\": \"Ashley Eapen\"\ ,\n\t\t\t\"first_name\": \"Ashley\",\n\t\t\t\"last_name\": \"Eapen\",\n\t\t\t\"email\"\ : \"ashley.eapen@reachdesk.com\",\n\t\t\t\"job_title\": \"Account Executive\",\n\t\ \t\t\"account_name\": \"Reachdesk\",\n\t\t\t\"country\": \"United States\"\n\t\t},\n\ \t\t{\n\t\t\t\"id\": 80,\n\t\t\t\"name\": \"Bill Costello\",\n\t\t\t\"first_name\"\ : \"Bill\",\n\t\t\t\"last_name\": \"Costello\",\n\t\t\t\"email\": \"billy.costello@reachdesk.com\"\ ,\n\t\t\t\"job_title\": \"Associate Account Executive\",\n\t\t\t\"account_name\":\ \ \"Reachdesk\",\n\t\t\t\"country\": \"United Kingdom\"\n\t\t},\n\t\t{\n\t\t\t\"id\"\ : 20,\n\t\t\t\"name\": \"Jeffrey Vanzant\",\n\t\t\t\"first_name\": \"Jeffrey\",\n\t\ \t\t\"last_name\": \"Vanzant\",\n\t\t\t\"email\": \"jeffrey.vanzant@reachdesk.com\"\ ,\n\t\t\t\"job_title\": \"Senior Manager, Revenue Operations\",\n\t\t\t\"account_name\"\ : \"Reachdesk\",\n\t\t\t\"country\": \"Portugal\"\n\t\t},\n\t\t{\n\t\t\t\"id\": 11,\n\ \t\t\t\"name\": \"Katherine Clementi\",\n\t\t\t\"first_name\": \"Katherine\",\n\t\t\ \t\"last_name\": \"Clementi\",\n\t\t\t\"email\": \"katherine.clementi@reachdesk.com\"\ ,\n\t\t\t\"job_title\": \"Customer Success Manager\",\n\t\t\t\"account_name\": \"\ reachdesk\",\n\t\t\t\"country\": \"Brazil\"\n\t\t}\n\t],\n\t\"pagination\": {\n\t\t\ \"page\": 1,\n\t\t\"per_page\": 25,\n\t\t\"total_pages\": 1,\n\t\t\"total_records\"\ : 4\n\t}\n}" schema: type: object properties: data: type: array items: type: object properties: id: type: integer example: 86 default: 0 name: type: string example: Ashley Eapen first_name: type: string example: Ashley last_name: type: string example: Eapen email: type: string example: ashley.eapen@reachdesk.com job_title: type: string example: Account Executive account_name: type: string example: Reachdesk country: type: string example: United States pagination: type: object properties: page: type: integer example: 1 default: 0 per_page: type: integer example: 25 default: 0 total_pages: type: integer example: 1 default: 0 total_records: type: integer example: 4 default: 0 '400': description: '400' content: application/json: examples: Result: value: '{}' schema: type: object properties: {} deprecated: false /sends?start_date={start_date}&end_date={end_date}: get: summary: List Sends description: Get a list of Sends within your Organization operationId: list-sends parameters: - name: start_date in: query description: 'Filter sends from the given date onwards. Format: YYYY-MM-DD (optional)' schema: type: string format: date - name: end_date in: query description: 'Return sends created before the given date. Format: YYYY-MM-DD (optional)' schema: type: string format: date - name: page in: query description: Pagination value schema: type: integer format: int32 default: 1 - name: per_page in: query description: number of results per page schema: type: integer format: int32 default: 25 - name: start_updated_date in: query description: 'Filter sends from first update date (depends on end_updated_date). Format: YYYY-MM-DD (optional)' schema: type: string format: date - name: end_updated_date in: query description: 'Filter sends from the last update date (Depends on start_updated_date). Format: YYYY-MM-DD (optional)' schema: type: string format: date responses: '200': description: '200' content: application/json: examples: Result: value: "{\n \"data\": [\n \n {\n \"id\": 4,\n \"type\": \"bundle\"\ ,\n \"email\": \"uilton.jose@gmail.com\",\n \"status\": \"pending\",\n \ \ \"latest_action\": null,\n \"processed_at\": null,\n \"created_at\"\ : \"2025-08-06T16:56:11.364Z\",\n \"gift_name\": null,\n \"send_updated_date\"\ : \"2025-08-06T16:56:11.364Z\",\n \"campaign\": {\n \"id\": 12,\n \ \ \"name\": \"Badjurance\"\n },\n \"cost\": {\n \"amount\": 3.73,\n\ \ \"original_amount\": 3.0,\n \"currency\": \"USD\",\n \"original_currency\"\ : \"GBP\",\n \"display\": \"3.73 USD\",\n \"original_display\": \"3.00\ \ GBP\",\n \"state\": \"estimated\"\n },\n \"team_name\": null,\n\ \ \"order\": {\n \"id\": 123,\n \"order_number\": \"1234567890\"\ ,\n \"status\": 350,\n \"shipped_at\": \"2025-12-22T11:38:20.944Z\"\ ,\n \"tracking_code\": \"1234567890\",\n \"tracking_url\": \"https://www.google.com\"\ ,\n \"shipment\": {\n \"id\": 123,\n \"provider_id\": 123,\n\ \ \"provider_sub_status_message\": \"Sub status message\",\n \"\ courier\": \"courier\",\n \"tracking_number\": \"1234567890\",\n \ \ \"tracking_url\": \"https://www.google.com\"\n }\n },\n \"total_items_cost\"\ : 100.0,\n \"engage_items\": [\n {\n \"name\": \"My Cuppa\",\n\ \ \"quantity\": 1\n },\n {\n \"name\": \"Chocolate\ \ box\",\n \"quantity\": 1\n }\n ]\n }\n ],\n \"pagination\"\ : {\n \"page\": 1,\n \"per_page\": 25,\n \"total_pages\": 1,\n \"total_records\"\ : 4\n }\n}" schema: type: object properties: data: type: array items: type: object properties: id: type: integer example: 4 default: 0 type: type: string example: bundle email: type: string example: uilton.jose@gmail.com status: type: string example: pending latest_action: {} processed_at: {} created_at: type: string example: '2025-08-06T16:56:11.364Z' gift_name: {} send_updated_date: type: string example: '2025-08-06T16:56:11.364Z' campaign: type: object properties: id: type: integer example: 12 default: 0 name: type: string example: Badjurance cost: type: object properties: amount: type: number example: 3.73 default: 0 original_amount: type: integer example: 3 default: 0 currency: type: string example: USD original_currency: type: string example: GBP display: type: string example: 3.73 USD original_display: type: string example: 3.00 GBP state: type: string example: estimated team_name: {} order: type: object properties: id: type: integer example: 123 default: 0 order_number: type: string example: '1234567890' status: type: integer example: 350 default: 0 shipped_at: type: string example: '2025-12-22T11:38:20.944Z' tracking_code: type: string example: '1234567890' tracking_url: type: string example: https://www.google.com shipment: type: object properties: id: type: integer example: 123 default: 0 provider_id: type: integer example: 123 default: 0 provider_sub_status_message: type: string example: Sub status message courier: type: string example: courier tracking_number: type: string example: '1234567890' tracking_url: type: string example: https://www.google.com total_items_cost: type: integer example: 100 default: 0 engage_items: type: array items: type: object properties: name: type: string example: My Cuppa quantity: type: integer example: 1 default: 0 pagination: type: object properties: page: type: integer example: 1 default: 0 per_page: type: integer example: 25 default: 0 total_pages: type: integer example: 1 default: 0 total_records: type: integer example: 4 default: 0 '400': description: '400' content: application/json: examples: Result: value: '{}' schema: type: object properties: {} '401': description: '401' content: text/plain: examples: Result: value: '' deprecated: false /transactions: get: summary: List Transactions description: Get a list of transactions within your organization. operationId: list-transactions parameters: - name: start_date in: query description: Filter transactions created from start date schema: type: string format: date - name: end_date in: query description: Filter transactions created until end date schema: type: string format: date - name: page in: query schema: type: integer format: int32 default: 1 - name: transaction_types[] in: query description: 'Filter by transaction types. Available values: balance_allocation, balance_top_up, campaign_sends, contracted_free_credit, contracted_paid_credit, currency_conversion, free_credit, other, refund, sourced_items, upfront_balance_top_up, warehouse_sends, store_portal' schema: type: array items: type: string - name: states[] in: query description: 'Filter by transaction state. Available values: cancelled, pending, processed.' schema: type: array items: type: string - name: currencies[] in: query description: 'Filter by transaction currency. Use ISO 4217 (3-letter). Available values: AUD, CAD, DKK, EUR, GBP, INR, NOK, SEK, USD' schema: type: array items: type: string - name: campaign_types[] in: query description: 'Filter by campaign types. Available values: bundle, gift_card, marketplace, note' schema: type: array items: type: string - name: team_ids[] in: query description: Filter transactions by users within given teams. schema: type: array items: type: integer format: int32 - name: user_ids[] in: query description: Filter transactions by the users associated. schema: type: array items: type: integer format: int32 responses: '200': description: '200' content: application/json: examples: Result: value: "{\n \"data\": [\n {\n \"id\": 137,\n \"transaction_type\": \"\ other\",\n \"state\": \"pending\",\n \"currency\": \"EUR\",\n \"amount\"\ : -20,\n \"send\": {\n \"id\": 221,\n \"recipient_email\": \"recipient@email.com\"\ ,\n \"campaign_name\": \"Campaign name\",\n \"team_name\": \"Team name\"\ \n },\n \"stock_shipment_order_number\": null,\n \"merchandise_order_number\"\ : null,\n \"reference\": \"Campaign name\",\n \"source_wallet_name\": \"\ Georgia people 918 EUR\",\n \"destination_wallet_name\": null,\n \"created_by\"\ : {\n \"name\": \"Margret Bechtelar\",\n \"email\": \"lyla@larson.example\"\ \n },\n \"state_updated_at\": null,\n \"created_at\": \"2023-09-13T18:14:10.000Z\"\ ,\n \"updated_at\": \"2023-09-13T18:14:10.000Z\"\n }\n ],\n \"pagination\"\ : {\n \"page\": 1,\n \"per_page\": 200,\n \"total_pages\": 1,\n \"total_records\"\ : 1\n }\n}" schema: type: object properties: data: type: array items: type: object properties: id: type: integer example: 137 default: 0 transaction_type: type: string example: other state: type: string example: pending currency: type: string example: EUR amount: type: integer example: -20 default: 0 send: type: object properties: id: type: integer example: 221 default: 0 recipient_email: type: string example: recipient@email.com campaign_name: type: string example: Campaign name team_name: type: string example: Team name stock_shipment_order_number: {} merchandise_order_number: {} reference: type: string example: Campaign name source_wallet_name: type: string example: Georgia people 918 EUR destination_wallet_name: {} created_by: type: object properties: name: type: string example: Margret Bechtelar email: type: string example: lyla@larson.example state_updated_at: {} created_at: type: string example: '2023-09-13T18:14:10.000Z' updated_at: type: string example: '2023-09-13T18:14:10.000Z' pagination: type: object properties: page: type: integer example: 1 default: 0 per_page: type: integer example: 200 default: 0 total_pages: type: integer example: 1 default: 0 total_records: type: integer example: 1 default: 0 '400': description: '400' content: application/json: examples: Result: value: '{}' schema: type: object properties: {} deprecated: false /sends/{id}: get: summary: Get Send description: Retrieves a single send operationId: get-send parameters: - name: id in: path description: Unique identifier of the send schema: type: integer format: int32 required: true responses: '200': description: '200' content: application/json: examples: Result: value: "{\n \"data\": {\n \"id\": 12345,\n \"type\": \"bundle\",\n \"email\"\ : \"recipient@example.com\",\n \"status\": \"processed\",\n \"latest_action\"\ : null,\n \"processed_at\": \"2024-03-03T12:35:00.000Z\",\n \"created_at\":\ \ \"2024-03-01T09:00:00.000Z\",\n \"send_updated_date\": \"2024-03-03T12:35:00.000Z\"\ ,\n \"gift_name\": null,\n \"campaign\": {\n \"id\": 678,\n \"name\"\ : \"Q1 Prospecting\"\n },\n \"cost\": {\n \"amount\": 6.5,\n \"original_amount\"\ : 6.5,\n \"currency\": \"GBP\",\n \"original_currency\": \"GBP\",\n \ \ \"display\": \"6.50 GBP\",\n \"original_display\": \"6.50 GBP\",\n \"\ state\": \"processed\"\n },\n \"team_name\": null,\n \"order\": {\n \ \ \"id\": 987,\n \"order_number\": \"RD-000987\",\n \"tracking_code\": \"\ 1234\",\n \"tracking_url\": \"https://shipments.reachdesk.com/1234\",\n \ \ \"status\": 350,\n \"shipped_at\": \"2024-03-02T10:05:00.000Z\",\n \"\ shipment\": {\n \"id\": 456,\n \"provider_id\": \"prov_123\",\n \ \ \"provider_sub_status_message\": \"In transit\",\n \"courier\": \"dhl\"\ ,\n \"tracking_number\": \"1234\",\n \"tracking_url\": \"https://shipments.reachdesk.com/1234\"\ \n }\n },\n \"total_items_cost\": \"70.0\",\n \"engage_items\": [\n\ \ {\n \"name\": \"Branded Hoodie\",\n \"quantity\": 1\n },\n\ \ {\n \"name\": \"Reusable Bottle\",\n \"quantity\": 7\n }\n\ \ ]\n }\n}" schema: type: object properties: data: type: object properties: id: type: integer example: 12345 default: 0 type: type: string example: bundle email: type: string example: recipient@example.com status: type: string example: processed latest_action: {} processed_at: type: string example: '2024-03-03T12:35:00.000Z' created_at: type: string example: '2024-03-01T09:00:00.000Z' send_updated_date: type: string example: '2024-03-03T12:35:00.000Z' gift_name: {} campaign: type: object properties: id: type: integer example: 678 default: 0 name: type: string example: Q1 Prospecting cost: type: object properties: amount: type: number example: 6.5 default: 0 original_amount: type: number example: 6.5 default: 0 currency: type: string example: GBP original_currency: type: string example: GBP display: type: string example: 6.50 GBP original_display: type: string example: 6.50 GBP state: type: string example: processed team_name: {} order: type: object properties: id: type: integer example: 987 default: 0 order_number: type: string example: RD-000987 tracking_code: type: string example: '1234' tracking_url: type: string example: https://shipments.reachdesk.com/1234 status: type: integer example: 350 default: 0 shipped_at: type: string example: '2024-03-02T10:05:00.000Z' shipment: type: object properties: id: type: integer example: 456 default: 0 provider_id: type: string example: prov_123 provider_sub_status_message: type: string example: In transit courier: type: string example: dhl tracking_number: type: string example: '1234' tracking_url: type: string example: https://shipments.reachdesk.com/1234 total_items_cost: type: string example: '70.0' engage_items: type: array items: type: object properties: name: type: string example: Branded Hoodie quantity: type: integer example: 1 default: 0 '401': description: '401' content: application/json: examples: Result: value: '' '404': description: '404' content: application/json: examples: Result: value: "{\n \"error\": \"Send not found\"\n}" schema: type: object properties: error: type: string example: Send not found deprecated: false x-readme: code-samples: - language: curl code: "curl --request GET \\\n --url https://app.reachdesk.com/api/v2/sends/12345 \\\n --header\ \ 'Authorization: Bearer ' \\\n --header 'Accept: application/json'" samples-languages: - curl /bulk_sends: post: summary: Bulk Send description: 'Trigger a gift send from a campaign to many recipients in a single request. This is the bulk counterpart to Trigger Campaign. Instead of one recipient per call, you send a list of recipients and the request is processed asynchronously: the endpoint responds immediately with a bulk send `id`, and the individual gifts are created in the background. As with the single trigger, each gift is built from the campaign''s own configuration — you don''t send the gift-card amount, bundle items, note template, or marketplace product. You only provide the recipients and the sender; everything else comes from the campaign. It works for every campaign type (gift card, note, bundle, marketplace).' operationId: bulk-create requestBody: content: application/json: schema: type: object required: - request_id - campaign_id - sender - recipients properties: request_id: type: string description: Random uniquely identifier generated for each request campaign_id: type: integer description: ID of the campaign to send from format: int32 sender: type: string description: Email of the platform user the send is made on behalf of. Must be a user in your organization with access to the campaign. recipients: type: object description: The recipients to send to. Max 5000 per request. properties: provider: type: string description: Source of the contact (optional) enum: - salesforce - msdynamics - hubspotcrm - salesloft - influitive - marketo - hibob - outreach provider_contact_id: type: string description: ID of the contact in the source system (optional) provider_contact_type: type: string description: Type of contact in the source system (optional) enum: - contact - lead - employee first_name: type: string description: First name of the recipient last_name: type: string description: Last name of the recipient email: type: string description: Email of the recipient company_name: type: string description: Name of the recipient's company street_address_1: type: string description: First line of the recipient's address (only used in physical sends) street_address_2: type: string description: Second line of the recipient's address (only used in physical sends) city: type: string description: Recipient's city state: type: string description: Recipient's state zipcode: type: string description: Recipient's zipcode/post code country: type: string description: Recipient's 2-letter country code (ISO 3166), e.g. US phone_number: type: string description: Recipient's phone number role: type: string description: Recipient's role tax_id: type: string description: Recipient's Tax Id payment_currency: type: string description: Currency used to pay for the sends. Applied to every recipient unless overridden per recipient. enum: - AUD - CAD - DKK - EUR - GBP - INR - NOK - SEK - USD payment_wallet_type: type: string description: Which wallet pays for the sends default: User enum: - User - Team team_name: type: string description: Team whose wallet to use when payment_wallet_type is Team. send_method: type: string description: email sends the gift by email; link creates a claim link instead. default: email enum: - email - link confirm_address: type: boolean description: Whether to send an address-confirmation email before shipping. When omitted, the campaign's own setting is used. packaging_notes: type: string description: Packaging notes for the send. bundle_handwritten_note: type: string description: Text for the handwritten note (bundle campaigns only). custom_attributes: type: array description: Custom attributes applied to the gift notes/emails. items: properties: name: type: string description: Name of the custom attribute value: type: string description: Value for the custom attribute required: - name - value type: object responses: '202': description: '202' content: application/json: examples: Result: value: "{\n \"id\": 98123\n}" schema: type: object properties: id: type: integer example: 98123 default: 0 '400': description: '400' content: application/json: examples: Result: value: "{\n \"message\": \"Parameter \\\"send_method\\\" must be \\\"link\\\" or \\\ \"email\\\"\"\n}" schema: type: object properties: message: type: string example: Parameter "send_method" must be "link" or "email" '401': description: '401' content: text/plain: examples: Result: value: '' '404': description: '404' content: text/plain: examples: Result: value: "{\n \"message\": \"This campaign does not exist\"\n}" schema: type: object properties: message: type: string example: This campaign does not exist '422': description: '422' content: text/plain: examples: Result: value: "{\n \"message\": \"This campaign is not active\"\n}" schema: type: object properties: message: type: string example: This campaign is not active deprecated: false x-readme: code-samples: - language: curl code: "curl --request POST \\\n --url https://app.reachdesk.com/api/v2/bulk_sends \\\n --header\ \ 'Authorization: Bearer ' \\\n --header 'Content-Type: application/json'\ \ \\\n --data '{\n \"request_id\": \"0e6f1a4c-2d1b-4d0e-9a9e-3d3b0a1c2f5e\",\n \"campaign_id\"\ : 12345,\n \"sender\": \"rep@your-company.com\",\n \"payment_currency\": \"GBP\",\n\ \ \"payment_wallet_type\": \"User\",\n \"send_method\": \"email\",\n \"recipients\"\ : [\n {\n \"first_name\": \"Ana\",\n \"last_name\": \"Silva\",\n \ \ \"email\": \"ana@acme.com\",\n \"company_name\": \"Acme\",\n \"street_address_1\"\ : \"45 Rockefeller Plaza\",\n \"city\": \"New York\",\n \"state\": \"NY\",\n\ \ \"zipcode\": \"10111\",\n \"country\": \"US\"\n },\n {\n \ \ \"first_name\": \"Rui\",\n \"last_name\": \"Costa\",\n \"email\": \"rui@acme.com\"\ ,\n \"sender\": \"other-rep@your-company.com\"\n }\n ]\n }'" samples-languages: - curl x-readme: headers: [] explorer-enabled: true proxy-enabled: true x-readme-fauxas: true