> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.etals.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.etals.com/_mcp/server.

# API export

Etals can set up an export that sends produced content directly to an API endpoint you control. This is handled through the **Custom API** integration and configured by Etals for you.

## How exports are sent

When a task is exported through the Custom API integration, Etals sends a `POST` request to your configured endpoint. The request uses `Content-Type: application/json`.

## Authorization

Etals can adapt the export request to match the authorization requirements of your endpoint. If your endpoint requires authentication, share the endpoint details, authentication method, required headers, and any other requirements with your Etals point of contact.

Etals will configure the export so requests can authenticate correctly when sending produced or enriched data to your system.

## How you receive the data

Understanding the payload structure is important so your endpoint can process it correctly.

The payload is grouped by [content type](/content-types). Each content type group contains the items that were exported, and each item contains its identifier and the properties that were produced or enriched.

```json
{
  "attributables": [
    {
      "attributable_type": {
        "id": 1,
        "system_code": "products"
      },
      "items": [
        {
          "id": 123,
          "identifiers": {
            "identifier": "SKU-1001"
          },
          "properties": [
            {
              "property_id": 45,
              "system_code": "product_description",
              "values": [
                {
                  "brand": "etals",
                  "market": "sweden",
                  "front": "storefront",
                  "language": "sv",
                  "value_id": 9876,
                  "value": "<p>En återfuktande ansiktskräm för daglig användning.</p>"
                }
              ]
            },
            {
              "property_id": 46,
              "system_code": "categories",
              "values": [
                {
                  "value": ["Skincare", "Face care"]
                }
              ]
            }
          ]
        }
      ]
    }
  ]
}
```

| Field                                  | Description                                                                                                                                                      |
| -------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `attributables`                        | A list of content type groups included in the export.                                                                                                            |
| `attributable_type.id`                 | The Etals ID of the content type.                                                                                                                                |
| `attributable_type.system_code`        | The system code of the content type.                                                                                                                             |
| `items`                                | The content items included in the export.                                                                                                                        |
| `items.id`                             | The internal Etals ID of the item.                                                                                                                               |
| `items.identifiers.identifier`         | The external identifier for the item, such as a product number or content identifier.                                                                            |
| `properties`                           | The properties included for the item.                                                                                                                            |
| `property_id`                          | The internal Etals ID of the property.                                                                                                                           |
| `system_code`                          | The system code of the property.                                                                                                                                 |
| `values`                               | One or more values for the property.                                                                                                                             |
| `brand`, `market`, `front`, `language` | Optional dimensions that describe where the value applies. They are only present when the value is scoped to that dimension.                                     |
| `value_id`                             | The Etals identifier of the produced value. Use this ID when sending [feedback](/api-feedback) about the value. It is only present for values produced by tasks. |
| `value`                                | The produced or enriched value. This can be a string or an array, depending on the property type.                                                                |

## How your endpoint should respond

Etals reads the HTTP status code of your response to decide whether the export succeeded.

* A `2xx` response marks the exported items as **completed**.
* A `422` response is treated as a payload format error.
* Any other non-`2xx` response marks the items as **failed**, and the error is stored on the export status so it can be reviewed.

## Export behavior

Etals sends exports in batches. The default batch size is 1000 items, but this can be configured.

If multiple API URLs are configured, Etals sends the same payload to each URL. Only the response from the primary URL determines the export status; the additional URLs are treated as mirrors.

## Feedback on exported values

Your system can send feedback about exported values back to Etals by using the `value_id` included in the export payload. Feedback can be stored for review, or used to automatically create a new task that regenerates the affected values.

See [API Feedback](/api-feedback) for the endpoint, payload format, and automatic regeneration behavior.

## Customizing your export

The structure above is the default. Etals can customize the export to match your needs, for example adjusting the batch size, including all property values rather than only the produced ones, or shaping the payload to fit your system.

To set up an export to your endpoint, or to customize an existing export, reach out to your Etals point of contact and they will configure it for you.