# SpectralBot Public Signals API > HTTPS API for live prediction-market contest snapshots and Cotes AI signals (JSON + SSE). Base URL: https://api.cotes.ai. Authenticate with `Authorization: Bearer `. Generate a key under Account -> API keys at https://app.cotes.ai — shown once at creation, and it carries your account's access. 401 = missing/unknown/revoked key; 402 = valid key, lapsed trial or subscription. There is no first-party SDK. Call the API directly. Use the series prefix (e.g. `KXBTC15M`) for active contest and stream; use the full ticker only for `/v1/contests/{ticker}`. Apply your own signal thresholds — the API returns Cotes AI signals with confidence, entry price, edge, and outcome. ## Docs - [Getting started](https://spectralbot.cotes.ai/docs/): Base URL, quickstart curl, endpoint list - [Authentication](https://spectralbot.cotes.ai/docs/authentication/): How to send the API key - [Contests & signals](https://spectralbot.cotes.ai/docs/contests/): Contest and signal field shapes - [Streaming (SSE)](https://spectralbot.cotes.ai/docs/streaming/): Live event stream - [Rate limits](https://spectralbot.cotes.ai/docs/rate-limits/): 5 req/s per IP, burst 20, 429 handling - [Errors](https://spectralbot.cotes.ai/docs/errors/): problem+json error format - [API reference](https://spectralbot.cotes.ai/docs/reference/): OpenAPI-generated reference - [OpenAPI YAML](https://spectralbot.cotes.ai/docs/openapi.yaml): Machine-readable contract - [Agent prompts](https://spectralbot.cotes.ai/docs/agents/): Sample prompts for coding agents ## Endpoints - `GET https://api.cotes.ai/v1/health` — liveness (no auth) - `GET https://api.cotes.ai/v1/contests/active?series={series}` — live contest + signals (API key) - `GET https://api.cotes.ai/v1/contests?series={series}&limit={n}` — settled history, newest first (API key) - `GET https://api.cotes.ai/v1/contests/{ticker}` — contest by full ticker (API key) - `GET https://api.cotes.ai/v1/stream/contests?series={series}` — SSE stream (API key) ## SSE events - `contest.opened` — contest JSON - `signal.emitted` — `{ signal, contest }` - `contest.settled` — settled contest JSON ## Optional - [SpectralBot marketing site](https://spectralbot.cotes.ai/): Product site - [Discord](https://discord.gg/PNxQvcr3j): Community and support