Time SeventeenDocs
Getting Started

Quickstart

Configure the reserved REST origin and placeholder WebSocket host, perform a public read, and validate the envelope — without assuming a live endpoint.

Draft v0.1 — design contract, not yet a live service

This documentation set defines a proposed Time Seventeen protocol for review and implementation planning. https://api.t17.capital is the approved and reserved REST origin, but neither that origin nor any documented endpoint is claimed to be live. The WebSocket origin remains unspecified. Credentials, chain IDs, contract addresses, rate limits, and SLAs remain unapproved; IDs, prices, and timestamps shown throughout are illustrative, not real production data.

This quickstart validates project structure and configuration handling. It does not claim a production base URL, and it never sends a request capable of reaching a real host.

1. Configure placeholder hosts

Keep runtime configuration outside source control.

.env.example
T17_API_BASE_URL=https://api.t17.capital/v1
T17_STREAM_URL=wss://YOUR_APPROVED_STREAM_HOST/v1/ws
T17_API_KEY_ID=YOUR_APPROVED_KEY_ID

2. Add a client boundary

Centralize transport concerns so hosts, headers, retries, and validation can be updated in one place once a production contract is approved.

src/lib/time-seventeen.ts
const baseUrl = import.meta.env.T17_API_BASE_URL;
const streamUrl = import.meta.env.T17_STREAM_URL;

export function createTimeSeventeenClient() {
  if (!baseUrl || !streamUrl) {
    throw new Error("T17_API_BASE_URL / T17_STREAM_URL is not configured");
  }

  return { baseUrl, streamUrl };
}

3. Shape of a public read

Every public read follows the same response envelope. This example illustrates the shape a client should validate — it is not a runnable network call.

Illustrative request only — not executable
GET https://api.t17.capital/v1/indexes/idx_demo_conflict_001/price
Illustrative response shape only
{
  "data": {
    "observation_id": "ipo_demo_00042",
    "index_id": "idx_demo_conflict_001",
    "level": "128.4500000000",
    "unit": "index_points",
    "quality_state": "valid",
    "published_at": "2026-08-31T12:00:05Z"
  },
  "meta": { "request_id": "req_demo_030", "schema_version": "1.0" }
}

4. Add envelope validation

Before consuming live data, validate the approved response schema — data/meta or data/page/meta, fixed-point decimal strings, RFC 3339 timestamps — at the network boundary. See Conventions. Do not infer production fields from illustrative examples alone once a verified schema is supplied.

5. Continue