# Neural Draft > The AI-native backend platform. CMS, blog, social, booking and commerce primitives for AI-built sites — wired into Lovable, Claude Code, Cursor, v0 and Bolt via MCP. ## Docs - [Create a blog post](https://docs.neuraldraft.io/api-reference/blog/create-a-blog-post.md): Two creation modes: - [Create a category](https://docs.neuraldraft.io/api-reference/blog/create-a-category.md) - [Create a tag](https://docs.neuraldraft.io/api-reference/blog/create-a-tag.md) - [Delete a blog post](https://docs.neuraldraft.io/api-reference/blog/delete-a-blog-post.md) - [Delete a category](https://docs.neuraldraft.io/api-reference/blog/delete-a-category.md) - [Delete a tag](https://docs.neuraldraft.io/api-reference/blog/delete-a-tag.md) - [Get a blog post](https://docs.neuraldraft.io/api-reference/blog/get-a-blog-post.md): Returns a single post resolved by either numeric id or slug. The `lang` query parameter controls which translation is returned in the flat `title`/`content`/`excerpt` fields (`translations[]` always contains every available locale). - [List blog categories](https://docs.neuraldraft.io/api-reference/blog/list-blog-categories.md): Read-only. Does not consume credits. - [List blog posts](https://docs.neuraldraft.io/api-reference/blog/list-blog-posts.md): Paginated list of blog posts. Supports filtering by status, language, category, and free-text search. Read-only. Does not consume credits. - [List tags](https://docs.neuraldraft.io/api-reference/blog/list-tags.md): Read-only. - [Publish a blog post](https://docs.neuraldraft.io/api-reference/blog/publish-a-blog-post.md): Sets `status: published` and `published_at: now()`. Fires `blog_post.published` webhook. No credit cost. - [Schedule a blog post](https://docs.neuraldraft.io/api-reference/blog/schedule-a-blog-post.md): Sets `status: scheduled` and `scheduled_at` to the provided ISO 8601 timestamp. The post auto-publishes at that time and fires `blog_post.published`. - [Translate a blog post](https://docs.neuraldraft.io/api-reference/blog/translate-a-blog-post.md): Asynchronously translates the post (title, content, excerpt, meta_title, meta_description) into one or more target languages. Returns a [`Job`](#tag/Jobs) with `type: translation.batch`. On completion, the post's `translations[]` array contains the new locales. - [Update a blog post](https://docs.neuraldraft.io/api-reference/blog/update-a-blog-post.md): Partial update. Numeric id only. - [Update a category](https://docs.neuraldraft.io/api-reference/blog/update-a-category.md) - [Cancel a booking](https://docs.neuraldraft.io/api-reference/booking/cancel-a-booking.md): Permanently cancels (soft delete + sets status `cancelled`). Fires `booking.cancelled` webhook. - [Create a bookable service](https://docs.neuraldraft.io/api-reference/booking/create-a-bookable-service.md) - [Create a booking (admin)](https://docs.neuraldraft.io/api-reference/booking/create-a-booking-admin.md): Admin-created booking (e.g. walk-in or phone booking). Bypasses availability checks if `force: true` is provided. Customers should use `POST /public/bookings` instead. - [Delete a bookable service](https://docs.neuraldraft.io/api-reference/booking/delete-a-bookable-service.md) - [Embeddable booking widget script](https://docs.neuraldraft.io/api-reference/booking/embeddable-booking-widget-script.md): Returns a self-contained JavaScript bundle that renders a booking widget into a host element. Drop into any page: - [Get a bookable service](https://docs.neuraldraft.io/api-reference/booking/get-a-bookable-service.md) - [Get a booking](https://docs.neuraldraft.io/api-reference/booking/get-a-booking.md) - [List bookable services](https://docs.neuraldraft.io/api-reference/booking/list-bookable-services.md): Read-only. - [List bookings](https://docs.neuraldraft.io/api-reference/booking/list-bookings.md): Read-only. - [Look up available slots](https://docs.neuraldraft.io/api-reference/booking/look-up-available-slots.md): Returns available slots for a given service over a date range. Same endpoint also exposed unauthenticated at `/public/availability` with identical query parameters. - [Public availability lookup](https://docs.neuraldraft.io/api-reference/booking/public-availability-lookup.md): Same as `GET /availability` but does not require auth. Rate limited per IP. - [Public booking lookup by reference](https://docs.neuraldraft.io/api-reference/booking/public-booking-lookup-by-reference.md): Lets a customer check the status of their booking without an account. Requires the booking reference in the path **and** the customer's email in the `email` query parameter as a verification proof. - [Update a bookable service](https://docs.neuraldraft.io/api-reference/booking/update-a-bookable-service.md) - [Update a booking](https://docs.neuraldraft.io/api-reference/booking/update-a-booking.md) - [Get the brand context](https://docs.neuraldraft.io/api-reference/brand/get-the-brand-context.md): Returns the canonical brand object — voice, audience, content tone, colors, fonts, and goals. This is what the MCP server exposes as `brand://current` so AI codegen tools can write on-brand copy and styling automatically. - [Update the brand context](https://docs.neuraldraft.io/api-reference/brand/update-the-brand-context.md): Partial update of the brand object. Any field omitted from the body is left unchanged. To clear a field, send `null` explicitly. - [Create a manual order (admin)](https://docs.neuraldraft.io/api-reference/commerce/create-a-manual-order-admin.md): Admin-created order without going through Stripe Checkout. Useful for offline / cash sales. Bypasses payment, sets `payment_method: manual`. Stock is decremented if `track_inventory` is true. - [Create a product](https://docs.neuraldraft.io/api-reference/commerce/create-a-product.md) - [Create a product category](https://docs.neuraldraft.io/api-reference/commerce/create-a-product-category.md) - [Create a product variant](https://docs.neuraldraft.io/api-reference/commerce/create-a-product-variant.md) - [Create a Stripe Checkout session](https://docs.neuraldraft.io/api-reference/commerce/create-a-stripe-checkout-session.md): Server-side or browser-side initiation of Stripe Checkout. Returns a `checkout_url` to redirect the buyer to. Stripe Checkout settles into the project's connected Stripe account. The created `Order` lives in `pending` until the Stripe webhook flips it to `paid`. - [Delete a product](https://docs.neuraldraft.io/api-reference/commerce/delete-a-product.md) - [Delete a product category](https://docs.neuraldraft.io/api-reference/commerce/delete-a-product-category.md): Products in the category are reassigned to `category_id: null`. - [Delete a product variant](https://docs.neuraldraft.io/api-reference/commerce/delete-a-product-variant.md) - [Embeddable buy-button script](https://docs.neuraldraft.io/api-reference/commerce/embeddable-buy-button-script.md): Single-button widget that opens Stripe Checkout via `/v1/checkout-sessions`. Drop into any page: - [Embeddable product card script](https://docs.neuraldraft.io/api-reference/commerce/embeddable-product-card-script.md): Self-contained JS bundle for a product card. Drop into any page: - [Get a product](https://docs.neuraldraft.io/api-reference/commerce/get-a-product.md) - [Get an order](https://docs.neuraldraft.io/api-reference/commerce/get-an-order.md) - [List orders](https://docs.neuraldraft.io/api-reference/commerce/list-orders.md) - [List product categories (tree)](https://docs.neuraldraft.io/api-reference/commerce/list-product-categories-tree.md) - [List product variants](https://docs.neuraldraft.io/api-reference/commerce/list-product-variants.md) - [List products](https://docs.neuraldraft.io/api-reference/commerce/list-products.md): Read-only. - [Public order lookup](https://docs.neuraldraft.io/api-reference/commerce/public-order-lookup.md): Lets a customer check their order status without an account. Requires the order number in the path **and** the customer email in the `email` query string as a verification proof. - [Start Stripe Connect onboarding](https://docs.neuraldraft.io/api-reference/commerce/start-stripe-connect-onboarding.md): Creates (or reuses) a Stripe Connect Express account for the project and returns a Stripe-hosted onboarding URL. After the user completes onboarding, they're sent to `return_url`. If they bail mid-flow, Stripe sends them to `refresh_url` to restart. - [Update a product](https://docs.neuraldraft.io/api-reference/commerce/update-a-product.md) - [Update a product category](https://docs.neuraldraft.io/api-reference/commerce/update-a-product-category.md) - [Update a product variant](https://docs.neuraldraft.io/api-reference/commerce/update-a-product-variant.md) - [Delete a component](https://docs.neuraldraft.io/api-reference/components/delete-a-component.md) - [Get a component](https://docs.neuraldraft.io/api-reference/components/get-a-component.md): Read-only. Does not consume credits. - [List components](https://docs.neuraldraft.io/api-reference/components/list-components.md): Read-only. Does not consume credits. - [Register an editable HTML component](https://docs.neuraldraft.io/api-reference/components/register-an-editable-html-component.md): Used by AI codegen tools (and the MCP server's `register_component` tool) during a build session. The tool says: "I just generated this hero section — register it as editable in the project's admin." - [Update component HTML](https://docs.neuraldraft.io/api-reference/components/update-component-html.md): Replace the registered HTML of a component. New `data-translate` attributes create new content keys; removed attributes leave their underlying keys orphaned (they are NOT auto-deleted, since they may be referenced elsewhere). - [Bulk read content keys](https://docs.neuraldraft.io/api-reference/content/bulk-read-content-keys.md): Returns values for many translation keys in one round trip. Designed for build-time / SSG fetches: pass every key your page references and get a flat `{key: value}` map back. - [Delete a content key](https://docs.neuraldraft.io/api-reference/content/delete-a-content-key.md): Removes the key and all of its translations. Cannot be undone. Fires a `content.changed` webhook event with `action: deleted`. - [Read a single content value](https://docs.neuraldraft.io/api-reference/content/read-a-single-content-value.md): Returns the resolved value for the given key in the requested language, plus all available locales for the key. - [Set a content value](https://docs.neuraldraft.io/api-reference/content/set-a-content-value.md): Upserts the value for a key in a specific language. If the key does not exist, it is created. If `lang` is omitted, the project's default language is used. - [Translate a content key](https://docs.neuraldraft.io/api-reference/content/translate-a-content-key.md): Asynchronously translates the value of `key` from the source language (default: project default) to one or more target languages. - [Delete a contact-form submission](https://docs.neuraldraft.io/api-reference/forms/delete-a-contact-form-submission.md): Requires `forms:write` scope. - [Delete (unsubscribe) a newsletter subscriber](https://docs.neuraldraft.io/api-reference/forms/delete-unsubscribe-a-newsletter-subscriber.md): Requires `forms:write` scope. - [List contact-form submissions](https://docs.neuraldraft.io/api-reference/forms/list-contact-form-submissions.md): Requires `forms:read` scope. - [List newsletter subscribers](https://docs.neuraldraft.io/api-reference/forms/list-newsletter-subscribers.md): Requires `forms:read` scope. - [Submit a contact form](https://docs.neuraldraft.io/api-reference/forms/submit-a-contact-form.md): **Public** endpoint — no API key required when called from a browser embed. The project is resolved via the `X-NeuralDraft-Project-Key` header or `?project_id=` query param. `data` is free-form JSON for whatever your form collects; IP and user-agent are merged in server-side for spam triage. Fre… - [Subscribe to a project newsletter](https://docs.neuraldraft.io/api-reference/forms/subscribe-to-a-project-newsletter.md): **Public** endpoint — no API key required when called from a browser embed. The project is resolved via the `X-NeuralDraft-Project-Key` header (recommended for server-side calls) or `?project_id=` query param (browser embeds where you can't ship a secret key). Idempotent — re-submitting an exist… - [Liveness probe](https://docs.neuraldraft.io/api-reference/health/liveness-probe.md): Lightweight liveness check. **Does not require authentication** and does not consume credits or count against rate limits. Useful for load balancers, uptime monitors, and SDK preflight checks. - [Serve this OpenAPI document](https://docs.neuraldraft.io/api-reference/health/serve-this-openapi-document.md): Returns the live OpenAPI 3.1 document. SDK generators and Mintlify fetch this at build time. Identical to the `openapi.yaml` checked into the repository, but always reflects the deployed contract. - [Delete an image](https://docs.neuraldraft.io/api-reference/images/delete-an-image.md) - [Generate a brand-consistent image](https://docs.neuraldraft.io/api-reference/images/generate-a-brand-consistent-image.md): Kicks off async image generation. The job inherits the project's brand context (colors, voice, audience) and produces an image stored on Google Cloud Storage. Returns a [`Job`](#tag/Jobs) with `type: image.generate`. - [Replace an image](https://docs.neuraldraft.io/api-reference/images/replace-an-image.md): Two replacement modes: - [Resolve an image by key](https://docs.neuraldraft.io/api-reference/images/resolve-an-image-by-key.md): Returns the resolved CDN URL for an image registered under `key`. Useful for build-time fetches alongside `/content/bulk`. Read-only. Does not consume credits. - [Cancel a job](https://docs.neuraldraft.io/api-reference/jobs/cancel-a-job.md): Attempts to cancel an in-flight job. Best-effort — already-completed steps are not undone, but no new work starts. Sets `status: cancelled`. - [Get job status](https://docs.neuraldraft.io/api-reference/jobs/get-job-status.md): Returns the current state of an async job. Poll this endpoint, or use the SSE stream at `/jobs/{id}/stream` for live updates. - [Stream job progress (SSE)](https://docs.neuraldraft.io/api-reference/jobs/stream-job-progress-sse.md): Returns a `text/event-stream` (Server-Sent Events) feed of progress updates for the job. Closes automatically when the job reaches a terminal state (`completed`, `failed`, or `cancelled`). - [Create a page](https://docs.neuraldraft.io/api-reference/pages/create-a-page.md): Create a `TenantPage` with optional SEO meta. Promoting a page to homepage demotes any previously-homepage page. - [Fetch a page by id or slug](https://docs.neuraldraft.io/api-reference/pages/fetch-a-page-by-id-or-slug.md) - [List pages](https://docs.neuraldraft.io/api-reference/pages/list-pages.md): Paginated list of `TenantPage` rows. Filter by `type` (landing, blog_list, blog_post, legal) or `is_active`. Pages are ordered with the homepage first, then alphabetically by slug. - [Soft-retire (default) or hard-delete (force=1) a page](https://docs.neuraldraft.io/api-reference/pages/soft-retire-default-or-hard-delete-force=1-a-page.md): By default sets `is_active=false`. Pass `?force=1` to hard delete. Refuses to delete the homepage. - [Update a page (merge semantics on meta)](https://docs.neuraldraft.io/api-reference/pages/update-a-page-merge-semantics-on-meta.md): Only fields you pass are overwritten — meta keys you omit are preserved. Pass an explicit `null` to clear a meta field. Path parameter must be the numeric id (not slug) for this endpoint. - [Create an API key](https://docs.neuraldraft.io/api-reference/projects/create-an-api-key.md): Creates a new API key for the current project. The full secret is returned **once** in the `secret` field — store it immediately. After the response, only the masked preview is retrievable. - [Get credit usage for the current period](https://docs.neuraldraft.io/api-reference/projects/get-credit-usage-for-the-current-period.md): Returns current credit balance, period boundaries, and a breakdown of credits consumed by operation type since the period started. - [Get the current project](https://docs.neuraldraft.io/api-reference/projects/get-the-current-project.md): Returns the project resolved from the API key in the request. Used by SDKs and the MCP server to bootstrap context (which project this key belongs to, what languages are configured, etc.). - [List API keys](https://docs.neuraldraft.io/api-reference/projects/list-api-keys.md): Lists all API keys belonging to the current project. The full secret value is only shown once — at creation time. This endpoint returns masked previews (`ndsk_live_…XYZ`). - [Revoke an API key](https://docs.neuraldraft.io/api-reference/projects/revoke-an-api-key.md): Permanently revokes the key. Subsequent requests authenticating with the revoked secret return `401 Unauthorized`. Cannot be undone. Revoking your last key locks you out of the API — be careful. - [Update the current project](https://docs.neuraldraft.io/api-reference/projects/update-the-current-project.md): Updates project-level metadata. Use this to change the display name, timezone, default language, or to add/remove target languages. - [Create a social post](https://docs.neuraldraft.io/api-reference/social/create-a-social-post.md): Two creation modes: - [Delete a social post](https://docs.neuraldraft.io/api-reference/social/delete-a-social-post.md) - [Disconnect a social account](https://docs.neuraldraft.io/api-reference/social/disconnect-a-social-account.md) - [Get a social post](https://docs.neuraldraft.io/api-reference/social/get-a-social-post.md) - [Initiate OAuth connection](https://docs.neuraldraft.io/api-reference/social/initiate-oauth-connection.md): Returns a redirect URL. Send the user to it; on completion they're sent to the `redirect_uri` you provided (or the default Neural Draft callback) with `?status=connected&account_id=...` appended. - [List connected social accounts](https://docs.neuraldraft.io/api-reference/social/list-connected-social-accounts.md): Read-only. - [List social posts](https://docs.neuraldraft.io/api-reference/social/list-social-posts.md): Read-only. - [Publish a social post immediately](https://docs.neuraldraft.io/api-reference/social/publish-a-social-post-immediately.md): Publishes to all linked platforms now. Returns the post with `publish_results` populated per platform. Fires `social_post.published` (and `social_post.failed` per failed platform). 0 credits. - [Schedule a social post](https://docs.neuraldraft.io/api-reference/social/schedule-a-social-post.md) - [Update a social post](https://docs.neuraldraft.io/api-reference/social/update-a-social-post.md) - [Generate a premium video clip](https://docs.neuraldraft.io/api-reference/videos/generate-a-premium-video-clip.md): Kicks off a premium short-form video generation (Kling v2.1 / Runway Gen4). Charges **100 credits** per call. Returns a [`Job`](#tag/Jobs) with `type: video.generate`; poll `GET /jobs/{id}` for completion. - [Create a webhook endpoint](https://docs.neuraldraft.io/api-reference/webhooks/create-a-webhook-endpoint.md): The response includes the **signing secret** in plaintext. Store it immediately — subsequent reads return only the masked preview. Verify all incoming webhook bodies with HMAC-SHA256 using this secret. - [Delete a webhook endpoint](https://docs.neuraldraft.io/api-reference/webhooks/delete-a-webhook-endpoint.md) - [List recent webhook deliveries](https://docs.neuraldraft.io/api-reference/webhooks/list-recent-webhook-deliveries.md): Returns delivery attempts from the last 30 days. Useful for debugging webhook integrations. Read-only. - [List webhook endpoints](https://docs.neuraldraft.io/api-reference/webhooks/list-webhook-endpoints.md) - [Retry a webhook delivery](https://docs.neuraldraft.io/api-reference/webhooks/retry-a-webhook-delivery.md): Manually re-attempts a previously-failed delivery. The original payload and signature are preserved (so signature verification on the receiving side still works). - [Update a webhook endpoint](https://docs.neuraldraft.io/api-reference/webhooks/update-a-webhook-endpoint.md) - [Authentication](https://docs.neuraldraft.io/authentication.md): Project API keys, scopes, rotation, and the failure modes you'll see when something is wrong. - [Changelog](https://docs.neuraldraft.io/changelog.md): Reverse-chronological release notes. Breaking changes are tagged `Breaking`; everything else is `Added`, `Changed`, or `Fixed`. - [Errors](https://docs.neuraldraft.io/errors.md): RFC 7807 problem+json shape, the full code catalog, and retry guidance per error class. - [Astro](https://docs.neuraldraft.io/frameworks/astro.md): Content collections backed by Neural Draft, with on-build fetching and webhook-driven rebuilds. - [Cursor & Claude Code](https://docs.neuraldraft.io/frameworks/cursor.md): A `.cursor/rules` and a `CLAUDE.md` template that turns any project into a Neural Draft-aware codebase. - [Lovable / v0 / Bolt](https://docs.neuraldraft.io/frameworks/lovable.md): The system-prompt block that makes hosted AI builders generate Neural Draft-native code. - [Next.js](https://docs.neuraldraft.io/frameworks/nextjs.md): App Router server actions, build-time content fetches, and a minimal blog wired to Neural Draft. - [Nuxt](https://docs.neuraldraft.io/frameworks/nuxt.md): A Nuxt 3 module + composable + webhook server route, ready to drop into any project. - [Vanilla HTML / fetch](https://docs.neuraldraft.io/frameworks/vanilla.md): Plain HTML and fetch — no framework, no build step, no SDK. - [Stripe Connect setup](https://docs.neuraldraft.io/guides/stripe-connect-setup.md): Let your project accept payments under its own brand — Neural Draft handles the platform plumbing. - [Neural Draft](https://docs.neuraldraft.io/introduction.md): The AI-native backend platform. CMS, blog, social, booking and commerce — wired into Lovable, Claude Code, Cursor, v0 and Bolt by an MCP layer. - [MCP overview](https://docs.neuraldraft.io/mcp/overview.md): Why an MCP server is the centerpiece of Neural Draft, and what `@neuraldraft/mcp` exposes to your AI tools. - [MCP setup](https://docs.neuraldraft.io/mcp/setup.md): Install `@neuraldraft/mcp` in Claude Code, Cursor, Continue, or any other MCP-capable client. - [Tools, resources, and prompts](https://docs.neuraldraft.io/mcp/tools-and-resources.md): Every primitive `@neuraldraft/mcp` exposes — what it returns, what it expects, and when the AI should call it. - [Migration from SaaS](https://docs.neuraldraft.io/migration-from-saas.md): How existing tenants move onto the API-first model. Nothing forced — both paths coexist. - [Blog](https://docs.neuraldraft.io/pillars/blog.md): Posts, categories, tags, scheduling, multi-language translation, and the AI authoring pipeline. - [Booking](https://docs.neuraldraft.io/pillars/booking.md): Bookable services, weekly availability, slot lookup, public booking flow, Stripe-paid bookings, and an embeddable widget. - [CMS](https://docs.neuraldraft.io/pillars/cms.md): The editable layer for AI-built sites. Translation keys, image keys, brand context, register-a-component. - [Commerce](https://docs.neuraldraft.io/pillars/commerce.md): Products, variants, categories, orders, Stripe Connect onboarding, Stripe Checkout sessions, and drop-in storefront widgets. - [Social](https://docs.neuraldraft.io/pillars/social.md): AI-generated multi-platform posts, scheduled publishing, OAuth account connections — with brand voice baked in. - [Pricing & credits](https://docs.neuraldraft.io/pricing-and-credits.md): Pure usage-based pricing. One meter. Hard stop at zero. No surprise bills. - [Quickstart](https://docs.neuraldraft.io/quickstart.md): Get a working Neural Draft integration — key, SDK, first API call — in under five minutes. - [Rate limits](https://docs.neuraldraft.io/rate-limits.md): Per-project sliding window, response headers, and the only backoff strategy you need. - [Webhooks](https://docs.neuraldraft.io/webhooks.md): Subscribe a URL to events your project cares about. Every delivery signed with HMAC-SHA256. ## OpenAPI Specs - [openapi](https://docs.neuraldraft.io/openapi.yaml) ## Optional - [SDK](https://github.com/vbalagovic/neuraldraft-sdk) - [Discord](https://discord.gg/XCQftzvBQX)