List keyword rules
Your keyword rules, in the order they are tried.
/v1/automations/rules
Your keyword rules, in the order they are tried. The first rule that matches a text wins.
Needs a key with the messages:read scope.
Query parameters
limitintegerHow many to return, 1 to 100. Default 25.
1 to 100.Default
25.cursorstringThe
next_cursorof the page before. Leave it out for the first page.Up to 200 characters.
Example
/v1/automations/rulescurl "https://usebluebot.com/api/v1/automations/rules" \
-H "Authorization: Bearer $BLUEBOT_API_KEY"Response
200: A page of rules.
object"list"requireddataarray of KeywordRulerequiredShow its 13 fieldsHide its fields
idstringrequiredA kw_ id.
Starts with
kw_.object"keyword_rule"requirednamestringrequiredmatchstringrequiredexact(the whole text),starts_with,word(a whole word anywhere),contains, orregex.One of
exact,starts_with,word,contains,regex.keywordsarray of stringsrequiredpatternstring or nullrequiredFor
regex.case_sensitivebooleanrequiredactionsarray of anyrequiredpositionintegerrequiredRules are tried from the lowest position up; the first match wins.
enabledbooleanrequiredfire_countintegerrequiredHow many texts it answered.
last_fired_attimestamp or nullrequiredWhen it last matched.
created_attimestamprequiredWhen it was made.
has_morebooleanrequiredWhether another page follows.
next_cursorstring or nullrequiredSend as
cursorfor the next page; null on the last.
{
"object": "list",
"data": [
{
"id": "kw_1Hq2LxW9cVbN3mKpRtYs0a",
"object": "keyword_rule",
"name": "Pricing",
"match": "word",
"keywords": [
"price",
"pricing",
"cost"
],
"pattern": null,
"case_sensitive": false,
"actions": [
{
"type": "reply",
"text": "Our plans start at $29 a month. Want me to send the details?",
"template_id": null
},
{
"type": "tag",
"tags": [
"asked-pricing"
]
}
],
"position": 10,
"enabled": true,
"fire_count": 18,
"last_fired_at": "2026-11-13T17:20:00.000Z",
"created_at": "2026-11-02T15:00:00.000Z"
}
],
"has_more": false,
"next_cursor": null
}Errors
Every refusal has the same envelope and a page of its own. These are the ones this operation can give.
| Code | Status | What it means |
|---|---|---|
| 401 | The request carried no key, or a key BlueBot doesn’t know: mistyped, revoked, or a test key sent to the live API. | |
| 403 | The key doesn’t carry the scope the endpoint needs. Each endpoint’s reference names its scope. | |
| 429 | Too many requests. A key may make 120 requests a minute. The RateLimit header says how many are left, and Retry-After how long to wait. | |
| 500 | Something went wrong on BlueBot’s side. It was reported. Send the request again; with an Idempotency-Key that is always safe. | |
| 400 | Something in the request doesn’t fit: a missing or malformed field, a bad id, or a combination the endpoint refuses. details names each field. |
Try it
Call this operation from the page with your own key. The key stays in this tab and is forgotten when you leave.