# Documentation

<!-- https://antecedint.com/docs -->

Documentation

# Get connected

Prior-art search, patent-space geometry and §112 claim checks over 10.5M US patent applications, free to search. Connect your assistant over MCP, or take three steps to a working API call.

Sign in and your free key is issued on the spot. Then these examples fill in with it and run.

## 1. Get a key

Sign in and your key is issued on the spot, free. No form, no card, no waiting.

That key is the only credential. There is no separate secret and no token exchange. It goes in one header on every request:

```
Authorization: Bearer ak_live_...
```

You see it once, on the page that issues it. We store a salted PBKDF2 hash and nothing else, so we cannot show it again; if you lose it, rotate it from the same page. The first 16 characters are a public handle you can quote to us or grep your own logs for.

Searching is free. A new key starts on the free Evaluate plan: over REST that is 200 context searches a day (`ask`, without the reranker), and over MCP on your own key search has no daily limit, only the key's per-minute ceiling. The key also gets 500 credits a month for the rerank and the tools, where a prior-art search costs 10 and a claim lookup 1. Prior-art search runs model inference per uncached call, which is why the tools are metered. Building Antecedint into a platform? Email [accelerate@antecedint.com](mailto:accelerate@antecedint.com?subject=Antecedint%20quota) about volume.

## 2. Make a call

Start with `locate`. It takes plain English, answers in about a second, and is the quickest way to confirm a key works. Set your key and run this:

```
curl -sS "https://mcp.antecedint.com/api/v1/patent-map/locate" \
  -H "Authorization: Bearer $ANTECEDINT_API_KEY" \
  -H 'Content-Type: application/json' \
  -d '{"query":"phase-change material for battery thermal management","topK":5}'
```

Base URL is `https://mcp.antecedint.com/api/v1` for every endpoint. If this returns 401, the key is wrong or expired; anything else means you are connected.

## 3. Read the response

Every retrieval endpoint answers in this shape: a ranked array, and enough metadata to know what you are looking at. Learn it once here and the rest of the API reads the same way.

```
{
  "landing": { "x": 4.812, "y": -1.093, "z": 2.446 },
  "neighbors": [
    {
      "appNum": "16412088",
      "score": 0.8814,
      "section": "H",
      "artUnit": "1727",
      "filingDate": "2019-05-14",
      "x": 4.771, "y": -1.02, "z": 2.503
    }
  ],
  "count": 5,
  "timestamp": "2026-08-14T09:12:44.108Z"
}
```

| Field | What to do with it |
|---|---|
| neighbors[].appNum | US application number. This is your join key, and what you link a user to. |
| neighbors[].score | Cosine similarity, 0 to 1. Higher is closer. This is the ranking; the array is already sorted by it. |
| neighbors[].section | CPC section letter (A–H, Y). Cheap way to group or colour results without a second lookup. |
| neighbors[].x / y / z | Position in the shared 3D map frame. For drawing, not for measuring: rank by score instead. |
| landing | Where the query itself sits, weighted from the top hits. Not a patent, and it has no appNum. |
| count | How many neighbours came back, which can be fewer than the topK you asked for. |

The one trap worth knowing early: rank and distance disagree. Neighbours are sorted by `score`, which is similarity in the 768-dimension embedding space. The x, y and z coordinates are a 3D projection of that space for drawing. Two points close on screen are not necessarily the closest match, so never re-sort by coordinate distance and call it relevance.

## Cold start and warm-up

The encoders behind `search_prior_art` and `locate_in_patent_space` are unloaded when the service has been idle. The first call after that loads them, and it takes 60 to 80 seconds; every call after it answers at full speed. Lookups that do not encode text (classification, examiners, MPEP sections, form paragraphs) are never cold.

To take the wait out of a user's first query, call `/api/v1/warmup` (free, no credits) when your session starts; it reports whether the encoders are resident and, if not, an estimate of the seconds until they are. The MCP server exposes the same through `get_status` with `warm` set to true.

## Where to go next

You are connected. Pick how you want to work: your assistant over MCP, or your own code over REST.

REST API

All 40 endpoints, with parameters, status codes and a response for each. Use this when you build on the data from your own code or platform.

Reference →

MCP server

The same capabilities as 38 tools for Claude, ChatGPT, Cursor or any MCP client. Search there has no daily limit. One URL, no session.

Connect your assistant →

Both reach the same data with the same key: an MCP tool call runs the REST endpoint behind it. When a record is wrong, ask your assistant to report it with submit_data_feedback. A person reviews every report, and an accepted one goes into the next build of that data garden and earns you credits.

Rather see it run first?

The sandbox runs a live query and shows the exact call your client would make. Sign in and it runs on your own key.

Building against this with a code generator? The whole reference is available as [openapi.json](https://antecedint.com/openapi.json), [llms.txt](https://antecedint.com/llms.txt) and [llms-full.txt](https://antecedint.com/llms-full.txt), all generated from the same source as these pages.
