# Notra Documentation > Documentation for Notra: track your brand across AI answer engines and turn your team's work into content. - [Welcome to Notra](https://www.usenotra.com/docs/overview.md): See how AI answer engines talk about your brand, track competitors and AI traffic, and close the gaps with content - [Quickstart](https://www.usenotra.com/docs/quickstart.md): Set up your workspace, run your first GEO scan, and generate your first post - [How Notra Works](https://www.usenotra.com/docs/concepts/how-it-works.md): Understand the two loops inside Notra: the GEO visibility loop that scans AI engines, and the Studio content loop that turns activity into publish-ready drafts. - [Content Pipeline](https://www.usenotra.com/docs/concepts/content-pipeline.md): Explore the Studio pipeline that turns engineering and product activity into publish-ready drafts, and how GEO Write feeds the same pipeline from content gaps. - [Brand Voice](https://www.usenotra.com/docs/concepts/brand-voice.md): Learn how brand identities shape generated content: company profile, tone, language, audience, custom instructions, references and guidelines. - [GEO Overview](https://www.usenotra.com/docs/geo/overview.md): Track how AI answer engines mention your brand: projects, scans, engines, and the visibility dashboard - [Prompts and Competitors](https://www.usenotra.com/docs/geo/prompts-and-competitors.md): Manage the questions Notra asks AI engines, multi-turn conversations, and the competitors it watches for in answers - [AI Traffic](https://www.usenotra.com/docs/geo/traffic.md): Capture visits from AI crawlers and AI referrals with the @usenotra/geo tracker and read them in the Traffic page or the API - [Agent Readiness](https://www.usenotra.com/docs/geo/agent-readiness.md): Score how well AI agents can discover, understand, and use your website, and track the score over time - [Content Gaps and Writer](https://www.usenotra.com/docs/geo/content-gaps-and-writer.md): Find the questions AI engines answer without you, plan a brief, approve it, and let the writer draft the article. Plus the GEO settings page. - [Changelogs](https://www.usenotra.com/docs/content/changelogs.md): Generate changelogs from GitHub and Linear activity, review them in the editor, and publish them to your site - [Blog Posts](https://www.usenotra.com/docs/content/blog-posts.md): Generate blog posts from your development activity or from a GEO content brief, refine them with the content agent, and publish - [Social Media Posts](https://www.usenotra.com/docs/content/social-media.md): Generate LinkedIn and X posts from your development activity, connect your accounts, and publish straight from the editor - [Automation Overview](https://www.usenotra.com/docs/automation/overview.md): How Notra turns shipped work into content on its own: Iris, schedules, and event triggers - [Event-Based Automation](https://www.usenotra.com/docs/automation/event-based.md): Trigger content generation when a GitHub release is published or code lands on the default branch - [Scheduled Automation](https://www.usenotra.com/docs/automation/scheduled.md): Generate content daily, weekly, or monthly from repository and Linear activity in a lookback window - [Integrations Overview](https://www.usenotra.com/docs/integrations/overview.md): Connect GitHub, Linear, Slack, Granola, Google Search Console, Framer, Raycast, and MCP servers to Notra - [GitHub Integration](https://www.usenotra.com/docs/integrations/github.md): Install the Notra GitHub App, pick repositories, and generate content from commits, merged pull requests, and releases - [Linear](https://www.usenotra.com/docs/integrations/linear.md): Authorize a Linear workspace with OAuth and use completed issues as a data source for changelogs, blog posts, and social posts. - [Slack Integration](https://www.usenotra.com/docs/integrations/slack.md): Install the Notra agent in Slack to chat, draft, and approve content from threads, mirrored into the dashboard - [Granola](https://www.usenotra.com/docs/integrations/granola.md): Connect Granola with an API key so the Notra agent can read meeting notes, AI summaries, and transcripts - [Google Search Console](https://www.usenotra.com/docs/integrations/google-search-console.md): Turn the search queries you already rank for into suggested GEO prompts, refreshed weekly - [Framer](https://www.usenotra.com/docs/integrations/framer.md): Import Notra content into Framer with the Notra marketplace plugin. - [Featul (Community)](https://www.usenotra.com/docs/integrations/featul.md): Import Notra changelog content into Featul. - [Kontentspace (Community)](https://www.usenotra.com/docs/integrations/kontentspace.md): The Kontentspace connector for the Notra MCP is no longer available - [Workspace Setup](https://www.usenotra.com/docs/organization/workspace-setup.md): Create your organization, complete onboarding, and configure workspace settings and brand identity - [Team Management](https://www.usenotra.com/docs/organization/team-management.md): Invite team members, assign the owner, admin, and member roles, and manage pending invitations - [Billing & Plans](https://www.usenotra.com/docs/organization/billing.md): Starter, Growth, and Scale plans, the zero data retention add-on, AI credits, invoices, and usage tracking - [CLI](https://www.usenotra.com/docs/devtools/cli.md): Sign in once, then manage posts, brand identities, integrations, schedules, and GEO projects from the terminal with the notra CLI. - [MCP Server](https://www.usenotra.com/docs/devtools/mcp.md): Connect the hosted Notra MCP server to Claude, Cursor, ChatGPT, and other AI tools with OAuth or an API key, and bring your own MCP servers into Notra. - [Raycast Extension](https://www.usenotra.com/docs/devtools/raycast.md): Browse and copy posts, create content, and manage brand identities and integrations from Raycast. - [Getting Started](https://www.usenotra.com/docs/api/getting-started.md): Call the Notra API: base URL, API keys, the TypeScript SDK, and a map of every endpoint group. - [Authentication](https://www.usenotra.com/docs/api/authentication.md): Authenticate requests to the Notra API with API keys or OAuth access tokens, and understand scopes and auth errors. - [Rate Limits](https://www.usenotra.com/docs/api/rate-limits.md): Per-key, per-organization and per-IP rate limits on generation, chat, GEO and feedback endpoints, and the headers that report them. - [Rust and other languages](https://www.usenotra.com/docs/api/rust-sdk.md): The community Rust crate is no longer available. Generate a client from the OpenAPI document or call the API with reqwest. - [Caching](https://www.usenotra.com/docs/api/caching.md): Cache paginated Notra post data safely in your application, including cache key design and invalidation patterns. - [Common Tasks](https://www.usenotra.com/docs/api/common-tasks.md): Practical Notra API examples: update a post, generate content, read GEO visibility and trigger a scan. - [Pagination](https://www.usenotra.com/docs/api/pagination.md): Page through posts, feedback and GEO scan history with page and limit. - [TypeScript Types](https://www.usenotra.com/docs/api/types.md): TypeScript type definitions and Zod schemas for Notra API post responses and errors. - [Agent Feedback](https://www.usenotra.com/docs/api/agent-feedback.md): Add a submit_feedback tool to your MCP server so AI agents using your product can report bugs, request features and leave praise in your Notra inbox. - [Webhooks Overview](https://www.usenotra.com/docs/api/webhooks/overview.md): Inbound GitHub webhooks, outbound generation events and polling alternatives - [Webhook Events](https://www.usenotra.com/docs/api/webhooks/events.md): Reference for the GitHub webhook events Notra processes, how they are filtered, and what they trigger - [Outbound webhooks](https://www.usenotra.com/docs/api/webhooks/outbound.md): Get Notra events at your own endpoint and see every delivery attempt. - [Check public API reachability](https://www.usenotra.com/docs/api-reference/discovery/check-public-api-reachability.md) - [List posts](https://www.usenotra.com/docs/api-reference/content/list-posts.md): Returns posts for the organization the API key belongs to, newest first by default. Only published posts are included unless you pass status=draft,published. - [Get a single post](https://www.usenotra.com/docs/api-reference/content/get-a-single-post.md): Returns the post. When no post with this ID exists in your organization, the response is still 200 with post set to null. - [Update a single post](https://www.usenotra.com/docs/api-reference/content/update-a-single-post.md): Updates any combination of title, slug, markdown, and status. Sending markdown re-renders the stored HTML, and when title is omitted it is taken from the first heading in the markdown, keeping the existing title when the markdown has no heading. Slugs are only accepted for blog posts and changelogs.… - [Delete a single post](https://www.usenotra.com/docs/api-reference/content/delete-a-single-post.md) - [Queue async post generation](https://www.usenotra.com/docs/api-reference/content/queue-async-post-generation.md): Queues a generation job for one content type and returns 202 with the job. Select sources with integrations.github, integrations.linear, or github.repositories; when no selector is given at all, every connected GitHub integration is used. Poll GET /v1/posts/generate/{jobId} until job.status is compl… - [Get async post generation status](https://www.usenotra.com/docs/api-reference/content/get-async-post-generation-status.md): Returns the job and its event log. job.status moves from queued to running and ends as completed, failed, or skipped. job.postId is set once the post has been created; fetch it with GET /v1/posts/{postId}. - [List available brand identities](https://www.usenotra.com/docs/api-reference/content/list-available-brand-identities.md): Returns every brand identity in the organization, default identity first. - [Get a single brand identity](https://www.usenotra.com/docs/api-reference/content/get-a-single-brand-identity.md): Returns the brand identity. When no brand identity with this ID exists in your organization, the response is still 200 with brandIdentity set to null. - [Update a single brand identity](https://www.usenotra.com/docs/api-reference/content/update-a-single-brand-identity.md): Updates brand identity fields. Pass isDefault: true to make the target brand identity the organization's default. - [Delete a single brand identity](https://www.usenotra.com/docs/api-reference/content/delete-a-single-brand-identity.md): Deletes a non-default brand identity and disables any automation triggers that reference it. - [Queue async brand identity generation](https://www.usenotra.com/docs/api-reference/content/queue-async-brand-identity-generation.md): Creates the brand identity immediately, then queues a website analysis that fills in company details, tone, and audience. The first brand identity in an organization becomes the default. Poll GET /v1/brand-identities/generate/{jobId} until job.status is completed or failed. - [Get async brand identity generation status](https://www.usenotra.com/docs/api-reference/content/get-async-brand-identity-generation-status.md): Returns the analysis job. job.status moves from queued to running and ends as completed or failed; job.step shows the current stage while running. Fetch the finished identity with GET /v1/brand-identities/{brandIdentityId}. - [List available integrations](https://www.usenotra.com/docs/api-reference/content/list-available-integrations.md): Returns the enabled GitHub and Linear integrations for the organization. The slack array is always empty. - [Create a GitHub integration](https://www.usenotra.com/docs/api-reference/content/create-a-github-integration.md): Checks that the repository can be read (a personal access token is required for private repositories), connects it, and enables changelog generation for it; blog post and X post outputs start disabled. A webhook secret is generated on creation. Copy the payload URL and secret from the dashboard to r… - [Delete a single integration](https://www.usenotra.com/docs/api-reference/content/delete-a-single-integration.md): Deletes a GitHub or Linear integration. Schedules and event triggers that target the integration are disabled and listed in the response. - [List schedules](https://www.usenotra.com/docs/api-reference/schedules/list-schedules.md): Returns the organization's cron schedules, newest first. repositoryMap maps each targeted GitHub integration ID to an owner/repo label. - [Create a schedule](https://www.usenotra.com/docs/api-reference/schedules/create-a-schedule.md): Creates a recurring schedule that generates one content type from the selected GitHub integrations. Times are in UTC. A schedule with the same source, targets, output, and lookback settings as an existing one is rejected with 409. - [Update a schedule](https://www.usenotra.com/docs/api-reference/schedules/update-a-schedule.md): Replaces the schedule. Send the full schedule body; fields that are omitted are not preserved from the existing schedule. - [Delete a schedule](https://www.usenotra.com/docs/api-reference/schedules/delete-a-schedule.md): Deletes the schedule and stops future runs. Posts generated by earlier runs are kept. - [List event triggers](https://www.usenotra.com/docs/api-reference/event-triggers/list-event-triggers.md) - [Create an event trigger](https://www.usenotra.com/docs/api-reference/event-triggers/create-an-event-trigger.md) - [Get an event trigger](https://www.usenotra.com/docs/api-reference/event-triggers/get-an-event-trigger.md) - [Update an event trigger](https://www.usenotra.com/docs/api-reference/event-triggers/update-an-event-trigger.md) - [Delete an event trigger](https://www.usenotra.com/docs/api-reference/event-triggers/delete-an-event-trigger.md) - [List skills](https://www.usenotra.com/docs/api-reference/skills/list-skills.md): Returns the organization's skills sorted by name, including built-in system skills (isSystem: true). Skill content is omitted; use GET /v1/skills/{name} to read it. - [Create a skill](https://www.usenotra.com/docs/api-reference/skills/create-a-skill.md): Creates a custom skill. Names must be unique within the organization. - [Get a single skill](https://www.usenotra.com/docs/api-reference/skills/get-a-single-skill.md) - [Update a skill](https://www.usenotra.com/docs/api-reference/skills/update-a-skill.md): Updates the name, description, or content of a skill. System skills can be edited but not renamed. - [Delete a skill](https://www.usenotra.com/docs/api-reference/skills/delete-a-skill.md): Deletes a custom skill. System skills cannot be deleted. - [List chats](https://www.usenotra.com/docs/api-reference/chats/list-chats.md): Returns the organization's chat sessions without their messages. Use GET /v1/chats/{chatId} to load a conversation. - [Start a new chat and stream the reply](https://www.usenotra.com/docs/api-reference/chats/start-a-new-chat-and-stream-the-reply.md): Creates a chat session, sends the first message, and streams the assistant reply. Read the X-Chat-Id response header to continue the conversation with POST /v1/chats/{chatId}. - [Get a chat by external channel id](https://www.usenotra.com/docs/api-reference/chats/get-a-chat-by-external-channel-id.md): Looks up the chat session linked to a Discord or Slack channel. Link a chat by passing externalChannelId when you create it. - [Get a single chat with messages](https://www.usenotra.com/docs/api-reference/chats/get-a-single-chat-with-messages.md): Returns the chat session and its full message history in UI message format. - [Post a message to an existing chat and stream the reply](https://www.usenotra.com/docs/api-reference/chats/post-a-message-to-an-existing-chat-and-stream-the-reply.md): Sends a message or resumes pending tool approvals and streams the assistant reply. Earlier messages are included automatically. To approve or deny tools, send approvals: [{ "id": "", "approved": true }] for every pending approval in the latest assistant message, without a message field;… - [Submit feedback to an organization's feedback URL](https://www.usenotra.com/docs/api-reference/feedback/submit-feedback-to-an-organizations-feedback-url.md): Record feedback from an AI agent or integration by posting to the organization's feedback URL, as shown on the Feedback page in the dashboard. No credentials are required. Limited per source IP and per organization. - [Submit feedback with an API key](https://www.usenotra.com/docs/api-reference/feedback/submit-feedback-with-an-api-key.md): Record feedback for the organization that owns the credential. Requires an API key with the feedback.write scope. Agents and MCP servers should post to the organization's feedback URL instead. - [List feedback](https://www.usenotra.com/docs/api-reference/feedback/list-feedback.md) - [Get a single feedback entry](https://www.usenotra.com/docs/api-reference/feedback/get-a-single-feedback-entry.md) - [Update feedback status](https://www.usenotra.com/docs/api-reference/feedback/update-feedback-status.md) - [List GEO projects](https://www.usenotra.com/docs/api-reference/geo/list-geo-projects.md) - [Create a GEO project](https://www.usenotra.com/docs/api-reference/geo/create-a-geo-project.md) - [Get a single GEO project](https://www.usenotra.com/docs/api-reference/geo/get-a-single-geo-project.md) - [Rename a GEO project or relink its brand identity](https://www.usenotra.com/docs/api-reference/geo/rename-a-geo-project-or-relink-its-brand-identity.md) - [Delete a GEO project and all of its GEO data](https://www.usenotra.com/docs/api-reference/geo/delete-a-geo-project-and-all-of-its-geo-data.md): Cascades to the project's GEO settings, prompts, sequences, competitors, scans, checks and reports, and cancels any pending scheduled scan. Agent feedback is kept but detached. The organization's last project cannot be deleted. - [Get a project's GEO settings](https://www.usenotra.com/docs/api-reference/geo/get-a-projects-geo-settings.md) - [Replace a project's GEO settings](https://www.usenotra.com/docs/api-reference/geo/replace-a-projects-geo-settings.md): Writes the full settings document and re-arms the recurring scan. Engines must be ids from the model catalog this organization can see (the ones `GET /geo/settings` returns) and languages must be supported languages; an unknown value is rejected with a 400 instead of being replaced by a default. Zer… - [List tracked GEO prompts](https://www.usenotra.com/docs/api-reference/geo/list-tracked-geo-prompts.md): Returns custom prompts alongside the prompts derived automatically from the project's brand context. - [Track a new GEO prompt](https://www.usenotra.com/docs/api-reference/geo/track-a-new-geo-prompt.md) - [Update a tracked GEO prompt](https://www.usenotra.com/docs/api-reference/geo/update-a-tracked-geo-prompt.md): Enable or disable a tracked prompt, or replace tags on a custom prompt. - [Stop tracking a GEO prompt](https://www.usenotra.com/docs/api-reference/geo/stop-tracking-a-geo-prompt.md) - [Bulk import GEO prompts](https://www.usenotra.com/docs/api-reference/geo/bulk-import-geo-prompts.md): Accepts either structured `rows` or raw `csv` text. Prompts that already exist are skipped, not duplicated. - [List GEO prompt sequences](https://www.usenotra.com/docs/api-reference/geo/list-geo-prompt-sequences.md) - [Create a GEO prompt sequence](https://www.usenotra.com/docs/api-reference/geo/create-a-geo-prompt-sequence.md) - [Update a GEO prompt sequence](https://www.usenotra.com/docs/api-reference/geo/update-a-geo-prompt-sequence.md) - [Delete a GEO prompt sequence](https://www.usenotra.com/docs/api-reference/geo/delete-a-geo-prompt-sequence.md) - [Run a GEO prompt sequence now](https://www.usenotra.com/docs/api-reference/geo/run-a-geo-prompt-sequence-now.md): Runs the sequence synchronously and answers with its result. The call is not queued: the request stays open for the whole run, which plays every turn against every available answer engine and can take several minutes. Use a client timeout of at least five minutes; after four minutes the API stops wa… - [List tracked GEO competitors](https://www.usenotra.com/docs/api-reference/geo/list-tracked-geo-competitors.md) - [Create or update a tracked GEO competitor](https://www.usenotra.com/docs/api-reference/geo/create-or-update-a-tracked-geo-competitor.md): Matches on name, case-insensitively. Send `previousName` to rename an existing competitor. Returns the full competitor list. - [Suggest GEO competitors for a domain](https://www.usenotra.com/docs/api-reference/geo/suggest-geo-competitors-for-a-domain.md): Discovers likely competitors for a website. Results are cached per organization and domain. - [Stop tracking a GEO competitor](https://www.usenotra.com/docs/api-reference/geo/stop-tracking-a-geo-competitor.md) - [Bulk import GEO competitors](https://www.usenotra.com/docs/api-reference/geo/bulk-import-geo-competitors.md): Accepts either structured `rows` or raw `csv` text. Existing competitors are updated in place rather than duplicated. - [Trigger a GEO scan](https://www.usenotra.com/docs/api-reference/geo/trigger-a-geo-scan.md): Queues a scan with the Notra dashboard, which owns the model credentials and billing gates. The public API never calls an answer engine itself. The scan record is created before the hand-off, so `scanId` is immediately readable via `GET /v1/projects/{projectId}/geo/scans/{scanId}`. Poll `statusUrl`… - [List GEO scans](https://www.usenotra.com/docs/api-reference/geo/list-geo-scans.md): Lists scans with planned, completed, mentioned, and explicitly failed check totals by engine. Failed scans include safe failure metadata when available. - [Get a single GEO scan](https://www.usenotra.com/docs/api-reference/geo/get-a-single-geo-scan.md): Returns scan status, check progress and mentions by engine, plus safe failure metadata for failed scans. Legacy scans without a saved plan report null planned totals. - [Get mention rates per engine](https://www.usenotra.com/docs/api-reference/geo/get-mention-rates-per-engine.md): Checks, mentions and average position for every answer engine the project tracks. Pass `days` for a rolling window, or `from`/`to` for an explicit one. - [Get daily mention counts per engine](https://www.usenotra.com/docs/api-reference/geo/get-daily-mention-counts-per-engine.md): One point per day and engine. Pass `days` for a rolling window, or `from`/`to` for an explicit one. - [Get the latest answer per prompt and engine](https://www.usenotra.com/docs/api-reference/geo/get-the-latest-answer-per-prompt-and-engine.md): The stored answer text, mention position, sentiment and grounding sources for each tracked prompt. Pass `days` for a rolling window, or `from`/`to` for an explicit one. - [Get share of voice across tracked brands](https://www.usenotra.com/docs/api-reference/geo/get-share-of-voice-across-tracked-brands.md): Mention counts per brand with a per-brand trend, plus the daily timeseries behind it. Pass `days` for a rolling window, or `from`/`to` for an explicit one. - [Get mention rates per tracked language](https://www.usenotra.com/docs/api-reference/geo/get-mention-rates-per-tracked-language.md): Checks, mentions and average position broken down by language. Pass `days` for a rolling window, or `from`/`to` for an explicit one. - [Get one competitor's mention history](https://www.usenotra.com/docs/api-reference/geo/get-one-competitors-mention-history.md): Daily mentions and the prompts that produced them for a single brand. Without a window this falls back to the competitor-detail default rather than the project default, matching the dashboard. - [List content gaps](https://www.usenotra.com/docs/api-reference/geo/list-content-gaps.md): Prompts where competitors are mentioned and this brand is not, plus Search Console queries with no tracked prompt. Each row carries the brief already written for it, when there is one. - [List content briefs](https://www.usenotra.com/docs/api-reference/geo/list-content-briefs.md) - [Plan a content brief](https://www.usenotra.com/docs/api-reference/geo/plan-a-content-brief.md): Researches the topic and writes a brief, then saves it as a draft article. This books AI credits and is billed. Planning happens inside Notra, which owns the model credentials. Set `autoApprove` to start the writer in the same call. When `sourceKind` and `sourceId` point at a gap that already has an… - [Get a single content brief](https://www.usenotra.com/docs/api-reference/geo/get-a-single-content-brief.md) - [Approve a brief and start the writer](https://www.usenotra.com/docs/api-reference/geo/approve-a-brief-and-start-the-writer.md): Claims the brief and queues the writer with the Notra dashboard. Only briefs in `draft` or `failed` can be approved; anything else returns 409. - [Get the latest agent readiness report](https://www.usenotra.com/docs/api-reference/geo/get-the-latest-agent-readiness-report.md): The most recent completed report for the project's website, any newer run still in flight or failed, and the score history. Returns stored data only; it never starts a scan. - [Start an agent readiness scan](https://www.usenotra.com/docs/api-reference/geo/start-an-agent-readiness-scan.md): Queues a readiness scan for the project's website. A scan already running against the same URL is reused rather than duplicated, in which case `alreadyRunning` is true. - [Get AI traffic totals and sources](https://www.usenotra.com/docs/api-reference/geo/get-ai-traffic-totals-and-sources.md): Crawler and AI-referral visit totals, a per-source breakdown and the daily timeseries behind it. - [Get recent AI traffic events](https://www.usenotra.com/docs/api-reference/geo/get-recent-ai-traffic-events.md): The most recent individual requests from AI crawlers and referrals. This endpoint has no window; use `limit` to bound it. Pass `host` to keep the newest events for that hostname and its subdomains. - [List AI traffic journeys](https://www.usenotra.com/docs/api-reference/geo/list-ai-traffic-journeys.md): Sessions grouped by journey: how many pages one agent read, over what span, and a sample of the paths. - [Get one journey's events](https://www.usenotra.com/docs/api-reference/geo/get-one-journeys-events.md) - [List the most visited pages](https://www.usenotra.com/docs/api-reference/geo/list-the-most-visited-pages.md): Which paths AI crawlers and referrals read most, with the previous window's count for comparison. Pass `host` to rank pages for that hostname and its subdomains before applying `limit`. - [Get the install snippets](https://www.usenotra.com/docs/api-reference/geo/get-the-install-snippets.md): The endpoint and framework snippets needed to send AI traffic to Notra. The snippets read the token from an environment variable; the token itself is issued by `POST /geo/ingest/token`, which requires a write scope. - [Issue the tracking token](https://www.usenotra.com/docs/api-reference/geo/issue-the-tracking-token.md): Returns the current tracking token together with the install snippets. Pass `projectId` for a project-specific token; without it, the legacy token only accepts the organization's oldest project's hosts. Issuing does not invalidate previously issued tokens; use rotation for that. - [Rotate the tracking token](https://www.usenotra.com/docs/api-reference/geo/rotate-the-tracking-token.md): Invalidates every tracking token previously issued for this organization and returns a fresh one. Deployments still sending the old token stop being accepted immediately. - [Start a durable agent session](https://www.usenotra.com/docs/api-reference/agent/start-a-durable-agent-session.md): The exact eve session protocol the Notra dashboard uses, proxied through API auth. Point any eve client (eve/client, useEveAgent) at /v2 as its host with your API key as a bearer token. Returns the session id and continuation token; stream events from GET /v2/eve/v1/session/{sessionId}/stream. - [Send a follow-up message or answer a pending input request](https://www.usenotra.com/docs/api-reference/agent/send-a-follow-up-message-or-answer-a-pending-input-request.md): Sends the next turn of an agent session. The server binds the session's stored continuation token, so the client-provided one is ignored. Answer input.requested events (tool approvals, questions) from the event stream via inputResponses. - [Stream an agent session's events](https://www.usenotra.com/docs/api-reference/agent/stream-an-agent-sessions-events.md): Durable, replayable eve session event stream (newline-delimited JSON). Pass startIndex to resume from a known position. Includes input.requested events for tool approvals. - [List agent sessions](https://www.usenotra.com/docs/api-reference/agent/list-agent-sessions.md) ## OpenAPI Specs - [openapi](https://api.usenotra.com/openapi.json) This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.