Skip to main content

Documentation Index

Fetch the complete documentation index at: https://ventra.mintlify.app/llms.txt

Use this file to discover all available pages before exploring further.

KGC-mandated player-set deposit caps. Daily, weekly, or monthly rolling windows. Limits are enforced, not advisory — deposits over the limit are rejected at /v1/limits/check.

Limit types

Limit typeAPI valueWindow
Dailylimit_dailyRolling 24 hours
Weeklylimit_weeklyRolling 7 days
Monthlylimit_monthlyRolling 30 days

Cooling-off tiers (increases only)

ScenarioCool-offcooloff_seconds
First-time setInstant0
Any decreaseInstant0
Increase ≤ 2×24 hours86400
Increase 2× – 5×48 hours172800
Increase > 5×7 days604800
Boundaries (exactly 2× and exactly 5×) land in the lower tier.

Endpoints

MethodPathDescription
POST/v1/limitsSet or change a limit.
GET/v1/limitsList active limits for a user, with spend and reset times.
POST/v1/limits/checkPre-deposit gate — call before every deposit.
POST/v1/limits/commitIdempotent commit on (tenant, transaction_id).
DELETE/v1/limits/{id}Cancel a pending increase.

POST /v1/limits

curl https://sandbox.api.anunnakielite.com/v1/limits \
  -H "Authorization: Bearer cur_sk_test_EXAMPLEKEY123456789012345678901234" \
  -H "Content-Type: application/json" \
  -d '{
    "user_id": "rt_usr_8a2f1c",
    "limit_type": "limit_daily",
    "amount_cents": 50000,
    "currency": "USD",
    "requested_at": "2026-05-24T14:32:00Z"
  }'
Increase response (cooling-off applied):
{
  "limit_id": "lim_7e3d99",
  "user_id": "rt_usr_8a2f1c",
  "limit_type": "limit_daily",
  "amount_cents": 50000,
  "currency": "USD",
  "current_limit_cents": 20000,
  "is_increase": true,
  "cooloff_seconds": 86400,
  "effective_from": "2026-05-25T14:32:00Z",
  "status": "pending"
}

POST /v1/limits/check

curl https://sandbox.api.anunnakielite.com/v1/limits/check \
  -H "Authorization: Bearer cur_sk_test_EXAMPLEKEY123456789012345678901234" \
  -H "Content-Type: application/json" \
  -d '{"user_id":"rt_usr_8a2f1c","amount_cents":15000,"currency":"USD"}'
Allowed:
{
  "allowed": true,
  "amount_cents": 15000,
  "would_remain_cents": 5000,
  "active_limits": ["limit_daily"]
}
Rejected:
{
  "allowed": false,
  "reason": "exceeds_limit",
  "breached_limit_type": "limit_daily",
  "limit_amount_cents": 20000,
  "already_spent_cents": 18000,
  "max_allowed_now_cents": 2000,
  "next_reset_at": "2026-05-25T00:00:00Z",
  "user_message": "This deposit would exceed your daily limit of USD 200.00."
}
On allowed:false, display user_message verbatim and reject the deposit. Partial deposits are not permitted.

Webhooks

EventFires when
limit.createdFirst-time limit set.
limit.activatedPending increase has finished its cooling-off period and is now live.
limit.decreasedA decrease (effective immediately).
limit.cancelledUser cancelled a pending increase.
limit.breach_attemptA deposit was rejected by /check (for monitoring).

Error codes

StatusCode
400invalid_amount, unsupported_type
401unauthorized
404user_not_found
409pending_change_exists
422below_minimum
429rate_limited