---
title: "Send people to a connected tool"
method: POST
path: "/api/v1/integrations/{integration_id}/pushes"
tags: ["Integrations"]
---

# Send people to a connected tool

`POST /api/v1/integrations/{integration_id}/pushes`

## Request

- Base URL: `https://app.argorant.com`
- URL: `https://app.argorant.com/api/v1/integrations/{integration_id}/pushes`
- Auth: HTTP bearer

Sends the people of one of your Argorant campaigns, or the rows of one of your exports, into a campaign in the connected tool. Send campaign_id or export_id, not both. People who bounced, unsubscribed or are on your blocklist are never sent. An export that is still being built is fine: the people go as soon as the file is ready. To send a list, export it first (POST /api/v1/lists/{list_id}/export) and send that export. Up to 100,000 people per call. The campaign in the tool is not started and no email is sent. The answer is the push; read its progress with GET /api/v1/integrations/pushes/{push_id}.

| Cost | What it does | Key scopes |
| --- | --- | --- |
| Free, from the Pro plan. Exports are paid when they run. | Writes | `argorant:manage_lists` |

## Path parameters

- `integration_id` integer, required

## Headers

- `Idempotency-Key` string
- `X-Request-Id` string

## Request body

- object
  - `campaign_id` string, uuid: Send the people of one of your Argorant campaigns.
  - `export_id` integer: Send the rows of one of your exports. It may still be running.
  - `target_campaign_id` string, required: The campaign in the tool, from GET /api/v1/integrations/{integration_id}/campaigns.
  - `results` string[]: For an export, which email results to send, from valid, catch_all and risky. Default valid.
  - `only_not_contacted` boolean: For a campaign, send only people who were not emailed yet. Default false.

## Response `202`

Accepted

- object
  - `push_id` string
  - `tool` string
  - `tool_name` string
  - `integration_id` string
  - `source` object
    - `kind` string
    - `id` string
  - `target_campaign_id` string
  - `status` string
  - `total` integer
  - `sent` integer
  - `already_there` integer
  - `not_accepted` integer
  - `message` string
  - `created_at` string
  - `completed_at` string, nullable

## Other responses

- `401`: 401 Unauthorized. `unauthorized` when the API key is missing, wrong or revoked.
- `402`: 402 Payment required. `plan_required` when sending people to other tools comes with the Pro plan.
- `403`: 403 Forbidden. `scope_missing` when the key lacks argorant:manage_lists.
- `404`: 404 Not found. `not_found` when the item does not exist in your workspace.
- `409`: 409 Conflict. `unsupported_tool` when the connected tool takes exports from the Exports page only; `export_failed` when the export did not finish; `idempotency_conflict` when the Idempotency-Key was used with another body.
- `422`: 422 Validation error. `validation_error` when a field has the wrong type or is missing; `invalid_request` when neither or both of campaign_id and export_id, or a target_campaign_id the tool cannot use.
- `429`: 429 Too many requests. `rate_limited` when too many requests this minute.

---

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