Norano API

Getting started

Base URL, get an API key, your first call, and the machine-discovery surface.

Base URL

All requests go to the versioned gateway under your Norano origin:

https://norano.ai/api/v1

The /v1 major never breaks within the major version. Deprecations are announced with Deprecation + Sunset headers and a window.

Get an API key

API keys are decoupled from the browser/Clerk session. A key looks like norano_sk_live_… (live) or norano_sk_test_… (test mode).

The plaintext key is shown once at creation and is never retrievable. Store it securely. See authentication for scopes and test vs live.

Your first call

Send the key as a bearer token:

GET /api/v1/projects
Authorization: Bearer norano_sk_live_…
{ "object": "list", "data": [], "has_more": false, "url": "/api/v1/projects" }

Single objects are returned bare with an object discriminator; lists are wrapped with cursor pagination (limit, starting_after/ending_before, has_more, next_cursor). Every response echoes a Request-Id header.

The machine-discovery surface

An agent with only the base URL can bootstrap from these (all public, no key):

  • GET /api/v1/openapi.json — the OpenAPI 3.1 document. Send Accept: text/markdown (or use /api/v1/openapi.md) for Markdown.
  • GET /llms.txt — a curated, LLM-oriented map of the API.
  • GET /llms-full.txt — the whole-corpus blob (map + error catalog + enums + the full OpenAPI JSON) for a single-shot context load.
  • GET /.well-known/oauth-protected-resource and the MCP manifest — advertise the MCP server URL and the auth scheme.

Point an agent at the MCP server

Norano runs a remote MCP server (Streamable HTTP). Add it to any MCP-capable assistant — ChatGPT, Claude, or your own host — with an API key as the bearer token. The server only exposes the tools your key’s scopes allow.

https://mcp.norano.ai/mcp

Host config

{
  "mcpServers": {
    "norano": {
      "type": "http",
      "url": "https://mcp.norano.ai/mcp",
      "headers": {
        "Authorization": "Bearer norano_sk_live_…"
      }
    }
  }
}