before_id is the first_id from a previous response changedmanage-claude/compliance-integration-patterns
Nearest release: v2.1.307, published an hour after this site recorded the change. Shown because the two are within 24 hours of each other. Nothing here says the release caused the edit.
Recorded here
Lines+6added
Lines−6removed
From line
29
where the diff opens
First seen
14 Aug 2026
this site's first read of the page
Recorded edits11to this page, all time
The whole hunk
from line 29, old and new numbered
/
from line 29
2929* Activities are queryable within 1 minute of occurring and retained for 6 years. Recording is not retroactive: it begins when the Compliance API is first enabled for your organization, and activity from before enablement is not backfilled.
3030* The maximum `limit` for each page is 5,000.
3131* Cursor values are opaque strings that you must not parse.
32* Requests are limited to 600 per minute per [parent organization](https://platform.claude.com/docs/en/manage-claude/compliance-api#how-the-compliance-api-works), shared across every key, every linked organization, and every `/v1/compliance/*` endpoint; unlike the local session endpoints, the remote session endpoints carry a second request budget on top. See [429 Too Many Requests](https://platform.claude.com/docs/en/manage-claude/compliance-errors#429-too-many-requests) for the response headers and retry contract.
32* Requests are limited to 600 per minute for each [parent organization](https://platform.claude.com/docs/en/manage-claude/compliance-api#how-the-compliance-api-works), shared across every key, every linked organization, and every `/v1/compliance/*` endpoint; unlike the local session endpoints, the remote session endpoints carry a second request budget on top. See [429 Too Many Requests](https://platform.claude.com/docs/en/manage-claude/compliance-errors#429-too-many-requests) for the response headers and retry contract.
3333
3434| Pattern | Choose when |
3535| ------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
from line 43
4343```bash cURL
4444curl --fail-with-body -sS -G \
4545 "https://api.anthropic.com/v1/compliance/activities" \
46 --header "x-api-key: $ANTHROPIC_COMPLIANCE_ACCESS_KEY" \
47 --header "anthropic-version: 2023-06-01" \
46 -H "x-api-key: $ANTHROPIC_COMPLIANCE_ACCESS_KEY" \
47 -H "anthropic-version: 2023-06-01" \
4848 --data-urlencode "created_at.gte=2026-04-20T07:00:00Z" \
4949 --data-urlencode "created_at.lt=2026-04-20T08:00:00Z" \
5050 --data-urlencode "limit=5000"
from line 64
6464# before_id is the first_id from a previous response
6565curl --fail-with-body -sS -G \
6666 "https://api.anthropic.com/v1/compliance/activities" \
67 --header "x-api-key: $ANTHROPIC_COMPLIANCE_ACCESS_KEY" \
68 --header "anthropic-version: 2023-06-01" \
67 -H "x-api-key: $ANTHROPIC_COMPLIANCE_ACCESS_KEY" \
68 -H "anthropic-version: 2023-06-01" \
6969 --data-urlencode "limit=5000" \
7070 --data-urlencode "before_id=activity_01XyDMpzjS89pFZXqSFUBDr6"
7171```
7272
73Page through until `has_more` is `false`, then persist `first_id` from the final response and pass it unchanged as `before_id` on the next run to retrieve activities newer than the saved cursor. To walk in the opposite direction for a backfill, persist `last_id` and pass it as `after_id` instead. For the full cursor-vs-page-token reference and retry semantics, see [Paginate results](https://platform.claude.com/docs/en/manage-claude/compliance-activity-feed#paginate-results).
73Page through until `has_more` is `false`, then persist `first_id` from the final response and pass it unchanged as `before_id` on the next run to retrieve activities newer than the saved cursor. To walk in the opposite direction for a backfill, persist `last_id` and pass it as `after_id` instead. For the full cursor-versus-page-token reference and retry semantics, see [Paginate results](https://platform.claude.com/docs/en/manage-claude/compliance-activity-feed#paginate-results).
7474
7575A production **catch-up** loop fetches activities recorded since your last poll by driving iteration off `has_more` and `first_id`:
7676
No line in this hunk matches that.