API reference
Huecraft API.
Everything the app does goes through this JSON API. These are the customer endpoints; account administration endpoints are not published.
Basics
- Base URL:
https://gethuecraft.com(the app and the API share the host). - Auth:
Authorization: Bearer <token>on every call except register and login. Get the token fromPOST /api/auth/login. - Format: JSON in and out, except the compare upload and brand creation, which are multipart, and files (PNG, PDF, SVG) which return their own type.
- Jobs: generation is asynchronous:
POST /api/brand/generateanswers202withjob_id; pollGET /api/brand/jobs/{job_id}. - Health:
GET /healthreturns{"ok":true}with no auth.
# sign in, then start a job curl -s https://gethuecraft.com/api/auth/login -H 'Content-Type: application/json' \ -d '{"email":"[email protected]","password":"..."}' curl -s https://gethuecraft.com/api/brand/generate -H "Authorization: Bearer $TOKEN" \ -H 'Content-Type: application/json' -d '{"business_name":"Kettle & Kiln","personality":["earthy","patient","playful"]}' # {"job_id":"...","status":"queued","poll":"/api/brand/jobs/..."}
Authentication
Create an account. Body: email, password (8+ characters), full_name. Returns a token and the email.
{"email":"[email protected]","password":"correct horse battery","full_name":"Your Name"}Sign in. Body: email, password. Returns token, email, name.
{"email":"[email protected]","password":"correct horse battery"}The signed-in account.
Update your name.
{"full_name":"New Name"}Change your password. Body: current_password, new_password.
{"current_password":"...","new_password":"..."}End the session.
Delete your account and its kits.
Brand kits
Start a generation job from a brief. Returns 202 with job_id and a poll URL. business_name is required.
{"business_name":"Kettle & Kiln","business_description":"Handmade stoneware and weekend classes","industry":"Pottery studio","target_audience":"Adults in Portland","personality":["earthy","patient","playful"],"color_preference":"warm browns"}Job status: status (queued, running, done, failed), progress, stage, kit_id when done; the kit is embedded on completion.
Your kits, newest first (up to 50).
One kit: params and the full kit JSON.
Delete a kit.
The kit's current logo as PNG.
The brand guide PDF, rendered on request if missing.
Research behind the kit as JSON; .md for Markdown; /research/{file} for a captured file.
Chat, compare, mockups
Ask the kit something. Body: message. Returns the reply; the thread is saved.
{"message":"Why this accent color?"}The saved conversation.
Multipart upload, field file: an alternative logo image. Returns a score comparison and a brief of the differences.
Which mockup types exist for this kit and which are not yet generated.
Render mockups. Body: types, any of app_icon, sticker, pattern, notepad, business_card, coffee_cup, shopping_bag, packaging_box. Omit for all.
{"types":["business_card","coffee_cup"]}One rendered mockup.
Studio
Your workspaces with role and brand count.
Create a workspace. Body: name.
{"name":"Northwind Legal"}Members and pending invites.
Invite by email with a role (admin).
{"email":"[email protected]","role":"editor"}Change a member's role (admin). DELETE removes them.
{"role":"admin"}Accept an invite link.
Brands in a workspace.
Create a brand (multipart): name, brief fields, colors, fonts and the mark file, or from_name=1 to draft a mark (editor).
A brand with every element's state and files.
Update brand fields (editor).
{"colors":{"primary":"#1F4E79","accent":"#D4A72C"}}Queue a build; body may list elements to skip. 409 if one is already running (editor).
{"skip":["cover_research"]}Approve or request changes on an element (admin). Body: element, decision, note.
{"element":"logo_suite","decision":"approved","note":"Ship it"}Download one built file.
Build a request
Pick an endpoint and copy a ready-to-edit curl line. Nothing is sent from this page, and no key is handled here.
Errors and limits
- Errors are JSON:
{"error":"..."}with400for a bad request,401for a missing or expired token,403for a role you don't have,404for a kit or job that isn't yours,409for a duplicate email or a build already running. - Plan limits apply to kit generation: one a month on Free, ten on Pro, unlimited on Agency.
- Rate limits for the API are to be confirmed before publication; today they are not enforced beyond plan limits.
Endpoints checked against the running product on 9 October 2026.