{
  "item": [
    {
      "id": "2d10e36c-5e08-4c1d-8976-a773f41510fd",
      "name": "Contact-Attributes",
      "description": {
        "content": "",
        "type": "text/plain"
      },
      "item": [
        {
          "id": "1368e122-f004-4df8-9d21-a17bf4051a28",
          "name": "Create a contact field",
          "request": {
            "name": "Create a contact field",
            "description": {
              "content": "Defines a custom attribute before any contact carries it, so its type is fixed: a value is then stored as that type everywhere, and a rule like greater than 5000 means one thing in every segment. The key is lowercase letters, digits and underscores, starting with a letter, up to 40 characters (audience.attribute_key_invalid); a built-in field's name is refused (audience.attribute_reserved), an existing key gives 409 audience.attribute_exists, and a company has at most 100 fields (audience.attribute_limit_reached). The label defaults to the key made readable. Needs contacts:write.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "api",
                "v1",
                "contact-attributes"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": []
            },
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "POST",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"key\": \"<string>\",\n  \"label\": \"<string>\",\n  \"type\": \"<string>\",\n  \"description\": \"<string>\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "25dd4419-e0dc-4cff-9871-4b388b6835c7",
              "name": "The field as defined",
              "originalRequest": {
                "url": {
                  "path": [
                    "api",
                    "v1",
                    "contact-attributes"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"key\": \"plan\",\n  \"label\": \"Plan\",\n  \"type\": \"Text\",\n  \"description\": \"The subscription plan the person is on.\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"isSuccess\": true,\n  \"value\": {\n    \"key\": \"plan\",\n    \"label\": \"Plan\",\n    \"type\": \"Text\",\n    \"description\": \"The subscription plan the person is on.\",\n    \"createdFrom\": \"Api\",\n    \"createdAt\": \"2026-10-05T09:30:00+00:00\",\n    \"archivedAt\": null\n  },\n  \"status\": 0,\n  \"errors\": [],\n  \"fieldErrors\": null\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "5667d1d2-aa1f-43f1-842a-9aac5a36a709",
              "name": "Validation failed: see errors[].code and fieldErrors",
              "originalRequest": {
                "url": {
                  "path": [
                    "api",
                    "v1",
                    "contact-attributes"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"key\": \"plan\",\n  \"label\": \"Plan\",\n  \"type\": \"Text\",\n  \"description\": \"The subscription plan the person is on.\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Bad Request",
              "code": 400,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"statusCode\": 400,\n  \"message\": \"One or more errors occurred!\",\n  \"errors\": {\n    \"key_0\": [\n      \"string\",\n      \"string\"\n    ]\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "eb801339-474a-40d3-a80d-8130e6280ac6",
              "name": "Missing or invalid API key",
              "originalRequest": {
                "url": {
                  "path": [
                    "api",
                    "v1",
                    "contact-attributes"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"key\": \"plan\",\n  \"label\": \"Plan\",\n  \"type\": \"Text\",\n  \"description\": \"The subscription plan the person is on.\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unauthorized",
              "code": 401,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "text/plain"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "text"
            },
            {
              "id": "c7fa8fec-7396-4157-b7d9-4a5e3130572a",
              "name": "The key lacks the contacts:write permission",
              "originalRequest": {
                "url": {
                  "path": [
                    "api",
                    "v1",
                    "contact-attributes"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"key\": \"plan\",\n  \"label\": \"Plan\",\n  \"type\": \"Text\",\n  \"description\": \"The subscription plan the person is on.\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "text/plain"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "text"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "c42e9a1a-019d-4b02-8e40-509a05e633bf",
          "name": "List contact fields",
          "request": {
            "name": "List contact fields",
            "description": {
              "content": "The company's own contact fields (custom attributes), archived ones included, ordered by key: the keys you can send in a contact's attributes and use in segment rules, each with its type (Text, Number, Boolean, Date, DateTime, TextList) and where it was created (Ui, Api, Csv). Needs contacts:read.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "api",
                "v1",
                "contact-attributes"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": []
            },
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "GET",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            }
          },
          "response": [
            {
              "id": "98340bc6-6675-4330-a778-983059671ac9",
              "name": "Every contact field definition",
              "originalRequest": {
                "url": {
                  "path": [
                    "api",
                    "v1",
                    "contact-attributes"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"isSuccess\": true,\n  \"value\": [\n    {\n      \"key\": \"plan\",\n      \"label\": \"Plan\",\n      \"type\": \"Text\",\n      \"description\": \"The subscription plan the person is on.\",\n      \"createdFrom\": \"Api\",\n      \"createdAt\": \"2026-10-05T09:30:00+00:00\",\n      \"archivedAt\": null\n    }\n  ],\n  \"status\": 0,\n  \"errors\": [],\n  \"fieldErrors\": null\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "e74b26d3-b0eb-40d0-a461-e793c560017b",
              "name": "Missing or invalid API key",
              "originalRequest": {
                "url": {
                  "path": [
                    "api",
                    "v1",
                    "contact-attributes"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "method": "GET",
                "body": {}
              },
              "status": "Unauthorized",
              "code": 401,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "text/plain"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "text"
            },
            {
              "id": "39401ea2-fd9a-4d21-8d53-83be62422d72",
              "name": "The key lacks the contacts:read permission",
              "originalRequest": {
                "url": {
                  "path": [
                    "api",
                    "v1",
                    "contact-attributes"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "method": "GET",
                "body": {}
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "text/plain"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "text"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "f3fda891-babc-427e-a622-9fb2d2ee38ca",
          "name": "Update a contact field",
          "request": {
            "name": "Update a contact field",
            "description": {
              "content": "Renames or describes a custom attribute, or archives it (archived: true hides it from pickers and keeps every stored value; false brings it back). Its key and type never change: rules and stored values rely on them. Needs contacts:write.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "api",
                "v1",
                "contact-attributes",
                ":key"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "<string>",
                  "key": "key",
                  "description": "(Required) "
                }
              ]
            },
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "PATCH",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"label\": \"<string>\",\n  \"description\": \"<string>\",\n  \"archived\": \"<boolean>\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "bf649913-55a6-4784-9027-0a0dacafd4e0",
              "name": "The field as it is now",
              "originalRequest": {
                "url": {
                  "path": [
                    "api",
                    "v1",
                    "contact-attributes",
                    ":key"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<string>",
                      "key": "key",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"label\": \"Subscription plan\",\n  \"description\": null,\n  \"archived\": false\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"isSuccess\": true,\n  \"value\": {\n    \"key\": \"plan\",\n    \"label\": \"Subscription plan\",\n    \"type\": \"Text\",\n    \"description\": \"The subscription plan the person is on.\",\n    \"createdFrom\": \"Api\",\n    \"createdAt\": \"2026-10-05T09:30:00+00:00\",\n    \"archivedAt\": null\n  },\n  \"status\": 0,\n  \"errors\": [],\n  \"fieldErrors\": null\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "e021cd6b-4256-4bb0-a8a0-5487f62ad526",
              "name": "Validation failed: see errors[].code and fieldErrors",
              "originalRequest": {
                "url": {
                  "path": [
                    "api",
                    "v1",
                    "contact-attributes",
                    ":key"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<string>",
                      "key": "key",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"label\": \"Subscription plan\",\n  \"description\": null,\n  \"archived\": false\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Bad Request",
              "code": 400,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"statusCode\": 400,\n  \"message\": \"One or more errors occurred!\",\n  \"errors\": {\n    \"key_0\": [\n      \"string\",\n      \"string\"\n    ]\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "7b24837e-58b9-451b-afaa-9f837b625245",
              "name": "Missing or invalid API key",
              "originalRequest": {
                "url": {
                  "path": [
                    "api",
                    "v1",
                    "contact-attributes",
                    ":key"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<string>",
                      "key": "key",
                      "description": "(Required) "
                    }
                  ]
                },
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"label\": \"Subscription plan\",\n  \"description\": null,\n  \"archived\": false\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unauthorized",
              "code": 401,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "text/plain"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "text"
            },
            {
              "id": "e2c4566a-df05-4a25-b7d5-513966669313",
              "name": "The key lacks the contacts:write permission",
              "originalRequest": {
                "url": {
                  "path": [
                    "api",
                    "v1",
                    "contact-attributes",
                    ":key"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<string>",
                      "key": "key",
                      "description": "(Required) "
                    }
                  ]
                },
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"label\": \"Subscription plan\",\n  \"description\": null,\n  \"archived\": false\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "text/plain"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "text"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        }
      ],
      "event": []
    },
    {
      "id": "4119b2b2-f2e3-4d39-9423-b02dca4f7daf",
      "name": "Contacts",
      "description": {
        "content": "",
        "type": "text/plain"
      },
      "item": [
        {
          "id": "e5c0b2d3-37b9-4fd0-8449-0c9abe673006",
          "name": "Erase a contact",
          "request": {
            "name": "Erase a contact",
            "description": {
              "content": "Erases a person at their request (GDPR right to erasure), the same way the dashboard does: their name, address, attributes, tags and consent history are removed, a single anonymous row remains so a later import does not bring them back, and the other parts of Azimea erase theirs (timeline, flow runs, messages, orders, reports). It cannot be undone. `reference` is the contact's Azimea id, `ext:<your id>` or `email:<address>`; the last two find only contacts your system or an import created, a store's customers are found by their Azimea id. A contact already erased is not found again (404): nothing is left to erase. Needs the `contacts:erase` permission, which no other permission includes.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "api",
                "v1",
                "contacts",
                ":reference"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "<string>",
                  "key": "reference",
                  "description": "(Required) "
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "DELETE",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            }
          },
          "response": [
            {
              "id": "d59129e9-a173-489c-9d53-bd97957e2a20",
              "name": "The erased contact's id",
              "originalRequest": {
                "url": {
                  "path": [
                    "api",
                    "v1",
                    "contacts",
                    ":reference"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<string>",
                      "key": "reference",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "DELETE",
                "body": {}
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"isSuccess\": true,\n  \"value\": {\n    \"id\": \"01a10900-0000-7000-8000-000000000101\"\n  },\n  \"status\": 0,\n  \"errors\": [],\n  \"fieldErrors\": null\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "fd0734b7-184e-4cf9-bfff-ad3a60c88e35",
              "name": "Missing or invalid API key",
              "originalRequest": {
                "url": {
                  "path": [
                    "api",
                    "v1",
                    "contacts",
                    ":reference"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<string>",
                      "key": "reference",
                      "description": "(Required) "
                    }
                  ]
                },
                "method": "DELETE",
                "body": {}
              },
              "status": "Unauthorized",
              "code": 401,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "text/plain"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "text"
            },
            {
              "id": "4fcd2496-e343-4d27-ba16-36340455095e",
              "name": "The key lacks the contacts:erase permission",
              "originalRequest": {
                "url": {
                  "path": [
                    "api",
                    "v1",
                    "contacts",
                    ":reference"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<string>",
                      "key": "reference",
                      "description": "(Required) "
                    }
                  ]
                },
                "method": "DELETE",
                "body": {}
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "text/plain"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "text"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "f7eb9891-438a-4b94-93e6-2710f428fab7",
          "name": "Get a contact",
          "request": {
            "name": "Get a contact",
            "description": {
              "content": "One contact, named by Azimea's id (any contact, store ones included), by ext:<your user id> or by email:<address>. The ext: and email: forms find only contacts your own systems created (API or import), not those a connected store brings: a store's customers are found by their Azimea id. A reference in none of the three forms is refused with audience.contact_reference_invalid. Needs contacts:read.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "api",
                "v1",
                "contacts",
                ":reference"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "<string>",
                  "key": "reference",
                  "description": "(Required) "
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "GET",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            }
          },
          "response": [
            {
              "id": "e2c9ab31-7f48-4364-967a-a4c9dee46328",
              "name": "The contact, with its consent status, tags and custom attributes",
              "originalRequest": {
                "url": {
                  "path": [
                    "api",
                    "v1",
                    "contacts",
                    ":reference"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<string>",
                      "key": "reference",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"isSuccess\": true,\n  \"value\": {\n    \"id\": \"01a10a3c-5e2f-7b41-9c0d-4f7a2b6e1d90\",\n    \"storeId\": null,\n    \"email\": \"ana.popescu@example.com\",\n    \"firstName\": \"Ana\",\n    \"lastName\": \"Popescu\",\n    \"phone\": \"+40721000000\",\n    \"city\": \"Cluj-Napoca\",\n    \"countryCode\": \"RO\",\n    \"consentStatus\": \"Subscribed\",\n    \"isPayingCustomer\": false,\n    \"orderCount\": 0,\n    \"totalSpent\": 0,\n    \"lastOrderAt\": null,\n    \"sourceCreatedAt\": null,\n    \"lastSyncedAt\": null,\n    \"fromOrders\": false,\n    \"consentSource\": \"api\",\n    \"consentUpdatedAt\": \"2026-10-05T09:30:00+00:00\",\n    \"storeConsentMode\": null,\n    \"marketingDeclared\": false,\n    \"tags\": [\n      \"trial\"\n    ],\n    \"attributes\": {\n      \"plan\": \"pro\",\n      \"seats\": 12\n    },\n    \"lastOpenAt\": null,\n    \"lastClickAt\": null,\n    \"lastEmailedAt\": null,\n    \"language\": \"ro\",\n    \"addedAt\": \"2026-10-05T09:30:00+00:00\",\n    \"lastConversionAt\": null\n  },\n  \"status\": 0,\n  \"errors\": [],\n  \"fieldErrors\": null\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "347a3b97-4f00-43aa-83e1-31fd9b261b29",
              "name": "Missing or invalid API key",
              "originalRequest": {
                "url": {
                  "path": [
                    "api",
                    "v1",
                    "contacts",
                    ":reference"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<string>",
                      "key": "reference",
                      "description": "(Required) "
                    }
                  ]
                },
                "method": "GET",
                "body": {}
              },
              "status": "Unauthorized",
              "code": 401,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "text/plain"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "text"
            },
            {
              "id": "8b0c6f03-2ee3-48bc-a959-085d175523aa",
              "name": "The key lacks the contacts:read permission",
              "originalRequest": {
                "url": {
                  "path": [
                    "api",
                    "v1",
                    "contacts",
                    ":reference"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<string>",
                      "key": "reference",
                      "description": "(Required) "
                    }
                  ]
                },
                "method": "GET",
                "body": {}
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "text/plain"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "text"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "22f37abe-4573-42c8-b73f-311cc4c41483",
          "name": "List contacts",
          "request": {
            "name": "List contacts",
            "description": {
              "content": "A page of the company's contacts for its own systems, newest first: everyone (store, import and API contacts alike), or only the people of one segment (segment, an id from GET /segments), the same people a campaign or a flow aimed at that segment would reach. page from 1, pageSize 1 to 200 (default 50); totalCount tells how many pages there are. Needs contacts:read.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "api",
                "v1",
                "contacts"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [
                {
                  "disabled": false,
                  "key": "segment",
                  "value": "<guid>"
                },
                {
                  "disabled": false,
                  "key": "page",
                  "value": "<integer>",
                  "description": "(Required) "
                },
                {
                  "disabled": false,
                  "key": "pageSize",
                  "value": "<integer>",
                  "description": "(Required) "
                }
              ],
              "variable": []
            },
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "GET",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            }
          },
          "response": [
            {
              "id": "b04572a0-628e-4c7c-9d5a-cbc6d36314ff",
              "name": "A page of contacts with the total count",
              "originalRequest": {
                "url": {
                  "path": [
                    "api",
                    "v1",
                    "contacts"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "key": "segment",
                      "value": "01a10a3c-6b7d-7c52-8e1f-2a3b4c5d6e7f"
                    },
                    {
                      "key": "page",
                      "value": "1"
                    },
                    {
                      "key": "pageSize",
                      "value": "100"
                    }
                  ],
                  "variable": []
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"isSuccess\": true,\n  \"value\": {\n    \"items\": [\n      {\n        \"id\": \"01a10a3c-5e2f-7b41-9c0d-4f7a2b6e1d90\",\n        \"storeId\": null,\n        \"email\": \"ana.popescu@example.com\",\n        \"firstName\": \"Ana\",\n        \"lastName\": \"Popescu\",\n        \"phone\": \"+40721000000\",\n        \"city\": \"Cluj-Napoca\",\n        \"countryCode\": \"RO\",\n        \"consentStatus\": \"Subscribed\",\n        \"isPayingCustomer\": false,\n        \"orderCount\": 0,\n        \"totalSpent\": 0,\n        \"lastOrderAt\": null,\n        \"sourceCreatedAt\": null,\n        \"lastSyncedAt\": null,\n        \"fromOrders\": false,\n        \"consentSource\": \"api\",\n        \"consentUpdatedAt\": \"2026-10-05T09:30:00+00:00\",\n        \"storeConsentMode\": null,\n        \"marketingDeclared\": false,\n        \"tags\": [\n          \"trial\"\n        ],\n        \"attributes\": {\n          \"plan\": \"pro\",\n          \"seats\": 12\n        },\n        \"lastOpenAt\": null,\n        \"lastClickAt\": null,\n        \"lastEmailedAt\": null,\n        \"language\": \"ro\",\n        \"addedAt\": \"2026-10-05T09:30:00+00:00\",\n        \"lastConversionAt\": null\n      }\n    ],\n    \"page\": 1,\n    \"pageSize\": 100,\n    \"totalCount\": 1\n  },\n  \"status\": 0,\n  \"errors\": [],\n  \"fieldErrors\": null\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "e20d6a57-abdf-4b7f-815c-9137a8676862",
              "name": "Validation failed: see errors[].code and fieldErrors",
              "originalRequest": {
                "url": {
                  "path": [
                    "api",
                    "v1",
                    "contacts"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "key": "segment",
                      "value": "01a10a3c-6b7d-7c52-8e1f-2a3b4c5d6e7f"
                    },
                    {
                      "key": "page",
                      "value": "1"
                    },
                    {
                      "key": "pageSize",
                      "value": "100"
                    }
                  ],
                  "variable": []
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Bad Request",
              "code": 400,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"statusCode\": 400,\n  \"message\": \"One or more errors occurred!\",\n  \"errors\": {\n    \"key_0\": [\n      \"string\",\n      \"string\"\n    ]\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "2afeb50e-5eb7-452e-95c5-ac615c4de4d9",
              "name": "Missing or invalid API key",
              "originalRequest": {
                "url": {
                  "path": [
                    "api",
                    "v1",
                    "contacts"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "key": "segment",
                      "value": "01a10a3c-6b7d-7c52-8e1f-2a3b4c5d6e7f"
                    },
                    {
                      "key": "page",
                      "value": "1"
                    },
                    {
                      "key": "pageSize",
                      "value": "100"
                    }
                  ],
                  "variable": []
                },
                "method": "GET",
                "body": {}
              },
              "status": "Unauthorized",
              "code": 401,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "text/plain"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "text"
            },
            {
              "id": "ce80ba81-d782-4701-aac1-fe1b181ae07f",
              "name": "The key lacks the contacts:read permission",
              "originalRequest": {
                "url": {
                  "path": [
                    "api",
                    "v1",
                    "contacts"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "key": "segment",
                      "value": "01a10a3c-6b7d-7c52-8e1f-2a3b4c5d6e7f"
                    },
                    {
                      "key": "page",
                      "value": "1"
                    },
                    {
                      "key": "pageSize",
                      "value": "100"
                    }
                  ],
                  "variable": []
                },
                "method": "GET",
                "body": {}
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "text/plain"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "text"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "8cea47f8-f491-42a6-b55f-925116a58ed0",
          "name": "Create or update a contact",
          "request": {
            "name": "Create or update a contact",
            "description": {
              "content": "Writes one person from your own system. The contact is found by id, then externalId (your user id), then email, and created when none matches (an email is then required: audience.contact_email_required); a user id and an email that point at two different contacts are refused, never merged (409 audience.contact_identity_conflict). Fields left out stay as they are; attributes is a patch (a key sent is set, null removes it), and an unknown attribute key is created when the contact settings allow it, refused with audience.attribute_unknown otherwise. consent only moves up: Customer makes an existing customer, Subscribed needs proof.text (audience.consent_proof_required) and also brings back someone who unsubscribed, Unsubscribed stops marketing only; a bounce or a complaint is never lifted. topics turns topics on or off by key (topics.not_found, topics.archived). A store's contact keeps the email, id and consent the store syncs (audience.contact_store_managed), except an unsubscribe, which is always honoured. A new contact counts toward the plan (audience.contact_limit_reached). Sending the same contact twice leaves it as the first call did, so retries are safe. Needs contacts:write.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "api",
                "v1",
                "contacts"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": []
            },
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "POST",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"id\": \"<guid>\",\n  \"externalId\": \"<string>\",\n  \"email\": \"<string>\",\n  \"firstName\": \"<string>\",\n  \"lastName\": \"<string>\",\n  \"phone\": \"<string>\",\n  \"city\": \"<string>\",\n  \"countryCode\": \"<string>\",\n  \"language\": \"<string>\",\n  \"attributes\": {\n    \"key_0\": {}\n  },\n  \"consent\": {\n    \"basis\": \"<string>\",\n    \"proof\": {\n      \"text\": \"<string>\",\n      \"textVersion\": \"<string>\",\n      \"locale\": \"<string>\",\n      \"ipAddress\": \"<string>\",\n      \"givenAt\": \"<dateTime>\"\n    }\n  },\n  \"topics\": {\n    \"key_0\": \"<boolean>\",\n    \"key_1\": \"<boolean>\"\n  }\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "a041a2e0-407d-4064-a281-5127649862b0",
              "name": "The contact as stored, and whether it was created",
              "originalRequest": {
                "url": {
                  "path": [
                    "api",
                    "v1",
                    "contacts"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"id\": null,\n  \"externalId\": \"user_4821\",\n  \"email\": \"ana.popescu@example.com\",\n  \"firstName\": \"Ana\",\n  \"lastName\": \"Popescu\",\n  \"phone\": \"+40721000000\",\n  \"city\": \"Cluj-Napoca\",\n  \"countryCode\": \"RO\",\n  \"language\": \"ro\",\n  \"attributes\": {\n    \"key_0\": {},\n    \"key_1\": {}\n  },\n  \"consent\": {\n    \"basis\": \"Subscribed\",\n    \"proof\": {\n      \"text\": \"Send me product news and offers from Notely.\",\n      \"textVersion\": \"2\",\n      \"locale\": \"ro_RO\",\n      \"ipAddress\": \"203.0.113.7\",\n      \"givenAt\": \"2026-10-05T09:30:00+00:00\"\n    }\n  },\n  \"topics\": {\n    \"product_news\": true\n  }\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"isSuccess\": true,\n  \"value\": {\n    \"contact\": {\n      \"id\": \"01a10a3c-5e2f-7b41-9c0d-4f7a2b6e1d90\",\n      \"storeId\": null,\n      \"email\": \"ana.popescu@example.com\",\n      \"firstName\": \"Ana\",\n      \"lastName\": \"Popescu\",\n      \"phone\": \"+40721000000\",\n      \"city\": \"Cluj-Napoca\",\n      \"countryCode\": \"RO\",\n      \"consentStatus\": \"Subscribed\",\n      \"isPayingCustomer\": false,\n      \"orderCount\": 0,\n      \"totalSpent\": 0,\n      \"lastOrderAt\": null,\n      \"sourceCreatedAt\": null,\n      \"lastSyncedAt\": null,\n      \"fromOrders\": false,\n      \"consentSource\": \"api\",\n      \"consentUpdatedAt\": \"2026-10-05T09:30:00+00:00\",\n      \"storeConsentMode\": null,\n      \"marketingDeclared\": false,\n      \"tags\": [\n        \"trial\"\n      ],\n      \"attributes\": {\n        \"plan\": \"pro\",\n        \"seats\": 12\n      },\n      \"lastOpenAt\": null,\n      \"lastClickAt\": null,\n      \"lastEmailedAt\": null,\n      \"language\": \"ro\",\n      \"addedAt\": \"2026-10-05T09:30:00+00:00\",\n      \"lastConversionAt\": null\n    },\n    \"created\": true\n  },\n  \"status\": 0,\n  \"errors\": [],\n  \"fieldErrors\": null\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "c031e611-0de3-48a2-8aed-eabaced3d443",
              "name": "Validation failed: see errors[].code and fieldErrors",
              "originalRequest": {
                "url": {
                  "path": [
                    "api",
                    "v1",
                    "contacts"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"id\": null,\n  \"externalId\": \"user_4821\",\n  \"email\": \"ana.popescu@example.com\",\n  \"firstName\": \"Ana\",\n  \"lastName\": \"Popescu\",\n  \"phone\": \"+40721000000\",\n  \"city\": \"Cluj-Napoca\",\n  \"countryCode\": \"RO\",\n  \"language\": \"ro\",\n  \"attributes\": {\n    \"key_0\": {},\n    \"key_1\": {}\n  },\n  \"consent\": {\n    \"basis\": \"Subscribed\",\n    \"proof\": {\n      \"text\": \"Send me product news and offers from Notely.\",\n      \"textVersion\": \"2\",\n      \"locale\": \"ro_RO\",\n      \"ipAddress\": \"203.0.113.7\",\n      \"givenAt\": \"2026-10-05T09:30:00+00:00\"\n    }\n  },\n  \"topics\": {\n    \"product_news\": true\n  }\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Bad Request",
              "code": 400,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"statusCode\": 400,\n  \"message\": \"One or more errors occurred!\",\n  \"errors\": {\n    \"key_0\": [\n      \"string\",\n      \"string\"\n    ]\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "6dc5f259-b72f-46d2-88ea-62c52239bd52",
              "name": "Missing or invalid API key",
              "originalRequest": {
                "url": {
                  "path": [
                    "api",
                    "v1",
                    "contacts"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"id\": null,\n  \"externalId\": \"user_4821\",\n  \"email\": \"ana.popescu@example.com\",\n  \"firstName\": \"Ana\",\n  \"lastName\": \"Popescu\",\n  \"phone\": \"+40721000000\",\n  \"city\": \"Cluj-Napoca\",\n  \"countryCode\": \"RO\",\n  \"language\": \"ro\",\n  \"attributes\": {\n    \"key_0\": {},\n    \"key_1\": {}\n  },\n  \"consent\": {\n    \"basis\": \"Subscribed\",\n    \"proof\": {\n      \"text\": \"Send me product news and offers from Notely.\",\n      \"textVersion\": \"2\",\n      \"locale\": \"ro_RO\",\n      \"ipAddress\": \"203.0.113.7\",\n      \"givenAt\": \"2026-10-05T09:30:00+00:00\"\n    }\n  },\n  \"topics\": {\n    \"product_news\": true\n  }\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unauthorized",
              "code": 401,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "text/plain"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "text"
            },
            {
              "id": "9cfa619d-74e8-40a4-8c1b-4fe51091ff94",
              "name": "The key lacks the contacts:write permission",
              "originalRequest": {
                "url": {
                  "path": [
                    "api",
                    "v1",
                    "contacts"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"id\": null,\n  \"externalId\": \"user_4821\",\n  \"email\": \"ana.popescu@example.com\",\n  \"firstName\": \"Ana\",\n  \"lastName\": \"Popescu\",\n  \"phone\": \"+40721000000\",\n  \"city\": \"Cluj-Napoca\",\n  \"countryCode\": \"RO\",\n  \"language\": \"ro\",\n  \"attributes\": {\n    \"key_0\": {},\n    \"key_1\": {}\n  },\n  \"consent\": {\n    \"basis\": \"Subscribed\",\n    \"proof\": {\n      \"text\": \"Send me product news and offers from Notely.\",\n      \"textVersion\": \"2\",\n      \"locale\": \"ro_RO\",\n      \"ipAddress\": \"203.0.113.7\",\n      \"givenAt\": \"2026-10-05T09:30:00+00:00\"\n    }\n  },\n  \"topics\": {\n    \"product_news\": true\n  }\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "text/plain"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "text"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "060e7cc7-b28d-4d8a-b8f9-aff5fe1e6e57",
          "name": "Create or update contacts in bulk",
          "request": {
            "name": "Create or update contacts in bulk",
            "description": {
              "content": "Up to 1,000 contacts in one call, each written exactly as POST /contacts would and each refused on its own: one invalid contact does not stop the others. The answer lists every contact in the order sent, with its status (Created, Updated or Failed), its id or its errors (code, field, params), and the totals. More than 1,000 is refused with audience.batch_too_large. The whole batch counts as one call for the rate limit. Needs contacts:write.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "api",
                "v1",
                "contacts",
                "batch"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": []
            },
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "POST",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"contacts\": [\n    {\n      \"id\": \"<guid>\",\n      \"externalId\": \"<string>\",\n      \"email\": \"<string>\",\n      \"firstName\": \"<string>\",\n      \"lastName\": \"<string>\",\n      \"phone\": \"<string>\",\n      \"city\": \"<string>\",\n      \"countryCode\": \"<string>\",\n      \"language\": \"<string>\",\n      \"attributes\": {\n        \"key_0\": {},\n        \"key_1\": {}\n      },\n      \"consent\": {\n        \"basis\": \"<string>\",\n        \"proof\": {\n          \"text\": {\n            \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n          },\n          \"textVersion\": {\n            \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n          },\n          \"locale\": {\n            \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n          },\n          \"ipAddress\": {\n            \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n          },\n          \"givenAt\": {\n            \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n          }\n        }\n      },\n      \"topics\": {\n        \"key_0\": \"<boolean>\"\n      }\n    },\n    {\n      \"id\": \"<guid>\",\n      \"externalId\": \"<string>\",\n      \"email\": \"<string>\",\n      \"firstName\": \"<string>\",\n      \"lastName\": \"<string>\",\n      \"phone\": \"<string>\",\n      \"city\": \"<string>\",\n      \"countryCode\": \"<string>\",\n      \"language\": \"<string>\",\n      \"attributes\": {\n        \"key_0\": {},\n        \"key_1\": {},\n        \"key_2\": {},\n        \"key_3\": {}\n      },\n      \"consent\": {\n        \"basis\": \"<string>\",\n        \"proof\": {\n          \"text\": {\n            \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n          },\n          \"textVersion\": {\n            \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n          },\n          \"locale\": {\n            \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n          },\n          \"ipAddress\": {\n            \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n          },\n          \"givenAt\": {\n            \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n          }\n        }\n      },\n      \"topics\": {\n        \"key_0\": \"<boolean>\",\n        \"key_1\": \"<boolean>\",\n        \"key_2\": \"<boolean>\",\n        \"key_3\": \"<boolean>\"\n      }\n    }\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "edcd4281-ab9a-4b54-b0ae-6d4383bdb340",
              "name": "Totals and one result per contact, in the order sent",
              "originalRequest": {
                "url": {
                  "path": [
                    "api",
                    "v1",
                    "contacts",
                    "batch"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"contacts\": [\n    {\n      \"id\": null,\n      \"externalId\": \"user_4821\",\n      \"email\": \"ana.popescu@example.com\",\n      \"firstName\": \"Ana\",\n      \"lastName\": \"Popescu\",\n      \"phone\": \"+40721000000\",\n      \"city\": \"Cluj-Napoca\",\n      \"countryCode\": \"RO\",\n      \"language\": \"ro\",\n      \"attributes\": {\n        \"key_0\": {}\n      },\n      \"consent\": {\n        \"basis\": \"Subscribed\",\n        \"proof\": {\n          \"text\": {\n            \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n          },\n          \"textVersion\": {\n            \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n          },\n          \"locale\": {\n            \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n          },\n          \"ipAddress\": {\n            \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n          },\n          \"givenAt\": {\n            \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n          }\n        }\n      },\n      \"topics\": {\n        \"product_news\": true\n      }\n    },\n    {\n      \"id\": null,\n      \"externalId\": \"user_4821\",\n      \"email\": \"ana.popescu@example.com\",\n      \"firstName\": \"Ana\",\n      \"lastName\": \"Popescu\",\n      \"phone\": \"+40721000000\",\n      \"city\": \"Cluj-Napoca\",\n      \"countryCode\": \"RO\",\n      \"language\": \"ro\",\n      \"attributes\": {\n        \"key_0\": {},\n        \"key_1\": {}\n      },\n      \"consent\": {\n        \"basis\": \"Subscribed\",\n        \"proof\": {\n          \"text\": {\n            \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n          },\n          \"textVersion\": {\n            \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n          },\n          \"locale\": {\n            \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n          },\n          \"ipAddress\": {\n            \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n          },\n          \"givenAt\": {\n            \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n          }\n        }\n      },\n      \"topics\": {\n        \"product_news\": true\n      }\n    }\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"isSuccess\": true,\n  \"value\": {\n    \"created\": 1,\n    \"updated\": 0,\n    \"failed\": 1,\n    \"results\": [\n      {\n        \"index\": 0,\n        \"status\": \"Created\",\n        \"id\": \"01a10a3c-5e2f-7b41-9c0d-4f7a2b6e1d90\",\n        \"errors\": null\n      },\n      {\n        \"index\": 1,\n        \"status\": \"Failed\",\n        \"id\": null,\n        \"errors\": [\n          {\n            \"code\": \"validation.email\",\n            \"field\": \"Email\",\n            \"params\": null\n          }\n        ]\n      }\n    ]\n  },\n  \"status\": 0,\n  \"errors\": [],\n  \"fieldErrors\": null\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "b2247097-e228-4f8a-8121-cf7d58da4b7d",
              "name": "Validation failed: see errors[].code and fieldErrors",
              "originalRequest": {
                "url": {
                  "path": [
                    "api",
                    "v1",
                    "contacts",
                    "batch"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"contacts\": [\n    {\n      \"id\": null,\n      \"externalId\": \"user_4821\",\n      \"email\": \"ana.popescu@example.com\",\n      \"firstName\": \"Ana\",\n      \"lastName\": \"Popescu\",\n      \"phone\": \"+40721000000\",\n      \"city\": \"Cluj-Napoca\",\n      \"countryCode\": \"RO\",\n      \"language\": \"ro\",\n      \"attributes\": {\n        \"key_0\": {}\n      },\n      \"consent\": {\n        \"basis\": \"Subscribed\",\n        \"proof\": {\n          \"text\": {\n            \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n          },\n          \"textVersion\": {\n            \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n          },\n          \"locale\": {\n            \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n          },\n          \"ipAddress\": {\n            \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n          },\n          \"givenAt\": {\n            \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n          }\n        }\n      },\n      \"topics\": {\n        \"product_news\": true\n      }\n    },\n    {\n      \"id\": null,\n      \"externalId\": \"user_4821\",\n      \"email\": \"ana.popescu@example.com\",\n      \"firstName\": \"Ana\",\n      \"lastName\": \"Popescu\",\n      \"phone\": \"+40721000000\",\n      \"city\": \"Cluj-Napoca\",\n      \"countryCode\": \"RO\",\n      \"language\": \"ro\",\n      \"attributes\": {\n        \"key_0\": {},\n        \"key_1\": {}\n      },\n      \"consent\": {\n        \"basis\": \"Subscribed\",\n        \"proof\": {\n          \"text\": {\n            \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n          },\n          \"textVersion\": {\n            \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n          },\n          \"locale\": {\n            \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n          },\n          \"ipAddress\": {\n            \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n          },\n          \"givenAt\": {\n            \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n          }\n        }\n      },\n      \"topics\": {\n        \"product_news\": true\n      }\n    }\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Bad Request",
              "code": 400,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"statusCode\": 400,\n  \"message\": \"One or more errors occurred!\",\n  \"errors\": {\n    \"key_0\": [\n      \"string\",\n      \"string\"\n    ]\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "06372349-6bbc-48b3-a603-0b89efd84802",
              "name": "Missing or invalid API key",
              "originalRequest": {
                "url": {
                  "path": [
                    "api",
                    "v1",
                    "contacts",
                    "batch"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"contacts\": [\n    {\n      \"id\": null,\n      \"externalId\": \"user_4821\",\n      \"email\": \"ana.popescu@example.com\",\n      \"firstName\": \"Ana\",\n      \"lastName\": \"Popescu\",\n      \"phone\": \"+40721000000\",\n      \"city\": \"Cluj-Napoca\",\n      \"countryCode\": \"RO\",\n      \"language\": \"ro\",\n      \"attributes\": {\n        \"key_0\": {}\n      },\n      \"consent\": {\n        \"basis\": \"Subscribed\",\n        \"proof\": {\n          \"text\": {\n            \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n          },\n          \"textVersion\": {\n            \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n          },\n          \"locale\": {\n            \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n          },\n          \"ipAddress\": {\n            \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n          },\n          \"givenAt\": {\n            \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n          }\n        }\n      },\n      \"topics\": {\n        \"product_news\": true\n      }\n    },\n    {\n      \"id\": null,\n      \"externalId\": \"user_4821\",\n      \"email\": \"ana.popescu@example.com\",\n      \"firstName\": \"Ana\",\n      \"lastName\": \"Popescu\",\n      \"phone\": \"+40721000000\",\n      \"city\": \"Cluj-Napoca\",\n      \"countryCode\": \"RO\",\n      \"language\": \"ro\",\n      \"attributes\": {\n        \"key_0\": {},\n        \"key_1\": {}\n      },\n      \"consent\": {\n        \"basis\": \"Subscribed\",\n        \"proof\": {\n          \"text\": {\n            \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n          },\n          \"textVersion\": {\n            \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n          },\n          \"locale\": {\n            \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n          },\n          \"ipAddress\": {\n            \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n          },\n          \"givenAt\": {\n            \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n          }\n        }\n      },\n      \"topics\": {\n        \"product_news\": true\n      }\n    }\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unauthorized",
              "code": 401,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "text/plain"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "text"
            },
            {
              "id": "46d0bf99-ed9c-4007-974e-074c4c5d762d",
              "name": "The key lacks the contacts:write permission",
              "originalRequest": {
                "url": {
                  "path": [
                    "api",
                    "v1",
                    "contacts",
                    "batch"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"contacts\": [\n    {\n      \"id\": null,\n      \"externalId\": \"user_4821\",\n      \"email\": \"ana.popescu@example.com\",\n      \"firstName\": \"Ana\",\n      \"lastName\": \"Popescu\",\n      \"phone\": \"+40721000000\",\n      \"city\": \"Cluj-Napoca\",\n      \"countryCode\": \"RO\",\n      \"language\": \"ro\",\n      \"attributes\": {\n        \"key_0\": {}\n      },\n      \"consent\": {\n        \"basis\": \"Subscribed\",\n        \"proof\": {\n          \"text\": {\n            \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n          },\n          \"textVersion\": {\n            \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n          },\n          \"locale\": {\n            \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n          },\n          \"ipAddress\": {\n            \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n          },\n          \"givenAt\": {\n            \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n          }\n        }\n      },\n      \"topics\": {\n        \"product_news\": true\n      }\n    },\n    {\n      \"id\": null,\n      \"externalId\": \"user_4821\",\n      \"email\": \"ana.popescu@example.com\",\n      \"firstName\": \"Ana\",\n      \"lastName\": \"Popescu\",\n      \"phone\": \"+40721000000\",\n      \"city\": \"Cluj-Napoca\",\n      \"countryCode\": \"RO\",\n      \"language\": \"ro\",\n      \"attributes\": {\n        \"key_0\": {},\n        \"key_1\": {}\n      },\n      \"consent\": {\n        \"basis\": \"Subscribed\",\n        \"proof\": {\n          \"text\": {\n            \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n          },\n          \"textVersion\": {\n            \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n          },\n          \"locale\": {\n            \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n          },\n          \"ipAddress\": {\n            \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n          },\n          \"givenAt\": {\n            \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n          }\n        }\n      },\n      \"topics\": {\n        \"product_news\": true\n      }\n    }\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "text/plain"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "text"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        }
      ],
      "event": []
    },
    {
      "id": "b2fc6830-affb-460c-94e9-d6e6ee72cf03",
      "name": "Segments",
      "description": {
        "content": "",
        "type": "text/plain"
      },
      "item": [
        {
          "id": "3241d7bd-0f34-47c3-863b-4cb747da0ba8",
          "name": "List segments",
          "request": {
            "name": "List segments",
            "description": {
              "content": "The company's saved segments with their live counts: count is everyone the segment's rule picks now, sendableCount those Azimea may email. Pass a segment's id to GET /contacts?segment= to read its people. Needs contacts:read.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "api",
                "v1",
                "segments"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": []
            },
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "GET",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            }
          },
          "response": [
            {
              "id": "184ab109-b363-4177-990e-a6c992402c19",
              "name": "Every segment, with its rule and counts",
              "originalRequest": {
                "url": {
                  "path": [
                    "api",
                    "v1",
                    "segments"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"isSuccess\": true,\n  \"value\": [\n    {\n      \"id\": \"01a10a3c-6b7d-7c52-8e1f-2a3b4c5d6e7f\",\n      \"name\": \"Pro plan\",\n      \"description\": \"Everyone on the pro plan.\",\n      \"definition\": {\n        \"join\": \"All\",\n        \"rules\": [\n          {\n            \"fieldKey\": \"plan\",\n            \"operator\": \"Equals\",\n            \"value\": \"pro\"\n          }\n        ]\n      },\n      \"builtInKey\": null,\n      \"count\": 412,\n      \"sendableCount\": 377\n    }\n  ],\n  \"status\": 0,\n  \"errors\": [],\n  \"fieldErrors\": null\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "3d2922b0-b23c-4a13-b26a-b623a0917123",
              "name": "Missing or invalid API key",
              "originalRequest": {
                "url": {
                  "path": [
                    "api",
                    "v1",
                    "segments"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "method": "GET",
                "body": {}
              },
              "status": "Unauthorized",
              "code": 401,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "text/plain"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "text"
            },
            {
              "id": "8b4f9624-3a22-45e7-9a78-3f9888aad98f",
              "name": "The key lacks the contacts:read permission",
              "originalRequest": {
                "url": {
                  "path": [
                    "api",
                    "v1",
                    "segments"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "method": "GET",
                "body": {}
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "text/plain"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "text"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        }
      ],
      "event": []
    },
    {
      "id": "13e36097-20c6-4f2e-a97b-dd6fa8ae679b",
      "name": "Topics",
      "description": {
        "content": "",
        "type": "text/plain"
      },
      "item": [
        {
          "id": "abbc9a67-5001-46cf-b1ea-65aa53a87243",
          "name": "List topics",
          "request": {
            "name": "List topics",
            "description": {
              "content": "The company's active email topics, the keys a contact's topics can turn on or off in POST /contacts. Archived topics are left out: they can no longer be set. Needs contacts:read.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "api",
                "v1",
                "topics"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": []
            },
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "GET",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            }
          },
          "response": [
            {
              "id": "dc13955d-72f4-43ab-9f31-37bd3f8a52c9",
              "name": "Every active topic",
              "originalRequest": {
                "url": {
                  "path": [
                    "api",
                    "v1",
                    "topics"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"isSuccess\": true,\n  \"value\": [\n    {\n      \"id\": \"01a10a3c-7a8b-7d63-9f20-3b4c5d6e7f80\",\n      \"key\": \"product_news\",\n      \"name\": \"Product news\",\n      \"description\": \"New features and changes, about once a month.\",\n      \"isArchived\": false\n    }\n  ],\n  \"status\": 0,\n  \"errors\": [],\n  \"fieldErrors\": null\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "b5cca01c-be51-45c7-bf95-542a384be625",
              "name": "Missing or invalid API key",
              "originalRequest": {
                "url": {
                  "path": [
                    "api",
                    "v1",
                    "topics"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "method": "GET",
                "body": {}
              },
              "status": "Unauthorized",
              "code": 401,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "text/plain"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "text"
            },
            {
              "id": "a9484f0f-53f5-407b-9a9f-3b0eb3cffcb8",
              "name": "The key lacks the contacts:read permission",
              "originalRequest": {
                "url": {
                  "path": [
                    "api",
                    "v1",
                    "topics"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "method": "GET",
                "body": {}
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "text/plain"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "text"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        }
      ],
      "event": []
    },
    {
      "id": "8d0418f6-26c7-4298-97ba-42284558add2",
      "name": "Items",
      "description": {
        "content": "",
        "type": "text/plain"
      },
      "item": [
        {
          "id": "3628d46d-c994-492d-a1db-dd15f5f63893",
          "name": "Delete a catalogue item",
          "request": {
            "name": "Delete a catalogue item",
            "description": {
              "content": "Removes one of the items your system sent, by your own id (`externalId`), so emails stop recommending it. To keep its history instead, send it again with `active: false`. Items synced from a connected store cannot be deleted here. Needs the `items:write` permission.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "api",
                "v1",
                "items",
                ":externalId"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "<string>",
                  "key": "externalId",
                  "description": "(Required) "
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "DELETE",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            }
          },
          "response": [
            {
              "id": "2b745356-422c-4548-bfd9-1be48a6b5a8a",
              "name": "Deleted",
              "originalRequest": {
                "url": {
                  "path": [
                    "api",
                    "v1",
                    "items",
                    ":externalId"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<string>",
                      "key": "externalId",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "DELETE",
                "body": {}
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"isSuccess\": true,\n  \"value\": null,\n  \"status\": 0,\n  \"errors\": [],\n  \"fieldErrors\": null\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "0e6d559c-aad5-4a7c-a8e3-4adba0091de4",
              "name": "Missing or invalid API key",
              "originalRequest": {
                "url": {
                  "path": [
                    "api",
                    "v1",
                    "items",
                    ":externalId"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<string>",
                      "key": "externalId",
                      "description": "(Required) "
                    }
                  ]
                },
                "method": "DELETE",
                "body": {}
              },
              "status": "Unauthorized",
              "code": 401,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "text/plain"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "text"
            },
            {
              "id": "508c6974-0857-4451-b681-40ed4473b535",
              "name": "The key lacks the items:write permission",
              "originalRequest": {
                "url": {
                  "path": [
                    "api",
                    "v1",
                    "items",
                    ":externalId"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<string>",
                      "key": "externalId",
                      "description": "(Required) "
                    }
                  ]
                },
                "method": "DELETE",
                "body": {}
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "text/plain"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "text"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "34b817f4-e039-4103-9bd0-9b85355b6dd0",
          "name": "Get a catalogue item",
          "request": {
            "name": "Get a catalogue item",
            "description": {
              "content": "Reads one of the items your system sent, by your own id (`externalId`). Items synced from a connected store are not found here. Needs the `items:read` permission.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "api",
                "v1",
                "items",
                ":externalId"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "<string>",
                  "key": "externalId",
                  "description": "(Required) "
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "GET",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            }
          },
          "response": [
            {
              "id": "f25687a3-98c2-494c-aeaf-81184876db13",
              "name": "The item",
              "originalRequest": {
                "url": {
                  "path": [
                    "api",
                    "v1",
                    "items",
                    ":externalId"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<string>",
                      "key": "externalId",
                      "description": "(Required) "
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"isSuccess\": true,\n  \"value\": {\n    \"id\": \"01a10900-0000-7000-8000-000000000001\",\n    \"source\": \"api\",\n    \"storeId\": null,\n    \"externalId\": \"plan-pro\",\n    \"kind\": \"plan\",\n    \"name\": \"Pro plan\",\n    \"description\": \"Unlimited projects and priority support.\",\n    \"url\": \"https://example.com/pricing#pro\",\n    \"imageUrl\": \"https://example.com/img/pro.png\",\n    \"price\": 49,\n    \"comparePrice\": 59,\n    \"currency\": \"EUR\",\n    \"inStock\": true,\n    \"stockQuantity\": null,\n    \"categories\": [\n      \"plans\"\n    ],\n    \"attributes\": {\n      \"billing\": \"monthly\",\n      \"seats\": 5\n    },\n    \"active\": true,\n    \"createdAt\": \"2026-10-05T09:00:00+00:00\",\n    \"updatedAt\": null\n  },\n  \"status\": 0,\n  \"errors\": [],\n  \"fieldErrors\": null\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "702e8719-d94f-41e6-9335-bd870521e144",
              "name": "Missing or invalid API key",
              "originalRequest": {
                "url": {
                  "path": [
                    "api",
                    "v1",
                    "items",
                    ":externalId"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<string>",
                      "key": "externalId",
                      "description": "(Required) "
                    }
                  ]
                },
                "method": "GET",
                "body": {}
              },
              "status": "Unauthorized",
              "code": 401,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "text/plain"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "text"
            },
            {
              "id": "e0bf20d3-305a-4ff8-968a-9d383b15671d",
              "name": "The key lacks the items:read permission",
              "originalRequest": {
                "url": {
                  "path": [
                    "api",
                    "v1",
                    "items",
                    ":externalId"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "<string>",
                      "key": "externalId",
                      "description": "(Required) "
                    }
                  ]
                },
                "method": "GET",
                "body": {}
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "text/plain"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "text"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "7000f2fe-0a72-4cc4-83b3-e90674f74415",
          "name": "Create or update a catalogue item",
          "request": {
            "name": "Create or update a catalogue item",
            "description": {
              "content": "Adds a product, plan or service from your own system to the catalogue Azimea recommends in emails, or updates it. `id` is your own id for the item: sending the same id again updates the same item, and a field left out keeps its value. A new item defaults to a product, in stock and active; `kind` is `product`, `plan`, `service` or `other`. To stop recommending an item but keep its history, send `active: false` instead of deleting it. Items synced from a connected store are not written here. Needs the `items:write` permission. Refusals come back as `catalog.*` codes on the field, for example `catalog.item_name_missing`, `catalog.item_currency_invalid`, or `catalog.items_limit` once the catalogue holds 100,000 items.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "api",
                "v1",
                "items"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": []
            },
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "POST",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"id\": \"<string>\",\n  \"kind\": \"<string>\",\n  \"name\": \"<string>\",\n  \"description\": \"<string>\",\n  \"url\": \"<string>\",\n  \"imageUrl\": \"<string>\",\n  \"price\": \"<decimal>\",\n  \"comparePrice\": \"<decimal>\",\n  \"currency\": \"<string>\",\n  \"inStock\": \"<boolean>\",\n  \"stockQuantity\": \"<integer>\",\n  \"categories\": [\n    \"<string>\",\n    \"<string>\"\n  ],\n  \"attributes\": {\n    \"key_0\": {},\n    \"key_1\": {}\n  },\n  \"active\": \"<boolean>\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "9fe51701-a092-433d-96c8-535cd1f42e74",
              "name": "The item as stored",
              "originalRequest": {
                "url": {
                  "path": [
                    "api",
                    "v1",
                    "items"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"id\": \"plan-pro\",\n  \"kind\": \"plan\",\n  \"name\": \"Pro plan\",\n  \"description\": \"Unlimited projects and priority support.\",\n  \"url\": \"https://example.com/pricing#pro\",\n  \"imageUrl\": \"https://example.com/img/pro.png\",\n  \"price\": 49,\n  \"comparePrice\": 59,\n  \"currency\": \"EUR\",\n  \"inStock\": true,\n  \"stockQuantity\": null,\n  \"categories\": [\n    \"plans\"\n  ],\n  \"attributes\": {\n    \"key_0\": {}\n  },\n  \"active\": true\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"isSuccess\": true,\n  \"value\": {\n    \"id\": \"01a10900-0000-7000-8000-000000000001\",\n    \"source\": \"api\",\n    \"storeId\": null,\n    \"externalId\": \"plan-pro\",\n    \"kind\": \"plan\",\n    \"name\": \"Pro plan\",\n    \"description\": \"Unlimited projects and priority support.\",\n    \"url\": \"https://example.com/pricing#pro\",\n    \"imageUrl\": \"https://example.com/img/pro.png\",\n    \"price\": 49,\n    \"comparePrice\": 59,\n    \"currency\": \"EUR\",\n    \"inStock\": true,\n    \"stockQuantity\": null,\n    \"categories\": [\n      \"plans\"\n    ],\n    \"attributes\": {\n      \"billing\": \"monthly\",\n      \"seats\": 5\n    },\n    \"active\": true,\n    \"createdAt\": \"2026-10-05T09:00:00+00:00\",\n    \"updatedAt\": null\n  },\n  \"status\": 0,\n  \"errors\": [],\n  \"fieldErrors\": null\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "3edef997-9282-44fb-89ef-1688b3543b0d",
              "name": "Missing or invalid API key",
              "originalRequest": {
                "url": {
                  "path": [
                    "api",
                    "v1",
                    "items"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"id\": \"plan-pro\",\n  \"kind\": \"plan\",\n  \"name\": \"Pro plan\",\n  \"description\": \"Unlimited projects and priority support.\",\n  \"url\": \"https://example.com/pricing#pro\",\n  \"imageUrl\": \"https://example.com/img/pro.png\",\n  \"price\": 49,\n  \"comparePrice\": 59,\n  \"currency\": \"EUR\",\n  \"inStock\": true,\n  \"stockQuantity\": null,\n  \"categories\": [\n    \"plans\"\n  ],\n  \"attributes\": {\n    \"key_0\": {}\n  },\n  \"active\": true\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unauthorized",
              "code": 401,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "text/plain"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "text"
            },
            {
              "id": "5be43ae2-9199-43d1-a612-5e51fefedac0",
              "name": "The key lacks the items:write permission",
              "originalRequest": {
                "url": {
                  "path": [
                    "api",
                    "v1",
                    "items"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"id\": \"plan-pro\",\n  \"kind\": \"plan\",\n  \"name\": \"Pro plan\",\n  \"description\": \"Unlimited projects and priority support.\",\n  \"url\": \"https://example.com/pricing#pro\",\n  \"imageUrl\": \"https://example.com/img/pro.png\",\n  \"price\": 49,\n  \"comparePrice\": 59,\n  \"currency\": \"EUR\",\n  \"inStock\": true,\n  \"stockQuantity\": null,\n  \"categories\": [\n    \"plans\"\n  ],\n  \"attributes\": {\n    \"key_0\": {}\n  },\n  \"active\": true\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "text/plain"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "text"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "fec3e8b6-203b-4cd4-bdf5-5f004d9643df",
          "name": "Create or update many catalogue items",
          "request": {
            "name": "Create or update many catalogue items",
            "description": {
              "content": "The same as `POST /items` for up to 1,000 items in one call, which counts as a single call for the rate limit. Each item is written or refused on its own: the answer counts the created, updated and failed items and gives one result per item, by its position in the request, with the reasons as `catalog.*` codes. More than 1,000 items refuses the whole call with `catalog.batch_too_large`. Needs the `items:write` permission.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "api",
                "v1",
                "items",
                "batch"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": []
            },
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "POST",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"items\": [\n    {\n      \"id\": \"<string>\",\n      \"kind\": \"<string>\",\n      \"name\": \"<string>\",\n      \"description\": \"<string>\",\n      \"url\": \"<string>\",\n      \"imageUrl\": \"<string>\",\n      \"price\": \"<decimal>\",\n      \"comparePrice\": \"<decimal>\",\n      \"currency\": \"<string>\",\n      \"inStock\": \"<boolean>\",\n      \"stockQuantity\": \"<integer>\",\n      \"categories\": [\n        \"<string>\",\n        \"<string>\"\n      ],\n      \"attributes\": {\n        \"key_0\": {},\n        \"key_1\": {}\n      },\n      \"active\": \"<boolean>\"\n    },\n    {\n      \"id\": \"<string>\",\n      \"kind\": \"<string>\",\n      \"name\": \"<string>\",\n      \"description\": \"<string>\",\n      \"url\": \"<string>\",\n      \"imageUrl\": \"<string>\",\n      \"price\": \"<decimal>\",\n      \"comparePrice\": \"<decimal>\",\n      \"currency\": \"<string>\",\n      \"inStock\": \"<boolean>\",\n      \"stockQuantity\": \"<integer>\",\n      \"categories\": [\n        \"<string>\",\n        \"<string>\"\n      ],\n      \"attributes\": {\n        \"key_0\": {}\n      },\n      \"active\": \"<boolean>\"\n    }\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "3085f77e-a8eb-453c-9c12-b38251e3e060",
              "name": "What happened to each item",
              "originalRequest": {
                "url": {
                  "path": [
                    "api",
                    "v1",
                    "items",
                    "batch"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"items\": [\n    {\n      \"id\": \"plan-pro\",\n      \"kind\": \"plan\",\n      \"name\": \"Pro plan\",\n      \"description\": \"Unlimited projects and priority support.\",\n      \"url\": \"https://example.com/pricing#pro\",\n      \"imageUrl\": \"https://example.com/img/pro.png\",\n      \"price\": 49,\n      \"comparePrice\": 59,\n      \"currency\": \"EUR\",\n      \"inStock\": true,\n      \"stockQuantity\": null,\n      \"categories\": [\n        \"plans\"\n      ],\n      \"attributes\": {\n        \"key_0\": {},\n        \"key_1\": {},\n        \"key_2\": {}\n      },\n      \"active\": true\n    },\n    {\n      \"id\": \"plan-pro\",\n      \"kind\": \"plan\",\n      \"name\": \"Pro plan\",\n      \"description\": \"Unlimited projects and priority support.\",\n      \"url\": \"https://example.com/pricing#pro\",\n      \"imageUrl\": \"https://example.com/img/pro.png\",\n      \"price\": 49,\n      \"comparePrice\": 59,\n      \"currency\": \"EUR\",\n      \"inStock\": true,\n      \"stockQuantity\": null,\n      \"categories\": [\n        \"plans\"\n      ],\n      \"attributes\": {\n        \"key_0\": {},\n        \"key_1\": {}\n      },\n      \"active\": true\n    }\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"isSuccess\": true,\n  \"value\": {\n    \"created\": 0,\n    \"updated\": 1,\n    \"failed\": 0,\n    \"results\": [\n      {\n        \"index\": 0,\n        \"status\": \"updated\",\n        \"id\": \"01a10900-0000-7000-8000-000000000001\",\n        \"errors\": null\n      }\n    ]\n  },\n  \"status\": 0,\n  \"errors\": [],\n  \"fieldErrors\": null\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "1e2064f0-4b42-4cae-b171-f994c8014d7e",
              "name": "Missing or invalid API key",
              "originalRequest": {
                "url": {
                  "path": [
                    "api",
                    "v1",
                    "items",
                    "batch"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"items\": [\n    {\n      \"id\": \"plan-pro\",\n      \"kind\": \"plan\",\n      \"name\": \"Pro plan\",\n      \"description\": \"Unlimited projects and priority support.\",\n      \"url\": \"https://example.com/pricing#pro\",\n      \"imageUrl\": \"https://example.com/img/pro.png\",\n      \"price\": 49,\n      \"comparePrice\": 59,\n      \"currency\": \"EUR\",\n      \"inStock\": true,\n      \"stockQuantity\": null,\n      \"categories\": [\n        \"plans\"\n      ],\n      \"attributes\": {\n        \"key_0\": {},\n        \"key_1\": {},\n        \"key_2\": {}\n      },\n      \"active\": true\n    },\n    {\n      \"id\": \"plan-pro\",\n      \"kind\": \"plan\",\n      \"name\": \"Pro plan\",\n      \"description\": \"Unlimited projects and priority support.\",\n      \"url\": \"https://example.com/pricing#pro\",\n      \"imageUrl\": \"https://example.com/img/pro.png\",\n      \"price\": 49,\n      \"comparePrice\": 59,\n      \"currency\": \"EUR\",\n      \"inStock\": true,\n      \"stockQuantity\": null,\n      \"categories\": [\n        \"plans\"\n      ],\n      \"attributes\": {\n        \"key_0\": {},\n        \"key_1\": {}\n      },\n      \"active\": true\n    }\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unauthorized",
              "code": 401,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "text/plain"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "text"
            },
            {
              "id": "9a621c52-e007-48ca-998c-c7bd4ec6898a",
              "name": "The key lacks the items:write permission",
              "originalRequest": {
                "url": {
                  "path": [
                    "api",
                    "v1",
                    "items",
                    "batch"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"items\": [\n    {\n      \"id\": \"plan-pro\",\n      \"kind\": \"plan\",\n      \"name\": \"Pro plan\",\n      \"description\": \"Unlimited projects and priority support.\",\n      \"url\": \"https://example.com/pricing#pro\",\n      \"imageUrl\": \"https://example.com/img/pro.png\",\n      \"price\": 49,\n      \"comparePrice\": 59,\n      \"currency\": \"EUR\",\n      \"inStock\": true,\n      \"stockQuantity\": null,\n      \"categories\": [\n        \"plans\"\n      ],\n      \"attributes\": {\n        \"key_0\": {},\n        \"key_1\": {},\n        \"key_2\": {}\n      },\n      \"active\": true\n    },\n    {\n      \"id\": \"plan-pro\",\n      \"kind\": \"plan\",\n      \"name\": \"Pro plan\",\n      \"description\": \"Unlimited projects and priority support.\",\n      \"url\": \"https://example.com/pricing#pro\",\n      \"imageUrl\": \"https://example.com/img/pro.png\",\n      \"price\": 49,\n      \"comparePrice\": 59,\n      \"currency\": \"EUR\",\n      \"inStock\": true,\n      \"stockQuantity\": null,\n      \"categories\": [\n        \"plans\"\n      ],\n      \"attributes\": {\n        \"key_0\": {},\n        \"key_1\": {}\n      },\n      \"active\": true\n    }\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "text/plain"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "text"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        }
      ],
      "event": []
    },
    {
      "id": "cff7257a-7d40-4999-9d5e-59f7b5342ffc",
      "name": "Commerce",
      "description": {
        "content": "",
        "type": "text/plain"
      },
      "item": [
        {
          "id": "2f86bc84-3fc7-4a0e-af35-6b7d28c5752e",
          "name": "List orders",
          "request": {
            "name": "List orders",
            "description": {
              "content": "The orders of your connected stores, newest first, in pages (`page` from 1, `pageSize` 1–200, default 50). Statuses are the same for every platform: `Pending`, `Paid`, `Completed`, `Cancelled`, `Refunded`, `Failed`, `Draft`. Filter by `storeId`, by `status`, by `view` (`All`, `Paid` = paid or completed, `Pending`, `Abandoned` = orders left at checkout, `Refunded`), by the last `days` (1–3660, by placement date), or with `search` over the order number, email and name (at most 100 characters). Needs the `orders:read` permission.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "api",
                "v1",
                "commerce",
                "orders"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [
                {
                  "disabled": false,
                  "key": "storeId",
                  "value": "<guid>"
                },
                {
                  "disabled": false,
                  "key": "search",
                  "value": "<string>"
                },
                {
                  "disabled": false,
                  "key": "status",
                  "value": "<string>"
                },
                {
                  "disabled": false,
                  "key": "view",
                  "value": "<string>",
                  "description": "(Required) "
                },
                {
                  "disabled": false,
                  "key": "days",
                  "value": "<integer>"
                },
                {
                  "disabled": false,
                  "key": "page",
                  "value": "<integer>",
                  "description": "(Required) "
                },
                {
                  "disabled": false,
                  "key": "pageSize",
                  "value": "<integer>",
                  "description": "(Required) "
                }
              ],
              "variable": []
            },
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "GET",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            }
          },
          "response": [
            {
              "id": "90055b50-4b38-491d-8ada-14664a29a5d0",
              "name": "One page of orders",
              "originalRequest": {
                "url": {
                  "path": [
                    "api",
                    "v1",
                    "commerce",
                    "orders"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "key": "storeId",
                      "value": ""
                    },
                    {
                      "key": "search",
                      "value": ""
                    },
                    {
                      "key": "status",
                      "value": "<string>"
                    },
                    {
                      "key": "view",
                      "value": "Paid"
                    },
                    {
                      "key": "days",
                      "value": "30"
                    },
                    {
                      "key": "page",
                      "value": "1"
                    },
                    {
                      "key": "pageSize",
                      "value": "50"
                    }
                  ],
                  "variable": []
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"isSuccess\": true,\n  \"value\": {\n    \"items\": [\n      {\n        \"id\": \"01a10900-0000-7000-8000-000000000101\",\n        \"storeId\": \"01a10900-0000-7000-8000-000000000201\",\n        \"number\": \"1042\",\n        \"status\": \"Paid\",\n        \"currency\": \"EUR\",\n        \"total\": 129.9,\n        \"email\": \"ana@example.com\",\n        \"customerName\": \"Ana Popescu\",\n        \"placedAt\": \"2026-10-04T18:12:00+00:00\",\n        \"paidAt\": \"2026-10-04T18:13:00+00:00\",\n        \"lineCount\": 2\n      }\n    ],\n    \"page\": 1,\n    \"pageSize\": 50,\n    \"totalCount\": 1\n  },\n  \"status\": 0,\n  \"errors\": [],\n  \"fieldErrors\": null\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "40328021-9ce4-4f05-bf8e-09dcb2a1747e",
              "name": "Validation failed: see errors[].code and fieldErrors",
              "originalRequest": {
                "url": {
                  "path": [
                    "api",
                    "v1",
                    "commerce",
                    "orders"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "key": "storeId",
                      "value": ""
                    },
                    {
                      "key": "search",
                      "value": ""
                    },
                    {
                      "key": "status",
                      "value": "<string>"
                    },
                    {
                      "key": "view",
                      "value": "Paid"
                    },
                    {
                      "key": "days",
                      "value": "30"
                    },
                    {
                      "key": "page",
                      "value": "1"
                    },
                    {
                      "key": "pageSize",
                      "value": "50"
                    }
                  ],
                  "variable": []
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Bad Request",
              "code": 400,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"statusCode\": 400,\n  \"message\": \"One or more errors occurred!\",\n  \"errors\": {\n    \"key_0\": [\n      \"string\",\n      \"string\"\n    ]\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "c90b72a0-4dc1-43c0-bb49-d96982cdd9cc",
              "name": "Missing or invalid API key",
              "originalRequest": {
                "url": {
                  "path": [
                    "api",
                    "v1",
                    "commerce",
                    "orders"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "key": "storeId",
                      "value": ""
                    },
                    {
                      "key": "search",
                      "value": ""
                    },
                    {
                      "key": "status",
                      "value": "<string>"
                    },
                    {
                      "key": "view",
                      "value": "Paid"
                    },
                    {
                      "key": "days",
                      "value": "30"
                    },
                    {
                      "key": "page",
                      "value": "1"
                    },
                    {
                      "key": "pageSize",
                      "value": "50"
                    }
                  ],
                  "variable": []
                },
                "method": "GET",
                "body": {}
              },
              "status": "Unauthorized",
              "code": 401,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "text/plain"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "text"
            },
            {
              "id": "0603434d-996c-43d0-8344-cd58130bcf62",
              "name": "The key lacks the orders:read permission",
              "originalRequest": {
                "url": {
                  "path": [
                    "api",
                    "v1",
                    "commerce",
                    "orders"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "key": "storeId",
                      "value": ""
                    },
                    {
                      "key": "search",
                      "value": ""
                    },
                    {
                      "key": "status",
                      "value": "<string>"
                    },
                    {
                      "key": "view",
                      "value": "Paid"
                    },
                    {
                      "key": "days",
                      "value": "30"
                    },
                    {
                      "key": "page",
                      "value": "1"
                    },
                    {
                      "key": "pageSize",
                      "value": "50"
                    }
                  ],
                  "variable": []
                },
                "method": "GET",
                "body": {}
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "text/plain"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "text"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        }
      ],
      "event": []
    },
    {
      "id": "9901acc4-e198-4792-b083-3a1db79bdd03",
      "name": "Events",
      "description": {
        "content": "",
        "type": "text/plain"
      },
      "item": [
        {
          "id": "d5aa290e-c8c4-4ba2-bc4d-7e75f611568a",
          "name": "Track events from your product",
          "request": {
            "name": "Track events from your product",
            "description": {
              "content": "Tells Azimea what people did in your product (`user.signed_up`, `trial.ending`, `kyc.completed`). Each event is recorded on the person's timeline and starts every published flow whose trigger is that event name; the person is found, or created, from `contact` (the same object `POST /contacts` takes, with at least `id`, `externalId` or `email`). Send up to 100 events per call; a call counts once for the rate limit. `id` is your own id, unique in your account: sending it again is counted as a duplicate, so retries are safe. Names use lowercase letters, digits, `_` and `.`, start with a letter, at most 64 characters; the prefixes `order.`, `cart.`, `customer.`, `subscriber.`, `contact.`, `email.` and `azimea.` are reserved. `occurredAt` may be up to 30 days in the past and not in the future; `properties` is a JSON object of at most 16 KB and 3 levels. Each event is accepted or rejected on its own, with `activity.*` codes per field. Needs the `events:write` permission.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "api",
                "v1",
                "events"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": []
            },
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "POST",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"events\": [\n    {\n      \"id\": \"<string>\",\n      \"name\": \"<string>\",\n      \"occurredAt\": \"<dateTime>\",\n      \"contact\": {},\n      \"properties\": {}\n    },\n    {\n      \"id\": \"<string>\",\n      \"name\": \"<string>\",\n      \"occurredAt\": \"<dateTime>\",\n      \"contact\": {},\n      \"properties\": {}\n    }\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "2371fbe7-7301-41b3-ab5d-78ebe6f23ddc",
              "name": "How many events were accepted, were duplicates, or were rejected (with the reasons per event)",
              "originalRequest": {
                "url": {
                  "path": [
                    "api",
                    "v1",
                    "events"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"events\": [\n    {\n      \"name\": \"user.signed_up\",\n      \"occurredAt\": \"2026-10-05T09:30:00+00:00\",\n      \"contact\": {\n        \"externalId\": \"user_123\",\n        \"email\": \"ana@example.com\"\n      },\n      \"properties\": {\n        \"plan\": \"trial\",\n        \"source\": \"landing-page\"\n      }\n    }\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"isSuccess\": true,\n  \"value\": {\n    \"accepted\": 1,\n    \"duplicates\": 0,\n    \"rejected\": []\n  },\n  \"status\": 0,\n  \"errors\": [],\n  \"fieldErrors\": null\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "0edad9aa-0d5a-4ef3-a119-267042bc0ac6",
              "name": "Validation failed: no events, or more than 100 (activity.batch_too_large)",
              "originalRequest": {
                "url": {
                  "path": [
                    "api",
                    "v1",
                    "events"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"events\": [\n    {\n      \"name\": \"user.signed_up\",\n      \"occurredAt\": \"2026-10-05T09:30:00+00:00\",\n      \"contact\": {\n        \"externalId\": \"user_123\",\n        \"email\": \"ana@example.com\"\n      },\n      \"properties\": {\n        \"plan\": \"trial\",\n        \"source\": \"landing-page\"\n      }\n    }\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Bad Request",
              "code": 400,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"statusCode\": 400,\n  \"message\": \"One or more errors occurred!\",\n  \"errors\": {\n    \"key_0\": [\n      \"string\",\n      \"string\"\n    ]\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "599bebfc-33f2-4842-9dc2-64c8d05e14cf",
              "name": "Missing or invalid API key",
              "originalRequest": {
                "url": {
                  "path": [
                    "api",
                    "v1",
                    "events"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"events\": [\n    {\n      \"name\": \"user.signed_up\",\n      \"occurredAt\": \"2026-10-05T09:30:00+00:00\",\n      \"contact\": {\n        \"externalId\": \"user_123\",\n        \"email\": \"ana@example.com\"\n      },\n      \"properties\": {\n        \"plan\": \"trial\",\n        \"source\": \"landing-page\"\n      }\n    }\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unauthorized",
              "code": 401,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "text/plain"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "text"
            },
            {
              "id": "295ac853-4b2e-4fef-a2c1-d99151634d36",
              "name": "The key lacks the events:write permission",
              "originalRequest": {
                "url": {
                  "path": [
                    "api",
                    "v1",
                    "events"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"events\": [\n    {\n      \"name\": \"user.signed_up\",\n      \"occurredAt\": \"2026-10-05T09:30:00+00:00\",\n      \"contact\": {\n        \"externalId\": \"user_123\",\n        \"email\": \"ana@example.com\"\n      },\n      \"properties\": {\n        \"plan\": \"trial\",\n        \"source\": \"landing-page\"\n      }\n    }\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "text/plain"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "text"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        }
      ],
      "event": []
    },
    {
      "id": "37c32508-eda0-4f1e-b504-7b01cc4052f6",
      "name": "Sending",
      "description": {
        "content": "",
        "type": "text/plain"
      },
      "item": [
        {
          "id": "980e3108-1fc9-494e-8c1b-800c2067c9d8",
          "name": "Send a transactional email",
          "request": {
            "name": "Send a transactional email",
            "description": {
              "content": "Queues one email your own code asks for, about the person's own account or order: an order confirmation, an access code, a password link. It is transactional, so it needs no marketing consent; it is only stopped for an address that bounced or complained, and then comes back with the status `Suppressed` and the reason (`sending.gate_bounced`, `sending.gate_complained`). Do not use it for newsletters or offers: those are campaigns and flows, which check consent. It goes out from your company's default sender, on a verified domain; until one exists the email waits in the queue (`sending.no_verified_sender`). `to` is one address, `subject` at most 300 characters, `html` at most 500,000 characters. The answer's `id` is the message id the delivery webhooks (`email.delivered`, `email.bounced`, `email.complained`) carry. Send an `Idempotency-Key` header (your own id for this send, up to 150 visible ASCII characters) to make retries safe: a second call with the same key, from any key of your account, returns the first message and sends nothing more, even if its body differs. Without the header, a retry queues a second email. Needs the `emails:send` permission.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "api",
                "v1",
                "sending",
                "emails"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": []
            },
            "header": [
              {
                "disabled": false,
                "key": "Idempotency-Key",
                "value": "<string>",
                "description": ""
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "POST",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"to\": \"<email>\",\n  \"subject\": \"<string>\",\n  \"html\": \"<string>\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "2f423450-8e73-4797-a771-5faf6c0100af",
              "name": "The message id and its status: Queued, or Suppressed with the reason",
              "originalRequest": {
                "url": {
                  "path": [
                    "api",
                    "v1",
                    "sending",
                    "emails"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "disabled": false,
                    "key": "Idempotency-Key",
                    "value": "",
                    "description": ""
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"to\": \"ana@example.com\",\n  \"subject\": \"Your order 1042 is confirmed\",\n  \"html\": \"<p>Hi Ana,</p><p>Thank you for your order 1042. We will let you know when it ships.</p>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"isSuccess\": true,\n  \"value\": {\n    \"id\": \"01a10900-0000-7000-8000-000000000301\",\n    \"status\": \"Queued\",\n    \"reason\": null\n  },\n  \"status\": 0,\n  \"errors\": [],\n  \"fieldErrors\": null\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "4f068c9d-d495-4fdd-9c9f-d746b034efa5",
              "name": "Validation failed: see errors[].code and fieldErrors",
              "originalRequest": {
                "url": {
                  "path": [
                    "api",
                    "v1",
                    "sending",
                    "emails"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "disabled": false,
                    "key": "Idempotency-Key",
                    "value": "",
                    "description": ""
                  },
                  {
                    "key": "Accept",
                    "value": "application/problem+json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"to\": \"ana@example.com\",\n  \"subject\": \"Your order 1042 is confirmed\",\n  \"html\": \"<p>Hi Ana,</p><p>Thank you for your order 1042. We will let you know when it ships.</p>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Bad Request",
              "code": 400,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/problem+json"
                }
              ],
              "body": "{\n  \"statusCode\": 400,\n  \"message\": \"One or more errors occurred!\",\n  \"errors\": {\n    \"key_0\": [\n      \"string\",\n      \"string\"\n    ],\n    \"key_1\": [\n      \"string\",\n      \"string\"\n    ],\n    \"key_2\": [\n      \"string\",\n      \"string\"\n    ],\n    \"key_3\": [\n      \"string\",\n      \"string\"\n    ]\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "cc9ba735-fc5d-4004-a056-ed3feafb6ef3",
              "name": "Missing or invalid API key",
              "originalRequest": {
                "url": {
                  "path": [
                    "api",
                    "v1",
                    "sending",
                    "emails"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "disabled": false,
                    "key": "Idempotency-Key",
                    "value": "",
                    "description": ""
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"to\": \"ana@example.com\",\n  \"subject\": \"Your order 1042 is confirmed\",\n  \"html\": \"<p>Hi Ana,</p><p>Thank you for your order 1042. We will let you know when it ships.</p>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unauthorized",
              "code": 401,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "text/plain"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "text"
            },
            {
              "id": "925742e3-87a5-48a6-856c-d455e6989cda",
              "name": "The key lacks the emails:send permission",
              "originalRequest": {
                "url": {
                  "path": [
                    "api",
                    "v1",
                    "sending",
                    "emails"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "disabled": false,
                    "key": "Idempotency-Key",
                    "value": "",
                    "description": ""
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"to\": \"ana@example.com\",\n  \"subject\": \"Your order 1042 is confirmed\",\n  \"html\": \"<p>Hi Ana,</p><p>Thank you for your order 1042. We will let you know when it ships.</p>\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "text/plain"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "text"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        }
      ],
      "event": []
    }
  ],
  "event": [],
  "variable": [
    {
      "type": "string",
      "value": "https://dashboard.azimea.com",
      "key": "baseUrl"
    }
  ],
  "info": {
    "_postman_id": "0bdeef7d-98ea-47e6-a726-173da31b67a8",
    "name": "Azimea API",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json",
    "description": {
      "content": "Send contacts, events, catalogue items and transactional email from your own systems, and read contacts and orders. Every request carries an API key made in Settings › API keys: `Authorization: Bearer azm_live_…`. Each key holds only the permissions given to it. Every answer has the same envelope: `{ isSuccess, value, status, errors, fieldErrors }`; an error carries a `code`, listed in the docs' error codes catalog.",
      "type": "text/plain"
    }
  }
}