Skip to main content

REST API Endpoints

Every Zeq capability is reachable as a single HTTPS request. All endpoints are mounted under the /api prefix on https://www.zeq.dev. Authentication is a Bearer API key (Authorization: Bearer $ZEQ_API_KEY) unless marked public.

Base URL: https://www.zeq.dev/api Auth: Authorization: Bearer $ZEQ_API_KEY (except where noted) Content-Type: application/json Phase-locking: every response includes zeqondTick, hulyaPhase, and (where applicable) a zeqProof HMAC receipt.


Core Zeq Computation

The heart of the platform — phase-locked compute, ZeqProof verification, and the temporal bridge.

MethodEndpointPurpose
GET/api/zeq/pulseCurrent HulyaPulse snapshot (phase, Zeqond, frequency)
GET/api/zeq/pulse/streamServer-Sent Events stream of pulses, one per Zeqond
POST/api/zeq/computeExecute a phase-locked computation through the operator stack
POST/api/zeq/verifyVerify a result against an expected value with phase tolerance
POST/api/zeq/latticeZeqLattice multi-scale field operations
POST/api/zeq/shiftZeqShift Unix ↔ Zeqond conversion
GET/api/zeq/usagePer-key usage and quota

Protocol Discovery

Browse the full registry of 234+ protocols. Returns the same data documented in Reference → Protocols.

MethodEndpointPurpose
GET/api/protocolsList all protocols (id, name, category, endpoint, method, auth, description)
GET/api/protocols/:idSingle protocol detail with full param + return schema
GET/api/protocols/category/:categoryAll protocols in a given category

Operators & Framework

The 1,536-operator registry, constants, equations, and the wizard solver.

MethodEndpointPurpose
GET/api/operatorsFull operator list (KO42, QM, NM, GR, CS, Awareness, …)
GET/api/operators/categoriesOperator family categories
GET/api/operator/:idSingle operator with formula, family, scale
GET/api/registryCanonical operator + constant registry
GET/api/registry/categoriesRegistry categories
GET/api/constantsAll physical and Zeq constants
GET/api/constants/:keySingle constant value
GET/api/paramsTunable framework parameters
GET/api/equationsMaster equations (HULYAS, KO42, R(t), Functional, Spectral)
GET/api/protocolActive protocol manifest
GET/api/experimentsPre-built example computations
POST/api/solveRun a computation through the 7-Step Wizard
POST/api/solve/strictStrict-mode solve (≤0.1% error gate enforced)

Kernel & Genesis

MethodEndpointPurpose
GET/api/kernelKernel manifest (version, operators loaded, mode)
GET/api/kernel/promptThe Zeq LLM kernel prompt
GET/api/kernel/demoQuick kernel demo response
GET/api/kernel/liveLive kernel state
GET/api/genesis/statusZeq Genesis bootstrapping status

ZeqAuth — Equation-Based Identity

Zero-knowledge identity bound to phase. Used for the dual-auth flow on zeq.dev.

MethodEndpointPurpose
POST/api/zeq-auth/registerCreate a ZeqAuth identity
POST/api/zeq-auth/loginPhase-locked login
POST/api/zeq-auth/verifyVerify a ZeqAuth challenge
GET/api/zeq-auth/profileCurrent ZeqAuth profile
POST/api/zeq-auth/api-keysMint a new API key under ZeqAuth
GET/api/zeq-auth/api-keysList ZeqAuth-issued keys
GET/api/zeq-auth/healthZeqAuth subsystem health
POST/api/auth/loginLegacy email/password login

API Keys & Customer Portal

MethodEndpointPurpose
GET/api/keys/meCurrent key metadata
POST/api/keys/rotateRotate active key
GET/api/portal/mePortal account
GET/api/portal/keyActive key
GET/api/portal/keysAll keys for the account
POST/api/portal/keysIssue a new key
DELETE/api/portal/keys/:idRevoke a key
POST/api/portal/keys/:id/revealOne-time key reveal
GET/api/portal/certificateAccount certificate
POST/api/portal/regenerate-keyRegenerate primary key
GET/api/portal/usagePer-account usage rollup

Trial & Billing

MethodEndpointPurpose
POST/api/trial/startStart a free trial
GET/api/trial/meTrial status
POST/api/stripe/create-checkoutCreate a Stripe Checkout session
GET/api/stripe/successCheckout success callback
POST/api/stripe/portalStripe billing portal session
GET/api/stripe/pricesActive price catalog

Zeq Store (Apps)

The 40+ Zeq apps converted from server-side to API-driven, browsable through the Store.

MethodEndpointPurpose
GET/api/store/appsList all Store apps
GET/api/store/categoriesApp categories
GET/api/store/app/:slugApp detail by slug
POST/api/store/launchLaunch an app (returns API entrypoint + recipe)

HITE / TESC — Encrypted Channels

MethodEndpointPurpose
POST/api/hite/encryptHITE phase-keyed encryption
POST/api/hite/decryptHITE decryption
POST/api/tesc/sendSend a TESC encrypted message

ZeqMail

MethodEndpointPurpose
POST/api/registerZeqMail registration
POST/api/loginZeqMail login
GET/api/inboxInbox
GET/api/sentSent folder
GET/api/starredStarred messages
GET/api/trashTrash folder
GET/api/contactsZeqMail contacts
GET/api/pubkey/:zidPublic key for a Zeq Identity
GET/api/statusZeqMail status
POST/api/starStar a message
POST/api/pubkeyPublish public key

ZeqMesh, ZeqNode, ZeqDaemon

The internet-replacement layer.

MethodEndpointPurpose
GET/api/mesh/statusZeqMesh peer-to-peer status
GET/api/dns/statusPhase-locked DNS layer
GET/api/node/statusNode health
GET/api/peersPeer list
GET/api/healthAggregate health
GET/api/daemon/healthDaemon liveness
GET/api/daemon/statusDaemon state machine
GET/api/daemon/pulseDaemon-level HulyaPulse
GET/api/daemon/tescTESC daemon channel
GET/api/daemon/landauerLandauer (LZ1) erasure cost

LLM Gateway

MethodEndpointPurpose
GET/api/providersSupported LLM providers
GET/api/modelsAvailable models
POST/api/keyMint a gateway-scoped key
POST/api/chatPhase-locked chat completion

MCP

MethodEndpointPurpose
GET/api/mcpMCP discovery
POST/api/mcpMCP JSON-RPC endpoint

Marketing & Public

These endpoints are public (no API key required).

MethodEndpointPurpose
POST/api/waitlistJoin waitlist
POST/api/contactContact form
GET/api/statsPublic usage stats
GET/api/stats/tiersTier distribution
GET/api/demo-keyIssue a temporary demo key
GET/api/healthzLiveness probe
GET/api/healthReadiness probe
GET/api/download/sourceSDK source archive
GET/api/download/source.zipSDK source as zip

Playground

MethodEndpointPurpose
POST/api/playground/computeSandbox compute (rate-limited)

Admin

Admin endpoints require an admin session cookie issued by /api/admin/login. Not for normal API consumers.

MethodEndpointPurpose
POST/api/admin/loginAdmin login
POST/api/admin/logoutAdmin logout
GET/api/admin/checkSession check
GET/api/admin/notificationsAdmin notifications
POST/api/admin/notifications/readMark notifications read
GET/api/admin/overviewSystem overview
GET/api/admin/analyticsAnalytics rollup
GET/api/admin/usersUser list
GET/api/admin/users/:id/callsPer-user call log
PATCH/api/admin/users/:idUpdate user
GET/api/admin/waitlistWaitlist entries
GET/api/admin/contactsContact submissions
GET/api/admin/keys/overviewKey metrics
GET/api/admin/zeqfield/statusZeqField subsystem status

Calling an endpoint — every language

Every Zeq endpoint is plain HTTPS. The SDK is your HTTP client. Below: thirteen working snippets calling POST /api/zeq/compute — pick whichever fits your stack. The same pattern applies to every endpoint above.

Command line (curl)

curl -X POST https://www.zeq.dev/api/zeq/compute \
-H "Authorization: Bearer $ZEQ_API_KEY" \
-H "Content-Type: application/json" \
-d '{"domain":"three_body","operators":["KO42","NM21","GR33"]}'

JavaScript (browser / Node)

const res = await fetch("https://www.zeq.dev/api/zeq/compute", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.ZEQ_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
domain: "three_body",
operators: ["KO42", "NM21", "GR33"],
}),
});
const data = await res.json();
console.log(data);

TypeScript

interface ZeqResponse<T = unknown> {
ok: boolean;
result: T;
zeqondTick: number;
hulyaPhase: number;
zeqProof: string;
}

const res = await fetch("https://www.zeq.dev/api/zeq/compute", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.ZEQ_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({ domain: "three_body" }),
});
const data: ZeqResponse = await res.json();

Python

import os, requests

res = requests.post(
"https://www.zeq.dev/api/zeq/compute",
headers={"Authorization": f"Bearer {os.environ['ZEQ_API_KEY']}"},
json={"domain": "three_body", "operators": ["KO42", "NM21", "GR33"]},
)
print(res.json())

Go

package main

import (
"bytes"
"fmt"
"io"
"net/http"
"os"
)

func main() {
payload := []byte(`{"domain":"three_body"}`)
req, _ := http.NewRequest("POST", "https://www.zeq.dev/api/zeq/compute", bytes.NewBuffer(payload))
req.Header.Set("Authorization", "Bearer "+os.Getenv("ZEQ_API_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}

Java

import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;

public class ZeqCall {
public static void main(String[] args) throws Exception {
HttpClient client = HttpClient.newHttpClient();
HttpRequest req = HttpRequest.newBuilder()
.uri(URI.create("https://www.zeq.dev/api/zeq/compute"))
.header("Authorization", "Bearer " + System.getenv("ZEQ_API_KEY"))
.header("Content-Type", "application/json")
.POST(HttpRequest.BodyPublishers.ofString("{\"domain\":\"three_body\"}"))
.build();
HttpResponse<String> res = client.send(req, HttpResponse.BodyHandlers.ofString());
System.out.println(res.body());
}
}

C

#include <stdio.h>
#include <stdlib.h>
#include <curl/curl.h>

int main(void) {
CURL *curl = curl_easy_init();
if (!curl) return 1;
struct curl_slist *headers = NULL;
char auth[256];
snprintf(auth, sizeof(auth), "Authorization: Bearer %s", getenv("ZEQ_API_KEY"));
headers = curl_slist_append(headers, auth);
headers = curl_slist_append(headers, "Content-Type: application/json");
curl_easy_setopt(curl, CURLOPT_URL, "https://www.zeq.dev/api/zeq/compute");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"domain\":\"three_body\"}");
curl_easy_perform(curl);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
return 0;
}

C++

#include <iostream>
#include <cstdlib>
#include <curl/curl.h>

int main() {
CURL* curl = curl_easy_init();
if (!curl) return 1;
struct curl_slist* headers = nullptr;
std::string auth = "Authorization: Bearer ";
auth += std::getenv("ZEQ_API_KEY");
headers = curl_slist_append(headers, auth.c_str());
headers = curl_slist_append(headers, "Content-Type: application/json");
curl_easy_setopt(curl, CURLOPT_URL, "https://www.zeq.dev/api/zeq/compute");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, R"json({"domain":"three_body"})json");
curl_easy_perform(curl);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}

PHP

<?php
$ch = curl_init("https://www.zeq.dev/api/zeq/compute");
curl_setopt($ch, CURLOPT_HTTPHEADER, [
"Authorization: Bearer " . getenv("ZEQ_API_KEY"),
"Content-Type: application/json",
]);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, '{"domain":"three_body"}');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
echo curl_exec($ch);
curl_close($ch);

Swift

import Foundation

var req = URLRequest(url: URL(string: "https://www.zeq.dev/api/zeq/compute")!)
req.httpMethod = "POST"
req.setValue("Bearer \(ProcessInfo.processInfo.environment["ZEQ_API_KEY"] ?? "")",
forHTTPHeaderField: "Authorization")
req.setValue("application/json", forHTTPHeaderField: "Content-Type")
req.httpBody = "{\"domain\":\"three_body\"}".data(using: .utf8)

URLSession.shared.dataTask(with: req) { data, _, _ in
if let data = data { print(String(data: data, encoding: .utf8) ?? "") }
}.resume()

Lua

local http = require("socket.http")
local ltn12 = require("ltn12")
local body = '{"domain":"three_body"}'
local response = {}

http.request{
url = "https://www.zeq.dev/api/zeq/compute",
method = "POST",
headers = {
["Authorization"] = "Bearer " .. os.getenv("ZEQ_API_KEY"),
["Content-Type"] = "application/json",
["Content-Length"] = tostring(#body),
},
source = ltn12.source.string(body),
sink = ltn12.sink.table(response),
}
print(table.concat(response))

HTML (drop into any page)

<script>
fetch("https://www.zeq.dev/api/zeq/compute", {
method: "POST",
headers: {
"Authorization": "Bearer YOUR_ZEQ_API_KEY",
"Content-Type": "application/json",
},
body: JSON.stringify({ domain: "three_body" }),
})
.then(r => r.json())
.then(console.log);
</script>

Markdown / REST Client (.http)

POST https://www.zeq.dev/api/zeq/compute
Authorization: Bearer {{ZEQ_API_KEY}}
Content-Type: application/json

{"domain":"three_body"}

Response envelope

Every successful response carries phase-locking metadata:

{
"ok": true,
"result": { "...": "endpoint-specific payload" },
"zeqondTick": 2285318404,
"hulyaPhase": 0.412,
"zeqProof": "eyJhbGciOiJIUzI1NiIs..."
}

The zeqProof field is an HMAC-SHA256 receipt that any third party can verify against POST /api/zeq/verify without an API key.

Errors

Errors are JSON with HTTP status codes:

{
"ok": false,
"error": "rate_limited",
"message": "Quota exceeded for tier free",
"retryAfter": 42
}

See Operate → Error Handling for the full error code list.