Agent
Accept or decline one exact stored agent proposal
POST/agent/confirm/{confirmId}
Human interactive cookie session required for accept; MCP bearer tokens cannot approve their own plans. Body is decision only. Bind org, user, client, operation, exact payload hash, resource versions and expiry; revalidate role/funds before at-most-once domain execution. Repeated same decisions replay original result even under a new outer key. Opposite decision returns 409. Unknown outcome reconciles the original domain intent.
Authentication
sessionCookie
__Host-krin_session
HttpOnly Secure SameSite=Lax console session. Writes require CSRF token and Origin validation.
Required roles
advertiser:owneradvertiser:manageradvertiser:analystpublisher:ownerpublisher:integration_managerpublisher:analystinternal:organization_ownerinternal:support_operatorinternal:finance_operatorinternal:risk_operator
Human approval required
Getting startedParameters
confirmId
path · Required · string
confirmId scoped to the authenticated identity and organization.
Inspect JSON schema
{
"type": "string",
"pattern": "^[a-z][a-z0-9]*_[A-Za-z0-9_-]+$",
"maxLength": 128
}Idempotency-Key
header · Required · string
UUID per user intent. Retain body/key through retries and unknown outcomes for at least 7 days.
Inspect JSON schema
{
"type": "string",
"format": "uuid"
}X-CSRF-Token
header · Optional · string
Required for cookie-authenticated writes; bearer callers omit. Validated with Origin on server.
Inspect JSON schema
{
"type": "string",
"minLength": 1,
"maxLength": 256
}Request body
application/json · Required
decisionRequiredstring"accept" · "decline"
Inspect JSON schema
{
"type": "object",
"additionalProperties": false,
"required": [
"decision"
],
"properties": {
"decision": {
"type": "string",
"enum": [
"accept",
"decline"
]
}
}
}Responses
200Accept or decline one exact stored agent proposal
X-Request-Id · Opaque trace reference; never contains user data.
application/json
confirmationRequiredAgentConfirmationintentRequiredWriteIntent | null
Inspect JSON schema
{
"type": "object",
"additionalProperties": false,
"required": [
"confirmation",
"intent"
],
"properties": {
"confirmation": {
"$ref": "#/components/schemas/AgentConfirmation"
},
"intent": {
"anyOf": [
{
"$ref": "#/components/schemas/WriteIntent"
},
{
"type": "null"
}
]
}
}
}400Invalid request
X-Request-Id · Opaque trace reference; never contains user data.
application/problem+json
typeRequiredstringformat:
urititleRequiredstringminLength:
1maxLength:
200statusRequiredintegerminimum:
400maximum:
599codeRequiredstringminLength:
1maxLength:
80pattern:
^[a-z][a-z0-9_]+$detailOptionalstringminLength:
1maxLength:
2000instanceOptionalstringminLength:
1maxLength:
512errorsOptionalobject
Inspect JSON schema
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"status",
"code"
],
"properties": {
"type": {
"type": "string",
"format": "uri"
},
"title": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"status": {
"type": "integer",
"minimum": 400,
"maximum": 599
},
"code": {
"type": "string",
"minLength": 1,
"maxLength": 80,
"pattern": "^[a-z][a-z0-9_]+$"
},
"detail": {
"type": "string",
"minLength": 1,
"maxLength": 2000
},
"instance": {
"type": "string",
"minLength": 1,
"maxLength": 512
},
"errors": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 300
},
"minItems": 1,
"maxItems": 10
}
}
}
}401Authentication required
X-Request-Id · Opaque trace reference; never contains user data.
application/problem+json
typeRequiredstringformat:
urititleRequiredstringminLength:
1maxLength:
200statusRequiredintegerminimum:
400maximum:
599codeRequiredstringminLength:
1maxLength:
80pattern:
^[a-z][a-z0-9_]+$detailOptionalstringminLength:
1maxLength:
2000instanceOptionalstringminLength:
1maxLength:
512errorsOptionalobject
Inspect JSON schema
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"status",
"code"
],
"properties": {
"type": {
"type": "string",
"format": "uri"
},
"title": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"status": {
"type": "integer",
"minimum": 400,
"maximum": 599
},
"code": {
"type": "string",
"minLength": 1,
"maxLength": 80,
"pattern": "^[a-z][a-z0-9_]+$"
},
"detail": {
"type": "string",
"minLength": 1,
"maxLength": 2000
},
"instance": {
"type": "string",
"minLength": 1,
"maxLength": 512
},
"errors": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 300
},
"minItems": 1,
"maxItems": 10
}
}
}
}403Insufficient permission
X-Request-Id · Opaque trace reference; never contains user data.
application/problem+json
typeRequiredstringformat:
urititleRequiredstringminLength:
1maxLength:
200statusRequiredintegerminimum:
400maximum:
599codeRequiredstringminLength:
1maxLength:
80pattern:
^[a-z][a-z0-9_]+$detailOptionalstringminLength:
1maxLength:
2000instanceOptionalstringminLength:
1maxLength:
512errorsOptionalobject
Inspect JSON schema
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"status",
"code"
],
"properties": {
"type": {
"type": "string",
"format": "uri"
},
"title": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"status": {
"type": "integer",
"minimum": 400,
"maximum": 599
},
"code": {
"type": "string",
"minLength": 1,
"maxLength": 80,
"pattern": "^[a-z][a-z0-9_]+$"
},
"detail": {
"type": "string",
"minLength": 1,
"maxLength": 2000
},
"instance": {
"type": "string",
"minLength": 1,
"maxLength": 512
},
"errors": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 300
},
"minItems": 1,
"maxItems": 10
}
}
}
}404Resource not found
X-Request-Id · Opaque trace reference; never contains user data.
application/problem+json
typeRequiredstringformat:
urititleRequiredstringminLength:
1maxLength:
200statusRequiredintegerminimum:
400maximum:
599codeRequiredstringminLength:
1maxLength:
80pattern:
^[a-z][a-z0-9_]+$detailOptionalstringminLength:
1maxLength:
2000instanceOptionalstringminLength:
1maxLength:
512errorsOptionalobject
Inspect JSON schema
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"status",
"code"
],
"properties": {
"type": {
"type": "string",
"format": "uri"
},
"title": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"status": {
"type": "integer",
"minimum": 400,
"maximum": 599
},
"code": {
"type": "string",
"minLength": 1,
"maxLength": 80,
"pattern": "^[a-z][a-z0-9_]+$"
},
"detail": {
"type": "string",
"minLength": 1,
"maxLength": 2000
},
"instance": {
"type": "string",
"minLength": 1,
"maxLength": 512
},
"errors": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 300
},
"minItems": 1,
"maxItems": 10
}
}
}
}409State changed
X-Request-Id · Opaque trace reference; never contains user data.
application/problem+json
typeRequiredstringformat:
urititleRequiredstringminLength:
1maxLength:
200statusRequiredintegerminimum:
400maximum:
599codeRequiredstringminLength:
1maxLength:
80pattern:
^[a-z][a-z0-9_]+$detailOptionalstringminLength:
1maxLength:
2000instanceOptionalstringminLength:
1maxLength:
512errorsOptionalobject
Inspect JSON schema
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"status",
"code"
],
"properties": {
"type": {
"type": "string",
"format": "uri"
},
"title": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"status": {
"type": "integer",
"minimum": 400,
"maximum": 599
},
"code": {
"type": "string",
"minLength": 1,
"maxLength": 80,
"pattern": "^[a-z][a-z0-9_]+$"
},
"detail": {
"type": "string",
"minLength": 1,
"maxLength": 2000
},
"instance": {
"type": "string",
"minLength": 1,
"maxLength": 512
},
"errors": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 300
},
"minItems": 1,
"maxItems": 10
}
}
}
}413Payload too large
X-Request-Id · Opaque trace reference; never contains user data.
application/problem+json
typeRequiredstringformat:
urititleRequiredstringminLength:
1maxLength:
200statusRequiredintegerminimum:
400maximum:
599codeRequiredstringminLength:
1maxLength:
80pattern:
^[a-z][a-z0-9_]+$detailOptionalstringminLength:
1maxLength:
2000instanceOptionalstringminLength:
1maxLength:
512errorsOptionalobject
Inspect JSON schema
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"status",
"code"
],
"properties": {
"type": {
"type": "string",
"format": "uri"
},
"title": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"status": {
"type": "integer",
"minimum": 400,
"maximum": 599
},
"code": {
"type": "string",
"minLength": 1,
"maxLength": 80,
"pattern": "^[a-z][a-z0-9_]+$"
},
"detail": {
"type": "string",
"minLength": 1,
"maxLength": 2000
},
"instance": {
"type": "string",
"minLength": 1,
"maxLength": 512
},
"errors": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 300
},
"minItems": 1,
"maxItems": 10
}
}
}
}415Unsupported media type
X-Request-Id · Opaque trace reference; never contains user data.
application/problem+json
typeRequiredstringformat:
urititleRequiredstringminLength:
1maxLength:
200statusRequiredintegerminimum:
400maximum:
599codeRequiredstringminLength:
1maxLength:
80pattern:
^[a-z][a-z0-9_]+$detailOptionalstringminLength:
1maxLength:
2000instanceOptionalstringminLength:
1maxLength:
512errorsOptionalobject
Inspect JSON schema
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"status",
"code"
],
"properties": {
"type": {
"type": "string",
"format": "uri"
},
"title": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"status": {
"type": "integer",
"minimum": 400,
"maximum": 599
},
"code": {
"type": "string",
"minLength": 1,
"maxLength": 80,
"pattern": "^[a-z][a-z0-9_]+$"
},
"detail": {
"type": "string",
"minLength": 1,
"maxLength": 2000
},
"instance": {
"type": "string",
"minLength": 1,
"maxLength": 512
},
"errors": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 300
},
"minItems": 1,
"maxItems": 10
}
}
}
}422Validation failed
X-Request-Id · Opaque trace reference; never contains user data.
application/problem+json
typeRequiredstringformat:
urititleRequiredstringminLength:
1maxLength:
200statusRequiredintegerminimum:
400maximum:
599codeRequiredstringminLength:
1maxLength:
80pattern:
^[a-z][a-z0-9_]+$detailOptionalstringminLength:
1maxLength:
2000instanceOptionalstringminLength:
1maxLength:
512errorsOptionalobject
Inspect JSON schema
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"status",
"code"
],
"properties": {
"type": {
"type": "string",
"format": "uri"
},
"title": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"status": {
"type": "integer",
"minimum": 400,
"maximum": 599
},
"code": {
"type": "string",
"minLength": 1,
"maxLength": 80,
"pattern": "^[a-z][a-z0-9_]+$"
},
"detail": {
"type": "string",
"minLength": 1,
"maxLength": 2000
},
"instance": {
"type": "string",
"minLength": 1,
"maxLength": 512
},
"errors": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 300
},
"minItems": 1,
"maxItems": 10
}
}
}
}429Too many requests
X-Request-Id · Opaque trace reference; never contains user data.
Retry-After · Seconds before retry; do not repeat an unknown write automatically.
application/problem+json
typeRequiredstringformat:
urititleRequiredstringminLength:
1maxLength:
200statusRequiredintegerminimum:
400maximum:
599codeRequiredstringminLength:
1maxLength:
80pattern:
^[a-z][a-z0-9_]+$detailOptionalstringminLength:
1maxLength:
2000instanceOptionalstringminLength:
1maxLength:
512errorsOptionalobject
Inspect JSON schema
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"status",
"code"
],
"properties": {
"type": {
"type": "string",
"format": "uri"
},
"title": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"status": {
"type": "integer",
"minimum": 400,
"maximum": 599
},
"code": {
"type": "string",
"minLength": 1,
"maxLength": 80,
"pattern": "^[a-z][a-z0-9_]+$"
},
"detail": {
"type": "string",
"minLength": 1,
"maxLength": 2000
},
"instance": {
"type": "string",
"minLength": 1,
"maxLength": 512
},
"errors": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 300
},
"minItems": 1,
"maxItems": 10
}
}
}
}500Service failed
X-Request-Id · Opaque trace reference; never contains user data.
application/problem+json
typeRequiredstringformat:
urititleRequiredstringminLength:
1maxLength:
200statusRequiredintegerminimum:
400maximum:
599codeRequiredstringminLength:
1maxLength:
80pattern:
^[a-z][a-z0-9_]+$detailOptionalstringminLength:
1maxLength:
2000instanceOptionalstringminLength:
1maxLength:
512errorsOptionalobject
Inspect JSON schema
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"status",
"code"
],
"properties": {
"type": {
"type": "string",
"format": "uri"
},
"title": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"status": {
"type": "integer",
"minimum": 400,
"maximum": 599
},
"code": {
"type": "string",
"minLength": 1,
"maxLength": 80,
"pattern": "^[a-z][a-z0-9_]+$"
},
"detail": {
"type": "string",
"minLength": 1,
"maxLength": 2000
},
"instance": {
"type": "string",
"minLength": 1,
"maxLength": 512
},
"errors": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 300
},
"minItems": 1,
"maxItems": 10
}
}
}
}503Service unavailable
X-Request-Id · Opaque trace reference; never contains user data.
Retry-After · Seconds before retry; do not repeat an unknown write automatically.
application/problem+json
typeRequiredstringformat:
urititleRequiredstringminLength:
1maxLength:
200statusRequiredintegerminimum:
400maximum:
599codeRequiredstringminLength:
1maxLength:
80pattern:
^[a-z][a-z0-9_]+$detailOptionalstringminLength:
1maxLength:
2000instanceOptionalstringminLength:
1maxLength:
512errorsOptionalobject
Inspect JSON schema
{
"type": "object",
"additionalProperties": false,
"required": [
"type",
"title",
"status",
"code"
],
"properties": {
"type": {
"type": "string",
"format": "uri"
},
"title": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"status": {
"type": "integer",
"minimum": 400,
"maximum": 599
},
"code": {
"type": "string",
"minLength": 1,
"maxLength": 80,
"pattern": "^[a-z][a-z0-9_]+$"
},
"detail": {
"type": "string",
"minLength": 1,
"maxLength": 2000
},
"instance": {
"type": "string",
"minLength": 1,
"maxLength": 512
},
"errors": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 300
},
"minItems": 1,
"maxItems": 10
}
}
}
}