---
title: "Create CRM Organization Job"
method: POST
path: "/v1/create-crm-organization-jobs"
tags: ["CRM", "v1"]
---

# Create CRM Organization Job

`POST /v1/create-crm-organization-jobs`

## Request

- Base URL: `https://api.leadfeeder.com`
- URL: `https://api.leadfeeder.com/v1/create-crm-organization-jobs`
- Auth: one of:
  - API key in header `X-Api-Key`
  - OAuth 2
    - Authorization code: `https://api.leadfeeder.com/v1/oauth/authorize`
    - Token URL: `https://api.leadfeeder.com/v1/oauth/token` scopes: `crm_records:write`

Trigger an asynchronous job that creates a CRM Organization record in the account's primary CRM from a Leadfeeder company, and connects the company to it. Applicable to CRMs that support the Organization/Account object type. Field mappings configured for the integration are respected. The job runs in the background; poll `GET /v1/create-crm-organization-jobs/{job_id}` and, once it completes, fetch the created record via `GET /v1/crm-organizations/{id}` using `result.crm_record.id`.

Credit Note: Creating a CRM record from a company consumes 1 credit, unless the company was already accessed within the last 12 months. The job's `credits` reports the charge.

:::info
Requires the `crm_records:write` OAuth2 scope.
:::

## Query parameters

- `account_id` string, required

## Request body

- object
  - `data` object, required
    - `attributes` object, required
      - `company_id` string, required: The Leadfeeder company ID.
      - `crm_owner_id` string: Optional owner for the created record: the Leadfeeder id (uuid) of a CRM user.
      - `custom_values` object: Optional CRM field values to set on the created record, keyed by the field's API name in the connected CRM (e.g. `Industry__c` in Salesforce).
      - `name` string: Optional name override for the created record.
    - `type` 'create_crm_organization_job', required

## Response `202`

Job accepted and started

- object
  - `data` CreateCRMOrganizationJobV1, required
    - `attributes` object, required
      - `completed_at` string, date-time, nullable, required: When the job finished (null until the job reaches `completed` or `failed`).
      - `configuration` object, required: Echoed request configuration.
        - `company_id` string: The Leadfeeder company ID.
        - `crm_owner_id` string: Optional owner for the created record: the Leadfeeder id (uuid) of a CRM user.
        - `custom_values` object: Optional CRM field values to set on the created record, keyed by the field's API name in the connected CRM (e.g. `Industry__c` in Salesforce).
        - `name` string: Optional name override for the created record.
      - `created_at` string, date-time, required: When the job was created.
      - `credits` object: Credit consumption details
        - `consumed` number: Credits consumed so far. Some job types are priced per record at a fractional rate, so this can be a decimal.
        - `estimated` number: Credits estimated for the job. Some job types are priced per record at a fractional rate, so this can be a decimal.
      - `errors` object[], required: Empty unless `status` is `failed`.
        - `code` string, required: Machine-readable error code
        - `title` string, required: Human-readable error description
      - `result` object: Outcome of a CRM job. Present only when `status` is `completed`.
        - `crm_connection` object: The resulting CRM connection, usable with `PATCH /v1/crm-connections/{id}`.
          - `id` string, required: The CRM connection ID.
          - `type` 'crm_connection', required
        - `crm_record` object: The CRM record the job created or acted on. Fetch it via the matching `GET /v1/crm-organizations/{id}`, `GET /v1/crm-leads/{id}` or `GET /v1/crm-contacts/{id}` endpoint.
          - `id` string, required: The Leadfeeder id (uuid) of the CRM record.
          - `type` 'crm_organization' | 'crm_lead' | 'crm_contact', required: The type of a CRM record.
      - `status` 'running' | 'completed' | 'failed', required: Current status of the job
    - `id` string, required: Unique job identifier
    - `type` 'create_crm_organization_job', required
  - `meta` object, required
    - `request_id` string, required: A unique identifier assigned to each API request for end-to-end traceability.

## Other responses

- `400`: Bad Request
- `401`: Unauthorized. The request was rejected because the credentials are missing, invalid, expired, or have been revoked. The client must re-authenticate before retrying. Clients can differentiate via the `code` value of the first item in `errors`.
- `403`: Forbidden. The credentials are valid but the caller is not authorized to perform the request — typically because the user lacks the required permission, the OAuth scope is insufficient, the subscription plan does not include the required entitlement, the `account_id` does not belong to the authenticated user, or the target list is read-only and its members cannot be modified. Clients can differentiate via the `code` value of the first item in `errors`.
- `404`: Not found
- `422`: Unprocessable entity
- `429`: Too many requests. Either the per-second rate limit or the monthly quota configured for the API key / OAuth application has been exceeded. Clients can differentiate via the `code` value of the first item in `errors`.
- `500`: Internal server error
- `504`: Server timeout

## Changes

> 46 revisions in range; 1 not diffed.

- **2026-10-28** `0ce28f9eef77`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/leadfeeder/apis/leadfeeder-public-api/changes/v1/create-crm-organization-jobs/post.md)

---

[API](https://skmtc.dev/leadfeeder/apis/leadfeeder-public-api.md) - [All operations](https://skmtc.dev/leadfeeder/apis/leadfeeder-public-api/llms.txt) - [OpenAPI document](https://skmtc.dev/leadfeeder/apis/leadfeeder-public-api/revisions/686d4e39eb05?raw)
