Skip to content

Criar catálogo

post

/catalogs

Use este endpoint para criar um catálogo.

Pré-requisitos

Para usar este endpoint, você precisará de uma chave de API com a permissão catalogs.create.

Limite de taxa

Esse endpoint tem um limite de taxa compartilhado de 50 solicitações por minuto entre todos os endpoints de catálogo síncronos, conforme documentado em Limites de taxa da API.

Parâmetros de solicitação

Parâmetro Obrigatória Tipo de dados Descrição
catalogs Obrigatória Array Um array que contém objetos de catálogo. Somente um objeto de catálogo é permitido para esta solicitação.

Parâmetros do objeto de catálogo

Parâmetro Obrigatória Tipo de dados Descrição
name Obrigatória String O nome do catálogo que você deseja criar.
description Obrigatória String A descrição do catálogo que você deseja criar.
fields Obrigatória Array Um array de objetos em que o objeto contém as chaves name e type.

Exemplo de solicitação

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
curl --location --request POST 'https://rest.iad-03.braze.com/catalogs' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer YOUR-REST-API-KEY' \
--data-raw '{
  "catalogs": [
    {
      "name": "restaurants",
      "description": "My Restaurants",
      "fields": [
        {
          "name": "id",
          "type": "string"
        },
        {
          "name": "Name",
          "type": "string"
        },
        {
          "name": "City",
          "type": "string"
        },
        {
          "name": "Cuisine",
          "type": "string"
        },
        {
          "name": "Rating",
          "type": "number"
        },
        {
          "name": "Loyalty_Program",
          "type": "boolean"
        },
        {
          "name": "Location",
          "type": "object"
        },
        {
          "name": "Top_Dishes",
          "type": "array"
        },
        {
          "name": "Created_At",
          "type": "time"
        }
      ]
    }
  ]
}'

Resposta

Existem dois códigos de status para este endpoint: 201 e 400.

Exemplo de resposta bem-sucedida

O código de status 201 pode retornar o seguinte corpo de resposta.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
{
  "catalogs": [
    {
      "description": "My Restaurants",
      "fields": [
        {
          "name": "id",
          "type": "string"
        },
        {
          "name": "Name",
          "type": "string"
        },
        {
          "name": "City",
          "type": "string"
        },
        {
          "name": "Cuisine",
          "type": "string"
        },
        {
          "name": "Rating",
          "type": "number"
        },
        {
          "name": "Loyalty_Program",
          "type": "boolean"
        },
        {
          "name": "Location",
          "type": "object"
        },
        {
          "name": "Top_Dishes",
          "type": "array"
        },
        {
          "name": "Created_At",
          "type": "time"
        }
      ],
      "name": "restaurants",
      "num_items": 0,
      "updated_at": "2022-11-02T20:04:06.879+00:00"
    }
  ],
  "message": "success"
}

Exemplo de resposta de erro

O código de status 400 pode retornar o seguinte corpo de resposta. Consulte Solução de problemas para saber mais sobre os erros que você pode encontrar.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
{
  "errors": [
    {
      "id": "catalog-name-already-exists",
      "message": "A catalog with that name already exists",
      "parameters": [
        "name"
      ],
      "parameter_values": [
        "restaurants"
      ]
    }
  ],
  "message": "Invalid Request"
}

Solução de problemas

A tabela a seguir lista os possíveis erros retornados e as etapas de solução de problemas associadas.

Erro Solução de problemas
catalog-array-invalid catalogs deve ser um array de objetos.
catalog-name-already-exists Já existe um catálogo com esse nome.
catalog-name-too-large O limite de caracteres para um nome de catálogo é 250.
description-too-long O limite de caracteres para a descrição é 250.
field-names-not-unique O mesmo nome de campo é referenciado duas vezes.
field-names-too-large O limite de caracteres para um nome de campo é 250.
id-not-first-column O id deve ser o primeiro campo no array. Verifique se o tipo é uma string.
invalid-catalog-name O nome do catálogo só pode incluir letras, números, hífens e sublinhados.
invalid-field-names Os campos só podem incluir letras, números, hífens e sublinhados.
invalid-field-types Verifique se os tipos de campo são válidos.
invalid-fields fields não está formatado corretamente.
too-many-catalog-atoms Você só pode criar um catálogo por solicitação.
too-many-fields O limite de número de campos é 500.
New Stuff!