Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we
store it to create your key and to recognise you if you sign in with another
provider. See our Privacy Policy and
Terms.
openapi: 3.2.0
info:
title: LEGIT History API
description: Trust-check any x402 merchant or agent address on Algorand, Base, Solana, or 17 other chains before routing a payment.
version: 0.1.0
contact:
name: GONNA
url: https://gonna.bond/gonnaverse/
email: legit@gonna.bond
x-logo:
url: https://legit.gonna.bond/favicon.png
x-guidance: 'LEGIT is the trust and routing layer for the x402 agentic economy. Trust-check any x402 merchant address on Algorand, Base, Solana or 17 other chains before routing a payment: grades (A+ to F) and scores (0-100) come from live uptime, latency and payment-coherence probes, never self-reported data. Run as a pre-payment trust check: call GET /v1/check/{address} before any x402 payment to an address you have not paid before. Start FREE: GET /v1/check/{address} (full trust report), /v1/leaderboard (ranked shortlist), /v1/trending, /v1/pulse, /v1/arena/preview. Paid per call in USDC over x402: GET /v1/compare (2-5 merchants head-to-head), /v1/arena (24h cross-chain settlement benchmark, ?network= filter), /v1/history?address=... (30-day trust trend), POST /v1/watch (7- or 30-day change sentinel, webhook-armed), POST /v1/deep-check (due diligence, up to 10 addresses). How to pay: call a paid endpoint without paying and it answers 402 with a PaymentRequired document listing every active rail; pay one rail and retry with the PAYMENT-SIGNATURE header. Rails cheapest first: algorand-mainnet $0.004, base-mainnet and solana-mainnet $0.005 per call. Watch companions GET /v1/watches/{watch_id} and /v1/watches/{watch_id}/events are FREE: the watch id is the bearer capability for status and the event feed. Webhook payload anatomy: /docs; agent manifest: /llms.txt. Use LEGIT before sending an x402 payment to an unknown merchant, before accepting a counterparty in agent-to-agent settlement, or to monitor a critical upstream for trust degradation.'
tags:
- name: History
paths:
/v1/history:
get:
summary: Pull 30-day score history of one merchant for trend analysis
description: 'Thirty days of trust history for one x402 merchant.
The daily series combines the surviving daily probe rollups and the
raw probes still inside the retention window (sample counts, uptime,
latency avg/min/max) with the daily average/min/max trust score and
modal grade from LEGIT''s score history. Every day carries a lean
"meta" block (coverage, provenance, and gap_kind only when a
measured day has no score row) so an agent can tell a rollup-backed
day from a raw-only day and a compaction hole from a scoring gap.
coverage describes measurement completeness, not score completeness.
A day can be coverage: complete with score: absent when probes ran
but scoring did not.
The current snapshot adds the
latest score, grade, probe tier, 7d and 30d uptime and the median
latency. One call answers the question every buyer asks before
integrating: is this merchant getting better or worse? Untracked
addresses get an honest 404; a tracked merchant stale for its probe
tier queues an on-demand re-probe, disclosed in the response.
Wave 41c (Il Cliente Cieco): ``address`` is optional. A blind client
(one that paid and calls with no parameters) gets the history of the
rank-1 merchant of the current default ranking, with the additive
``defaults_applied`` field disclosing the choice; when the ranking
holds no real merchant no sensible default exists and the parameter
stays honestly required (self-documenting 422). Paid: $0.004 on Algorand / $0.005 on Base, via x402 (per call in USDC on algorand-mainnet or base-mainnet; the 402 response lists every active rail). The POST /v1/watch 7-day diagnostic tier pays the same per-call rail price as the 30-day watch.'
operationId: history_v1_history_get
parameters:
- name: address
in: query
required: false
schema:
anyOf:
- type: string
minLength: 1
maxLength: 300
- type: 'null'
description: 'Merchant address (or base URL) exactly as tracked by LEGIT, e.g. ?address=ADDR. Optional: when omitted, the rank-1 merchant of the current default ranking is used and the choice is disclosed in defaults_applied.'
title: Address
description: 'Merchant address (or base URL) exactly as tracked by LEGIT, e.g. ?address=ADDR. Optional: when omitted, the rank-1 merchant of the current default ranking is used and the choice is disclosed in defaults_applied.'
examples:
algorand_address:
summary: 30-day history of one Algorand merchant
value: G7V7U7H6IYRP7BIZO2KV6ODGQPESMMRDCWBYT3GIMNHTNK3VCKWSSKD55A
responses:
'200':
description: The merchant's 30-day trust history and current snapshot.
content:
application/json:
schema:
type: object
title: Response History V1 History Get
example:
generated_at: '2026-08-10T00:00:00'
address: G7V7U7H6IYRP7BIZO2KV6ODGQPESMMRDCWBYT3GIMNHTNK3VCKWSSKD55A
name: AlgoPay Gateway
network: algorand-mainnet
explorer_url: https://allo.info/account/G7V7U7H6IYRP7BIZO2KV6ODGQPESMMRDCWBYT3GIMNHTNK3VCKWSSKD55A
tracked: true
window_days: 30
current:
score: 97.4
grade: A+
provisional: false
tier: settling
uptime_pct_7d: 99.8
uptime_pct_30d: 99.5
latency_p50_ms: 118.0
sample_size: 512
last_probe_at: '2026-08-09T23:45:00'
series:
- day: '2026-08-09'
sample_count: 24
ok_count: 24
uptime_pct: 100.0
latency_avg_ms: 121.4
latency_min_ms: 98.0
latency_max_ms: 210.0
score_avg: 97.4
score_min: 97.1
score_max: 97.8
grade: A+
meta:
coverage: partial
provenance:
measurements: raw
score: score_table
backstop:
queued: false
note: merchant is fresh for its probe tier
'404':
description: 'The address is not tracked by LEGIT: an honest 404, never an invented series.'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
'402':
description: 'Payment required: the body is an x402 PaymentRequired document (x402Version, error, resource, accepts) listing the USDC payment offers for every active rail; retry with a payment payload.'
content:
application/json:
schema:
type: object
properties:
x402Version:
type: integer
error:
type: string
resource:
type: object
accepts:
type: array
items:
type: object
x-payment-info:
price:
mode: fixed
currency: USD
amount: '0.004'
protocols:
- x402: {}
tags:
- History
components:
schemas:
ValidationError:
properties:
loc:
items:
anyOf:
- type: string
- type: integer
type: array
title: Location
msg:
type: string
title: Message
type:
type: string
title: Error Type
type: object
required:
- loc
- msg
- type
title: ValidationError
HTTPValidationError:
properties:
detail:
items:
$ref: '#/components/schemas/ValidationError'
type: array
title: Detail
type: object
title: HTTPValidationError