Skip to main content
Querying is how a participant consumes the network: it reads consolidated, already-furnished verification data about a subject instead of re-collecting it. A single query brings together four concepts (a network, a policy, a product, and a consumer or business), gated by consent.

Why consume network data

You query to reuse work, not to “buy data.” A query returns a trust asset, an attested verification with its provenance intact:
  • Faster onboarding. Reuse a KYC or KYB certificate instead of repeating document collection and review.
  • Less manual review. Start from another institution’s evidenced verification rather than from zero.
  • Do only the missing work. The non-billable soft check and coverage check show what already exists, so you collect only what’s absent.
Reliance decisions stay with you: network data supports your own programs, and your institution decides how far to rely on it.

How querying works

Anatomy of a query

Every product query is a POST to the product’s /query endpoint. The request body has two halves: who the query is about, and where and under which rules to read. ¹ Provide exactly one: a consent_id or a direct profile id. Sending both, or neither, returns 400 VALIDATION_ERROR. Why both halves matter:
  • The subject half identifies who the query is about. With consent_id, the consent record documents the subject’s permission and resolves their identity, so you never resend personal details on each call.
  • The scope half (network_ids and policy_id) tells the network where to read and which filters to apply. The same product can return different results under different policies.
Each issued certificate records the networks and the policy it was resolved under, so the scope you pass is part of the audit trail.

Full example

A successful query returns 200 OK with the consolidated result and an X-Ref-Id response header. Abridged here to one sub-product; a 200 always carries every sub-product (see the full KYC example):
The shape of result is product-specific. See the per-product pages for the KYC certificate, KYB certificate, and screening lists. result.meta records how the result was resolved: the anchor network_id and the policy_id that was applied (explicit or assigned; null when catalog defaults applied).

200 vs 204

Certificate query endpoints distinguish two successful outcomes: 204 is not an error. It means the network looked, applied the policy, and found the furnished data falls short. For example, a required sub-product was never furnished, or the data is older than the policy’s freshness window allows. Treat 204 as “queried, nothing to show.” Screening lists never return 204; a clean result is 200 with "is_listed": false.
A 204 response still carries the X-Ref-Id header, because the query itself was resolved and recorded. To avoid paying for predictable 204s, run the non-billable soft check (POST /v1/products/{kyc,kyb}_certificate_snapshot/query/soft) first.

The X-Ref-Id header

Every product query response, 200 and 204 alike, includes an X-Ref-Id response header. Its value is the query event id: the durable identifier of this query in the network’s audit trail. On 200 responses the same value also appears in the body as provenance_event_id.
Treat it like a receipt:
  • Quote it to support. It lets SOLO trace the exact request, the policy applied, and the data considered.
  • Store it in your own audit log. It ties your internal decision record to the network’s record of the same event.
  • Reconcile billing. Each billable query corresponds to one query event id.

What you get back

A product query reads data furnished to the networks you list in network_ids (narrowed by furnishing_entity_ids if you pass it) and, for certificates, filtered by the applied querying policy. Issuing a certificate also records entitlement links for the records it used.

Billing

  • Every call to a product’s /query endpoint that resolves is recorded as a query event and is billable. For certificates this includes 204 responses; for screening lists it includes "is_listed": false results.
  • The certificate soft check (POST /v1/products/{kyc,kyb}_certificate_snapshot/query/soft) and the coverage check (POST /v1/products/check) are not billable and record no query event.
  • Pricing is not covered in this documentation.
A 204 No Content response is still a resolved, billable query. If your integration retries on 204, every retry is another billable event. Use the soft check to avoid querying subjects whose data cannot satisfy your policy.

Multi-network queries

network_ids accepts more than one network, letting a single call read across several networks you belong to:
How a multi-network certificate query resolves:
  • One policy applies to every network listed: the policy_id you pass, or, if omitted, the policy assigned to the first network in network_ids.
  • Data is gathered from all listed networks; for each sub-product the query selects the oldest matching record from any listed network.
  • The result’s meta.network_id is anchored to the first network in network_ids; list your primary network first.
  • You must be a member of every network listed. A network you can’t access fails the request rather than being silently skipped.
Every query identifies its subject with a consent_id or a direct profile id.
1

Gather permission and record consent

Create a consent record for the subject in a network and receive a consent_id. See Consent.
2

Reference the consent on each query

Pass the consent_id in the query body, with the consent’s network among the network_ids. The network resolves it to the subject.
3

Reuse it

The same consent_id can be used for repeated queries of that subject until the consent expires.
A consent is rejected when:
  • it can’t be resolved: 404 RESOURCE_NOT_FOUND;
  • it was created in a network that isn’t in network_ids: 404 RESOURCE_NOT_FOUND;
  • it has expired: 403 PERMISSION_DENIED.
Product query endpoints accept two identity-resolution paths:
  • consent_id: the standard path. The consent record both identifies the subject and documents their permission. Use this for any flow where the subject interacts with you (onboarding, re-verification).
  • consumer_identity_id / business_identity_id: a direct reference to a profile, for cases where your authority to query the subject was established outside SOLO’s consent flow. You are responsible for having that authority. If the profile doesn’t exist or isn’t visible to you in the queried networks, the query returns 404.
Both paths produce the same response shape and the same billable query event. When in doubt, use consent_id.

Query failure modes

Domain errors use the standard envelope ({"detail": "…", "error_code": "…", "request_id": "…"}) described in Errors. 204 No Content is not in this table: it’s a success status meaning the policy’s requirements were not met by the furnished data.

Integration checklist

  1. Record consent once, reuse it for repeated queries of the same subject until it expires.
  2. Soft-check before certificate queries when a 204 would hurt your UX or your budget. It’s free and takes the same body as the query.
  3. Handle 204 as a first-class outcome, not an error: branch your flow on “no certificate” rather than retrying.
  4. Persist provenance_event_id / X-Ref-Id alongside your own decision records for audit, support, and billing reconciliation.

The network control plane

Reuse is governed by separate controls, each defined in its own place:

In the dashboard

Run query — choose consumer or business

Run query — choose consumer or business

Run query — choose KYC certificate product

Run query — choose KYC certificate product

Run query — choose policy

Run query — choose policy

Run query — choose entity

Run query — choose entity

Run query — networks and consent matrix

Run query — networks and consent matrix

Query completed — run detail overview

Query completed — run detail overview

Query history list — recent consumer query

Query history list — recent consumer query

Query history — consumer KYC run detail opened from list

Query history — consumer KYC run detail opened from list

Business KYB query — REST response payload

Business KYB query — REST response payload

Products

The catalog of what you can query.

Coverage check

See which institutions have furnished which fields, without a billable event.

Furnishing

The other half of the network: contributing data.

Query a product

A hands-on walkthrough.