> ## Documentation Index
> Fetch the complete documentation index at: https://docs.sequenzy.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Accept Account Suggestions

> Create accounts from suggested email domains

# Accept Account Suggestions

Creates an account for each domain you confirm from [List Account Suggestions](/api-reference/accounts/suggestions-list). The account's external ID and domain are the domain, and its name is derived from it (`acme-corp.com` becomes `Acme Corp`). Every contact at the domain that belongs to no account is added as a `member`.

* When one account already uses the domain as its domain or external ID, the contacts are added to that account instead.
* Contacts already in another account stay where they are. If no account uses the domain but some of its contacts already belong to one, the domain is skipped so the organization is not duplicated.
* Existing roles, names and domains are kept. No sync rules run, and sequences that start when a contact enters a segment are not triggered.
* If a call fails partway, retrying it with the same domains finishes the work.
* Retries are safe: a repeated call adds nothing new and returns `updated`.

Accepting the first suggestion turns Accounts on for the workspace, with the same `409` rule as [creating an account](/api-reference/accounts/upsert). Requires the `subscribers:write` scope.

## Request

<ParamField body="domains" type="string[]" required>
  1 to 25 domains, such as `acme.com`. Domains are lowercased and duplicates are
  ignored. A personal or disposable provider, one of your own sending domains,
  or anything that is not a hostname rejects the whole request with `400` before
  anything is written.
</ParamField>

```bash theme={null}
curl -X POST "https://api.sequenzy.com/api/v1/account-suggestions" \
  -H "Authorization: Bearer API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"domains": ["acme.com", "globex.io"]}'
```

## Response

<ResponseField name="accountsCreated" type="number">
  Accounts created by this call.
</ResponseField>

<ResponseField name="membershipsCreated" type="number">
  Memberships created by this call.
</ResponseField>

<ResponseField name="results" type="array">
  One entry per domain, in request order.

  <Expandable title="properties">
    <ResponseField name="domain" type="string">
      The normalized domain.
    </ResponseField>

    <ResponseField name="status" type="string">
      `created` (new account), `updated` (existing account) or `skipped`.
    </ResponseField>

    <ResponseField name="reason" type="string | null">
      For `skipped`: `no_contacts` when no contact at the domain is free to
      add, `multiple_accounts` when several accounts already use the domain, or
      `already_in_account` when some of the domain's contacts already belong to
      an account that does not use the domain. Otherwise `null`.
    </ResponseField>

    <ResponseField name="account" type="object | null">
      The account, as returned by [Get Account](/api-reference/accounts/get).
      `null` when skipped.
    </ResponseField>

    <ResponseField name="contactCount" type="number">
      Eligible contacts at the domain: in no account, or already in this one.
    </ResponseField>

    <ResponseField name="membersAdded" type="number">
      New memberships for this domain.
    </ResponseField>

    <ResponseField name="truncated" type="boolean">
      `true` when contacts were left out because an account holds at most 5,000
      members, the limit for account attributes on contacts.
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseExample>
  ```json 200 theme={null}
  {
    "success": true,
    "accountsCreated": 1,
    "membershipsCreated": 7,
    "results": [
      {
        "domain": "acme.com",
        "status": "created",
        "reason": null,
        "account": {
          "id": "acc_abc123",
          "externalId": "acme.com",
          "name": "Acme",
          "domain": "acme.com",
          "attributes": {},
          "memberCount": 7,
          "lastEventAt": null,
          "createdAt": "2026-09-23T10:00:00.000Z",
          "updatedAt": "2026-09-23T10:00:00.000Z"
        },
        "contactCount": 7,
        "membersAdded": 7,
        "truncated": false
      },
      {
        "domain": "globex.io",
        "status": "skipped",
        "reason": "no_contacts",
        "account": null,
        "contactCount": 0,
        "membersAdded": 0,
        "truncated": false
      }
    ]
  }
  ```

  ```json 400 theme={null}
  {
    "success": false,
    "error": "`gmail.com` is a personal or disposable email domain, not an organization."
  }
  ```

  ```json 422 theme={null}
  { "success": false, "error": "Expected array with at least 1 item" }
  ```

  ```json 401 theme={null}
  { "success": false, "error": "Unauthorized" }
  ```

  ```json 403 theme={null}
  { "success": false, "error": "No company selected" }
  ```

  ```json 409 theme={null}
  {
    "success": false,
    "error": "Contacts in this workspace already use the custom attribute `account.plan`. ..."
  }
  ```
</ResponseExample>
