# API reference

All endpoints are `POST` to `https://api.solprobe.xyz`, take a JSON body, and return JSON. Scanner endpoints take a single Solana SPL **mint address**.

| Service                                                  | Endpoint                                    | Price        | SLA   |
| -------------------------------------------------------- | ------------------------------------------- | ------------ | ----- |
| [Quick scan](/reference/api-reference/quick-scan.md)     | `POST /scan/quick`                          | $0.02        | < 5s  |
| [Market intel](/reference/api-reference/market-intel.md) | `POST /market/intel`                        | $0.20        | < 10s |
| [Deep dive](/reference/api-reference/deep-dive.md)       | `POST /scan/deep`                           | $0.50        | < 30s |
| [Trade (BYOW)](/reference/api-reference/trade.md)        | `POST /trade/quote` → `POST /trade/execute` | free → $0.15 | < 15s |

## Common request field

| Field           | Type   | Required | Description                                   |
| --------------- | ------ | -------- | --------------------------------------------- |
| `token_address` | string | Yes      | Solana SPL mint address — base58, 32–44 chars |

{% hint style="warning" %}
**Solana tokens only.** `token_address` is an SPL mint, not an EVM `0x…` address and not a ticker. Invalid input returns `INVALID_ADDRESS` (HTTP 400).
{% endhint %}

## Response envelope

Every successful response includes:

| Field             | Type      | Meaning                                          |
| ----------------- | --------- | ------------------------------------------------ |
| `schema_version`  | string    | Always `"2.0"`                                   |
| `data_confidence` | enum      | `HIGH` · `MEDIUM` · `LOW`                        |
| `data_quality`    | enum      | `FULL` · `PARTIAL` · `LIMITED`                   |
| `missing_fields`  | string\[] | Inputs that couldn't be fetched                  |
| `confidence`      | object    | `{ model, data_completeness, signal_consensus }` |

{% hint style="info" %}
SolProbe degrades gracefully and **never returns a hard error to a caller**. If a source is down, it lowers `data_quality`/`data_confidence` and lists `missing_fields` rather than failing.
{% endhint %}

The canonical machine-readable schemas live at [`/openapi.json`](https://api.solprobe.xyz/openapi.json) and [`/llm.txt`](https://api.solprobe.xyz/llm.txt) — if anything here ever disagrees, trust the live endpoint.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.solprobe.xyz/reference/api-reference.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
