Limites de frequência
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 frequência de API por espaço de trabalho.
Um limite de frequência é 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 frequência verificam se esses erros não privam nossos clientes dos recursos da API do 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 frequência foi atingido.
Os limites de frequência 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 frequência por tipo de solicitação
A tabela a seguir lista os limites de frequência padrão da API para diferentes tipos de solicitação. Esses limites padrão podem ser aumentados mediante solicitação. Entre em contato com seu gerente de sucesso do cliente para saber mais.
As solicitações não listadas nesta tabela compartilham um limite de frequência padrão total de 250.000 solicitações por hora.
Tipo de solicitação | Limite de frequência padrão da API |
---|---|
/users/track |
Solicitações: 3.000 solicitações a cada três segundos. Lotes: 75 eventos, 75 compras e 75 atribuições por solicitação de API. Para obter mais informações, consulte Agrupamento de solicitações de rastreamento do usuário. Limites para Usuários Ativos Mensais CY 24-25: consulte Limites de Usuários Ativos Mensais CY 24-25 |
/users/export/ids |
Se você embarcou em 22 de agosto de 2024 ou após essa data: 250 solicitações por minuto. Se sua integração foi feita 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 ponto de extremidade /purchases/product_list . |
/purchases/product_list |
1.000 solicitações por hora, compartilhadas com o ponto de extremidade /events/list . |
/campaigns/data_series |
50.000 solicitações por minuto. |
/messages/send /campaigns/trigger/send /canvas/trigger/send |
250 solicitações por minuto para chamadas de transmissão (ao especificar apenas um segmento ou público conectado). Caso contrário, 250.000 solicitações por hora compartilhadas entre os endpoints. |
/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, por espaço de trabalho. |
/preference_center/v1 /preference_center/v1/{preferenceCenterExternalId} |
10 solicitações por minuto, por espaço de trabalho. |
/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. |
/scim/v2/Users/{id} /scim/v2/Users?filter={userName@example.com} /scim/v2/Users/{id} /scim/v2/Users/{id}} /scim/v2/Users/ |
5.000 solicitações por dia, por empresa, compartilhadas entre os endpoints. |
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 frequência da API REST são considerados com base na necessidade dos clientes que estão usando os recursos em lote da API.
Agrupamento de solicitações de rastreamento do usuário
Cada solicitação /users/track
pode conter até 75 objetos de evento, 75 objetos de atribuição e 75 objetos de compra. Cada objeto (evento, atributo e vetores de compra) pode atualizar um usuário. No total, isso significa que um máximo de 225 usuários pode ser atualizado em uma única chamada. Além disso, um único perfil de usuário pode ser atualizado por vários objetos.
As solicitações feitas a esse ponto de extremidade geralmente começarão a ser processadas nessa ordem:
- Atributos
- Eventos
- Compras
Envio de mensagens em lote para solicitações de endpoint
Uma única solicitação para os pontos de extremidade de envio de mensagens pode alcançar qualquer um dos seguintes:
- Até 50 sites específicos
external_ids
, cada um com parâmetros de mensagens individuais - Um segmento de qualquer tamanho criado no dashboard do 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 de lote
O exemplo a seguir usa external_id
para fazer uma chamada de API para envio de 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","example1@email.com"]
},
{
"subscription_group_id":"subscription_group_identifier",
"subscription_state":"subscribed",
"external_ids":["example-user","example1@email.com"]
}
]
}
Monitoramento de seus limites de frequência
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 frequência). |
X-RateLimit-Remaining |
O número de solicitações restantes na janela do limite de frequência atual. |
X-RateLimit-Reset |
A hora em que a janela do limite de frequência 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 em letras minúsculas. 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 maiúsculas.
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.
Postergação ideal entre os pontos finais
Recomendamos que você permita uma postergação de 5 minutos entre chamadas consecutivas ao endpoint para minimizar erros.
Compreender a postergação ideal entre os pontos de extremidade é crucial ao fazer chamadas consecutivas para a API do 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 estiver atribuindo aos usuários um alias por meio do nosso endpoint /user/alias/new
e, em seguida, usar 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 que a consistência eventual de nossos dados ocorra é de 10 a 100 ms (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.