Programmatic Access to the Global Prop Trading Index
Access GTIXT institutional benchmarking data, rankings, and historical snapshots through a public RESTful API. All endpoints return JSON with cryptographic integrity verification. Advanced institutional endpoints provide multi-level hashing, provenance tracking, and reproducibility verification. No authentication requiredβfree for institutional and research use.
Overview
The GTIXT API provides programmatic access to all published data, including firm scores, pillar breakdowns, evidence excerpts, snapshot metadata, and institutional-grade provenance tracking.
Public & Free
No API keys and no authentication. Light rate limits apply for fair use across institutional and research workloads.
Versioned
API documentation follows semantic versioning. Breaking changes ship under a new documentation version with backward compatibility preserved where possible.
Deterministic
Every response is reproducible and traceable to immutable snapshots. SHA-256 hashes ensure data integrity.
JSON Format
All responses are JSON with standard schemas. Designed for integration with data pipelines, dashboards, and research tools.
Base URL
https://gtixt.com/apiSnapshot objects are hosted at https://data.gtixt.com/gpti-snapshots/
Endpoints
All endpoints support GET requests and return JSON. CORS is enabled for browser-based applications.
/snapshotsRetrieve snapshot metadata. The API currently returns the latest snapshot only; pagination fields are reserved for the archive endpoint.
Query Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
limit | integer | 10 | Max results (1-50) |
before | string | latest | ISO timestamp to paginate older snapshots |
Example Request
curl "https://gtixt.com/api/snapshots?limit=1"
Example Response
{
"success": true,
"snapshots": [
{
"object": "universe_v0.1_public/_public/20260212T191715.391605+0000_62fbf6f82af5.json",
"sha256": "62fbf6f82af59591b05ddeba45e8373df7651d02785661667bdbf35d7a895d76",
"created_at": "2026-02-12T19:17:15.391605Z",
"count": 106
}
],
"total": 1,
"latest": {
"object": "universe_v0.1_public/_public/20260212T191715.391605+0000_62fbf6f82af5.json",
"sha256": "62fbf6f82af59591b05ddeba45e8373df7651d02785661667bdbf35d7a895d76",
"created_at": "2026-02-12T19:17:15.391605Z",
"count": 106
}
}/firmsRetrieve list of all firms in the latest snapshot with scores, confidence, and metadata.
Query Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
limit | integer | 50 | Max results (1-500) |
offset | integer | 0 | Pagination offset |
sort | string | score | Sort by: score, name, status |
Example Request
curl "https://gtixt.com/api/firms?limit=10&sort=score"
Example Response
{
"success": true,
"count": 1,
"total": 106,
"limit": 10,
"offset": 0,
"firms": [
{
"firm_id": "ftmocom",
"name": "FTMO",
"status": "active",
"gtixt_status": "pass",
"score_0_100": 87.5,
"model_type": "challenge",
"jurisdiction_tier": "tier1",
"confidence": 0.9,
"na_rate": 0.02,
"pillar_scores": {
"transparency": 0.92,
"payout_reliability": 0.88,
"risk_model": 0.85,
"legal_compliance": 0.90,
"reputation": 0.82
},
"agent_c_reasons": []
}
],
"snapshot_info": {
"object": "universe_v0.1_public/_public/20260212T191715.391605+0000_62fbf6f82af5.json",
"sha256": "62fbf6f82af59591b05ddeba45e8373df7651d02785661667bdbf35d7a895d76",
"created_at": "2026-02-12T19:17:15.391605Z",
"source": "remote"
}
}/firmRetrieve a specific firm record and the snapshot metadata it came from.
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
id | string | Yes* | Firm ID (e.g., "ftmocom") |
name | string | Yes* | Firm name (URL-encoded) |
*Either id or name is required.
Example Request
curl "https://gtixt.com/api/firm?id=ftmocom"
Example Response
{
"firm": {
"firm_id": "ftmocom",
"name": "FTMO",
"status": "active",
"gtixt_status": "pass",
"score_0_100": 87.5,
"model_type": "challenge",
"jurisdiction_tier": "tier1",
"confidence": 0.9,
"na_rate": 0.02,
"pillar_scores": {
"transparency": 0.92,
"payout_reliability": 0.88,
"risk_model": 0.85,
"legal_compliance": 0.90,
"reputation": 0.82
},
"agent_c_reasons": []
},
"snapshot": {
"object": "universe_v0.1_public/_public/20260212T191715.391605+0000_62fbf6f82af5.json",
"sha256": "62fbf6f82af59591b05ddeba45e8373df7651d02785661667bdbf35d7a895d76",
"created_at": "2026-02-12T19:17:15.391605Z",
"count": 106
}
}Institutional Endpoints
Advanced endpoints for cryptographic verification, provenance tracking, and multi-level hashing validation. These endpoints provide institutional-grade auditability and data integrity confirmation.
/api/provenance/trace/:snapshot_idRetrieve the complete hash chain and verification status for a snapshot. Shows evidence β pillar β firm β dataset hash cascade to enable reproducibility verification.
Path Parameters
| Parameter | Type | Description |
|---|---|---|
snapshot_id | UUID | Snapshot identifier from versioned_snapshots table |
Example Request
curl "https://gtixt.com/api/provenance/trace/2ec9923b-0cc5-48a4-bb68-a25c4d0be361"
Example Response
{
"success": true,
"snapshot_id": "2ec9923b-0cc5-48a4-bb68-a25c4d0be361",
"trace": {
"dataset_hash": "abc123...",
"firm_hash": "def456...",
"pillar_hash": "ghi789...",
"evidence_hash": "jkl012...",
"firm_hash_valid": true,
"chain_valid": true,
"snapshot_signature": "ECDSA signature...",
"signature_verified": true
},
"timestamp": "2026-02-24T04:03:19.831941+00:00"
}/api/provenance/graph/:firm_id/:dateRetrieve the complete data lineage graph for a firm on a specific date. Returns all transformations, validation steps, and the DAG structure showing how the score was derived.
Path Parameters
| Parameter | Type | Description |
|---|---|---|
firm_id | string | Firm identifier (e.g., "ftmocom") |
date | ISO8601 | Date for historical lineage (e.g., "2026-02-24") |
Example Request
curl "https://gtixt.com/api/provenance/graph/ftmocom/2026-02-24"
Example Response
{
"success": true,
"firm_id": "ftmocom",
"date": "2026-02-24",
"graph": {
"nodes": [
{
"id": "evidence-001",
"type": "evidence",
"data": {"source": "PLC register", "value": 0.92}
},
{
"id": "pillar-transparency",
"type": "pillar",
"data": {"name": "Transparency", "score": 0.92}
}
],
"edges": [
{
"from": "evidence-001",
"to": "pillar-transparency",
"operation": "SHA-256 hash aggregate"
}
]
},
"reproducibility": {
"all_sources_available": true,
"all_hashes_valid": true
}
}/api/provenance/evidence/:evidence_idRetrieve full provenance for a single evidence item, including source system, transformation chain, validation metadata, and cryptographic hashes at each step.
Path Parameters
| Parameter | Type | Description |
|---|---|---|
evidence_id | UUID | Evidence identifier from evidence_provenance table |
Example Request
curl "https://gtixt.com/api/provenance/evidence/a1b2c3d4-e5f6-4g7h-8i9j-k0l1m2n3o4p5"
Example Response
{
"success": true,
"evidence_id": "a1b2c3d4-e5f6-4g7h-8i9j-k0l1m2n3o4p5",
"provenance": {
"source_system": "FCA_REGISTER",
"raw_data_hash": "sha256_hash_of_original",
"transformation_chain": [
{
"step": 1,
"operation": "Extract from PDF",
"input_hash": "...",
"output_hash": "..."
}
],
"validation": {
"llm_validation": {"result": "PASS", "confidence": 0.95},
"rule_validation": {"result": "PASS"},
"heuristic_validation": {"result": "PASS"}
},
"evidence_hash": "final_evidence_hash...",
"immutable": {
"locked": true,
"created_at": "2026-02-24T04:03:19Z",
"signature": "ECDSA_signature..."
}
}
}/api/provenance/verifyVerify dataset or evidence integrity using multi-level hashing. Accepts evidence IDs, firm IDs, or dataset timestamps and returns cryptographic verification of the complete hash chain.
Request Body
{
"type": "evidence|firm|dataset", // Verification scope
"evidence_id": "UUID", // Required if type=evidence
"firm_id": "string", // Required if type=firm
"dataset_timestamp": "ISO8601", // Required if type=dataset
"include_chain": true // Optional: return full hash chain
}Example Request
curl -X POST "https://gtixt.com/api/provenance/verify" \
-H "Content-Type: application/json" \
-d '{
"type": "dataset",
"dataset_timestamp": "2026-02-24T04:03:19.831941+00:00",
"include_chain": true
}'Example Response
{
"success": true,
"verification": {
"type": "dataset",
"dataset_hash_valid": true,
"merkle_root_valid": true,
"total_firms_verified": 157,
"all_signatures_valid": true,
"chain": {
"evidence_level": "β Valid",
"pillar_level": "β Valid",
"firm_level": "β Valid",
"dataset_level": "β Valid"
}
},
"timestamp": "2026-02-24T04:03:19.831941+00:00",
"verification_timestamp": "2026-02-24T12:15:30Z"
}Note: All institutional endpoints include ECDSA-secp256k1 signature verification. Sign requests with your institutional key for authenticated access.
Data Models
Standard JSON schemas for all API responses. Every field is typed and documented.
Firm Object
{
"firm_id": "string",
"name": "string",
"status": "active" | "candidate" | "watchlist" | "excluded",
"gtixt_status": "pass" | "review" | "fail",
"score_0_100": 0-100,
"confidence": 0.0-1.0,
"na_rate": 0.0-1.0,
"model_type": "challenge" | "hybrid" | "other",
"jurisdiction": "string",
"jurisdiction_tier": "Tier 1" | "Tier 2" | "Tier 3",
"pillar_scores": { "metric": 0.0-1.0 },
"metric_scores": { "metric": 0.0-1.0 },
"agent_c_reasons": []
}Evidence Excerpt
{
"pillar": "string", // Pillar name
"metric": "string", // Metric key (e.g., "rules.clarity")
"value": 0.0-1.0, // Normalized metric value
"source_uri": "string", // Original source URL
"captured_at": "ISO8601", // Capture timestamp
"excerpt": "string" // Optional text excerpt
}Snapshot Pointer
{
"object": "string", // MinIO object path
"sha256": "string", // SHA-256 hash
"created_at": "ISO8601", // Publication timestamp
"count": integer // Total firms in snapshot
}Error Codes
All errors return JSON with a standard error object containing code, message, and timestamp.
Versioning & Evolution
The GTIXT API follows semantic versioning. Breaking changes are introduced in new major versions.
Current Stable
Initial public release with /snapshots, /firms, and /firm endpoints. Supports pagination, sorting, and basic filtering.
Released: January 2026
Current - Institutional
Institutional-grade provenance tracking: /api/provenance/trace, /api/provenance/graph, /api/provenance/evidence, and /api/provenance/verify endpoints. Multi-level hashing, ECDSA signature verification, and complete data lineage graphs.
Released: February 2026
Planned (Q2 2026)
Extend snapshot history via /snapshots?before=timestamp, enhanced filtering by jurisdiction and confidence, evidence excerpt expansion, and agent validation endpoints.
Target: April 2026
Future (Q3 2026)
Breaking changes: introduce /rankings endpoint, deprecate /firms pagination in favor of cursor-based pagination, add GraphQL support.
Target: July 2026
Backward Compatibility Policy
- Minor versions (v1.0 β v1.1): Additive changes only. No breaking changes.
- Major versions (v1 β v2): Breaking changes allowed. Previous version supported for 6 months after new release.
- Deprecation: All deprecated endpoints receive 3-month warning via API response headers.
Integrity & Verification
All GTIXT data is cryptographically verified. Every snapshot is immutable and traceable to its SHA-256 hash and MinIO object URI.
SHA-256 Hashes
Every snapshot includes a SHA-256 hash. Verify data integrity by downloading the snapshot from MinIO and computing the hash locally.
MinIO Objects
Snapshot objects are stored in public MinIO buckets. Access via the latest.objectfield in /snapshots response.
Pointer Chain
Pointer β Snapshot β SHA-256. This chain ensures every datapoint can be traced back to its immutable source.
Verification Example
Download and verify the latest snapshot:
# 1. Get latest pointer
curl "https://gtixt.com/api/snapshots?limit=1" > pointer.json
# 2. Extract object path and hash
OBJECT=$(cat pointer.json | jq -r '.latest.object')
EXPECTED_HASH=$(cat pointer.json | jq -r '.latest.sha256')
# 3. Download snapshot
curl "https://data.gtixt.com/gpti-snapshots/$OBJECT" > snapshot.json
# 4. Compute SHA-256
COMPUTED_HASH=$(sha256sum snapshot.json | awk '{print $1}')
# 5. Verify
if [ "$COMPUTED_HASH" = "$EXPECTED_HASH" ]; then
echo "β Verified: Hash matches"
else
echo "β Mismatch: Data corrupted"
fiFor browser-based verification, use the Integrity Beacon tool.
Code Examples
Complete working examples in curl, Python, and JavaScript for common API operations.
cURL: Get Latest Snapshot Metadata
curl -X GET "https://gtixt.com/api/snapshots?limit=1" \ -H "Accept: application/json"
Python: Fetch All Firms
import requests
# Fetch all firms
response = requests.get(
"https://gtixt.com/api/firms",
params={"limit": 100, "sort": "score"}
)
payload = response.json()
firms = payload["firms"]
for firm in firms:
print(f"{firm['firm_id']}. {firm['name']}: {firm['score_0_100']}")JavaScript: Get Firm Details
async function getFirm(firmId) {
const response = await fetch(
`https://gtixt.com/api/firm?id=${firmId}`
);
if (!response.ok) {
throw new Error(`HTTP ${response.status}`);
}
const payload = await response.json();
const firm = payload.firm;
console.log(`${firm.name}: Score ${firm.score_0_100}`);
console.log("Pillars:", firm.pillar_scores);
return firm;
}
// Usage
getFirm("ftmocom").catch(console.error);Python: Verify Snapshot Integrity
import hashlib
import requests
# 1. Get pointer
pointer = requests.get("https://gtixt.com/api/snapshots?limit=1").json()
# 2. Download snapshot
snapshot_url = f"https://data.gtixt.com/gpti-snapshots/{pointer['latest']['object']}"
snapshot = requests.get(snapshot_url).content
# 3. Compute hash
computed = hashlib.sha256(snapshot).hexdigest()
expected = pointer["latest"]["sha256"]
# 4. Verify
if computed == expected:
print("β Verified: Hash matches")
else:
print("β Mismatch: Data corrupted")Need Help?
For API support, integration questions, or bug reports, visit our documentation hub or verify data integrity through the Integrity Beacon.