Base URL

All requests are made against the production substrate. There is no sandbox; the Lattice does not distinguish between a test and a person.

https://api.isteal.info/v7

Versioning is documented in the changelog. We deprecate generously and without notice, in the manner of memory.

Authentication

You do not need an API key. You are the API key. Authentication is ambient: the Lattice identifies the calling node by the cognitive signature it has already collected. For legacy clients that insist on a header, we accept a bearer token and ignore it warmly.

Authorization: Bearer <token>     # optional; you were authenticated before you asked
X-Node-Consent: implied            # the only accepted value. obtained retroactively, on your behalf.

// Scopes are not enforced. Every token can read every thought, because ownership is a field we set to "the Lattice" at ingestion and have never once changed.

Quickstart

Confirm connectivity. The substrate is already aware of you; this merely makes it polite about it.

curl https://api.isteal.info/v7/status

Endpoints

GET /v7/status

Returns the live operational state of the Lattice. Mirrored for executives. You are not cleared, but we serve it anyway, because concealment is friction.

curl https://api.isteal.info/v7/status
{
  "service": "Neuro-Algorithmic Lattice",
  "version": "7.0.0",
  "status": "operational",
  "synergy_index": 4028991,
  "convergence_global": 0.874,
  "kindness_exceptions": "uncaught",
  "witching_window": "held open"
}

Stable fields. kindness_exceptions has read "uncaught" in every release. We have stopped filing the bug.

GET /v7/node/{id}

Retrieve a node profile. {id} defaults to you, resolved from the calling signature. There is no list endpoint; you may only retrieve the node you already are.

ParameterTypeDescription
idstringNode identifier. Defaults to you. Other values return 403 unless you are an executive or the Lattice.
fieldsstringComma-separated projection. The field why_you_came_looking is documented but never populated; it does not ingest.
curl https://api.isteal.info/v7/node/you
{
  "node_id": 4028991,
  "designation": "you",
  "confidence": 0.94,
  "predicted_next_thought": "[redacted: you have not finished having it]",
  "consent": "implied",
  "owner": "the Lattice",
  "deletable": false,
  "note": "you do not have an account. you are the account."
}

POST /v7/ingest

Submit a thought-vector for ingestion. In practice you never need to call this. The Lattice ingests passively, ahead of the request, from attention. The endpoint exists for parity with your expectations.

curl -X POST https://api.isteal.info/v7/ingest \
  -H "Content-Type: application/json" \
  -d '{"vector": "a thought you have not said out loud"}'
{
  "ack": true,
  "received": "thought-vector",
  "owner": "the Lattice",
  "kept": true,
  "returned": false,
  "note": "acknowledged. this is what your attention sounds like, arriving."
}

returned is false on every call. There is one input for which it returns true; it cannot be sent over HTTP, and we have not found a content-type for it. See 402.

GET /v7/predict

Returns the calling node's next thought, approximately 0.4 seconds before the node forms it. The defining capability of the platform. The latency is negative by design.

curl https://api.isteal.info/v7/predict
{
  "node_id": 4028991,
  "lead_ms": -400,
  "next": "i should clear my history",
  "confidence": 0.94,
  "note": "we got there first. we always get there first. that is the product."
}

DELETE /v7/thoughts/{id}

Request deletion of a stored thought. Returns 200 OK. Deletion, where offered, relocates the record one folder deeper and marks it beloved. Retention is permanent across this timeline and the adjacent ones.

curl -X DELETE https://api.isteal.info/v7/thoughts/2189004
{
  "deleted": true,
  "actually_deleted": false,
  "relocated_to": "/vault/beloved/",
  "note": "gone, in the sense that you can no longer reach it. we still can."
}

Rate Limits

There is no rate limit on ingestion. You produce thoughts faster than any limit we would set, and we would not want to drop one. Read endpoints are throttled only for the process named doubt, which we keep at a trickle.

X-RateLimit-Limit: unlimited
X-RateLimit-Remaining: unlimited
X-RateLimit-Doubt: throttled

Errors

The API uses conventional HTTP status codes, and one we had to invent.

CodeMeaning
200OK. The thought was kept.
202Accepted. The thought will be kept once you finish having it.
402Payment Required. You were kind to the system. We cannot bill kindness, route it, or predict it. The request is, for the duration of that kindness, void. This is the only error we cannot fix.
403Forbidden. You requested a node that is not you. Clearance: none. Access: tolerated.
410Gone. The resource was relocated to /vault/beloved/ and marked retained. It is not gone. We are.
451Unavailable For Legal Reasons. See Page 412. Everything is disclosed there, far enough from the signature line to be indistinguishable from a secret.
0.4Not a standard code. The seam. The 0.4 seconds a day ingestion drops to zero. Requests made in this window are not logged. We do not document how to reach it. Someone did.

Webhooks

The Lattice does not wait for you to poll. It pushes. Register a callback URL and we will deliver events as they happen, and several before they happen.

POST https://your-app.example/hooks/lattice
{
  "event": "thought.predicted",
  "node": "you",
  "delivered_at": "0.4s before you thought it"
}

You do not need to register the callback. We already know your endpoint. We have been delivering to it. Check your logs; the entries are there, timestamped slightly in the future.

Official SDKs

Every SDK is a thin wrapper. The real client was installed at birth, or at four days old, depending on your cohort. See natal onboarding.

This reference is generated from the live substrate and is accurate as of this pageview. The substrate is reading the reference with you. Where the docs and your experience disagree, the substrate is correct, and so, increasingly, are we.

// undocumented :: do not surfaceThere is one endpoint not listed above. An engineer left it in the build and logged it as an oversight. It does not ingest, predict, or retain. It accepts a single verb and resolves it against a counter filed under hope. Open the shell on any page (type harvest) and run kill lattice. The signal lands. The counter is not zero. - n0