---
title: "Publish Leads"
method: POST
path: "/api/v1/crm/publish"
tags: ["crm"]
---

# Publish Leads

`POST /api/v1/crm/publish`

## Request

- Base URL: `https://app.goodleads.club` (the document declares no server; this is the origin it was published from)
- URL: `https://app.goodleads.club/api/v1/crm/publish`
- Auth: API key in header `X-API-Key`

Publish selected leads to a connected CRM.

Provide entity_ids for specific leads, or set include_all_matching=True
with filters to publish the whole filtered set — resolved server-side,
same contract as POST /leads/export. state is optional: omit it to push
every matching lead across all live states (e.g. an industry-only filter).

`connection_id` is required — delivery runs through the engine (per-record
ledger, pacing, retries) against that connection. Returns immediately with
a durable job_id for polling. dry_run counts without sending.

## Request body

- PublishRequest
  - `state` string, nullable
  - `entity_ids` string[], nullable
  - `include_all_matching` boolean
  - `filters` object[]
  - `include_non_operating` boolean
  - `include_existing` boolean
  - `include_registrations` boolean
  - `dry_run` boolean
  - `connection_id` string, nullable

## Response `202`

Successful Response

- PublishResponse
  - `job_id` string, required
  - `status` string, required
  - `status_url` string, required

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/goodleads/apis/formation-gtm-api.md) · [All operations](https://skmtc.dev/goodleads/apis/formation-gtm-api/llms.txt) · [OpenAPI document](https://skmtc.dev/goodleads/apis/formation-gtm-api/revisions/2068d13a82cf?raw)
