Criar seleção de catálogo
/catalogs/{catalog_name}/selections
Use este endpoint para criar uma seleção em seu catálogo.
Pré-requisitos
Para usar esse endpoint, você precisará de uma chave de API com a permissão catalogs.create_selection.
Limite de frequência
Esse endpoint tem um limite de frequência compartilhado de 50 solicitações por minuto entre todos os endpoints assíncronos de campos e seleções de catálogo, conforme documentado em Limites de frequência da API.
Parâmetros de jornada
| Parâmetro | Obrigatório | Tipo de dados | Descrição |
|---|---|---|---|
catalog_name |
Obrigatório | String | Nome do catálogo. |
Parâmetros de solicitação
| Parâmetro | Obrigatório | Tipo de dados | Descrição |
|---|---|---|---|
selection |
Obrigatório | Objeto | Um objeto que contém critérios de seleção. Consulte o objeto de seleção de catálogo para uma descrição completa do objeto e seus campos. |
Parâmetros do objeto de seleção
| Parâmetro | Obrigatório | Tipo de dados | Descrição |
|---|---|---|---|
name |
Obrigatório | String | O nome da seleção de catálogo. |
description |
Opcional | String | Uma descrição da seleção de catálogo. |
external_id |
Opcional | String | Um identificador único para a seleção. |
source |
Opcional | String | A origem dos dados do catálogo. Para catálogos do Shopify, defina como "Shopify". Os valores aceitos são "Shopify" e "Braze". |
filters |
Obrigatório | Array | Um array de objetos de filtro a serem aplicados aos itens do catálogo. Você pode especificar até dez filtros por solicitação. Se um array de filtros vazio for fornecido, todos os itens do catálogo são incluídos. |
results_limit |
Obrigatório | Inteiro | O número máximo de resultados a retornar. Deve ser um número entre 1 e 50. |
sort_field |
Opcional | String | O campo para ordenar os resultados. Deve ser usado em conjunto com sort_order. Se sort_field e sort_order não estiverem presentes, os resultados são randomizados. |
sort_order |
Opcional | String | A ordem para classificar os resultados. Os valores aceitos são "asc" (crescente) ou "desc" (decrescente). Deve ser usado em conjunto com sort_field. Se sort_field e sort_order não estiverem presentes, os resultados são randomizados. |

Os parâmetros sort_field e sort_order devem ser usados juntos. Se você fornecer um sem o outro, ou se omitir ambos os parâmetros, os resultados da seleção são retornados em uma ordem aleatória.
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
curl --location --request POST 'https://rest.iad-03.braze.com/catalogs/restaurants/selections' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer YOUR-REST-API-KEY' \
--data-raw '{
"selection": {
"name": "favorite-restaurants",
"description": "Favorite restaurants in NYC",
"external_id": "favorite-nyc-restaurants",
"source": "Braze",
"filters": [
{
"field": "City",
"operator": "equals",
"value": "NYC"
},
{
"field": "Rating",
"operator": "greater than",
"value": 7
}
],
"results_limit": 10,
"sort_field": "Rating",
"sort_order": "desc"
}
}'
Operadores de filtro
| Tipo de campo | Operadores compatíveis |
|---|---|
string |
equals, does not equal |
number |
equals, does not equal, greater than, less than |
boolean |
is |
time |
before, after |
array |
includes value, does not include value |
geo |
geo within, geo outside |

A API aceita um máximo de dez filtros por solicitação de seleção. Os filtros são aplicados na ordem em que aparecem no array.

Quando você aplica um filtro geo, o sistema ordena automaticamente os resultados por distância, com o item mais próximo primeiro, independentemente dos parâmetros sort_field e sort_order.
Resposta
Há três respostas de código de status para esse endpoint: 202, 400 e 404.
Exemplo de resposta bem-sucedida
O código de status 202 poderia retornar o seguinte corpo de resposta.
1
2
3
{
"message": "success"
}
Exemplo de resposta de erro
O código de status 400 poderia 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-not-found",
"message": "Could not find catalog",
"parameters": [
"catalog_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-not-found |
Verifique se o nome do catálogo é válido. |
company-size-limit-already-reached |
O limite de tamanho do armazenamento do catálogo foi atingido. |
selection-limit-reached |
O limite de seleções do catálogo foi atingido. |
invalid-selection |
Verifique se a seleção é válida. |
too-many-filters |
Verifique se a seleção tem filtros demais. |
selection-name-already-exists |
Verifique se o nome da seleção já existe no catálogo. |
selection-has-invalid-filter |
Verifique se o filtro da seleção é válido. |
selection-invalid-results-limit |
Verifique se o limite de resultados da seleção é válido. |
invalid-sorting |
Verifique se a ordenação da seleção é válida. |
invalid-sort-field |
Verifique se o campo de ordenação da seleção é válido. |
invalid-sort-order |
Verifique se a ordem de classificação da seleção é válida. |
selection-contains-too-many-arrays |
Verifique se a seleção contém mais de um campo com o tipo array. Apenas um é compatível. |