Skip to main content
POST
Python

Authorizations

Authorization
string
header
required

nia_sk_...

Body

application/json

What an agent is about to do. Without a subject there is no budget, suppression or owner to consult: such a check only asks about the effect key.

agent
string
required
Required string length: 1 - 256
direction
enum<string>
required
Available options:
inbound,
outbound
intent
string
required
Pattern: ^[a-z][a-z0-9_]{0,39}$
purpose
string
required
Pattern: ^[a-z][a-z0-9_]{0,39}$
channel
string | null
Pattern: ^[a-z][a-z0-9_]{0,39}$
destination_hash
string | null

The token's rcpt, computed by a caller that holds the gateway's key, when the destination is not the subject's handle.

Pattern: ^[A-Za-z0-9_-]{43}$
effect_key
string | null

The business fact's key; reserved atomically when nothing holds it.

Required string length: 1 - 512
effect_kind
enum<string>
default:delivery
Available options:
delivery,
document,
notice,
filing,
paid_call,
external_action
gateway_id
string | null
Pattern: ^[a-z][a-z0-9_]{0,39}$
object
ObjectRef · object | null

A business object in a system of record, e.g. invoice / erp / 0823.

subject
Handle · object | null

An identifier of a subject in some channel or system: a phone, an e-mail, a CRM id.

task
string | null
Pattern: ^[a-z][a-z0-9_]{0,39}$

Response

The decision, valid for valid_for_s seconds; a caller that acts later asks again.

The coordination decision. reasons are codes (the coordination spec, 4); holder is who to hand off to with handoff_to. contact_token comes only with an allowed outbound contact of a purpose that needs one.

decision
enum<string>
required
Available options:
allow,
defer,
deny,
handoff_to
decision_id
string<uuid>
required
valid_for_s
integer
required
Required range: x >= 0
channel
ChannelState · object | null
commitments_active
CommitmentRef · object[]
contact_budget
Contact Budget · object
contact_token
string | null
Maximum string length: 1024
Pattern: ^nct1\.[A-Za-z0-9_-]+\.[A-Za-z0-9_-]{86}$
effect
EffectStatus · object | null

none means nothing held the key and this check reserved it: the caller acts and then declares.

holder
string | null
Required string length: 1 - 256
locks
Lock · object[]
owner
Owner · object | null

Who holds the subject or the object now: the most restrictive valid claim, where it came from and until when. epoch fences a release.

promises_open
PromiseRef · object[]
reasons
string[]
Required string length: 1 - 256
suppressions
string[]
Pattern: ^[a-z][a-z0-9_]{0,39}$