Skip to content

Commit

Permalink
Merge branch 'develop' into bdocs-improvements
Browse files Browse the repository at this point in the history
  • Loading branch information
internetisaiah committed Nov 1, 2024
2 parents b18c690 + 9eb2227 commit 6baee95
Show file tree
Hide file tree
Showing 1,751 changed files with 56,346 additions and 18,620 deletions.
4 changes: 4 additions & 0 deletions .github/CODEOWNERS
Validating CODEOWNERS rules …
Original file line number Diff line number Diff line change
Expand Up @@ -25,3 +25,7 @@
/_docs/_api/endpoints/catalogs/catalog_items/synchronous/patch_catalog_item.md @braze-inc/ingestion @lydia-xie @braze-inc/docs-team
/_docs/_api/endpoints/messaging/send_messages/post_send_triggered_campaigns.md @braze-inc/ingestion @lydia-xie @braze-inc/docs-team
/_docs/_api/endpoints/messaging/send_messages/post_send_triggered_canvases.md @braze-inc/ingestion @lydia-xie @braze-inc/docs-team

# Currents Event Docs: Currents owns event payload auto-generation templates for these endpoints, and are codeowners to be notified when changes are made so that the templates can be kept in-sync.
/_docs/_user_guide/data_and_analytics/braze_currents/event_glossary/customer_behavior_events.md @braze-inc/currents @braze-inc/docs-team
/_docs/_user_guide/data_and_analytics/braze_currents/event_glossary/message_engagement_events.md @braze-inc/currents @braze-inc/docs-team
2 changes: 1 addition & 1 deletion .github/PULL_REQUEST_TEMPLATE
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ _Your reason here..._
### Related PRs, issues, or features (optional)
<!--
For related GitHub issues and features, add "Fixes #ISSUE_NUMBER".
For Jira tickets, add the ticket number and a link to the ticket, like: [BD-NUMBER](LINK).
For Jira tickets, add the ticket number and a link to the ticket, like: [BD-NUMBER](https://jira.braze.com/browse/BD-NUMBER).
-->
- N/A

Expand Down
32 changes: 15 additions & 17 deletions Gemfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -33,31 +33,31 @@ GIT
GEM
remote: https://rubygems.org/
specs:
addressable (2.8.6)
public_suffix (>= 2.0.2, < 6.0)
addressable (2.8.7)
public_suffix (>= 2.0.2, < 7.0)
algoliasearch (1.26.1)
httpclient (~> 2.8, >= 2.8.3)
json (>= 1.5.1)
base64 (0.2.0)
bigdecimal (3.1.8)
colorator (1.1.0)
concurrent-ruby (1.3.1)
concurrent-ruby (1.3.4)
em-websocket (0.5.3)
eventmachine (>= 0.12.9)
http_parser.rb (~> 0)
eventmachine (1.2.7)
execjs (2.9.1)
ffi (1.16.3)
ffi (1.17.0)
filesize (0.2.0)
forwardable-extended (2.6.0)
google-protobuf (4.27.0)
google-protobuf (4.28.3)
bigdecimal
rake (>= 13)
http_parser.rb (0.8.0)
httpclient (2.8.3)
i18n (1.14.5)
i18n (1.14.6)
concurrent-ruby (~> 1.0)
jekyll (4.3.3)
jekyll (4.3.4)
addressable (~> 2.4)
colorator (~> 1.0)
em-websocket (~> 0.5)
Expand Down Expand Up @@ -100,8 +100,8 @@ GEM
pathutil (0.16.2)
forwardable-extended (~> 2.6)
progressbar (1.13.0)
public_suffix (5.0.5)
puma (6.4.2)
public_suffix (6.0.1)
puma (6.4.3)
nio4r (~> 2.0)
racc (1.8.0)
rack (3.0.11)
Expand All @@ -123,13 +123,12 @@ GEM
rb-fsevent (0.11.2)
rb-inotify (0.11.1)
ffi (~> 1.0)
rexml (3.3.2)
strscan
rouge (4.2.1)
rexml (3.3.9)
rouge (4.4.0)
ruby2_keywords (0.0.5)
safe_yaml (1.0.5)
sass-embedded (1.77.3)
google-protobuf (>= 3.25, < 5.0)
sass-embedded (1.80.4)
google-protobuf (~> 4.28)
rake (>= 13)
sassc (2.4.0)
ffi (~> 1.9)
Expand All @@ -139,15 +138,14 @@ GEM
rack-protection (= 4.0.0)
rack-session (>= 2.0.0, < 3)
tilt (~> 2.0)
strscan (3.1.0)
terminal-table (3.0.2)
unicode-display_width (>= 1.1.1, < 3)
tilt (2.3.0)
uglifier (4.2.0)
execjs (>= 0.3.0, < 3)
unicode-display_width (2.5.0)
unicode-display_width (2.6.0)
verbal_expressions (0.1.5)
webrick (1.8.1)
webrick (1.8.2)

PLATFORMS
ruby
Expand Down
26 changes: 11 additions & 15 deletions _config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -242,26 +242,22 @@ algolia:
nodes_to_index: "p,h1,h2,h3,h4,h5,h6,tr,pre,details"
max_record_size: 20000
settings:
searchableAttributes:
- article_title
- nav_title
- unordered(headings)
- unordered(content)
- unordered(description)
attributesForFaceting:
- searchable(article_title)
- searchable(collection)
- searchable(type)
- searchable(category)
- searchable(channel)
- searchable(collection)
- searchable(headings)
- searchable(nav_title)
- searchable(platform)
- searchable(type)
- searchable(url)
- searchable(nav_title)
- searchable(channel)
searchableAttributes:
- article_title
- description
- search_rank
- nav_title
- url
- Path_01
- collection,tags
- unordered(content)
- unordered(platform)
- channel
customRanking:
- desc(article_title)
- desc(custom_ranking.heading)
Expand Down
16 changes: 10 additions & 6 deletions _docs/_api/api_limits.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ page_type: reference

# Rate limits

> The Braze API infrastructure is designed to handle high volumes of data across our customer base. To this end, we enforce API rate limits per workspace.
> The Braze API infrastructure is designed to handle high volumes of data across our customer base. To this end, we enforce API rate limits per workspace.
A rate limit is the number of requests the API can receive in a given time period. Many load-based denial-of-service incidents in large systems are unintentional—caused by errors in software or configurations—not malicious attacks. Rate limits check that such errors don't deprive our customers of Braze API resources. If too many requests are sent in a given time frame, you may see error responses with a status code of `429`, which indicates the rate limit has been hit.

Expand All @@ -27,8 +27,8 @@ Requests not listed in this table share a total default rate limit of 250,000 re

| Request Type | Default API Rate Limit |
| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| [`/users/track`][10] | **Requests:** 50,000 requests per minute.<br><br>**Batching:** 75 events, 75 purchases, and 75 attributes per API request. See [Batching User Track requests](#batch-user-track) for more.<br><br>**Limits for Monthly Active Users CY 24-25:** see [Monthly Active Users CY 24-25 limits]({{site.baseurl}}/api/endpoints/user_data/post_user_track/#monthly-active-users-cy-24-25) |
| [`/users/export/ids`][11] | 250 requests per minute. |
| [`/users/track`][10] | **Requests:** 3,000 requests per three seconds.<br><br>**Batching:** 75 events, 75 purchases, and 75 attributes per API request. See [Batching User Track requests](#batch-user-track) for more.<br><br>**Limits for Monthly Active Users CY 24-25:** see [Monthly Active Users CY 24-25 limits]({{site.baseurl}}/api/endpoints/user_data/post_user_track/#monthly-active-users-cy-24-25) |
| [`/users/export/ids`][11] | **If you onboarded on or after August 22, 2024:** 250 requests per minute. <br><br> **If you onboarded before August 22, 2024:** 2,500 requests per minute. |
| [`/users/delete`][12]<br>[`/users/alias/new`][13]<br>[`/users/alias/update`][45]<br>[`/users/identify`][14]<br>[`/users/merge`][44] | 20,000 requests per minute, shared between the endpoints. |
| [`/users/external_id/rename`][20] | 1,000 requests per minute. |
| [`/users/external_id/remove`][21] | 1,000 requests per minute. |
Expand All @@ -44,7 +44,7 @@ Requests not listed in this table share a total default rate limit of 250,000 re
| [`/catalogs/{catalog_name}/items`][34]<br>[`/catalogs/{catalog_name}/items`][35]<br>[`/catalogs/{catalog_name}/items`][36] | 16,000 requests per minute shared between the endpoints. |
| [`/catalogs/{catalog_name}/items/{item_id}`][37]<br>[`/catalogs/{catalog_name}/items/{item_id}`][38]<br>[`/catalogs/{catalog_name}/items`][39]<br>[`/catalogs/{catalog_name}/items/{item_id}`][40]<br>[`/catalogs/{catalog_name}/items/{item_id}`][41] | 50 requests per minute shared between the endpoints. |
| [`/scim/v2/Users/{id}`][22]<br>[`/scim/v2/Users?filter={[email protected]}`][43]<br>[`/scim/v2/Users/{id}`][25]<br>[`/scim/v2/Users/{id}}`][24]<br>[`/scim/v2/Users/`][23] | 5,000 requests per day, per company, shared between the endpoints. |
{: .reset-td-br-1 .reset-td-br-2}
{: .reset-td-br-1 .reset-td-br-2 role="presentation" }

<!-- Add during CDI endpoints GA
| [`/cdi/integrations`][46] | 50 requests per minute. |
Expand All @@ -64,7 +64,7 @@ REST API rate limit increases are considered based on need for customers who are

Each `/users/track` request can contain up to 75 event objects, 75 attribute objects, and 75 purchase objects. Each object (event, attribute, and purchase arrays) can update one user each. In total, this means a maximum of 225 users can be updated in a single call. In addition, a single user profile can be updated by multiple objects.

Requests made to this endpoint will generally begin processing in this order:
Requests made to this endpoint will generally begin processing in this order:

1. Attributes
2. Events
Expand Down Expand Up @@ -111,10 +111,14 @@ Every single API request sent to Braze returns the following information in the
| `X-RateLimit-Limit` | The maximum number of requests that you can make in a specified interval (your rate limit). |
| `X-RateLimit-Remaining` | The number of requests remaining in the current rate limit window. |
| `X-RateLimit-Reset` | The time at which the current rate limit window resets in UTC epoch seconds. |
{: .reset-td-br-1 .reset-td-br-2}
{: .reset-td-br-1 .reset-td-br-2 role="presentation" }

This information is intentionally included in the header of the response to the API request rather than the Braze dashboard. This allows your system to better react in real time as you're interacting with our API. For example, if the `X-RateLimit-Remaining` value drops below a certain threshold, you might want to slow sending to make sure all transactional emails go out. Or, if it reaches zero, you might want to pause all sending until the time specified in `X-RateLimit-Reset` elapses.

{% alert note %}
HTTP headers will be returned in all lowercase characters. This behavior aligns with the HTTP/2 protocol that mandates all header field names must be lowercase. This differs from HTTP/1.X where header names were case-insensitive but were commonly written in various capitalizations.
{% endalert %}

If you have questions about API limits, contact your customer success manager or open a [support ticket][support].

### Optimal delay between endpoints
Expand Down
Loading

0 comments on commit 6baee95

Please sign in to comment.