API Guide

    The Techne REST API lets you generate, schedule, and publish content across Techne Blog, Webflow, WordPress, LinkedIn, Twitter/X, and Facebook.

    Authentication

    All requests require a workspace API key in the Authorization header.

    Where to find your API key

    1. Open Settings > API (direct link). If you do not see the API tab, ask an account Owner or Admin to create the key for you (only Owners and Admins can manage API keys).
    2. Click Create API Key, name it, and copy the value shown. It starts with tk_ and is displayed only once.
    3. Paste it into your integration as the Authorization: Bearer value below.
    Authorization: Bearer tk_your_api_key_here

    Keys are scoped to one workspace and shown only once when created.

    Endpoint Summary

    MethodPathPurpose
    POST/api-publishGenerate content and trigger publish flow.
    GET/api-publish?query=platformsList currently connected platforms.
    GET/api-publish?query=authorsList Webflow authors for author mapping.
    GET/api-publish?query=requirements&platform=webflowInspect required/optional fields by platform.
    GET/api-submit-content?query=schemaFetch the Techne Doc JSON schema and examples.
    POST/api-submit-contentSubmit content you already wrote as a Techne Doc.
    PATCH/api-submit-contentUpdate a submitted document, optionally re-publishing it.

    Submit content you already wrote

    When your agent writes the piece itself, skip generation and send a structured Techne Doc. Techne stores your words verbatim, links each reference inline on its claim, renders a Sources section, and distributes to every connected channel.

    curl -X POST https://gnebwplgmrtcwboauvgi.supabase.co/functions/v1/api-submit-content \ -H "Authorization: Bearer tk_your_key" \ -H "Content-Type: application/json" \ -d '{ "document": { "doc_version": "1.0", "type": "article", "title": "Why scheduled posts fail silently", "seo_description": "A field guide to queue reliability.", "body": { "format": "markdown", "content": "## The failure\nScheduled posts sat in the queue." }, "references": [ { "url": "https://example.com/queue", "title": "Queue reliability", "claim": "sat in the queue" } ], "publishing": { "platforms": ["techne", "linkedin"], "status": "publish" } } }'

    Omit publishing.platforms to inherit your workspace Publishing Defaults. Any per-platform social copy you supply is kept as-is; blank platforms get copy generated for them. Fetch the full field list any time with GET /api-submit-content?query=schema.

    Images for submitted content

    Most agents write words, not pictures. Every Techne Doc resolves exactly one featured image, in this order:

    • media.featured_image_url: an image you already have. Free, and it wins over generation.
    • media.generate_image: true: Techne generates one with AI. Costs one image credit. Addmedia.image_prompt for art direction, or leave it out and Techne builds the prompt from your title, business context, and workspace image style.
    • Video documents fall back to the YouTube or Vimeo thumbnail automatically. Override it withvideo.thumbnail_url. Free.
    • Field omitted: your workspace "generate featured image" publishing default decides. Webflow and Pinterest still generate an image when nothing else is available, because those channels require one.
    • media.generate_image: false: no image at all, unless a video thumbnail exists.
    "media": { "generate_image": true, "image_prompt": "A quiet control room dashboard, muted teal and gold, no text" } // response "image": { "source": "generated", "url": null, "credits_estimate": 1 }

    The response always includes an image block naming which branch ran, so you can tell whether credits were spent. Swapping or regenerating later works the same way throughPATCH /api-submit-content.

    Create and publish content

    Send a POST request to create content and start publishing:

    curl -X POST https://gnebwplgmrtcwboauvgi.supabase.co/functions/v1/api-publish \ -H "Authorization: Bearer tk_your_key" \ -H "Content-Type: application/json" \ -d '{ "prompt": "Write a post about AI governance for SaaS teams", "platforms": ["techne", "linkedin", "facebook"], "tone": "professional", "tags": ["ai", "governance"], "generate_image": false }'

    External platform publishing runs in the background. The initial response returns quickly with apublishing_status.

    Request body

    FieldTypeNotes
    promptstringRequired. Minimum 3 characters.
    platformsstring[]Optional. Defaults to ["techne"].
    tonestringOptional. Defaults to "professional".
    tagsstring[]Optional post tags.
    webflow_author_idstringRequired when publishing to Webflow.
    generate_imagebooleanOptional. Auto-true when publishing to Webflow.
    schedule_atstringOptional ISO-8601 datetime for scheduled publish.
    brand_profile_iduuidApply a saved brand profile's tone, tags, target_keywords, backlinks, and aio_optimize as defaults.
    target_keywordsstring[]SEO keywords woven naturally into the post. Overrides brand-profile / workspace defaults.
    backlinksobject[]Each item: { url, anchor?, description?, rel? }. Use rel="sponsored" for affiliate links, rel="nofollow" to skip SEO signals.
    backlink_strategystring"natural" (inline weaving), "reference" (Further reading list), or "off". Default "natural".
    max_backlinksnumberCap 0-10. Default 3.
    aio_optimizebooleanAgent-Optimized Content structure (direct-answer intro, FAQ, semantic H2s).

    Response behavior

    The API is optimized for quick responses. For non-Techne targets, publish jobs continue asynchronously.

    { "success": true, "content_id": "uuid", "title": "Generated title", "scheduled": false, "publishing_status": "in_progress", "results": [ { "platform": "techne", "success": true, "live_url": "https://techne.blog/author/slug" } ] }

    publishing_status can be published, in_progress, or scheduled.

    Platform discovery queries

    curl "https://gnebwplgmrtcwboauvgi.supabase.co/functions/v1/api-publish?query=platforms" \ -H "Authorization: Bearer tk_your_key"
    curl "https://gnebwplgmrtcwboauvgi.supabase.co/functions/v1/api-publish?query=requirements&platform=facebook" \ -H "Authorization: Bearer tk_your_key"
    curl "https://gnebwplgmrtcwboauvgi.supabase.co/functions/v1/api-publish?query=authors" \ -H "Authorization: Bearer tk_your_key"

    Common status codes

    CodeReason
    401Missing, invalid, or revoked API key.
    402No active subscription on the account.
    403API key user has viewer-only workspace role.
    429Monthly credit limit reached.
    500Unexpected server or generation error.

    Related

    Want to drive this API from AI agents instead of raw HTTP requests? See the MCP Server guide.