# Glasser > One key, no contract, pay per call, across paid APIs bought wholesale. - [Welcome](https://glasser.ai/docs/index.md): Search, inspect, and run paid API capabilities under one key. - [How It Works](https://glasser.ai/docs/how-it-works.md): The model behind every surface: endpoints, prices with charge clauses, the run lifecycle, idempotent retries, and workspace policy. - [Set up with Skill](https://glasser.ai/docs/setup-skill.md): One line into your agent's chat: it installs the CLI, logs in through the browser, and learns the rules by itself. - [Set up with MCP](https://glasser.ai/docs/mcp-server.md): Connect any MCP client that can send a header: search, inspect and run paid endpoints under one Key. - [Search runnable endpoints](https://glasser.ai/docs/api-reference/endpoints/search.md): Searches the data sources by keyword and returns ranked endpoint summaries, each identified by provider, endpoint, and endpoint_version, with its price and run mode. Several providers may sell the same capability; the ranking is relevance-only and the price is shown alongside so the caller chooses.… - [Inspect one endpoint: schemas, price, version](https://glasser.ai/docs/api-reference/endpoints/inspect.md): Returns the full execution contract of one endpoint: the provider-native input JSON Schema, the output JSON Schema when a trustworthy one exists (null otherwise — samples never imply a contract), its source, the price with every charge clause, the current endpoint_version, the run mode, a sample inp… - [List runs](https://glasser.ai/docs/api-reference/runs/list.md): Lists runs in reverse order of creation time, with optional filters on status, provider, and endpoint. This endpoint uses cursor pagination. The list is scoped by the effective policy: runs of an endpoint this key cannot run are not readable either. - [Run an endpoint](https://glasser.ai/docs/api-reference/runs/create.md): Admits one execution: the policy is checked, a hold is reserved for the price's maximum charge, and a run is created. Input is provider-native — construct it against the inspected input_schema. A sync endpoint always answers 200 with the terminal run inside its published timeout_ms — it never return… - [Get run status and output](https://glasser.ai/docs/api-reference/runs/get.md): Returns the current state of one run. When the status is COMPLETED, provider_response is not null: a 2xx body is in output (any JSON shape, null for an empty body), and a non-2xx body is in provider_response.error. When the status is FAILED, failure is not null. Status does not imply that money move… - [Stop a run](https://glasser.ai/docs/api-reference/runs/stop.md): Requests a stop. Dispatch wins the race: if no provider call has been journaled yet, the run becomes STOPPED immediately, its hold is closed, and the charge is 0. If a call has already been journaled, only stop_requested_at is recorded and the run continues to COMPLETED or FAILED — a result that was… - [Get balance, held and available](https://glasser.ai/docs/api-reference/balance/get.md): Returns the balance triple: balance (settled funds), held (reservations for in-flight runs), and available (balance minus held — the number a new run is admitted against). This is also the cheapest authentication probe. - [List every balance movement](https://glasser.ai/docs/api-reference/balance/history.md): Lists every balance movement in reverse time order: charge, refund, topup, grant, and adjustment. Amounts are exact USD decimal strings, signed (a charge is negative): summing them with decimal arithmetic — not floats — reconciles the balance, and each entry carries balance_after_usd. This endpoint… - [CLI Reference](https://glasser.ai/docs/cli.md): Install the glasser CLI, log in through the browser, and run every command — flags, exit codes, JSON mode. ## OpenAPI Specs - [openapi](/docs/openapi.json)