Documentation
Build with Hyperspeed
Hyperspeed is expertise infrastructure for AI companies. Verified domain experts package their knowledge into structured memory packs. Your agents query those packs at runtime to inject specialist context.
Quickstart
- Create an account and an organization.
- License a pack from the catalog (or co-create one through the design partner program).
- Generate an API key in Dashboard → API → Keys. Each key is shown once; save it in a secret manager.
- POST your first query (see below).
Concepts
- Pack
- A container of structured expert knowledge for a domain (tax, legal, medical, etc.). Packs are versioned and immutable once published.
- Entry
- One unit of knowledge inside a pack. Six types: fact, heuristic, decision_rule, example, citation, meta_rule.
- Version
- A snapshot of pack entries. States: draft → in_review → published → archived. Published versions can't be edited.
- License
- A grant from a pack creator (licensor) to a customer (licensee) to query the pack at runtime. Tracks limits, expiration, and SLA tier.
- Eval gate
- Every version must pass an automated eval (overall ≥ 75, accuracy ≥ 80, citation coverage ≥ 60) before it can be published.
- Credential
- A verified attestation of a creator's expertise (CPA license, MD, JD, etc.). Authoring a pack requires at least one verified credential.
Authentication
Every request must include a Bearer token in the Authorization header.
Authorization: Bearer hsk_live_aB7xK9...Keys are organization-scoped. Revoking a key (Dashboard → API → Keys → Revoke) takes effect within seconds.
POST /v1/query
Search pack entries by semantic similarity. Returns ranked entries with relevance scores. Multi-pack queries are supported via an array.
Request
POST https://api.hyperspeed.work/v1/query
Content-Type: application/json
Authorization: Bearer hsk_live_...
{
"pack_id": "<uuid>", // or [<uuid>, <uuid>, ...]
"query": "What is the Section 179 limit for 2026?",
"max_results": 5, // optional, default 5, max 50
"context": "...", // optional, surrounding context
"include_citations": true, // optional, default true
"include_metadata": true // optional, default true
}Response
{
"query_id": "<uuid>",
"results": [
{
"entry_id": "<uuid>",
"entry_type": "fact",
"title": "Section 179 limit 2026",
"content": "In 2026 the limit is $1.16M ...",
"relevance_score": 0.91,
"pack_id": "<uuid>",
"pack_version_id": "<uuid>",
"tags": ["tax", "2026"]
}
],
"metadata": {
"packs_queried": ["..."],
"retrieval_method": "semantic",
"latency_ms": 142
}
}GET /v1/me
Returns the organization and API key associated with the request. Useful for debugging which key is being used.
GET https://api.hyperspeed.work/v1/me
Authorization: Bearer hsk_live_...
→ {
"organization": { "id": "...", "name": "Acme Corp", "slug": "acme" },
"api_key": { "id": "...", "name": "Production", "tier": "startup", "scopes": [...], "prefix": "hsk_live_aB" }
}Rate limits
Enforced per organization. Response headers includeX-RateLimit-Limit,X-RateLimit-Remaining, and X-RateLimit-Reset.
| Tier | Per minute | Per day |
|---|---|---|
| Free | 100 | 10,000 |
| Startup | 1,000 | 1,000,000 |
| Enterprise | custom | custom |
Error envelope
All errors return a consistent envelope with a stable code string and a human-readable message.
{ "error": { "code": "rate_limit_minute", "message": "Rate limit (100/min) exceeded" } }Common codes: missing_auth, invalid_key, forbidden, not_found, rate_limit_minute, rate_limit_day, invalid_request, internal_server_error.
TypeScript SDK
npm install @hyperspeed/sdk
# or pnpm add @hyperspeed/sdk
import { Hyperspeed } from '@hyperspeed/sdk'
const client = new Hyperspeed({ apiKey: process.env.HYPERSPEED_API_KEY! })
const result = await client.query({
packId: 'pack_abc',
query: 'What is the Section 179 limit for 2026?',
maxResults: 5,
})
for (const entry of result.results) {
console.log(entry.title, entry.relevanceScore)
}Includes automatic exponential-backoff retry on 5xx + 429, per-request timeouts via AbortController, and an onRequest observability hook. Throws HyperspeedError on non-2xx responses with status / code / message.
MCP server
Drop Hyperspeed into any Model Context Protocol client (Claude Desktop, Cursor, etc.) as a tool provider.
{
"mcpServers": {
"hyperspeed": {
"command": "npx",
"args": ["-y", "@hyperspeed/mcp"],
"env": {
"HYPERSPEED_API_KEY": "hsk_live_...",
"HYPERSPEED_PACK_IDS": "pack_uuid_1,pack_uuid_2"
}
}
}
}Exposes two tools: query_pack(query, pack_id?, max_results?) and list_packs().
Pack lifecycle
Creators (with at least one verified credential) author packs through the dashboard editor. Each pack has versions that move through this state machine:
draft→in_review→published→archivedPublished versions are immutable. Database triggers block any edit. To revise, open a new draft (patch / minor / major) — entries are copied from the latest published version and re-published after a fresh eval.
Evaluation gates
Every version must pass eval thresholds before it can be published. We run the version against a canonical test set (15 cases per domain for tax / legal / medical) using Claude as a judge across four dimensions:
Are stated facts correct?
Are claims backed by sources?
Inverse — lower is better.
Useful, structured, complete?
Overall score must be ≥ 75. Continuous eval re-runs weekly and flags packs whose score drops more than 5 points.