Skip to main content
POST

Authorizations

Authorization
string
header
required

A key generated from Settings → Developers, sent as Authorization: Bearer dr_live_<12 hex chars>_<64 hex chars>. Keys carry explicit scopes — each endpoint states the one it requires. The full key is shown exactly once at generation time and cannot be retrieved again; only the keyId prefix is shown afterward. A revoked key fails auth on its very next request.

Headers

Idempotency-Key
string
required

A unique client-generated string (≤ 255 characters) identifying this create attempt. See "Idempotency" above.

Maximum string length: 255

Body

application/json
commentReply
object
required

Public reply DocuRise posts under the matching comment; one variant is picked at random per comment. Required — send { "enabled": false } to reply to nobody publicly.

dm
object
required

The main DM the commenter receives.

status
enum<string>
default:active

active (the default) arms the rule, so it waits for the next post. paused saves it paused: nothing is sent until you resume it with PATCH and { "status": "active" }. Cannot be combined with schedule.batchSendAt (422 BATCH_RULE_NOT_PAUSABLE).

Available options:
active,
paused
target
object

What the rule applies to. Optional; only the account's next new post is supported today, so leaving it out is the same as { "type": "next_post" }.

type
enum<string>
default:standard

Rule type. Optional. Only standard (keyword comment → DM) can be created through the API today.

Available options:
standard
keywords
string[]

A comment triggers the rule when it contains any keyword — matched as a case-insensitive substring, so guide also matches "Guide please!". Empty means every comment triggers it; if a post has both a keyword rule and an all-comments rule, the keyword rule wins when it matches.

Maximum array length: 20
Required string length: 1 - 50
greeting
object

The first DM, a message with one tap-to-continue button. The commenter's tap opens Instagram's messaging window and releases the main DM. When enabled is false the main DM is sent directly as a private reply instead. Blank message / buttonText use DocuRise's default wording.

schedule
object

Optional timing. Either an operating window (startAt / endAt) or a single batch send (batchSendAt), never both. Omit for "always on". For a next-post rule the window is applied when the rule activates on the new post; a window that has already ended by then is dropped and the rule simply goes live.

locale
enum<string>

Language of DocuRise's default wording (greeting and button text left blank). Defaults to the account's language.

Available options:
en,
ko

Response

Rule created. Its status is waiting_for_post (it waits for the next post), or paused if you asked for that.

id
string<uuid>
required

The new rule's id.

url
string<uri>
required

Link to the rule in the dashboard editor.

status
enum<string>
required

waiting_for_post for an armed rule (the default), paused when you created it with status: paused.

Available options:
waiting_for_post,
paused
type
string
required

The rule type: standard for a rule created through the API.

target
object
required

What the rule applies to.