---
title: "Import from Excel"
method: POST
path: "/api/v1/rest/crm/imports"
tags: ["CRM"]
---

# Import from Excel

`POST /api/v1/rest/crm/imports`

## Request

- Base URL: `https://api.custodo.ai`
- URL: `https://api.custodo.ai/api/v1/rest/crm/imports`
- Auth: HTTP bearer

Creates the deals and activities of a filled-in copy of the CRM’s own Excel template, all in one transaction. Call it only after crm_analyse_spreadsheet has reported the SAME bytes as committable and the person has seen that report and agreed: a workbook with a problem is refused and nothing is written, with the report again. It never creates customers or contacts — every customer a row names must ALREADY be an anagrafica. Nothing it writes can be undone row by row. At most 2 000 rows per sheet and 8 MB decoded. Get the empty template from the CRM’s own Importa screen.

## Headers

- `X-Tenant-Id` string, uuid

## Request body

- object
  - `content_base64` string, required: The filled-in .xlsx, base64-encoded. Only the workbook the CRM’s own import template produces is readable: the sheet names and the column headers are matched, not guessed.

## Response `200`

Done. `data` is the tool’s own answer.

- RestResult
  - `ok` true, required
  - `data` unknown, required

## Other responses

- `400`: The arguments did not validate: `error.message` names the field, what it expects and what arrived.
- `401`: No API key, or one that is malformed, unknown, revoked or expired.
- `403`: The call never ran: the module is off for this organisation, the credential lacks the permission or the module, the tier does not cover it, or the tool is destructive and the key was not minted for that.
- `409`: The record is in a state that does not allow it — under legal hold, already sent, already closed. `error.code` says which.
- `422`: The tool ran and refused, in a sentence of its own (`TOOL_REFUSED`): the message says what to change. Retrying the same call will not help.
- `429`: The API key has spent its minute, or its day. Every request a key makes counts. See `Retry-After`.

---

[API](https://skmtc.dev/custodo/apis/custodo-integrazioni.md) · [All operations](https://skmtc.dev/custodo/apis/custodo-integrazioni/llms.txt) · [OpenAPI document](https://skmtc.dev/custodo/apis/custodo-integrazioni/revisions/16d336d3ec2a?raw)
