Browse the docs Open

Guides

Read the recipe before you cook.

Guides are static reference catalogs. They tell you which layer properties exist, which overrides a layer accepts, how to compose a template that looks good, and what the v2 editor document contains. They also tell you what a platform does to an image after you upload it, and what a given kind of image has to achieve. The content never changes between accounts, so you can cache a response and reuse it.

These endpoints read no template and no company data, and they cost no credits. They also stay outside your usage record, so a guide call never appears in `GET /v1/usage`.

GET /v1/guides/design

Get the design guide

Returns design guidance for building a template: canvas presets, the back-to-front layer order, typography and color rules, composition recipes, anti-patterns, and a preflight checklist. Read it before you write a `layers` array.

Auth: Bearer token Ability: api_requests Free

The catalog is the same for every account. Cache the response and refresh it on a new API version.

A guide call costs no credits and does not appear in `GET /v1/usage`.

Example request

curl

curl https://snapsbrew.com/api/v1/guides/design \
  -H 'Authorization: Bearer <your-token>' \
  -H 'Accept: application/json'

Example responses

200 The catalog, trimmed here to one entry.
{
    "data": {
        "typography": {
            "scale": "On a 1080px canvas: headline 64\u2013120px, subhead 36\u201356px, body 24\u201336px."
        }
    }
}
401 Missing or invalid token.
{
    "message": "Unauthenticated."
}

GET /v1/guides/layers

Get the layer schema

Returns the design-time layer vocabulary: the layer object shape, every property name, the value shape of each property, and a worked example. Use it to build the `layers` array a template write accepts.

Auth: Bearer token Ability: api_requests Free

The catalog is the same for every account. Cache the response and refresh it on a new API version.

A guide call costs no credits and does not appear in `GET /v1/usage`.

Example request

curl

curl https://snapsbrew.com/api/v1/guides/layers \
  -H 'Authorization: Bearer <your-token>' \
  -H 'Accept: application/json'

Example responses

200 The catalog, trimmed here to one entry.
{
    "data": {
        "property_names": [
            "textContent",
            "backgroundType",
            "fontFamily"
        ]
    }
}
401 Missing or invalid token.
{
    "message": "Unauthenticated."
}

GET /v1/guides/variant-properties

List variant properties

Returns every property you can apply to a layer in `variants`, with its value type, the layer types it applies to, and an example. Pair it with the `available_modifications` of a template layer.

Auth: Bearer token Ability: api_requests Free

The catalog is the same for every account. Cache the response and refresh it on a new API version.

A guide call costs no credits and does not appear in `GET /v1/usage`.

Example request

curl

curl https://snapsbrew.com/api/v1/guides/variant-properties \
  -H 'Authorization: Bearer <your-token>' \
  -H 'Accept: application/json'

Example responses

200 The catalog, trimmed here to one entry.
{
    "data": [
        {
            "property": "text",
            "value_type": "string",
            "applies_to": "text layers",
            "description": "Replace a text layer's content.",
            "example": {
                "layer": "headline",
                "text": "Summer Sale \u2014 40% off"
            }
        }
    ]
}
401 Missing or invalid token.
{
    "message": "Unauthenticated."
}

GET /v1/guides/editor-document

Get the editor document contract

Returns the versioned v2 editor-document contract: the resource it describes, property constraints, persistence rules, conflict recovery, and a safe workflow. Read it before you change an editor document.

Auth: Bearer token Ability: api_requests Free

The catalog is the same for every account. Cache the response and refresh it on a new API version.

A guide call costs no credits and does not appear in `GET /v1/usage`.

Example request

curl

curl https://snapsbrew.com/api/v1/guides/editor-document \
  -H 'Authorization: Bearer <your-token>' \
  -H 'Accept: application/json'

Example responses

200 The catalog, trimmed here to one entry.
{
    "data": {
        "contract_version": 2,
        "editor_document_version": 2,
        "resource": "template.editor_document"
    }
}
401 Missing or invalid token.
{
    "message": "Unauthenticated."
}

GET /v1/guides/platforms

List platform guides

Returns one line per platform: the size preset to start from, its dimensions and why that preset is the default. Read it to choose a platform, then read that platform for the full rules. The response also carries `specs_reviewed`, the month the published specs were last checked.

Auth: Bearer token Ability: api_requests Free

The catalog is the same for every account. Cache the response and refresh it on a new API version.

A guide call costs no credits and does not appear in `GET /v1/usage`.

Example request

curl

curl https://snapsbrew.com/api/v1/guides/platforms \
  -H 'Authorization: Bearer <your-token>' \
  -H 'Accept: application/json'

Example responses

200 The catalog, trimmed here to one entry.
{
    "data": [
        {
            "platform": "instagram",
            "name": "Instagram",
            "start_here": "instagram_post",
            "dimensions": "1080x1350",
            "why": "A 4:5 portrait post fills the most vertical space the feed will give a single image."
        }
    ]
}
401 Missing or invalid token.
{
    "message": "Unauthenticated."
}

GET /v1/guides/platforms/{platform}

Get one platform guide

Returns everything one platform does to an image: how it crops the frame, the directional UI safe zones where it paints its own controls, the accepted formats and size limits, the export width and color profile, its size presets, and its rules and anti-patterns.

Auth: Bearer token Ability: api_requests Free

Parameters

Name In Type Required Description
platform path string Yes A key from the index route, or a common alias. Maximum 64 characters. Valid keys: instagram, facebook, x, linkedin, threads, pinterest, tiktok, youtube, snapchat, whatsapp, web, ads, print.

The catalog is the same for every account. Cache the response and refresh it on a new API version.

A guide call costs no credits and does not appear in `GET /v1/usage`.

An alias is accepted. `/v1/guides/platforms/insta` returns the same guide as `/v1/guides/platforms/instagram`.

Example request

curl

curl https://snapsbrew.com/api/v1/guides/platforms/instagram \
  -H 'Authorization: Bearer <your-token>' \
  -H 'Accept: application/json'

Example responses

200 The catalog, trimmed here to one entry.
{
    "data": {
        "platform": "instagram",
        "name": "Instagram",
        "specs_reviewed": "2026-09",
        "start_here": "instagram_post"
    }
}
401 Missing or invalid token.
{
    "message": "Unauthenticated."
}
404 No guide matches the key. The body names every valid key.
{
    "message": "No platform guide matches `myspace`.",
    "available": [
        "instagram",
        "facebook",
        "x",
        "linkedin",
        "threads",
        "pinterest",
        "tiktok",
        "youtube",
        "snapchat",
        "whatsapp",
        "web",
        "ads",
        "print"
    ]
}
422 The key is longer than 64 characters.
{
    "message": "The platform field must not be greater than 64 characters."
}

GET /v1/guides/purposes

List image purpose guides

Returns one line per purpose: what that kind of image is, when to use it and the size presets that fit it. Read it to choose a purpose, then read that purpose for the full rules.

Auth: Bearer token Ability: api_requests Free

The catalog is the same for every account. Cache the response and refresh it on a new API version.

A guide call costs no credits and does not appear in `GET /v1/usage`.

Example request

curl

curl https://snapsbrew.com/api/v1/guides/purposes \
  -H 'Authorization: Bearer <your-token>' \
  -H 'Accept: application/json'

Example responses

200 The catalog, trimmed here to one entry.
{
    "data": [
        {
            "purpose": "link_preview",
            "name": "Link preview / meta tag image",
            "use_when": "You are shipping a page and you want the shared link to look deliberate.",
            "sizes": [
                "open_graph",
                "twitter_card"
            ]
        }
    ]
}
401 Missing or invalid token.
{
    "message": "Unauthenticated."
}

GET /v1/guides/purposes/{purpose}

Get one image purpose guide

Returns the job one kind of image has to do: the size presets that fit it, the rules and failure modes specific to it, a layer recipe in the Snapsbrew vocabulary, an anti-pattern list and a preflight checklist. The `link_preview` purpose also returns the og: and twitter: meta tags to put in the page head.

Auth: Bearer token Ability: api_requests Free

Parameters

Name In Type Required Description
purpose path string Yes A key from the index route, or a common alias. Maximum 64 characters. Valid keys: link_preview, feed_post, carousel, story, profile_picture, cover, video_thumbnail, ad, product_shot, email_header, article_header, presentation_slide.

The catalog is the same for every account. Cache the response and refresh it on a new API version.

A guide call costs no credits and does not appear in `GET /v1/usage`.

An alias is accepted. `/v1/guides/purposes/og` returns the same guide as `/v1/guides/purposes/link_preview`.

Example request

curl

curl https://snapsbrew.com/api/v1/guides/purposes/link_preview \
  -H 'Authorization: Bearer <your-token>' \
  -H 'Accept: application/json'

Example responses

200 The catalog, trimmed here to one entry.
{
    "data": {
        "purpose": "link_preview",
        "name": "Link preview / meta tag image",
        "layer_recipe": "base fill -> optional photo with a dark scrim -> headline -> supporting line -> logo."
    }
}
401 Missing or invalid token.
{
    "message": "Unauthenticated."
}
404 No guide matches the key. The body names every valid key.
{
    "message": "No purpose guide matches `wallpaper`.",
    "available": [
        "link_preview",
        "feed_post",
        "carousel",
        "story",
        "profile_picture",
        "cover",
        "video_thumbnail",
        "ad",
        "product_shot",
        "email_header",
        "article_header",
        "presentation_slide"
    ]
}
422 The key is longer than 64 characters.
{
    "message": "The purpose field must not be greater than 64 characters."
}