Instructions belong to the Data Protector.
agentType must be "DataProtection"; other agents do not
take instructions, and sending one is rejected with 400.Endpoints
All five sit under your organisation. Everything below assumes theX-API-Key header from
Authentication, and {organisationId} is the id you got from GET /organisations.
The Body of an Instruction
These are the same parts described in Instructions, in their wire form.Triggers
Thetrigger object is tagged by its type field.
- Semantic
- Regex
- String match
Matches by meaning. Best when the wording will vary.
Worked Example: Keeping Confidential Codenames in Step
A common pattern is a rule whose whole lifetime is decided elsewhere. Unannounced work is a good example: while a project is confidential its codename should not reach an AI service, and on the day it launches that rule is just noise that will sit in your dashboard forever. Your roadmap tool already knows both dates. Have it call Velatir.When the project becomes confidential
201 Created with the instruction, including the id you will need later:
id against the project in your own system. That is the handle you delete with.
When the project launches
204 No Content, and the instruction is removed from every agent it was
assigned to. The rule stops applying to new activity from that point. Traces it already acted on are
unaffected — deleting an instruction does not rewrite history.
If the rule changes rather than ends
PATCH takes any subset of the fields. To soften a block to an escalation without touching anything
else:
"categoryId": null explicitly clears the category.
Listing and Finding Instructions
GET /organisations/{organisationId}/instructions returns a page of instructions:
search, triggerType, action, agentId, and agentType. Page with
page and pageSize — pageSize defaults to 20 and is capped at 100.
Limits
An agent holds at most 100 instructions. Creating one with ausedBy that would take an agent past
that returns 409 Conflict, naming the agent that is full.
This is worth designing for if you create an instruction per record. A pattern that adds rules but never
removes them will reach the ceiling; the codename example above stays well clear of it because each rule
is deleted when the project launches.
Making It Safe to Re-Run
A few habits make an integration like this survive contact with real systems:- Store the instruction id alongside the record that caused it. Searching by title to find it again breaks the first time someone edits the title in the dashboard.
- Treat
404on delete as success. It means the instruction is already gone, which is the state you wanted. - Handle
409as a real condition, not a retry. Nothing that returns it becomes true by trying again — the agent is full, or the assessment already produced an instruction. - Name the key for the system that holds it. Every change it makes is attributed to that name in the audit trail.
Instructions
What instructions are and how they behave.
Data Protector
The agent that applies them.