aria-partner-api

Scan credits

On-demand products assigned to the member. Subscriptions do not appear here. The unassigned org pool is GET /api/v1/credits/. Buy into that pool with POST /api/v1/credits/. Assigning credits draws from available and does not charge.

List credits

GET /api/v1/members/{member_id}/credits/

GET /api/v1/members/70001/credits/
{
  "member_id": 70001,
  "results": [
    {
      "product_id": 201,
      "product_name": "Core Scan",
      "description": "On-demand scan of the Core catalog.",
      "charge_type": "on_demand",
      "billing_frequency": "one_time",
      "price_per_seat": 299,
      "credits_remaining": 1
    },
    {
      "product_id": 301,
      "product_name": "Trial Scan",
      "description": "On-demand scan of the trial catalog.",
      "charge_type": "on_demand",
      "billing_frequency": "one_time",
      "price_per_seat": 499,
      "credits_remaining": 0
    }
  ]
}

One product

GET /api/v1/members/{member_id}/credits/{product_id}/

GET /api/v1/members/70001/credits/301/
{
  "member_id": 70001,
  "product_id": 301,
  "product_name": "Trial Scan",
  "description": "On-demand scan of the trial catalog.",
  "charge_type": "on_demand",
  "billing_frequency": "one_time",
  "price_per_seat": 499,
  "credits_remaining": 0,
  "spent": [
    {
      "consumed_at": "2026-09-02T15:00:00.000000+00:00"
    }
  ]
}

spent is newest first. One entry is one credit used.

Add credits

POST /api/v1/members/{member_id}/credits/{product_id}/add/

Assigns credits to an on-demand product already on the member. The credits are drawn from the org pool. This call does not charge. When available for that product is 0, the call returns 402.

POST /api/v1/members/70001/credits/201/add/
{
  "quantity": 1,
  "idempotency_key": "credits-70001-201-a1"
}
Field Required Description
quantity No Credits to assign from the org pool. Default 1
idempotency_key No Up to 64 characters. Repeating a request with the same key returns the original assignment and does not draw from the pool again

Success (200 OK)

{
  "member_id": 70001,
  "product_id": 201,
  "credits_remaining": 2
}

Errors

Status Condition
400 product_id is not an on-demand product on the member; quantity is not a positive integer; idempotency_key reused with a different body (error: idempotency_conflict)
401 Missing or invalid API key
402 Org pool available for that product is less than quantity, including when it is 0 (error: insufficient_credits; includes product_id and available). Buy with POST /api/v1/credits/ and retry
403 Partner inactive
404 Member or product not found