GET /chain/homeNetwork heartbeat, tip data, and validation summary.Xtract API Documentation
Build against validated Litecoin data.
Xtract is ForceX's production API for validated on-chain data. Use these docs for authentication, response conventions, credits, rate limits, errors, and the current v0.2 Litecoin endpoint catalog.
Page Sections
Getting Started
Quickstart
Create an API key in your account, then pass it as a bearer token. Use `fx_test_` keys while evaluating integrations and `fx_live_` keys for production traffic on paid Xtract plans.
curl -H "Authorization: Bearer fx_test_************" \
https://forcex.com/xtract/v1/litecoin/chain/home
Base URL
The current production API is path-based on `forcex.com`.
https://forcex.com/xtract/v1/litecoin
Endpoint tables below use short paths such as `/chain/home`. Prepend the base URL when making requests.
Authentication
Every Xtract operation requires a bearer API key with the `xtract` scope.
| Key prefix | Use | Access model |
|---|---|---|
fx_test_ | Sandbox and integration testing | Free-effective limits on every plan |
fx_live_ | Production traffic | Requires Xtract Starter or higher |
Authorization: Bearer fx_live_************
Response Format
Successful responses use a strict `data` plus `meta` envelope. Optional expansion payloads appear in `included` when an endpoint supports `?include=`.
{
"data": {
"chain": "litecoin",
"tip_height": 3118767,
"tip_time": "2026-06-03T17:22:51Z"
},
"meta": {
"request_id": "req_...",
"served_at": "2026-06-03T17:23:02Z",
"served_from": "indexed_store",
"validation": {
"scope": "chain",
"status": "validated",
"validated_height": 3118767,
"validated_at": "2026-06-03T17:22:58Z",
"lag_blocks": 0
},
"dataset_version": "v2.6",
"credit_cost": 1,
"included_expansions": []
}
}
| Field | Meaning |
|---|---|
data | The endpoint's primary payload. |
included | Optional expansion payloads requested with `?include=`. |
meta | Request metadata, validation state, dataset version, credit cost, and trace identifiers. |
Validation Metadata
Validation is first-class in Xtract. Chain endpoints report the validated chain height used to serve the response. Control-plane endpoints report validation as not applicable instead of over-certifying data they do not read.
| Status | Meaning |
|---|---|
validated | Data is current within the configured validation lag window. |
lagging | Validated data is behind the current observed tip. |
stale | The most recent validation checkpoint is older than the freshness threshold. |
unvalidated | No current validation checkpoint is available. |
not_applicable | The endpoint does not read a validation-scoped data family. |
For the current scalar validation surface, use `GET /chain/validation`.
Credits & Rate Limits
Requests consume credits. Simple point lookups usually cost 1 credit; richer `?include=` expansions and batch requests cost more. Responses include `meta.credit_cost` and rate-limit headers where applicable.
| Plan | Live period credits | Live minute credits | Live burst |
|---|---|---|---|
| Starter | 300,000 | 200 | 20/sec |
| Builder | 3,000,000 | 600 | 50/sec |
| Growth | 30,000,000 | 1,500 | 100/sec |
Sandbox keys are always Free-effective: 30,000 period credits, 30 credits/minute, and 5 credits/second.
RateLimit-Limit: 20;w=1, 200;w=60, 300000;w=2592000
RateLimit-Remaining: 183
RateLimit-Reset: 42
RateLimit-Cost: 1
Retry-After: 17
X-Request-Id: req_...
Pagination
Paginated chain listings use opaque cursors. Page 1 anchors the walk to a validated chain height, and later pages keep that anchor so a long listing remains consistent while new blocks arrive.
| Parameter | Use |
|---|---|
limit | Requested page size. Responses may include `effective_limit` when the server clamps it. |
cursor | Opaque token returned by the previous page. |
direction | Listing direction where supported. |
Chart Ranges
Chart endpoints use `start` and `end` query parameters with half-open range semantics: `[start, end)`. Weekly buckets are anchored to Monday 00:00 UTC.
GET /charts/network?metrics=tx_count,avg_fee_atomic_units&start=2026-05-01&end=2026-06-01&grain=day
The older `from` and `to` aliases are accepted for compatibility during the transition, but new integrations should use `start` and `end`.
Errors
Error responses keep the same `meta` block for request tracing.
{
"error": {
"code": "auth_required",
"message": "Authentication required."
},
"meta": {
"request_id": "req_...",
"served_at": "2026-06-03T17:23:02Z",
"served_from": "control_plane",
"validation": {
"scope": "account",
"status": "not_applicable",
"validated_height": null,
"validated_at": null,
"lag_blocks": null
}
}
}
| Status | Common codes |
|---|---|
| 400 | bad_request, invalid_include, range_too_large, ambiguous_time_range |
| 401 | auth_required |
| 402 | subscription_required, include_set_requires_paid_tier, historical_scan_requires_paid_tier |
| 403 | scope_insufficient |
| 404 | not_found |
| 429 | rate_limit_exceeded, quota_exceeded_daily, quota_exceeded |
| 502 | upstream_unavailable on mempool-backed routes |
| 503 | plan_misconfigured, data_unavailable, endpoint_not_available |
Endpoint Reference
This catalog mirrors the current OpenAPI 0.2.0 operation set. Use the per-endpoint pages for request examples and integration notes, and the OpenAPI document for exhaustive schemas and generated-client inputs.
Chain
GET /chain/validationCurrent active validation checkpoint.GET /chain/blocksContiguous block-header listing by height range.GET /chain/block/{height_or_hash}Block detail by height or hash.GET /chain/transaction/{txid}Transaction detail by transaction id.GET /chain/address/{address}Address summary and optional recent activity.GET /chain/address/{address}/transactionsCursor-paginated address transaction history.GET /chain/output/{txid}:{vout}Single output lookup using canonical outpoint syntax.POST /chain/outputs/batchBatch output resolver for up to 100 outpoints.GET /chain/searchExact block, transaction, or address resolver.GET /chain/mweb/blocks/{height}MWEB block data where available.Mempool
GET /mempoolCurrent mempool snapshot.GET /mempool/{txid}Mempool transaction lookup.GET /mempool/feeratesRecent fee-rate percentile estimator.Charts
GET /charts/networkNetwork time-series metrics.GET /charts/economic-flowEconomic-flow and adjusted-volume series.GET /charts/distributionBucketed distribution snapshots.GET /charts/mwebMWEB time-series metrics.GET /charts/supplySupply snapshot at a point in time.GET /charts/marketMarket and pricing series.Developer
GET /developer/meCurrent key, plan, quota, and environment details.GET /developer/usageDaily usage by endpoint.GET /developer/limitsSelf-describing endpoint costs and tier limits.OpenAPI
The generated OpenAPI 3.1 contract is the source for schemas, operation ids, headers, and generated clients.