# Knak > Knak is a no-code email and landing page creation platform for enterprise marketing teams. Marketers build on-brand, responsive emails and landing pages in a drag-and-drop builder and sync the finished HTML into their marketing automation platform. Knak publishes a REST developer surface (Enterprise, Send Contacts, SCIM 2.0), signed webhooks, three customer-implemented integration contracts, and a hosted OAuth 2.1 MCP server. Generated by the API Evangelist enrichment pipeline on 2026-07-19, revised 2026-08-13. Knak does not publish its own /llms.txt; this file is generated from the provider's published specifications and documentation. ## APIs - [Knak Enterprise API](https://developer.knak.com/api/): Core REST API for users, assets (emails and landing pages), asset content and previews, AI asset generation, themes, modules, brands, asset folders, custom fieldsets, available platforms, merge tags, marketing platform syncs, sync statuses, integrations and translation requests. Base URL https://enterprise.knak.io/api/published/v1 - [Knak Send Contacts API](https://developer.knak.com/api/send/): Contacts and contact fields for Knak Send, including bulk upsert and bulk delete. Base URL https://send.knak.io/api/public/v1 - [Knak SCIM API](https://developer.knak.com/api/scim/): SCIM 2.0 user provisioning driven by an identity provider. Base URL https://enterprise.knak.io/scim/v2 - [Custom DAM API](https://developer.knak.com/api/dam/): Contract a customer implements so Knak can browse images from their digital asset management system. - [Custom Validator API](https://developer.knak.com/api/custom-validator/): Contract a customer implements to run Knak assets through their own validation pipeline. - [Custom Sync Location API](https://developer.knak.com/api/custom-sync-location/): Contract a customer implements to control sync destinations with custom logic. ## Specs - [Knak Enterprise OpenAPI 3.1](https://developer.knak.com/openapi/openapi.yml): 44 operations - [Knak Send OpenAPI 3.1](https://developer.knak.com/openapi/send/send-api.yml): 11 operations - [Knak SCIM OpenAPI 3.1](https://developer.knak.com/openapi/scim-api.yml): 5 operations - [Custom DAM OpenAPI 3.1](https://developer.knak.com/openapi/custom-dam-api.yml): 5 operations - [Custom Validator OpenAPI 3.1](https://developer.knak.com/openapi/custom-validator-api.yml): 2 operations - [Custom Sync Location OpenAPI 3.1](https://developer.knak.com/openapi/custom-sync-location-api.yml): 2 operations ## AI and agents - [Knak MCP Server](https://developer.knak.com/ai-integrations/mcp/): Hosted MCP server at https://enterprise.knak.io/mcp/public. OAuth 2.1 authorization code with PKCE S256 and dynamic client registration, scope mcp:use. Tools: list-brands, list-campaigns, list-themes, generate-asset, get-asset-preview, list-assets, get-asset. Works with Claude Desktop and ChatGPT. - [OAuth authorization server metadata](https://enterprise.knak.io/.well-known/oauth-authorization-server): RFC 8414 discovery document. ## Docs - [Developer portal](https://developer.knak.com/) - [Getting started](https://developer.knak.com/welcome/getting-started/) - [Setting up an API user](https://developer.knak.com/api-essentials/api-user-setup/) - [Custom integration and webhook setup](https://help.knak.io/en/articles/7950399-knak-custom-integration-setup) - [Help center](https://help.knak.io/en/) - [Status page](https://status.knak.io/) - [Security and compliance](https://knak.com/security/) - [Trust center](https://trust.knak.com/) ## Conventions - Authentication: Bearer token in the Authorization header. Obtain it as a non-expiring API key from https://enterprise.knak.io/account/api-access, or through the OAuth 2.0 authorization code flow (authorize https://enterprise.knak.io/oauth/authorize, token https://enterprise.knak.io/oauth/token). OAuth is the recommended method. - Pagination: page and per_page query parameters. per_page defaults to 10 and is capped at 100. - Filtering: filter[field_name] with exact, partial and scope filter types, documented per endpoint. - Sorting: sort=updated_at or sort=created_at. - Errors (Enterprise, SCIM): HTTP status codes only (400, 401, 403, 404). No RFC 9457 problem+json. - Errors (Send Contacts): named codes in three envelopes - {"error":{"code","message"}} for 400/401/403/404/409/503, a top-level errors[] array with identifier/details/meta for 422 validation failures, and {"message","type"} for 429. Branch on error.code, not on message text. Codes: UNAUTHENTICATED, ACCESS_DENIED, EMAIL_DOMAIN_NOT_ALLOWED, CONTACT_NOT_FOUND, FIELD_NOT_FOUND, CONTACT_ALREADY_EXISTS, FIELD_ALREADY_EXISTS, SERVICE_UNAVAILABLE. Only SERVICE_UNAVAILABLE and 429 are retryable. - Idempotency: not supported. No idempotency key header or parameter is documented. POST /contacts/bulk on Send is upsert-by-email and therefore naturally repeatable. - Rate limits: published for Knak Send Contacts only - 1000 requests/minute per API client on standard endpoints, 60/minute on POST /contacts/bulk and DELETE /contacts/bulk, 429 on exhaustion. MCP: dynamic client registration capped at 10/minute per IP, plus unpublished per-user and per-company daily asset generation quotas. No limits published for Enterprise or SCIM. No RateLimit-*, X-RateLimit-* or Retry-After headers on any surface, so retry with a fixed backoff. - Webhooks: HMAC-SHA256 signature in the knak-signature header; up to three delivery attempts 60 seconds apart. - Pricing: no published plans. knak.com/pricing is a quote request form; Knak sells enterprise contracts through sales. ## Events Six webhooks, declared in the Enterprise OpenAPI 3.1 webhooks object: asset.created, asset.sync_requested, asset.sync_confirmation_responded, asset.approval_status_updated, asset.translation_requested, translation_request.created. ## Not published Knak publishes no first-party SDK on npm, PyPI or any other public registry; no GitHub organization; no CLI; no public Postman workspace; no dated changelog or roadmap; no public sandbox or test environment; no /.well-known/security.txt; no A2A agent card (both /.well-known/agent-card.json and /.well-known/agent.json 404 on every Knak host); no GraphQL. Vulnerability reports go to security@knak.com per https://knak.com/security/. ## Agent reach The hosted MCP server is a read-and-generate projection of the Enterprise API, not a full one: six of the 44 Enterprise operations are reachable through its seven tools. Notably, the entire marketing-platform sync chain (POST /assets/{asset_id}/marketing-platform-syncs, GET /marketing-platform-syncs/{sync_history}, sync statuses, integrations, available platforms) has no MCP tool, so an agent can generate an email in Knak but cannot ship it to Marketo, Eloqua, SFMC or Braze without falling back to REST. The Send Contacts and SCIM APIs have no MCP coverage at all. See mcp/knak-tool-crosswalk.yml. MCP tools and their published inputs: list-brands (none); list-campaigns (brand_name); list-themes (name, search, published); generate-asset (prompt*, campaign_name*, brand_name, asset_name, subject, theme_id, from_name, from_email, reply_email, tags, images max 10, files max 2); get-asset (asset_id*); get-asset-preview (asset_id*); list-assets (brand_name, campaign_name, search, type, limit 1-25, offset). Asterisk marks required. Live tools/list is OAuth-gated (401 anonymous).