Skip to content
VestiarionDocs

API reference

List counterparties

GET/api/v1/counterparties

Vendors, clients and contractors, newest first, with the row id breaking equal timestamps. Both the business's baseline payment limit and the current limit derived from the risk tier are reported. performanceScore is null when there is no history.

Send a workspace API key as Authorization: Bearer ….

Parameters

  • limitintegeroptional

    How many items to return. Defaults to 50; a larger value is capped at 200.

    Default:50

    Allowed:1 to 200

  • cursorstringoptional

    The previous response's page.nextCursor, passed back unchanged to continue. Opaque: never decode or construct one. A cursor this endpoint could not have issued is refused with 400.

  • rolestringoptional

    Only counterparties with this role.

    Allowed:vendorclientcontractor

  • riskLevelstringoptional

    Only counterparties at this risk tier.

    Allowed:unscreenedclearmediumhigh

Try it

The key is kept in memory only, for this page.

Code samples

cURL
curl "https://www.vestiarion.xyz/api/v1/counterparties" \
  -H "Authorization: Bearer $VESTIARION_API_KEY"

Response

Example
200 · application/json
{
  "data": [
    {
      "id": "dc5e5751-3287-46c9-8bd1-83a42ab02699",
      "name": "Anthropic API Services",
      "role": "vendor",
      "address": "0x90a5821e8a59b711777c49d11a283c9c76cd811e",
      "chain": "ARC-TESTNET",
      "jurisdiction": null,
      "riskLevel": "clear",
      "riskNotes": "No match against watchlist",
      "baselinePaymentLimit": 5,
      "paymentLimit": 5,
      "lastScreenedAt": "2026-09-24T18:32:57.327+00:00",
      "performanceScore": 0.667,
      "performanceInputs": {
        "heldOrFlagged": 0,
        "heldByOurPolicy": 1,
        "riskTierChanges": 0,
        "duplicateSubmissions": 0,
        "informationRequested": 0,
        "paidWithoutIntervention": 1
      },
      "createdAt": "2026-09-24T11:54:57.677284+00:00"
    }
  ],
  "page": {
    "nextCursor": "eyJrIjoiMjAyNi0wOS0yNFQxMTo1NDo1Ny42NzcyODQrMDA6MDAiLCJpZCI6ImRjNWU1NzUxLTMyODctNDZjOS04YmQxLTgzYTQyYWIwMjY5OSJ9",
    "hasMore": true,
    "count": 1
  }
}
Fields
  • dataarray of object
    14 fields in data
    • idstring
    • namestring
    • rolestring

      One ofvendorclientcontractor

    • addressstring · nullable
    • chainstring · nullable
    • jurisdictionstring · nullable
    • riskLevelstring

      One ofunscreenedclearmediumhigh

    • riskNotesstring · nullable
    • baselinePaymentLimitnumber · nullable

      The business's baseline payment limit for this counterparty.

    • paymentLimitnumber · nullable

      The current payment limit, derived from the risk tier.

    • lastScreenedAtstring · nullable
    • performanceScorenumber · nullable

      No history is different from a zero score and remains null.

    • performanceInputsobject · nullable
    • createdAtstring
  • pageobject

    Where this page sits in the collection.

    3 fields in page
    • nextCursorstring · nullable

      Pass back as ?cursor= to continue. Null when the end is reached.

    • hasMoreboolean

      Whether another page follows this one.

    • countinteger

      How many items this response carries.

Errors

StatusCodeWhen
400invalid_requestAn invalid limit or cursor, a filter value outside its allowed values, or a request body that does not validate. The message names the parameter or the field, and lists the accepted values.
401unauthorizedNo key, or a malformed, unknown or revoked one: "A valid API key is required."
403forbiddenThe key's scopes do not cover this route: "This key cannot do that." Or, on a write, the person who created the key can no longer add records: "This key's issuer can no longer add records in this workspace."
500internalAn unexpected server error. Implementation details are not exposed.