Skip to content

Report an actual outcome

POST
/v1/feedback
curl --request POST \
--url https://api-staging.asqary.com/v1/feedback \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{ "decision_id": "example", "transaction_id": "example", "label": "fraud", "fraud_type": "account_takeover", "outcome_at": "2026-04-15T12:00:00Z", "notes": "example" }'

By decision_id or your transaction_id. Requires feedback:write.

Idempotency-Key
string
/^[A-Za-z0-9._:\-]{1,128}$/

Makes retries safe. Reusing a key for a different request returns 409 idempotency_key_reused.

X-Request-Id
string
/^[A-Za-z0-9._:\-]{1,128}$/

Your own request ID (1–128 of letters, digits and . _ : -), echoed back and stored.

Media typeapplication/json

Provide decision_id or transaction_id (or both, which must match).

object
decision_id
string
/^dec_[0-9a-f]{32}$/
transaction_id
string
/^[A-Za-z0-9._:\-]{1,128}$/
label
required
string
Allowed values: fraud legitimate suspected
fraud_type
string
/^[a-z0-9_]{1,40}$/

Example

account_takeover
outcome_at
string format: date-time
notes
string
<= 2000 characters

Replayed (same Idempotency-Key)

Media typeapplication/json
object
feedback_id
required
string
/^fbk_[0-9a-f]{32}$/
decision_id
required
One of:
string
/^dec_[0-9a-f]{32}$/
transaction_id
required
string | null
label
required
string
Allowed values: fraud legitimate suspected
fraud_type
string | null
outcome_at
string | null format: date-time
notes
string | null
source
required
string
Allowed values: api dashboard
created_at
required
string format: date-time

Example

{
"label": "fraud",
"source": "api"
}
Idempotent-Replayed
string
Allowed values: true

Present (true) when an earlier result was returned.

Recorded

Media typeapplication/json
object
feedback_id
required
string
/^fbk_[0-9a-f]{32}$/
decision_id
required
One of:
string
/^dec_[0-9a-f]{32}$/
transaction_id
required
string | null
label
required
string
Allowed values: fraud legitimate suspected
fraud_type
string | null
outcome_at
string | null format: date-time
notes
string | null
source
required
string
Allowed values: api dashboard
created_at
required
string format: date-time

Example

{
"label": "fraud",
"source": "api"
}

Malformed request (invalid_request), including unknown fields.

Media typeapplication/json
object
error_code
required

Invalid_request, unauthorized, key_expired, key_revoked, forbidden, ip_not_allowed, quota_exceeded, not_found, method_not_allowed, conflict, policy_in_use, policy_active, policy_archived, idempotency_key_reused, validation_failed, rule_not_available, backtest_invalid_rows, backtest_too_large, rate_limited, internal_error

string
message
required
string
retryable
required
boolean
request_id
string
details
One of:
Array<object>
object
field
required
string
message
required
string
code
string

Example generated

{
"error_code": "example",
"message": "example",
"retryable": true,
"request_id": "example",
"details": {}
}

Resource or endpoint not found.

Media typeapplication/json
object
error_code
required

Invalid_request, unauthorized, key_expired, key_revoked, forbidden, ip_not_allowed, quota_exceeded, not_found, method_not_allowed, conflict, policy_in_use, policy_active, policy_archived, idempotency_key_reused, validation_failed, rule_not_available, backtest_invalid_rows, backtest_too_large, rate_limited, internal_error

string
message
required
string
retryable
required
boolean
request_id
string
details
One of:
Array<object>
object
field
required
string
message
required
string
code
string

Example generated

{
"error_code": "example",
"message": "example",
"retryable": true,
"request_id": "example",
"details": {}
}

validation_failed (details: field errors), rule_not_available, or backtest_invalid_rows.

Media typeapplication/json
object
error_code
required

Invalid_request, unauthorized, key_expired, key_revoked, forbidden, ip_not_allowed, quota_exceeded, not_found, method_not_allowed, conflict, policy_in_use, policy_active, policy_archived, idempotency_key_reused, validation_failed, rule_not_available, backtest_invalid_rows, backtest_too_large, rate_limited, internal_error

string
message
required
string
retryable
required
boolean
request_id
string
details
One of:
Array<object>
object
field
required
string
message
required
string
code
string

Example generated

{
"error_code": "example",
"message": "example",
"retryable": true,
"request_id": "example",
"details": {}
}