- Check an email address POST
- Check an IP address POST
- Check a rate limit POST
- Classify content POST
- Assess an event POST
- Report an assessment's outcome POST
- Create a rate limit bucket POST
- Add an allow or block list entry POST
- Create a rule POST
- Delete a rate limit bucket DELETE
- Remove a list entry DELETE
- Delete a rule DELETE
- Forget a user DELETE
- Retrieve an assessment GET
- Retrieve the calibration GET
- Retrieve a rate limit bucket GET
- Retrieve a list entry GET
- Retrieve a rule GET
- Retrieve the risk settings GET
- List assessments GET
- List rate limit buckets GET
- List allow and block list entries GET
- List rules GET
- Update a rate limit bucket PATCH
- Update a rule PATCH
- Update the risk settings PATCH
Create a rate limit bucket
At most 100 buckets per environment; names are unique in it.
bearerAuthAuthorizationBearer <token>A secret API key from the dashboard: coss_live_… for production environments, coss_test_… for sandbox environments.
Coss-Version?"2026-10-10"The API version (a date) to use for this request. Defaults to your organization's version, pinned to the latest one when it first used the API and upgraded from the dashboard. The SDK always sends the version it was built for.
"2026-10-10"application/json- body
- body
- …
name*stringUnique in the environment; can't be changed.
^[a-z0-9][a-z0-9._-]{0,63}$limit*integerTokens added per period_seconds.
1 <= value <= 1000000period_seconds*integer1 second to 1 day.
1 <= value <= 86400burst?integerHow many requests a key can make at once. Defaults to limit.
1 <= value <= 1000000on_failure?stringThe answer while COSS can't count. Defaults to allow.
"allow""deny"The new bucket.
application/json- response
- response
- …
object*"risk_limit_bucket""risk_limit_bucket"id*stringname*stringWhat POST /v1/risk/limits names it by.
limit*integerTokens added per period_seconds.
period_seconds*integerburst*integerThe bucket's size: how many requests a key can make at once.
on_failure*stringThe answer while COSS can't count (its store is unavailable): allow (fail open) or deny.
"allow""deny"created_at*stringdate-timeupdated_at*stringdate-timeimport { Coss } from "coss";const coss = new Coss({ apiKey: process.env.COSS_API_KEY, baseUrl: "https://api.coss.com",});const { data, error } = await coss.risk.limitBuckets.create({ name: "password_reset", limit: 5, period_seconds: 3600,});{ "object": "risk_limit_bucket", "id": "rsklb_01k7c8m4q2f3e9v6t5r1n0p8yz", "name": "password_reset", "limit": 5, "period_seconds": 3600, "burst": 5, "on_failure": "allow", "created_at": "2026-01-15T09:30:00.000Z", "updated_at": "2026-01-15T09:30:00.000Z"}