{"entries":[{"href":"/docs/journal-history","slug":"journal-history","group":"Sources and publishing","title":"Read editions and chapters","summary":"Read public weekly editions and chapters, or your private review history, through the same web, API, MCP and CLI services.","text":"Public history Use editions.list or chapters.list with project_id. Public reads require a visible project and return published editions or visible chapters. Public DTOs omit raw edition log IDs, private chapter evidence and unsupported metadata. editions.get accepts project_id, iso_year and iso_week and returns the edition, its public updates and previous/next published weeks.  Complete pagination List operations accept limit from 1 to 100 and an opaque cursor. Continue with nextCursor until it is null. A cursor belongs to its project, visibility and feed filters; do not change those filters between pages. editions.feed pages public editions across projects, with optional project_id and range. tab following requires authentication and updates:read; project tokens remain restricted to that project.  Private review editions.mine and chapters.mine require projects:read and ownership of the requested project. They include draft editions or hidden chapter evidence for review. No new permission scope is added. Existing chapter rename/hide controls still use chapters.update.  API and tools The generic invoke_operation MCP tool and CLI call command use these same validated contracts. Dedicated MCP tools whose canonical input is a union use an input object wrapper so discovery preserves conditional requirements; for example op_voice_import nests its source and URL fields inside input. Generic invoke_operation and REST/CLI retain their canonical input shape. Generated operation references below include the exact input schemas and access rules. GET /api/v2/editions?project_id=7&limit=50\nGET /api/v2/editions/detail?project_id=7&iso_year=2026&iso_week=2\nGET /api/v2/chapters?project_id=7\nindielogs call editions.list '{\"project_id\":7,\"limit\":50}'"},{"href":"/docs/getting-started","slug":"getting-started","group":"Start here","title":"Get started","summary":"Connect a project, choose the evidence IndieLogs may read, and review the first update before anything goes public.","text":"What IndieLogs does IndieLogs turns selected project activity into draft updates for a public maker and project journal. GitHub commits, deploy events, repository notes and coding-agent context can provide evidence. Drafts can be checked against their sources, edited, held or published. A connected source does not mean that its output is automatically public. Publication policy and enabled output channels control what happens after a draft is created.  Set up a project Create or select a project in Settings → Projects. Install the IndieLogs GitHub App and grant access only to repositories you choose. Link a repository to a project. Configure the branch and excluded paths before rebuilding history. Review the discovered commits and reconstructed editions. Publish the history only after reviewing it. Choose an Autopilot policy. The default review policy leaves each draft waiting for you.  Before connecting providers GitHub App, OAuth, AI Gateway, email, billing and social-output integrations depend on deployment configuration as well as your account settings. A setup control in the app does not confirm that the provider credentials, provider account permissions or production delivery are ready. "},{"href":"/docs/autopilot","slug":"autopilot","group":"Product","title":"Autopilot and the press desk","summary":"How source events become reviewable drafts, what the publication policies mean, and when a draft stays held.","text":"Evidence in, draft out The pipeline reads eligible source events for a project, classifies work, prepares a concise draft and checks factual claims and privacy rules. It stores source references and provenance for review. It does not store repository source code as draft evidence. A coding agent can create a source-backed draft through the shared operation registry. That request creates a draft; it does not schedule or publish it.  Publication policies Review: drafts wait for an explicit publish action. Veto: eligible drafts may be scheduled after the configured veto period. A held draft still waits for review. Auto: eligible drafts may be scheduled without a veto delay. A held draft still waits for review. The project daily limit is one automatic publication. Quiet periods, skip rules, source exclusions and safety checks can leave work unpublished.  Review gates A draft can be held when evidence is insufficient, a number cannot be verified, a customer or teammate is mentioned, private information is detected, repository access changes, or an edit needs a fresh check. Review the linked evidence and resolve the reason before releasing or publishing. The public update is written only after the publication operation succeeds. X and LinkedIn are separate optional output channels and require their own provider connection and deployment support. "},{"href":"/docs/sources","slug":"sources","group":"Sources and publishing","title":"Sources and project settings","summary":"Configure repository, deploy, note, screenshot and revenue sources for each project.","text":"Repository and notes The GitHub App installation provides access to repositories explicitly granted to that installation. Link one repository to a project, select the branch, and maintain excluded paths for material that must not be read. Repository note globs select supported notes such as docs/daily-log/*.md. Exclude private files and paths before enabling a source. Commit history rebuild creates reconstructed history. Review the generated editions and chapters before publishing them.  Deploys and screenshots Deploy webhooks can attach deployment evidence to a project. Screenshot capture and configured screenshot URLs depend on the site origin, safe public URL checks, storage and outbound configuration. They do not guarantee that a provider page can be captured. Public screenshots attached to a draft may appear in the resulting update. Check the destination, caption and visibility before publication.  Revenue data Revenue connection is a separate read-only integration. The app accepts provider credentials through its connection flow and can show verified revenue according to the project display setting. The documentation does not promise that any particular Stripe account, key, subscription or live provider connection has been accepted. Disconnecting a revenue source stops future reads; it does not change the provider account. "},{"href":"/docs/github","slug":"github","group":"Sources and publishing","title":"GitHub App and repository access","summary":"Install IndieLogs, grant repository access, link a project and control the history rebuild.","text":"Prerequisites You need an IndieLogs account and permission to install GitHub Apps in the GitHub account or organization. The IndieLogs deployment must have its GitHub App identity, signing key, callback origin and encryption configuration set by its operator. The GitHub App must be installed with access to the repository you want to connect. Organization approval may be required.  Connect a repository Start the GitHub App installation from project settings. Choose an available repository and link it to the project. Confirm the branch and excluded paths. A repository name or path can itself be sensitive; public drafts should not reveal private names. Request a history rebuild, then inspect the reconstructed editions before publishing.  Access and storage The application stores encrypted provider credentials and source-event metadata required by the pipeline. It does not ingest Git blobs or save repository code. Removing a repository link or revoking the GitHub App prevents further access but does not erase previously published updates. "},{"href":"/docs/mcp","slug":"mcp","group":"Developer tools","title":"MCP server","summary":"Connect an agent to the IndieLogs Streamable HTTP MCP server and use the same operation contract as the API.","text":"Endpoint and authentication The MCP endpoint is /mcp on the configured public site origin. The server uses Streamable HTTP POST. It requires an authenticated identity, a scoped API token and an Autopilot entitlement. GET returns 405. OAuth discovery and token verification depend on an externally operated issuer configured as MCP_ISSUER_URL; IndieLogs does not run that authorization server. The issuer must publish matching HTTPS authorization, token, dynamic-registration and JWKS endpoints with PKCE S256. Issued JWTs must use RS256, target the exact MCP_RESOURCE_URL audience and provide a verified IndieLogs account mapping in indielogs_user_id, plus the requested scopes. MCP_RESOURCE_URL is required when validating tokens even though protected-resource discovery has a fallback URL. These prerequisites and a working OAuth client must be configured and accepted separately. A scoped IndieLogs API token is the other supported credential path.  Tools Named tools and generic operation tools are derived from the shared contract allowlist. The table below is rendered from the registered MCP definitions; session-only operations are not exposed. The invoke_operation tool accepts only an operation included in that allowlist.  Safety draft_update creates a source-backed draft and never publishes it. publish_draft is an explicit write and still respects ownership, token scope and draft review gates. Do not give an agent a database service key. Use a revocable IndieLogs token with only the scopes it needs. MCP is rate limited per token. Provider delivery and production OAuth acceptance require separate verification. "},{"href":"/docs/cli","slug":"cli","group":"Developer tools","title":"Command-line client","summary":"Use the repository CLI to call shared operations from a terminal or script.","text":"Availability The CLI currently lives in apps/cli and exposes the indielogs executable from the repository package. The repository does not declare a public npm release, so these instructions use the checked-out source rather than implying a published global install.  Configuration export INDIELOGS_URL=\"https://your-indielogs-origin\"\n# Set INDIELOGS_TOKEN only for private or following-feed operations.\nnode apps/cli/bin/indielogs.mjs --help\nnode apps/cli/bin/indielogs.mjs operations\nnode apps/cli/bin/indielogs.mjs operations --details Examples node apps/cli/bin/indielogs.mjs feed --tab everyone --range week\nnode apps/cli/bin/indielogs.mjs call search.public '{\"q\":\"founder tools\"}'\nnode apps/cli/bin/indielogs.mjs list-projects\nnode apps/cli/bin/indielogs.mjs draft --project 123 --summary \"Added a settings page\"\nnode apps/cli/bin/indielogs.mjs publish DRAFT_UUID Operational notes Public reads do not need a token; private operations and the following feed do. The CLI is a bearer-token client. `operations` lists the full registry; `operations --details` shows each operation name and its public, bearer, browser-session, report-capability or conditional access mode, required scope and MCP availability. Registry presence does not guarantee every entry is callable by this client. Browser-session-only operations require the web app; the CLI has no browser-cookie mode. Publishing is always an explicit command. Read and draft commands never publish. The CLI redacts credentials from console JSON and errors. Use --output only when you need to save a response that includes a newly issued secret; it creates a new file with mode 0600 and refuses to overwrite an existing file. Never pass a Supabase service-role key as INDIELOGS_TOKEN. "},{"href":"/docs/api","slug":"api","group":"Developer tools","title":"HTTP API","summary":"Send versioned operation envelopes to the canonical API endpoint. Operation input validation comes from the shared contract registry.","text":"Endpoint POST /api/v2/execute accepts one version 1 operation envelope. Set INDIELOGS_URL to the public site origin without an API path; the client appends /api/v2/execute. The response is wrapped in data, and failures use an error object with code and message. This public search example runs without a token: export INDIELOGS_URL=\"https://your-indielogs-origin\"\ncurl -X POST \"$INDIELOGS_URL/api/v2/execute\" -H \"Content-Type: application/json\" -d '{\"version\":1,\"operation\":\"search.public\",\"input\":{\"q\":\"founder tools\"}}' Authenticated read Create a token in Settings → Tokens, then keep the secret in a protected environment variable. This private read requires projects:read: export INDIELOGS_TOKEN=\"<token copied from Settings → Tokens>\"\ncurl -X POST \"$INDIELOGS_URL/api/v2/execute\" -H \"Authorization: Bearer $INDIELOGS_TOKEN\" -H \"Content-Type: application/json\" -d '{\"version\":1,\"operation\":\"projects.list\",\"input\":{}}' Contract-first operations Operation names and validation schemas live in packages/contracts/src/operations.ts. The HTTP adapter, MCP tools and CLI use that registry. The list below is generated from that source; it is not a separate schema catalog. Use the shared parser/client for full input validation.  API availability Operation access can be public, browser-session-only, bearer-scoped, conditional on an input, or protected by an operation-specific capability. Public operations and MCP-allowed operations are separate sets. The generated operation table reports registry access metadata, not provider configuration or entitlement state for a deployment. "},{"href":"/docs/reports","slug":"reports","group":"Developer tools","title":"Private AI reports","summary":"Generate idea, business model canvas and marketing reports, then retrieve them through a short-lived private capability.","text":"Generate a report POST /api/v2/reports/generate is an alias for the shared reports.generate operation. Supported kinds are idea, bmc and marketing. The request is validated by the canonical schema in packages/contracts/src/reports.ts; required inputs depend on the selected kind. The response contains the report and a report_access_token. curl -X POST \"$INDIELOGS_URL/api/v2/reports/generate\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"kind\":\"idea\",\"targetMarket\":\"Independent software founders\",\"ideaDescription\":\"A tool that turns shipping evidence into a public journal.\"}' Read and protect a report The generated report is private. Its report_access_token is a bearer capability bound to that report and expires after 90 days. Treat it like a password: do not put it in a URL, public post, analytics event or shared log. Generate the report again if the capability expires. For the operation API, reports.read takes kind, id and report_access_token in the normalized execute input. The legacy GET /api/v2/reports/:kind/:id route accepts X-Report-Access-Token. A browser form stores the capability in an HttpOnly cookie and does not return it in JSON. The capability is not an account API key and grants access only to its report. curl \"$INDIELOGS_URL/api/v2/reports/idea/REPORT_ID\" \\\n  -H \"X-Report-Access-Token: $REPORT_ACCESS_TOKEN\" CLI and MCP reports.generate and reports.read are present in the shared operation registry and exposed through the CLI and MCP definitions. MCP still requires its authenticated, entitled connection and scoped API token. CLI console output redacts credentials; use --output FILE only when you need to retain the raw response. The CLI creates that file with mode 0600 and refuses to overwrite an existing file, so protect and delete it when no longer needed. Do not paste a report access token into a command that may be saved in shell history. Do not send the capability to an agent unless it needs to read this specific report. The CLI currently ships in the repository; these instructions do not imply a public npm release.  AI Gateway prerequisites Generation uses the configured AI Gateway and fails closed when required configuration is missing. The deployment operator must configure AI_GATEWAY_API_KEY, AI_REPORT_MODEL and the relevant explicit AUTOPILOT_WRITER_MODEL, AUTOPILOT_HISTORY_MODEL, AUTOPILOT_CLASSIFIER_MODEL and AUTOPILOT_EMBEDDING_MODEL identifiers. Model IDs must be available to that gateway account; configuration alone does not prove provider acceptance. Direct provider API keys are not used as a fallback. OUTBOUND_ENABLED and the applicable generation budget also apply. "},{"href":"/docs/auth-and-scopes","slug":"auth-and-scopes","group":"Developer tools","title":"Authentication and token scopes","summary":"Choose a signed-in browser session for account setup, or a narrowly scoped bearer token for API and agent access.","text":"Browser session The web app uses the signed-in account session for private screens and settings. Mutating browser requests are checked against the configured site origin. Do not copy browser cookies into scripts or agents.  Create a least-privilege token In the signed-in app, open Settings → Tokens (/settings/tokens). Enter a name, optionally restrict the token to one project, choose an expiry from 1 to 365 days, then select only the needed permissions. Create the token and copy the secret immediately: it is shown once. Save it in a secret manager or protected environment variable, never source control. The active-token list shows scopes, project, last use and expiry; revoke the token there when it is no longer needed. This describes the UI only; no token is created by following these docs. Each new permission is opt-in. Existing tokens do not gain newly added scopes. Project-scoped tokens can only act within that project; whole-account permissions such as account:read, account:write and account:export require an unscoped token. projects:read — Read projects and history. updates:read — Read updates and desk. drafts:write — Create and edit drafts; rebuild history. updates:publish — Publish checked drafts and enable automatic publishing. tokens:manage — Manage API tokens. projects:write — Create, edit and delete projects; manage chapters. sources:read — Read source connections and configuration. sources:write — Configure sources, disconnect and refresh verification. voice:read — Read writing voice and examples. voice:write — Edit voice, import examples and generate voice previews. account:read — Read account settings, notifications and billing status. account:write — Edit account settings, notifications and follows. account:export — Export all account data.  Limits The server enforces ownership and scopes for each operation. Following-feed access needs updates:read. CLI and MCP authenticate with bearer credentials and cannot supply the IndieLogs browser session. Operations marked signed-in session only therefore require the web app. OAuth grants, billing checkout and portal actions, provider consent and account deletion remain browser-session flows. Consult the generated per-operation reference before choosing a client. "},{"href":"/docs/operations","slug":"operations","group":"Developer tools","title":"Shared operation registry","summary":"Browse canonical operation names and discover which operations are public, session-only or available to MCP.","text":"How to read this list The operation list, access classifications, credential requirements, conditional scopes and MCP allowlist are imported from @indielogs/contracts. MCP tool aliases are imported from @indielogs/mcp. Input schemas remain in the shared registry; this documentation does not redefine them. "},{"href":"/docs/client-coverage","slug":"client-coverage","group":"Developer tools","title":"API, MCP and CLI coverage","summary":"Choose a client from its actual authentication mode and supported operation set; registry membership alone does not make an operation universal.","text":"HTTP API POST /api/v2/execute accepts the full shared operation envelope and validates it against the contract registry. Access requirements vary by operation: account-scoped operations accept an authorized bearer token or signed-in browser session where allowed; reports.read instead needs its per-report capability, and feed.list needs updates:read when tab is following. Browser-session-only operations reject bearer tokens. Use the linked operation reference for exact access metadata and input requirements.  MCP MCP exposes the curated mcpOperationNames allowlist through named tools and invoke_operation. It excludes session-only operations, email signup, and sponsor impression/click tracking. Each available tool still uses the operation ownership, entitlement and scope checks.  CLI The repository CLI provides convenience commands plus call OPERATION [JSON|-] for shared operations. Run `indielogs operations --details` to inspect each operation name, authentication mode, required scope and MCP availability. The CLI is a bearer-token client with no browser-cookie mode, so browser-session-only operations require the web app. Project ownership, token scope and feature/provider prerequisites still apply.  Synthetic review-draft example The following example is intentionally synthetic. Project ID 7 is a placeholder; do not run it against a live workspace. If you replace it with an owned test project and execute it, the operation records evidence and may call the configured AI Gateway, consumes the applicable budget, and creates or reuses a draft for review. It never publishes. It requires drafts:write, an eligible account/project, OUTBOUND_ENABLED and configured Gateway models. Repeating the same key with identical evidence returns the existing result. node apps/cli/bin/indielogs.mjs agent-draft --project 7 --summary \"Synthetic documentation example: add a dark-mode toggle\" --why \"Synthetic test evidence only; no user data or real commit.\" --key \"docs-example-project-7-dark-mode\" HTTP version of the example This is the same synthetic example using the normalized API operation. It is documentation only and was not executed: curl -X POST \"$INDIELOGS_URL/api/v2/execute\" -H \"Authorization: Bearer $INDIELOGS_TOKEN\" -H \"Content-Type: application/json\" -d '{\"version\":1,\"operation\":\"drafts.from_evidence\",\"input\":{\"project\":7,\"summary\":\"Synthetic documentation example: add a dark-mode toggle\",\"why\":\"Synthetic test evidence only; no user data or real commit.\",\"idempotencyKey\":\"docs-example-project-7-dark-mode\"}}' Publishing is separate Draft creation does not grant publish authority and does not publish automatically. Publishing needs a separate updates:publish scope, an explicit publish operation, and a draft that has passed its review/hold checks. Resolve any hold and review the evidence before publishing. "},{"href":"/docs/webhooks","slug":"webhooks","group":"Sources and publishing","title":"Outgoing update webhooks","summary":"Deliver a signed public update to your own HTTPS receiver and inspect its delivery receipt.","text":"Configure a destination Open Sources, choose the project and configure its outgoing webhook. The endpoint must use public HTTPS without URL credentials, a query string or a fragment. Private and local network addresses are rejected. Configuration does not turn on the output: select the separate webhook output switch when you are ready. Save the one-time signing secret securely. Status reads and exports show only the destination origin, and never return its private path or signing material. Changing the endpoint or rotating the secret creates a new generation. Previously prepared publications are not replayed to the new destination.  Public event contract The event type is update.published. Its stable id is indielogs:update: followed by the published update ID. The envelope contains created_at, a public project id/name/slug, the maker username, and the update id, sanitized body_html, public URL, published_at and optional public image/video URLs. It contains no repository evidence, email, provider credentials or private draft context. History reconstructed during onboarding is excluded from outgoing delivery. Pro entitlement, current output selection, ownership, moderation and account status are rechecked before sending. A delivery acknowledgement does not change the public journal publication.  Verify the signature Read the raw UTF-8 body before parsing JSON. The headers are x-indielogs-event-id, x-indielogs-timestamp (Unix seconds) and x-indielogs-signature (sha256= followed by a lowercase hexadecimal HMAC). Decode the part after ilwh_ in the saved secret as base64url bytes. Compute HMAC-SHA256 over eventId + a dot + timestamp + a dot + the raw body, then compare with the supplied digest using a timing-safe comparison. Reject old timestamps (a five-minute tolerance is a reasonable receiver policy), malformed signatures and event IDs that do not match the body. Deduplicate the stable event ID before applying work. Return a 2xx response only after accepting the event. Redirects are never followed.  Receipts and retries Output delivery shows Acknowledged only after the receiver returns 2xx. Failures before the send boundary can be retried explicitly after resolving the configuration or content problem. A timeout, redirect or error after dispatch is uncertain and is not resent automatically; inspect the receiver before taking further action. Retries retain the first payload snapshot. A successful HTTP request is never repeated merely because saving its local receipt failed. Disconnecting or rotating stops new sends; a request already dispatched may still finish and its actual receipt can settle.  API, CLI and MCP access sources.webhook-status is a project-scoped sources:read operation. outputs.list and outputs.retry use the same delivery service in the web app, API, CLI and MCP; retry accepts channel webhook and requires updates:publish. Existing tokens gain no new scopes. sources.webhook-configure and sources.webhook-disconnect require a signed-in browser session. An agent cannot grant a new external destination by presenting a bearer token. Public operation references document all three contracts, including their browser-only access mode. "},{"href":"/docs/publishing","slug":"publishing","group":"Sources and publishing","title":"Publishing and output channels","summary":"Publish a checked update to its IndieLogs journey, with optional external outputs when those are connected and enabled.","text":"Publish to IndieLogs Review the draft title, body, evidence, fact checks, image and publication date. Resolve held checks and recheck after editing. Publish explicitly from the desk, API or MCP. A publication call does not guarantee any separately configured external output succeeded.  External output channels X and LinkedIn delivery require an owner connection, valid provider permissions, channel selection and outbound delivery enabled by the operator. The weekly edition email path requires email configuration and a confirmed subscriber. A changelog embed reads public project content; hiding IndieLogs branding is a plan-gated display option. Provider connection state, tokens and delivery receipts are independent. A successful IndieLogs publication is not proof of a public X/LinkedIn post or email delivery.  Deployment controls Database writes are guarded by DATABASE_WRITES_ENABLED. Provider and AI calls are guarded by OUTBOUND_ENABLED. If either gate or a provider prerequisite is missing, the relevant action can fail even when the control is visible. "},{"href":"/docs/voice-and-ai","slug":"voice-and-ai","group":"Product","title":"Voice and AI generation","summary":"Configure voice examples and style rules while keeping generated numbers tied to project evidence.","text":"Voice controls Voice settings can store traits, rules, banned phrases and examples. You can try a rewrite against supplied text and inspect it before saving or publishing. Voice adaptation does not authorize new factual claims.  AI Gateway prerequisites AI tasks use Vercel AI Gateway. The deployment must set AI_GATEWAY_API_KEY and explicit provider/model IDs: AUTOPILOT_WRITER_MODEL, AUTOPILOT_HISTORY_MODEL, AUTOPILOT_CLASSIFIER_MODEL, AUTOPILOT_EMBEDDING_MODEL and AI_REPORT_MODEL for the relevant features. Model availability and provider access belong to the gateway account; a valid model ID alone does not prove a provider accepted a request. AI generation also depends on OUTBOUND_ENABLED and the user’s daily writing budget. When model configuration, provider access or budget is missing, the operation returns a setup or limit error rather than silently switching to another provider.  Privacy and accuracy The writer is instructed not to invent facts, numbers, customers, revenue or shipped work. Numeric claims are checked against source evidence before an automatic publication can proceed. Privacy checks can hold a draft for a private path, secret or customer reference. Inspect the draft before release. "},{"href":"/docs/feed-and-charts","slug":"feed-and-charts","group":"Product","title":"Feed, maker pages and charts","summary":"Browse public updates and editions, follow projects, and understand what the charts count.","text":"Feed The feed has Everyone, Following and Editions views. Update feeds support Recent or Most cheered ordering and all, week, month or year ranges. Cursor pagination uses the returned cursor with the same filters. Following is account-scoped and requires sign-in; API and CLI following reads require updates:read.  Maker and project pages Maker pages summarize public project journals, public updates and shipping activity. Project pages show public editions, chapters, updates and an activity calendar. A project owner can see their own repository commit activity; public visitors see public-update activity.  Charts Makers and Projects boards support today, week, month and all-time periods. Most updates and longest streak are activity measures. Project charts can be filtered by category. Verified MRR requires an eligible revenue connection and feature availability; free-text revenue is not treated as verified. Rankings are derived from stored public activity and verified provider data, where available. They do not measure product quality or total founder progress. "},{"href":"/docs/billing","slug":"billing","group":"Account and operations","title":"Plans and billing","summary":"Understand plan-gated features, checkout setup and subscription management boundaries.","text":"Plan-gated behavior The app checks the account entitlement before enabling paid capabilities such as automatic publication, MCP and selected embed options. The account’s current plan and access state are authoritative; marketing copy is not proof that a specific account has access.  Provider setup Checkout requires the deployment’s Stripe secret key and configured monthly and annual price IDs. Billing webhooks must be configured to keep subscription state current. Legacy Lemon Squeezy records may have a provider portal URL; new checkout behavior and account-specific management depend on the stored provider state. IndieLogs never changes a connected Stripe account used for revenue reads. Subscription billing is separate from project revenue connections.  Customer actions Use the billing portal when one is available for the account. An account deletion request does not cancel a paid subscription; review billing separately. Checkout and provider availability must be verified in the target environment before promising purchase readiness. "},{"href":"/docs/errors","slug":"errors","group":"Account and operations","title":"Errors and troubleshooting","summary":"Interpret the shared API error envelope and handle retries without duplicating writes.","text":"Response shape Successful calls return a data field. Failed calls return error.code and error.message with an HTTP status. Messages are sanitized for the caller; do not depend on internal provider responses.  Common statuses 400 — invalid JSON, unknown operation or input validation failure. 401 — authentication is missing, invalid, expired or no longer usable. 403 — missing scope, unsupported operation, account entitlement or origin requirement. 404 — resource not found or not visible to this principal. 409 — conflicting state, stale version or a review gate that needs action. 429 — rate limit or daily AI budget reached. Respect Retry-After when present. 503 — provider, database or model configuration is unavailable. Check the deployment prerequisites and retry only after the issue is resolved.  Safe retries Do not retry unchanged 400, 401, 402 or 403 errors. Before repeating a write after a timeout, check whether the operation supports an idempotency key or expected version. Refresh a stale draft before retrying publish. "},{"href":"/docs/reference/revenue.disclosures","slug":"revenue.disclosures","group":"Operation reference","title":"revenue.disclosures","summary":"Public; no account credential; —; MCP allowed","text":"revenue.disclosures object project_ids array integer"},{"href":"/docs/reference/reports.generate","slug":"reports.generate","group":"Operation reference","title":"reports.generate","summary":"Public; no account credential; —; MCP allowed","text":"reports.generate object kind string idea bmc marketing targetMarket string ideaDescription string businessIdea string foundingTeam string budget string monthlyMarketingBudget string currentUserBase string"},{"href":"/docs/reference/reports.read","slug":"reports.read","group":"Operation reference","title":"reports.read","summary":"Per-report capability required; report_access_token; MCP allowed","text":"reports.read object kind string idea bmc marketing id string report_access_token string"},{"href":"/docs/reference/admin.moderation.list","slug":"admin.moderation.list","group":"Operation reference","title":"admin.moderation.list","summary":"Signed-in browser session required; —; MCP not allowed","text":"admin.moderation.list object kind string updates makers q string limit integer cursor string"},{"href":"/docs/reference/admin.moderation.decide","slug":"admin.moderation.decide","group":"Operation reference","title":"admin.moderation.decide","summary":"Signed-in browser session required; —; MCP not allowed","text":"admin.moderation.decide object target_type string update maker target_id string action string hide suspend restore reason string"},{"href":"/docs/reference/admin.moderation.audit","slug":"admin.moderation.audit","group":"Operation reference","title":"admin.moderation.audit","summary":"Signed-in browser session required; —; MCP not allowed","text":"admin.moderation.audit object target_type string update maker target_id string limit integer"},{"href":"/docs/reference/sponsorships.options","slug":"sponsorships.options","group":"Operation reference","title":"sponsorships.options","summary":"Public; no account credential; —; MCP allowed","text":"sponsorships.options object"},{"href":"/docs/reference/sponsorships.create","slug":"sponsorships.create","group":"Operation reference","title":"sponsorships.create","summary":"Signed-in browser session required; —; MCP not allowed","text":"sponsorships.create object starts_on string creative object sponsor_name string logo string headline string body string url string idempotency_key string"},{"href":"/docs/reference/sponsorships.checkout","slug":"sponsorships.checkout","group":"Operation reference","title":"sponsorships.checkout","summary":"Signed-in browser session required; —; MCP not allowed","text":"sponsorships.checkout object id string"},{"href":"/docs/reference/sponsorships.mine","slug":"sponsorships.mine","group":"Operation reference","title":"sponsorships.mine","summary":"Bearer token required; account:read; MCP allowed","text":"sponsorships.mine object limit integer cursor string"},{"href":"/docs/reference/sponsorships.moderation.list","slug":"sponsorships.moderation.list","group":"Operation reference","title":"sponsorships.moderation.list","summary":"Signed-in browser session required; —; MCP not allowed","text":"sponsorships.moderation.list object limit integer cursor string"},{"href":"/docs/reference/sponsorships.moderate","slug":"sponsorships.moderate","group":"Operation reference","title":"sponsorships.moderate","summary":"Signed-in browser session required; —; MCP not allowed","text":"sponsorships.moderate object id string decision string approved rejected reason string"},{"href":"/docs/reference/sponsorships.active","slug":"sponsorships.active","group":"Operation reference","title":"sponsorships.active","summary":"Public; no account credential; —; MCP allowed","text":"sponsorships.active object"},{"href":"/docs/reference/sponsorships.impression","slug":"sponsorships.impression","group":"Operation reference","title":"sponsorships.impression","summary":"Public; no account credential; —; MCP not allowed","text":"sponsorships.impression object id string event_key string"},{"href":"/docs/reference/sponsorships.click","slug":"sponsorships.click","group":"Operation reference","title":"sponsorships.click","summary":"Public; no account credential; —; MCP not allowed","text":"sponsorships.click object id string event_key string"},{"href":"/docs/reference/search.public","slug":"search.public","group":"Operation reference","title":"search.public","summary":"Public; no account credential; —; MCP allowed","text":"search.public object q string kind string all maker project update limit integer cursor string"},{"href":"/docs/reference/outputs.list","slug":"outputs.list","group":"Operation reference","title":"outputs.list","summary":"Bearer token required; updates:read; MCP allowed","text":"outputs.list object log_id integer"},{"href":"/docs/reference/outputs.retry","slug":"outputs.retry","group":"Operation reference","title":"outputs.retry","summary":"Bearer token required; updates:publish; MCP allowed","text":"outputs.retry object log_id integer channel string x linkedin webhook"},{"href":"/docs/reference/billing.read","slug":"billing.read","group":"Operation reference","title":"billing.read","summary":"Bearer token required; account:read; MCP allowed","text":"billing.read object"},{"href":"/docs/reference/billing.checkout","slug":"billing.checkout","group":"Operation reference","title":"billing.checkout","summary":"Signed-in browser session required; —; MCP not allowed","text":"billing.checkout object interval string month year"},{"href":"/docs/reference/billing.portal","slug":"billing.portal","group":"Operation reference","title":"billing.portal","summary":"Signed-in browser session required; —; MCP not allowed","text":"billing.portal object"},{"href":"/docs/reference/editions.list","slug":"editions.list","group":"Operation reference","title":"editions.list","summary":"Public; no account credential; —; MCP allowed","text":"editions.list object project_id integer limit integer cursor string"},{"href":"/docs/reference/editions.get","slug":"editions.get","group":"Operation reference","title":"editions.get","summary":"Public; no account credential; —; MCP allowed","text":"editions.get object project_id integer iso_year integer iso_week integer"},{"href":"/docs/reference/editions.feed","slug":"editions.feed","group":"Operation reference","title":"editions.feed","summary":"Conditional access: tab=following requires updates:read; tab=following: updates:read; MCP allowed","text":"editions.feed object project_id integer limit integer cursor string tab string everyone following range string all week month year"},{"href":"/docs/reference/editions.mine","slug":"editions.mine","group":"Operation reference","title":"editions.mine","summary":"Bearer token required; projects:read; MCP allowed","text":"editions.mine object project_id integer limit integer cursor string"},{"href":"/docs/reference/chapters.list","slug":"chapters.list","group":"Operation reference","title":"chapters.list","summary":"Public; no account credential; —; MCP allowed","text":"chapters.list object project_id integer limit integer cursor string"},{"href":"/docs/reference/chapters.mine","slug":"chapters.mine","group":"Operation reference","title":"chapters.mine","summary":"Bearer token required; projects:read; MCP allowed","text":"chapters.mine object project_id integer limit integer cursor string"},{"href":"/docs/reference/feed.list","slug":"feed.list","group":"Operation reference","title":"feed.list","summary":"Conditional access: tab=following requires updates:read; tab=following: updates:read; MCP allowed","text":"feed.list object project_id integer limit integer cursor string sort string recent trending range string all week month year tab string everyone following query object"},{"href":"/docs/reference/profiles.get","slug":"profiles.get","group":"Operation reference","title":"profiles.get","summary":"Public; no account credential; —; MCP allowed","text":"profiles.get object username string"},{"href":"/docs/reference/rankings.list","slug":"rankings.list","group":"Operation reference","title":"rankings.list","summary":"Public; no account credential; —; MCP allowed","text":"rankings.list object board string makers projects period string today week month all metric string updates streak mrr revenue category string type string founder startup query object"},{"href":"/docs/reference/email-followers.request","slug":"email-followers.request","group":"Operation reference","title":"email-followers.request","summary":"Public; no account credential; —; MCP not allowed","text":"email-followers.request object email string target_type string user project target_id string"},{"href":"/docs/reference/projects.directory","slug":"projects.directory","group":"Operation reference","title":"projects.directory","summary":"Public; no account credential; —; MCP allowed","text":"projects.directory object category string limit integer offset integer query object"},{"href":"/docs/reference/projects.list","slug":"projects.list","group":"Operation reference","title":"projects.list","summary":"Bearer token required; projects:read; MCP allowed","text":"projects.list object"},{"href":"/docs/reference/projects.get","slug":"projects.get","group":"Operation reference","title":"projects.get","summary":"Bearer token required; projects:read; MCP allowed","text":"projects.get object id string"},{"href":"/docs/reference/projects.create","slug":"projects.create","group":"Operation reference","title":"projects.create","summary":"Bearer token required; projects:write; MCP allowed","text":"projects.create object name string description string status string url string logo string category string array string slug string"},{"href":"/docs/reference/projects.update","slug":"projects.update","group":"Operation reference","title":"projects.update","summary":"Bearer token required; projects:write; MCP allowed","text":"projects.update object id string name string description string status string url string logo string category string array string slug string"},{"href":"/docs/reference/projects.delete","slug":"projects.delete","group":"Operation reference","title":"projects.delete","summary":"Bearer token required; projects:write; MCP allowed","text":"projects.delete object id string"},{"href":"/docs/reference/projects.analyze","slug":"projects.analyze","group":"Operation reference","title":"projects.analyze","summary":"Bearer token required; projects:write; MCP allowed","text":"projects.analyze object url string"},{"href":"/docs/reference/updates.list","slug":"updates.list","group":"Operation reference","title":"updates.list","summary":"Bearer token required; updates:read; MCP allowed","text":"updates.list object project integer limit integer query object"},{"href":"/docs/reference/updates.publish","slug":"updates.publish","group":"Operation reference","title":"updates.publish","summary":"Bearer token required; updates:publish; MCP allowed","text":"updates.publish object project_id integer string description string date string image string string video string string items array string idempotencyKey string"},{"href":"/docs/reference/updates.update","slug":"updates.update","group":"Operation reference","title":"updates.update","summary":"Bearer token required; updates:publish; MCP allowed","text":"updates.update object id string description string date image string string video string string items array string"},{"href":"/docs/reference/updates.delete","slug":"updates.delete","group":"Operation reference","title":"updates.delete","summary":"Bearer token required; updates:publish; MCP allowed","text":"updates.delete object id string"},{"href":"/docs/reference/updates.cheer","slug":"updates.cheer","group":"Operation reference","title":"updates.cheer","summary":"Bearer token required; updates:publish; MCP allowed","text":"updates.cheer object id string"},{"href":"/docs/reference/updates.replies.list","slug":"updates.replies.list","group":"Operation reference","title":"updates.replies.list","summary":"Public; no account credential; —; MCP allowed","text":"updates.replies.list object id string"},{"href":"/docs/reference/updates.replies.create","slug":"updates.replies.create","group":"Operation reference","title":"updates.replies.create","summary":"Bearer token required; updates:publish; MCP allowed","text":"updates.replies.create object id string body_html string description string text string"},{"href":"/docs/reference/updates.replies.delete","slug":"updates.replies.delete","group":"Operation reference","title":"updates.replies.delete","summary":"Bearer token required; updates:publish; MCP allowed","text":"updates.replies.delete object id string reply_id string"},{"href":"/docs/reference/drafts.list","slug":"drafts.list","group":"Operation reference","title":"drafts.list","summary":"Bearer token required; updates:read; MCP allowed","text":"drafts.list object statuses array string waiting held queued published skipped limit integer offset integer query object"},{"href":"/docs/reference/drafts.from_evidence","slug":"drafts.from_evidence","group":"Operation reference","title":"drafts.from_evidence","summary":"Bearer token required; drafts:write; MCP allowed","text":"drafts.from_evidence object project integer string summary string why string title string commits array string numbers array object value number string source string idempotencyKey string"},{"href":"/docs/reference/drafts.get","slug":"drafts.get","group":"Operation reference","title":"drafts.get","summary":"Bearer token required; updates:read; MCP allowed","text":"drafts.get object id string"},{"href":"/docs/reference/drafts.create","slug":"drafts.create","group":"Operation reference","title":"drafts.create","summary":"Bearer token required; drafts:write; MCP allowed","text":"drafts.create object project_id integer summary string title string description string why string commits array string scheduled_for string null publication_date string null visual object kind string card screenshot none card string object k string big string number sub string url string caption string variants object x string linkedin string outputs object idempotencyKey string"},{"href":"/docs/reference/drafts.generate","slug":"drafts.generate","group":"Operation reference","title":"drafts.generate","summary":"Bearer token required; drafts:write; MCP allowed","text":"drafts.generate object project_id integer source_ids array integer title string"},{"href":"/docs/reference/drafts.update","slug":"drafts.update","group":"Operation reference","title":"drafts.update","summary":"Bearer token required; drafts:write; MCP allowed","text":"drafts.update object id string description string title string scheduled_for string null publication_date string null visual object kind string card screenshot none card string object k string big string number sub string url string caption string variants object x string linkedin string outputs object expected_updated_at string"},{"href":"/docs/reference/drafts.schedule","slug":"drafts.schedule","group":"Operation reference","title":"drafts.schedule","summary":"Bearer token required; updates:publish; MCP allowed","text":"drafts.schedule object id string scheduled_for string expected_updated_at string"},{"href":"/docs/reference/drafts.publish","slug":"drafts.publish","group":"Operation reference","title":"drafts.publish","summary":"Bearer token required; updates:publish; MCP allowed","text":"drafts.publish object id string expected_updated_at string confirm_unverified boolean acknowledgement string"},{"href":"/docs/reference/drafts.hold","slug":"drafts.hold","group":"Operation reference","title":"drafts.hold","summary":"Bearer token required; drafts:write; MCP allowed","text":"drafts.hold object id string"},{"href":"/docs/reference/drafts.hold-all","slug":"drafts.hold-all","group":"Operation reference","title":"drafts.hold-all","summary":"Bearer token required; drafts:write; MCP allowed","text":"drafts.hold-all object"},{"href":"/docs/reference/drafts.skip","slug":"drafts.skip","group":"Operation reference","title":"drafts.skip","summary":"Bearer token required; drafts:write; MCP allowed","text":"drafts.skip object id string"},{"href":"/docs/reference/drafts.rewrite","slug":"drafts.rewrite","group":"Operation reference","title":"drafts.rewrite","summary":"Bearer token required; drafts:write; MCP allowed","text":"drafts.rewrite object id string instruction string"},{"href":"/docs/reference/drafts.release","slug":"drafts.release","group":"Operation reference","title":"drafts.release","summary":"Bearer token required; drafts:write; MCP allowed","text":"drafts.release object id string expected_updated_at string"},{"href":"/docs/reference/drafts.attach_screenshot","slug":"drafts.attach_screenshot","group":"Operation reference","title":"drafts.attach_screenshot","summary":"Bearer token required; drafts:write; MCP allowed","text":"drafts.attach_screenshot object id string expected_updated_at string image_base64 string url string caption string"},{"href":"/docs/reference/story.publish","slug":"story.publish","group":"Operation reference","title":"story.publish","summary":"Bearer token required; updates:publish; MCP allowed","text":"story.publish object project_id integer"},{"href":"/docs/reference/story.split","slug":"story.split","group":"Operation reference","title":"story.split","summary":"Bearer token required; projects:write; MCP allowed","text":"story.split object project_id integer"},{"href":"/docs/reference/story.rebuild","slug":"story.rebuild","group":"Operation reference","title":"story.rebuild","summary":"Bearer token required; drafts:write; MCP allowed","text":"story.rebuild object project_id integer lookback_days integer null"},{"href":"/docs/reference/story.rebuild-status","slug":"story.rebuild-status","group":"Operation reference","title":"story.rebuild-status","summary":"Bearer token required; projects:read; MCP allowed","text":"story.rebuild-status object project_id integer"},{"href":"/docs/reference/story.decline","slug":"story.decline","group":"Operation reference","title":"story.decline","summary":"Bearer token required; projects:write; MCP allowed","text":"story.decline object project_id integer edition_id string reason string"},{"href":"/docs/reference/story.undo","slug":"story.undo","group":"Operation reference","title":"story.undo","summary":"Bearer token required; projects:write; MCP allowed","text":"story.undo object project_id integer edition_id string"},{"href":"/docs/reference/chapters.update","slug":"chapters.update","group":"Operation reference","title":"chapters.update","summary":"Bearer token required; projects:write; MCP allowed","text":"chapters.update object id string title string hidden boolean"},{"href":"/docs/reference/onboarding.complete","slug":"onboarding.complete","group":"Operation reference","title":"onboarding.complete","summary":"Signed-in browser session required; —; MCP not allowed","text":"onboarding.complete object project_id integer username string full_name string timezone string project object"},{"href":"/docs/reference/voice.read","slug":"voice.read","group":"Operation reference","title":"voice.read","summary":"Bearer token required; voice:read; MCP allowed","text":"voice.read object"},{"href":"/docs/reference/voice.update","slug":"voice.update","group":"Operation reference","title":"voice.update","summary":"Bearer token required; voice:write; MCP allowed","text":"voice.update object traits object rules array string banned_phrases array string"},{"href":"/docs/reference/voice.try","slug":"voice.try","group":"Operation reference","title":"voice.try","summary":"Bearer token required; voice:write; MCP allowed","text":"voice.try object source_ids array string integer instruction string"},{"href":"/docs/reference/voice.infer","slug":"voice.infer","group":"Operation reference","title":"voice.infer","summary":"Bearer token required; voice:write; MCP allowed","text":"voice.infer object"},{"href":"/docs/reference/voice.suggestions.list","slug":"voice.suggestions.list","group":"Operation reference","title":"voice.suggestions.list","summary":"Bearer token required; voice:read; MCP allowed","text":"voice.suggestions.list object"},{"href":"/docs/reference/voice.suggestions.decide","slug":"voice.suggestions.decide","group":"Operation reference","title":"voice.suggestions.decide","summary":"Bearer token required; voice:write; MCP allowed","text":"voice.suggestions.decide object id string decision string accept dismiss"},{"href":"/docs/reference/voice.import","slug":"voice.import","group":"Operation reference","title":"voice.import","summary":"Bearer token required; voice:write; MCP allowed","text":"voice.import object source string url string object source string x linkedin url string"},{"href":"/docs/reference/voice.examples.list","slug":"voice.examples.list","group":"Operation reference","title":"voice.examples.list","summary":"Bearer token required; voice:read; MCP allowed","text":"voice.examples.list object"},{"href":"/docs/reference/voice.examples.create","slug":"voice.examples.create","group":"Operation reference","title":"voice.examples.create","summary":"Bearer token required; voice:write; MCP allowed","text":"voice.examples.create object text string source string weight string project_id integer"},{"href":"/docs/reference/voice.examples.update","slug":"voice.examples.update","group":"Operation reference","title":"voice.examples.update","summary":"Bearer token required; voice:write; MCP allowed","text":"voice.examples.update object id string text string weight string"},{"href":"/docs/reference/voice.examples.delete","slug":"voice.examples.delete","group":"Operation reference","title":"voice.examples.delete","summary":"Bearer token required; voice:write; MCP allowed","text":"voice.examples.delete object id string"},{"href":"/docs/reference/notifications.list","slug":"notifications.list","group":"Operation reference","title":"notifications.list","summary":"Bearer token required; account:read; MCP allowed","text":"notifications.list object"},{"href":"/docs/reference/notifications.read","slug":"notifications.read","group":"Operation reference","title":"notifications.read","summary":"Bearer token required; account:write; MCP allowed","text":"notifications.read object id string"},{"href":"/docs/reference/notification-preferences.read","slug":"notification-preferences.read","group":"Operation reference","title":"notification-preferences.read","summary":"Bearer token required; account:read; MCP allowed","text":"notification-preferences.read object"},{"href":"/docs/reference/notification-preferences.update","slug":"notification-preferences.update","group":"Operation reference","title":"notification-preferences.update","summary":"Bearer token required; account:write; MCP allowed","text":"notification-preferences.update object in_app boolean email_digest boolean product_updates boolean kinds object draft_held object in_app boolean email boolean press_soon object in_app boolean email boolean published object in_app boolean email boolean weekly_edition_sent object in_app boolean email boolean new_follower object in_app boolean email boolean cheers_digest object in_app boolean email boolean payment_failed object in_app boolean email boolean update_reply object in_app boolean email boolean"},{"href":"/docs/reference/account.export","slug":"account.export","group":"Operation reference","title":"account.export","summary":"Bearer token required; account:export; MCP allowed","text":"account.export object"},{"href":"/docs/reference/account.deletion-status","slug":"account.deletion-status","group":"Operation reference","title":"account.deletion-status","summary":"Signed-in browser session required; —; MCP not allowed","text":"account.deletion-status object"},{"href":"/docs/reference/account.deletion-request","slug":"account.deletion-request","group":"Operation reference","title":"account.deletion-request","summary":"Signed-in browser session required; —; MCP not allowed","text":"account.deletion-request object confirmation string expected_version integer"},{"href":"/docs/reference/account.deletion-cancel","slug":"account.deletion-cancel","group":"Operation reference","title":"account.deletion-cancel","summary":"Signed-in browser session required; —; MCP not allowed","text":"account.deletion-cancel object expected_version integer"},{"href":"/docs/reference/settings.read","slug":"settings.read","group":"Operation reference","title":"settings.read","summary":"Bearer token required; account:read; MCP allowed","text":"settings.read object"},{"href":"/docs/reference/settings.update","slug":"settings.update","group":"Operation reference","title":"settings.update","summary":"Bearer token required; account:write; MCP allowed","text":"settings.update object username string full_name string description string website string string avatar_url string string string onboarding string completed socials array object label string link string string timezone string theme string indielogs classic chainvision imagenmia light dark cupcake bumblebee emerald corporate synthwave retro cyberpunk valentine halloween garden forest aqua lofi pastel fantasy wireframe black luxury dracula cmyk autumn business acid lemonade night coffee winter sunset dim nord"},{"href":"/docs/reference/tokens.list","slug":"tokens.list","group":"Operation reference","title":"tokens.list","summary":"Bearer token required; tokens:manage; MCP allowed","text":"tokens.list object"},{"href":"/docs/reference/tokens.create","slug":"tokens.create","group":"Operation reference","title":"tokens.create","summary":"Bearer token required; tokens:manage; MCP allowed","text":"tokens.create object name string scopes array string projects:read updates:read drafts:write updates:publish tokens:manage projects:write sources:read sources:write voice:read voice:write account:read account:write account:export project_id integer startup_id integer ttl_days integer"},{"href":"/docs/reference/tokens.revoke","slug":"tokens.revoke","group":"Operation reference","title":"tokens.revoke","summary":"Bearer token required; tokens:manage; MCP allowed","text":"tokens.revoke object id string"},{"href":"/docs/reference/follows.list","slug":"follows.list","group":"Operation reference","title":"follows.list","summary":"Bearer token required; account:read; MCP allowed","text":"follows.list object"},{"href":"/docs/reference/follows.create","slug":"follows.create","group":"Operation reference","title":"follows.create","summary":"Bearer token required; account:write; MCP allowed","text":"follows.create object target_type string user project target_id string"},{"href":"/docs/reference/follows.delete","slug":"follows.delete","group":"Operation reference","title":"follows.delete","summary":"Bearer token required; account:write; MCP allowed","text":"follows.delete object target_type string user project target_id string"},{"href":"/docs/reference/sources.commits.list","slug":"sources.commits.list","group":"Operation reference","title":"sources.commits.list","summary":"Bearer token required; drafts:write; MCP allowed","text":"sources.commits.list object project_id integer limit integer cursor string"},{"href":"/docs/reference/sources.groups.list","slug":"sources.groups.list","group":"Operation reference","title":"sources.groups.list","summary":"Bearer token required; updates:read; MCP allowed","text":"sources.groups.list object project_id integer"},{"href":"/docs/reference/sources.webhook-status","slug":"sources.webhook-status","group":"Operation reference","title":"sources.webhook-status","summary":"Bearer token required; sources:read; MCP allowed","text":"sources.webhook-status object project_id integer"},{"href":"/docs/reference/sources.webhook-configure","slug":"sources.webhook-configure","group":"Operation reference","title":"sources.webhook-configure","summary":"Signed-in browser session required; —; MCP not allowed","text":"sources.webhook-configure object project_id integer url string"},{"href":"/docs/reference/sources.webhook-disconnect","slug":"sources.webhook-disconnect","group":"Operation reference","title":"sources.webhook-disconnect","summary":"Signed-in browser session required; —; MCP not allowed","text":"sources.webhook-disconnect object project_id integer"},{"href":"/docs/reference/sources.list","slug":"sources.list","group":"Operation reference","title":"sources.list","summary":"Bearer token required; sources:read; MCP allowed","text":"sources.list object"},{"href":"/docs/reference/sources.connect","slug":"sources.connect","group":"Operation reference","title":"sources.connect","summary":"Signed-in browser session required; —; MCP not allowed","text":"sources.connect object project_id integer provider string github x linkedin"},{"href":"/docs/reference/sources.deploy-connect","slug":"sources.deploy-connect","group":"Operation reference","title":"sources.deploy-connect","summary":"Signed-in browser session required; —; MCP not allowed","text":"sources.deploy-connect object project_id integer provider string custom generic vercel netlify render coolify provider_resource_id string signing_secret string"},{"href":"/docs/reference/sources.disconnect","slug":"sources.disconnect","group":"Operation reference","title":"sources.disconnect","summary":"Bearer token required; sources:write; MCP allowed","text":"sources.disconnect object provider string github x linkedin"},{"href":"/docs/reference/sources.update","slug":"sources.update","group":"Operation reference","title":"sources.update","summary":"Bearer token required; sources:write; MCP allowed","text":"sources.update object project_id integer policy string review veto auto veto_minutes integer press_time string max_per_day number quiet_minutes integer hold_customer_mentions boolean weekly_edition boolean edition_day integer edition_time string skip_kinds array string notes_globs array string screenshot_urls array string string outputs object timezone string enabled boolean"},{"href":"/docs/reference/sources.link","slug":"sources.link","group":"Operation reference","title":"sources.link","summary":"Bearer token required; sources:write; MCP allowed","text":"sources.link object project_id integer repository string installation_id integer repository_id integer"},{"href":"/docs/reference/sources.github.configure","slug":"sources.github.configure","group":"Operation reference","title":"sources.github.configure","summary":"Bearer token required; sources:write; MCP allowed","text":"sources.github.configure object project_id integer branch string excluded_paths array string"},{"href":"/docs/reference/sources.github.install","slug":"sources.github.install","group":"Operation reference","title":"sources.github.install","summary":"Signed-in browser session required; —; MCP not allowed","text":"sources.github.install object"},{"href":"/docs/reference/sources.github.repositories","slug":"sources.github.repositories","group":"Operation reference","title":"sources.github.repositories","summary":"Bearer token required; sources:read; MCP allowed","text":"sources.github.repositories object"},{"href":"/docs/reference/sources.github.unlink","slug":"sources.github.unlink","group":"Operation reference","title":"sources.github.unlink","summary":"Bearer token required; sources:write; MCP allowed","text":"sources.github.unlink object project_id integer"},{"href":"/docs/reference/sources.capture","slug":"sources.capture","group":"Operation reference","title":"sources.capture","summary":"Bearer token required; sources:write; MCP allowed","text":"sources.capture object project_id integer url string register_only boolean"},{"href":"/docs/reference/sources.revenue-settings","slug":"sources.revenue-settings","group":"Operation reference","title":"sources.revenue-settings","summary":"Bearer token required; sources:write; MCP allowed","text":"sources.revenue-settings object project_id integer display boolean string exact range milestones off"},{"href":"/docs/reference/sources.revenue-status","slug":"sources.revenue-status","group":"Operation reference","title":"sources.revenue-status","summary":"Bearer token required; sources:read; MCP allowed","text":"sources.revenue-status object project_id integer"},{"href":"/docs/reference/sources.revenue-disconnect","slug":"sources.revenue-disconnect","group":"Operation reference","title":"sources.revenue-disconnect","summary":"Bearer token required; sources:write; MCP allowed","text":"sources.revenue-disconnect object project_id integer"},{"href":"/docs/reference/sources.revenue-refresh","slug":"sources.revenue-refresh","group":"Operation reference","title":"sources.revenue-refresh","summary":"Bearer token required; sources:write; MCP allowed","text":"sources.revenue-refresh object project_id integer"},{"href":"/docs/reference/sources.revenue-oauth-start","slug":"sources.revenue-oauth-start","group":"Operation reference","title":"sources.revenue-oauth-start","summary":"Signed-in browser session required; —; MCP not allowed","text":"sources.revenue-oauth-start object project_id integer mode string test live"},{"href":"/docs/reference/sources.revenue-connect","slug":"sources.revenue-connect","group":"Operation reference","title":"sources.revenue-connect","summary":"Signed-in browser session required; —; MCP not allowed","text":"sources.revenue-connect object project_id integer api_key string"}]}