API overview
The Skyelight REST API gives scripts and tools access to the threads in your projects over HTTPS. You can list threads, read one with its page, anchor, source location and screenshot, reply to it, assign it, and set its status to open, deferred or resolved.
The API runs the same operations as the Skyelight MCP server. The local MCP package is a client of this API, so a script can do anything an agent can do through MCP.
To connect a coding agent, use MCP. MCP signs you in with OAuth and returns screenshots as images the agent can read. Use the API for scripts, CI jobs and your own tools.
Base URL
https://app.skyelight.ai/api/v1Request and response bodies are JSON. Send your token as a bearer token in the
Authorization header. See Authentication.
Who can use it
The API is one of Skyelight’s agent tools. To use it:
- You need an owner, admin or collaborator role in the workspace. Reviewers can’t use the API.
- The workspace’s organization must be on the Pro, Team or Enterprise plan. The Free plan doesn’t include agent tools.
Skyelight checks access for each workspace. If you are a collaborator in one organization and a reviewer in another, the API works in the first and returns the reason it refuses in the second. See Plans and billing and Roles and permissions.
Every call acts as you. Skyelight has no service accounts. A reply posted through the API appears under your name, sends the same notifications as a reply in the app, and reaches only the workspaces your account reaches.
How the data fits together
| Term | What it is |
|---|---|
| Workspace | A team’s space, with its members, roles and settings. Access is checked per workspace. |
| Project | A body of work in a workspace. Every thread belongs to one project. |
| Item | A thread: the first message pinned to an element on a page, with its replies. Most endpoints take an item ID. |
| Reply | A response inside a thread. Endpoints take the thread’s ID, never a reply’s. |
| Status | open, deferred (valid work, postponed) or resolved. |
| Type | A thread’s classification, such as bug, idea or feedback. Each workspace can define its own types. |
Timestamps are milliseconds since the Unix epoch (UTC).
Quick start
List open threads
curl "https://app.skyelight.ai/api/v1/items?projectId=PROJECT_ID&status=open" \ -H "Authorization: Bearer $SKYELIGHT_API_TOKEN"The response starts with a summary of the whole project (totals, and counts by type and by page), then one row per matching thread. To read a thread in full, request
/api/v1/items/ITEM_IDwith the row’sid.
Calling it from a browser
Every route answers CORS preflight requests, so a web page can call the API. Any code running in the page can read the token it uses. Only call the API from a browser in tools used by the token’s owner.
Next
- Authentication: tokens, lifetimes and revoking
- Endpoints: every route, with parameters and examples
- Errors and limits: status codes, refusals and rate limits