> ## Documentation Index
> Fetch the complete documentation index at: https://docs.nikiwa.com/llms.txt
> Use this file to discover all available pages before exploring further.

# API Overview

> The Nikiwa public Tools API, a REST surface for discovering and executing blockchain analysis tools.

<Note>
  **Preview.** The Tools API is not yet generally available. Access requires a key with the `api:call` scope, which is provisioned on request rather than self-serve. To build against Nikiwa today, use the [MCP server](/mcp/overview), which works with a key you create in the app. [Contact the team](https://nikiwa.com) to request Tools API access.
</Note>

The Nikiwa Tools API exposes a curated set of analysis tools as a REST API. Each tool takes exact inputs and returns a structured data object, the same data the app renders as [modules](/product/modules), handed to you raw.

<Info>
  The Tools API is deterministic and data-only. It does not route intent, interpret, or synthesize; that reasoning is your application's job. For a reasoning layer over the same tools, connect an assistant via the [MCP server](/mcp/overview).
</Info>

## Base URL

```
https://pro-api.nikiwa.com
```

## The two surfaces

The API separates discovery (cheap, read-only) from execution (heavy).

| Method | Path                      | Purpose                                    | Auth                                     |
| ------ | ------------------------- | ------------------------------------------ | ---------------------------------------- |
| `GET`  | `/api/tools`              | List available tools and their input specs | [API key](/api-reference/authentication) |
| `GET`  | `/api/tools/openapi.json` | OpenAPI spec for the public tools          | None                                     |
| `POST` | `/api/tools/{tool_name}`  | Execute a tool and return its result       | [API key](/api-reference/authentication) |

<Note>
  Only a curated allowlist of tools is public. A tool that is not on the allowlist returns `404`; it is neither listed by discovery nor callable. The full tool set is available through the [MCP server](/mcp/overview).
</Note>

## Typical flow

<Steps>
  <Step title="Get a key">
    Request a key with the `api:call` scope. See [Authentication](/api-reference/authentication).
  </Step>

  <Step title="Discover">
    Call `GET /api/tools` to see which tools exist and what inputs each expects.
  </Step>

  <Step title="Execute">
    Call `POST /api/tools/{tool_name}` with the tool's inputs as a JSON body.
  </Step>
</Steps>

## Response shape

Every tool returns a JSON object. On success that is the tool's data. When a tool has nothing to return, or hits a problem, it returns a status marker instead:

<CodeGroup>
  ```json No data theme={null}
  { "status": "no_data" }
  ```

  ```json Error theme={null}
  { "status": "error", "message": "Human-readable explanation" }
  ```
</CodeGroup>

See [Errors & status](/api-reference/errors) for the full contract.

<Card title="Authenticate" icon="key" href="/api-reference/authentication">
  How to pass your API key.
</Card>
