Limites de taxa
A infraestrutura da API da Braze foi projetada para lidar com grandes volumes de dados de nossa base de clientes. Para isso, aplicamos limites de taxa de API por espaço de trabalho.
Um limite de taxa é o número de solicitações que a API pode receber em um determinado período de tempo. Muitos incidentes de negação de serviço baseados em carga em grandes sistemas não são intencionais — causados por erros no software ou nas configurações — e não por ataques mal-intencionados. Os limites de taxa verificam se esses erros não privam nossos clientes dos recursos da API da Braze. Se muitas solicitações forem enviadas em um determinado período de tempo, você poderá ver respostas de erro com um código de status 429, o que indica que o limite de taxa foi atingido.
Os limites de taxa da API estão sujeitos a alterações, dependendo do uso adequado de nosso sistema. Incentivamos limites sensatos ao fazer uma chamada à API para evitar danos ou uso indevido.
Limites de taxa por tipo de solicitação
Consulte a seguir os limites de taxa padrão da API para diferentes tipos de solicitações. Esses limites padrão podem ser aumentados mediante solicitação. Entre em contato com seu gerente de sucesso do cliente para saber mais.
Solicitações com diferentes limites de taxa
| Tipo de solicitação | Limite de taxa padrão da API |
|---|---|
/users/track |
Solicitações: 3.000 solicitações a cada três segundos. Lotes: Até 75 objetos no total combinados entre attributes, events e purchases por solicitação de API. Clientes com limites de taxa legados podem incluir até 75 objetos por array de forma independente. Para saber mais, consulte Agrupamento de solicitações de rastreamento de usuários.Limites para Usuários Ativos Mensais CY 24-25, MAU Universal, MAU Web e MAU Celular: veja orientações sobre limites aqui. |
/users/export/ids |
Se você fez a integração em 22 de agosto de 2024 ou após essa data: 250 solicitações por minuto. Se você fez a integração antes de 22 de agosto de 2024: 2.500 solicitações por minuto. |
/users/delete/users/alias/new/users/alias/update/users/identify/users/merge |
20.000 solicitações por minuto, compartilhadas entre os endpoints. |
/users/external_id/rename |
1.000 solicitações por minuto. |
/users/external_id/remove |
1.000 solicitações por minuto. |
/events/list |
1.000 solicitações por hora, compartilhadas com o endpoint /purchases/product_list. |
/purchases/product_list |
1.000 solicitações por hora, compartilhadas com o endpoint /events/list. |
/campaigns/data_series |
50.000 solicitações por minuto. |
/messages/send/campaigns/trigger/send/canvas/trigger/send |
Para chamadas de transmissão (quando direcionando amplamente segmentos ou filtros ou um público conectado), 250 solicitações por minuto em todos os públicos, e 10 solicitações por minuto por público único (o limite que for atingido primeiro). Caso contrário, ao direcionar destinatários individuais, a solicitação está incluída nas 250.000 solicitações por hora do limite de taxa compartilhado. |
/sends/id/create |
100 solicitações por dia. |
/subscription/status/set |
5.000 solicitações por minuto. |
/preference_center/v1/{preferenceCenterExternalId}/url/{userId}/preference_center/v1/list/preference_center/v1/{preferenceCenterExternalId} |
1.000 solicitações por minuto. |
/preference_center/v1/preference_center/v1/{preferenceCenterExternalId} |
10 solicitações por minuto. |
/catalogs/{catalog_name}/catalogs/catalogs |
50 solicitações por minuto compartilhadas entre os endpoints. |
/catalogs/{catalog_name}/items/catalogs/{catalog_name}/items/catalogs/{catalog_name}/items |
16.000 solicitações por minuto compartilhadas entre os endpoints. |
/catalogs/{catalog_name}/items/{item_id}/catalogs/{catalog_name}/items/{item_id}/catalogs/{catalog_name}/items/catalogs/{catalog_name}/items/{item_id}/catalogs/{catalog_name}/items/{item_id} |
50 solicitações por minuto compartilhadas entre os endpoints. |
/catalogs/{catalog_name}/fields/{field_name}/catalogs/{catalog_name}/fields/catalogs/{catalog_name}/selections/{selection_name}/catalogs/{catalog_name}/selections |
50 solicitações por minuto compartilhadas entre os endpoints. |
/scim/v2/Users/{id}/scim/v2/Users?filter={[email protected]}/scim/v2/Users/{id}/scim/v2/Users/{id}}/scim/v2/Users/ |
5.000 solicitações por dia, por empresa, compartilhadas entre os endpoints. |
/cdi/integrations |
50 solicitações por minuto. |
/cdi/integrations/{integration_id}/sync |
20 solicitações por minuto. |
/cdi/integrations/{integration_id}/job_sync_status |
100 solicitações por minuto. |
Solicitações com limites de taxa compartilhados
As seguintes solicitações têm um limite de taxa de 250.000 solicitações por hora, compartilhado entre elas.
/app_group/sdk_authentication/create/app_group/sdk_authentication/keys/app_group/sdk_authentication/delete/app_group/sdk_authentication/primary/campaigns/details/campaigns/list/campaigns/trigger/send(apenas para chamadas não de transmissão — aquelas que especificamexternal_user_idsoualiases)/campaigns/trigger/schedule/create/campaigns/trigger/schedule/delete/campaigns/trigger/schedule/update/canvas/data_series/canvas/data_summary/canvas/details/canvas/list/canvas/trigger/send(apenas para chamadas não de transmissão)/canvas/trigger/schedule/create/canvas/trigger/schedule/delete/canvas/trigger/schedule/update/content_blocks/create/content_blocks/info/content_blocks/list/content_blocks/update/email/blocklist/email/blacklist/email/bounce/remove/email/hard_bounces/email/spam/remove/email/status/email/unsubscribes/events/data_series/kpi/dau/data_series/kpi/mau/data_series/kpi/new_users/data_series/kpi/uninstalls/data_series/messages/live_activity/start/messages/live_activity/update/messages/send(apenas para chamadas não de transmissão)/messages/schedule/create/messages/schedule/delete/messages/schedule/update/messages/scheduled_broadcasts/segments/data_series/segments/details/segments/list/sends/data_series/sessions/data_series/sms/invalid_phone_numbers/sms/invalid_phone_numbers/remove/subscription/status/get/subscription/user/status/templates/email/create/templates/email/info/templates/email/list/templates/email/update/users/export/global_control_group/users/export/segment
O que conta como o mesmo público único?
Isso se aplica aos seguintes três endpoints: /messages/send, /campaigns/trigger/send e /canvas/trigger/send.
Para esses endpoints, as solicitações de transmissão são consideradas direcionadas ao mesmo público único quando todos os seguintes critérios correspondem:
- A campanha ou Canvas sendo acionado (o
campaign_idoucanvas_idna sua solicitação de API, se especificado) - O público sendo direcionado (os segmentos ou filtros, ou para campanhas de API, o
segment_idna sua solicitação de API) - Os filtros de público conectado (o objeto
audiencena sua solicitação de API, se especificado)
Cada combinação única desses atributos conta como um público distinto, portanto, o limite de taxa adicional para cada público único se aplica a cada combinação de forma independente.
Agrupamento de solicitações de API
As APIs da Braze foram criadas para oferecer suporte a lotes. Com os lotes, a Braze pode receber o máximo de dados possível em uma única chamada de API para que você não precise fazer muitas chamadas de API. É mais eficiente para a Braze processar dados em lotes do que processar dados em uma chamada de cada vez. Por exemplo, lidar com 1.000 chamadas de API em lote requer menos recursos do que lidar com 75.000 chamadas individuais. O agrupamento é extremamente importante para qualquer aplicativo que possa necessitar de mais de 75.000 chamadas por hora.
Os aumentos do limite de taxa da API REST são considerados com base na necessidade dos clientes que estão usando os recursos de lote da API.
Agrupando solicitações para o endpoint de rastreamento de usuários
Cada solicitação /users/track pode conter até 75 objetos no total combinados entre attributes, events e purchases. Cada objeto pode atualizar um usuário. Um único perfil de usuário pode ser atualizado por vários objetos.
Limites de taxa legados
Para clientes com limites de taxa legados, cada array (attributes, events e purchases) pode conter até 75 objetos de forma independente, para um máximo combinado de até 225 objetos por solicitação.
Para saber mais sobre os limites de taxa do /users/track, consulte POST: Criar e atualizar usuários.
As solicitações feitas a esse endpoint geralmente começarão a ser processadas nesta ordem:
- Atributos
- Eventos
- Compras
Agrupando solicitações de endpoints de envio de mensagens
Uma única solicitação para os endpoints de envio de mensagens pode alcançar qualquer um dos seguintes:
- Até 50
external_idsespecíficos, cada um com parâmetros de mensagens individuais - Um segmento de qualquer tamanho criado no dashboard da Braze, especificado por seu
segment_id - Usuários que correspondem a filtros de público adicionais de qualquer tamanho, definidos na solicitação como um objeto de público conectado
Exemplo de solicitação em lote
O exemplo a seguir usa external_id para fazer uma chamada de API para e-mail e SMS.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
curl --location --request POST 'https://rest.iad-01.braze.com/v2/subscription/status/set' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer YOUR-REST-API-KEY' \
--data-raw '{
"subscription_groups":[
{
"subscription_group_id":"subscription_group_identifier",
"subscription_state":"subscribed",
"external_ids":["example-user","[email protected]"]
},
{
"subscription_group_id":"subscription_group_identifier",
"subscription_state":"subscribed",
"external_ids":["example-user","[email protected]"]
}
]
}
Monitoramento dos seus limites de taxa
Toda solicitação de API enviada à Braze retorna as seguintes informações nos cabeçalhos de resposta:
| Nome do cabeçalho | Descrição |
|---|---|
X-RateLimit-Limit |
O número máximo de solicitações que você pode fazer em um intervalo especificado (seu limite de taxa). |
X-RateLimit-Remaining |
O número de solicitações restantes na janela do limite de taxa atual. |
X-RateLimit-Reset |
A hora em que a janela do limite de taxa atual é redefinida em segundos de epoch UTC. |
Essas informações são incluídas intencionalmente no cabeçalho da resposta à solicitação da API, e não no dashboard da Braze. Isso permite que seu sistema reaja melhor em tempo real à medida que você interage com nossa API. Por exemplo, se o valor de X-RateLimit-Remaining cair abaixo de um determinado limite, talvez você queira diminuir a velocidade de envio para garantir que todos os e-mails de transação sejam enviados. Ou, se chegar a zero, talvez você queira pausar todos os envios até que passe o tempo especificado em X-RateLimit-Reset.
Os cabeçalhos HTTP serão retornados com todos os caracteres em minúsculas. Esse comportamento está alinhado com o protocolo HTTP/2, que exige que todos os nomes de campos de cabeçalho sejam minúsculos. Isso difere do HTTP/1.X, em que os nomes de cabeçalho não diferenciavam maiúsculas de minúsculas, mas eram comumente escritos em várias capitalizações.
Se tiver dúvidas sobre os limites da API, entre em contato com o gerente de sucesso do cliente ou abra um tíquete de suporte.
Você pode usar o dashboard de uso da API para visualizar e comparar o tráfego de entrada em relação aos seus limites de taxa.
Postergação ideal entre endpoints
Recomendamos que você permita uma postergação de 5 minutos entre chamadas consecutivas ao endpoint para minimizar erros.
Compreender a postergação ideal entre endpoints é crucial ao fazer chamadas consecutivas para a API da Braze. Os problemas surgem quando os endpoints dependem do processamento bem-sucedido de outros endpoints e, se as chamadas forem feitas muito cedo, podem gerar erros. Por exemplo, se você estiver atribuindo aos usuários um alias por meio do nosso endpoint /user/alias/new e, em seguida, usando esse alias para enviar um evento personalizado por meio do nosso endpoint /users/track, quanto tempo deve esperar?
Em condições normais, o tempo para a eventual consistência dos nossos dados ocorrer é de 10-100ms (1/10 de segundo). No entanto, em alguns casos, pode levar mais tempo para que essa consistência ocorra, portanto, recomendamos que você permita uma postergação de 5 minutos entre as chamadas subsequentes para minimizar a probabilidade de erro.
Redefinição do limite de taxa
Os limites de taxa são redefinidos na hora cheia, e não em uma janela contínua. Por exemplo, se o limite for de 250.000 solicitações por hora, você pode fazer 50.000 solicitações entre 22h00 e 22h59 e outras 250.000 solicitações entre 23h00 e 23h59, porque o contador é redefinido no início de cada hora.
Editar esta página no GitHub