GTIXT API V1

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/api

Snapshot 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.

GET
/snapshots

Retrieve snapshot metadata. The API currently returns the latest snapshot only; pagination fields are reserved for the archive endpoint.

Query Parameters
ParameterTypeDefaultDescription
limitinteger10Max results (1-50)
beforestringlatestISO 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
  }
}
GET
/firms

Retrieve list of all firms in the latest snapshot with scores, confidence, and metadata.

Query Parameters
ParameterTypeDefaultDescription
limitinteger50Max results (1-500)
offsetinteger0Pagination offset
sortstringscoreSort 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"
  }
}
GET
/firm

Retrieve a specific firm record and the snapshot metadata it came from.

Query Parameters
ParameterTypeRequiredDescription
idstringYes*Firm ID (e.g., "ftmocom")
namestringYes*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.

GET
/api/provenance/trace/:snapshot_id

Retrieve the complete hash chain and verification status for a snapshot. Shows evidence β†’ pillar β†’ firm β†’ dataset hash cascade to enable reproducibility verification.

Path Parameters
ParameterTypeDescription
snapshot_idUUIDSnapshot 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"
}
GET
/api/provenance/graph/:firm_id/:date

Retrieve 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
ParameterTypeDescription
firm_idstringFirm identifier (e.g., "ftmocom")
dateISO8601Date 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
  }
}
GET
/api/provenance/evidence/:evidence_id

Retrieve full provenance for a single evidence item, including source system, transformation chain, validation metadata, and cryptographic hashes at each step.

Path Parameters
ParameterTypeDescription
evidence_idUUIDEvidence 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..."
    }
  }
}
POST
/api/provenance/verify

Verify 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.

400
Bad Request

Missing required parameter or invalid query format.

{
  "error": "missing_parameter",
  "message": "Required parameter 'id' or 'name' not provided",
  "status": 400
}
404
Not Found

Firm ID or snapshot ID does not exist in the database.

{
  "error": "firm_not_found",
  "message": "Firm with id 'invalid123' not found",
  "status": 404
}
500
Internal Error

Server error. Retry with exponential backoff.

{
  "error": "internal_error",
  "message": "Database connection failed",
  "status": 500
}

Versioning & Evolution

The GTIXT API follows semantic versioning. Breaking changes are introduced in new major versions.

v1.0
Current Stable

Initial public release with /snapshots, /firms, and /firm endpoints. Supports pagination, sorting, and basic filtering.

Released: January 2026

v1.1
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

v1.2
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

v2.0
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"
fi

For 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.