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

  1. Create an account and an organization.
  2. License a pack from the catalog (or co-create one through the design partner program).
  3. Generate an API key in Dashboard → API → Keys. Each key is shown once; save it in a secret manager.
  4. 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.

TierPer minutePer day
Free10010,000
Startup1,0001,000,000
Enterprisecustomcustom

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:

draftin_reviewpublishedarchived

Published 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:

Accuracy≥ 80

Are stated facts correct?

Citation coverage≥ 60

Are claims backed by sources?

Hallucination rate≤ 10

Inverse — lower is better.

Response quality≥ 70

Useful, structured, complete?

Overall score must be ≥ 75. Continuous eval re-runs weekly and flags packs whose score drops more than 5 points.

Need something not covered here? Email hyperspeedsolutions@gmail.com.