---
name: read-bridge-speed
description: How fast and how reliably transfers move into and out of Keeta. 0.01 USDC. Free while payments are down (rate-limited). timing_label is Keeta settlement time. The measured interval is an internal hop, not full settlement, so score is null and label is unknown. Measured on Keeta only. Does not include time spent on the Corridor chain. Not a guarantee of future transfer times.
---

# Keeta settlement time

## Buy

- GET https://keespecs.xyz/api/bridge-speed. Optional window is 1h, 24h, or 7d. Optional direction is in, out, or all. Optional asset is a keeta_ token address. Default window is 24h and default direction is all. 0.01 USDC. Free while payments are down (rate-limited).
- A bad window, direction, or asset returns 400 bad_param and is not charged.
- If the stored sample cannot be read, the last good result is returned marked stale for up to 10 minutes. After that the call is 503 upstream_unavailable with Retry-After 60, and nothing is sold.

## How to read it

- timing_label is Keeta settlement time. timing_note says: Measured on Keeta only. Does not include time spent on the Corridor chain.
- timing_method same_staple_amount_token: Time between two linked blocks in the same Keeta vote staple (same token and amount). This is an internal hop, not full settlement. median_ms and p95_ms are that gap in milliseconds. median_seconds and p95_seconds are the same gap to one decimal, not a whole second.
- Do not score or label that hop. score is null, label is unknown, and reason is settlement_not_observable. The message is: Only an internal Keeta hop inside one block bundle can be timed. Full bridge settlement time isn't observable from Keeta alone.
- timing_basis is end_to_end only when the Keeta block and a public block time were both measured. Otherwise it is keeta_side. The two are never combined into one median or p95.
- completion_basis is not_observable when completion cannot be paired. completion_rate is null in that case. It is not 100%. The staple gap is a duration, not a completion.
- A transfer with no match after 30 minutes counts as not completed, when pairing is possible.
- When completion was measured, score is 100 fast when completion is at or above 99% and p95 is at or under 60 seconds. score is 70 normal when completion is at or above 95% and p95 is at or under 300 seconds. Otherwise score is 30 slow.
- Fewer than 20 transfers sets label to unknown, score to null, and reason to bridge_unknown. The message is: Not enough bridge transfers in this window to score.
- When no Keeta-side interval can be measured and there are 20 or more transfers, reason is timing_not_observable. The message is: Keeta settlement time isn't observable for these transfers. median_seconds and p95_seconds are null. label is unknown and score is null.
- external_chain_id is a machine field. Do not turn it into a chain name in anything you say to a person. Call that chain the Corridor.
- volume amounts use the token's decimals. amountBase is the integer. symbol comes from the known token list, or null.
- note says this is not a guarantee of future transfer times. The rule text is in score_rule and at https://keespecs.xyz/docs/bridge-speed.
- POST the response to https://keespecs.xyz/api/verify. Stale fields sit outside the signature.

Catalogue: https://keespecs.xyz/apis
Skills: https://keespecs.xyz/skills
Sending, bridging, banks, cards, and identity: https://keeta.ai/llms.txt
