Fourthwall MCP Server & CLI

A free, open source Fourthwall CLI and local MCP with shared approval controls, isolated shop profiles, reviewed batches, bounded exports and private uploads.

Navid Moazzezby Navid Moazzez·Updated Oct 3, 2026·57 min read·
Rate this tool

This free Fourthwall MCP server and CLI gives you selected shop operations with the same private profiles and approval policy on both surfaces. It includes 86 tasks: 49 reads and 37 effects that ask for approval.

Fourthwall already offers a broad official hosted OAuth MCP. This guide explains when this local companion helps, how to configure it and how its actual workflows behave.

What you can ask it

Ask for a bounded shop task, then review any change before execution:

  • List the first 25 products in the intended shop and report their state and availability separately.
  • Read this order and check the native fulfillment contract before preparing a tracking update.
  • Review these exact product availability changes, then execute only the batch I approve.
  • Export up to ten pages of order metadata into a new private file and report continuation.
  • Prepare a hidden digital product from this reviewed native payload. Do not publish it implicitly.
  • Upload this local image from a private receipt, then show the separate registration step.

These prompts name implemented operations. The terminal animation illustrates a reviewed workflow, rather than an authenticated shop recording.

Set up your account

A Fourthwall SUPER ADMIN can create shop API credentials in Settings > For Developers. Follow Fourthwall authentication. Shop Basic credentials grant full shop access; never describe them as a read-only key.

Choose exactly one private source: FOURTHWALL_USERNAME and FOURTHWALL_PASSWORD, an existing FOURTHWALL_ACCESS_TOKEN, or FOURTHWALL_CREDENTIALS_FILE. OAuth permission comes from the provider. This package does not implement consent, exchange or refresh.

{"username":"YOUR_PRIVATE_SHOP_API_USERNAME","password":"YOUR_PRIVATE_SHOP_API_PASSWORD"}

Alternatively store only an already-issued access_token in that file. Replace placeholders only privately, restrict the file and parent directory, and adapt paths for the actual OS/runtime.

The credential file is a JSON object containing either username/password or access_token. It must be an absolute regular non-symlink file, at most 64 KiB, outside repositories. On POSIX the process user must own it and permissions must be owner-only, normally 0600; restrict Windows ACLs separately. Never paste credentials into chat, command transcripts, issues, payloads or project configuration.

fourthwall-cli login
fourthwall-cli list-accounts --agent
fourthwall-cli doctor
fourthwall-cli doctor --network

Login prints instructions. Doctor checks local profiles and policy; the deliberate network option reads the current shop and validates its id. One successful read does not prove every permission, every task or resource ownership. File credentials are cached for the process: restart clients after rotating or revoking them.

Install

Install Node 22+ in the runtime that launches the server. Use the complete INSTALL.md for Codex, Claude Code, Claude Desktop, Cursor, VS Code/Copilot, Windsurf, Zed, Gemini CLI, Docker and all three desktop OSes.

npm install -g @thenavidm/fourthwall-mcp-cli@latest
fourthwall-cli --version
fourthwall-cli tools
fourthwall-cli schema list-products

After configuring credentials privately, register the local server in Codex:

codex mcp add fourthwall -- npx -y @thenavidm/fourthwall-mcp-cli@latest
codex mcp list

The MCP executable speaks stdio; it is not a hosted URL. The desktop extension is fourthwall-2.0.0.mcpb. Manual installation and updates use the host's supported extension screen. Choose one auth source, leave unused inputs empty and reconnect. GUI installation and authenticated provider tasks require their own validation.

More local client setup

OpenCode

Merge this into your private user config, following OpenCode's MCP docs. Reconnect and inspect the server status.

{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"fourthwall": {
"type": "local",
"command": ["npx", "-y", "@thenavidm/fourthwall-mcp-cli@latest"],
"enabled": true,
"environment": {"FOURTHWALL_CREDENTIALS_FILE": "/absolute/private/fourthwall.json"}
}
}
}

Copilot CLI

After private runtime setup, use Copilot CLI's documented registration:

copilot mcp add fourthwall --env FOURTHWALL_CREDENTIALS_FILE=/absolute/private/fourthwall.json -- npx -y @thenavidm/fourthwall-mcp-cli@latest
copilot mcp get fourthwall

Registration stores the private file path in user configuration; do not put actual credentials in the command or repository.

OpenClaw

Use the saved-server registry in an eligible runtime, following OpenClaw's MCP reference:

openclaw mcp add fourthwall --command npx --arg -y --arg @thenavidm/fourthwall-mcp-cli@latest --env FOURTHWALL_CREDENTIALS_FILE=/absolute/private/fourthwall.json
openclaw mcp doctor fourthwall --probe

Configure paths in the process where the server actually runs. Runtime projection and trust policy remain client-specific; a saved entry is not proof of a successful provider call.

Antigravity

Follow Google's current custom-server instructions: open MCP Servers, Manage MCP Servers, then View raw config. Merge the Claude Desktop manual mcpServers block above. Current global config is ~/.gemini/config/mcp_config.json; project .agents/mcp_config.json must never contain secrets. The local stdio command/args/env form applies. Reconnect and inspect tools.

Hermes

Merge this into your private ~/.hermes/config.yaml, following Hermes MCP configuration:

mcp_servers:
fourthwall:
command: "npx"
args: ["-y", "@thenavidm/fourthwall-mcp-cli@latest"]
env:
FOURTHWALL_CREDENTIALS_FILE: "/absolute/private/fourthwall.json"

Restart the agent and inspect available tools. An agent shell can also use fourthwall-cli directly with the shipped SKILL.md; installing npm does not automatically register the skill.

Output and exit codes

Both binaries use the same schemas, handlers, validation and confirmation guard. --json prints JSON, --compact prints a single line, and --agent gives compact output for an agent. --select projects requested output fields. Errors go to stderr. --yes suppresses interactive presentation; it never replaces --confirm.

ExitMeaning
0Successful command
2Usage, invalid arguments or refused effect
3Not found
4Provider authentication/permission failure
5Other API/network failure
7Provider quota/rate limit
10Missing/invalid local configuration
fourthwall-cli list-products --page 0 --size 25 --agent
fourthwall-cli get-shop --account intended-shop --json
fourthwall-cli schema create-promotion

Tool path/query snake_case arguments become dash flags. Native body fields retain their exact camelCase flags, such as --fileName and --contentType; inspect --help instead of guessing a spelling. Objects and arrays use JSON. Use a private --payload-file for larger native bodies. Do not mix payload, payload-file and flat body fields.

Which surface and what each costs

Use CLI for scripts, shell agents and selected tasks. Use MCP where your app discovers tools and calls them directly. Both surfaces reach the same 86 tasks and enforce the same approval policy.

SurfaceContext and task considerations
CLICommand help and results enter context on demand; agent shell access is needed
MCPTool schemas may be loaded or deferred depending on the client; result content still costs context
Read-only MCPExposes 49 reads and excludes 37 effects locally
Official hosted MCPBroad OAuth tooling with its own schemas, previews and confirmation flow

No matched completed Codex task/token measurement has been collected for this integration. Counts, schema characters, discovery costs and another integration's benchmark are not task savings. A fair comparison must record equivalent inputs, current client/model, permissions, successful native outcomes, errors/retries and total tokens. Software is free under AGPL-3.0; provider fees and plans remain separate.

Tools

49 reads and 37 confirmed effects. All 86 tasks follow below; nested native JSON fields come from the selected reviewed schema.

get_webhook

Rate limit: 100 requests / 10 seconds per shop. See [Rate limiting](/guides/rate-limiting).

Get a webhook

CLI: fourthwall-cli get-webhook. Policy: read.

Native: GET /open-api/v1.0/webhooks/{webhookConfigurationId}. Current source.

webhook_configuration_id
Type or constraint
string (minLength=1, maxLength=256)
Requirement
Required
Meaning
Native webhookConfigurationId
account
Type or constraint
string
Requirement
Optional
Meaning
Exact private shop profile label; not a provider identity or authorization proof.

update_webhook

Rate limit: 100 requests / 10 seconds per shop. See [Rate limiting](/guides/rate-limiting).

Update a webhook

CLI: fourthwall-cli update-webhook. Policy: explicit confirmation.

Native: PUT /open-api/v1.0/webhooks/{webhookConfigurationId}. Current source.

webhook_configuration_id
Type or constraint
string (minLength=1, maxLength=256)
Requirement
Required
Meaning
Native webhookConfigurationId
url
Type or constraint
string
Requirement
Optional
Meaning
Native field
allowedTypes
Type or constraint
array
Requirement
Optional
Meaning
Native field
account
Type or constraint
string
Requirement
Optional
Meaning
Exact private shop profile label; not a provider identity or authorization proof.
confirm
Type or constraint
boolean
Requirement
Optional
Meaning
Explicit approval for this exact provider effect or local private-file operation.
payload
Type or constraint
object
Requirement
Optional
Meaning
Complete current native JSON body; cannot mix with native body flags or payload_file.
payload_file
Type or constraint
string (minLength=1)
Requirement
Optional
Meaning
Absolute regular non-symlink native JSON body file, at most1MiB. Cannot mix with payload or body flags.

Native body fields below must also satisfy their required fields/oneOf branch. Supply native flat fields, payload OR payload_file. The entire machine-readable schema is available through the CLI and get_operation_schema.

url
Type or constraint
string
Requirement
Required
Meaning
Native field
allowedTypes
Type or constraint
array
Requirement
Required
Meaning
Native field

delete_webhook

Rate limit: 100 requests / 10 seconds per shop. See [Rate limiting](/guides/rate-limiting).

Delete a webhook

CLI: fourthwall-cli delete-webhook. Policy: explicit confirmation.

Native: DELETE /open-api/v1.0/webhooks/{webhookConfigurationId}. Current source.

webhook_configuration_id
Type or constraint
string (minLength=1, maxLength=256)
Requirement
Required
Meaning
Native webhookConfigurationId
account
Type or constraint
string
Requirement
Optional
Meaning
Exact private shop profile label; not a provider identity or authorization proof.
confirm
Type or constraint
boolean
Requirement
Optional
Meaning
Explicit approval for this exact provider effect or local private-file operation.

start_streaming

Rate limit: 100 requests / 10 seconds per shop. See [Rate limiting](/guides/rate-limiting).

Sets streaming status to started for specified services

CLI: fourthwall-cli start-streaming. Policy: explicit confirmation.

Native: PUT /open-api/v1.0/streaming/start. Current source.

services
Type or constraint
array
Requirement
Optional
Meaning
Native field
account
Type or constraint
string
Requirement
Optional
Meaning
Exact private shop profile label; not a provider identity or authorization proof.
confirm
Type or constraint
boolean
Requirement
Optional
Meaning
Explicit approval for this exact provider effect or local private-file operation.
payload
Type or constraint
object
Requirement
Optional
Meaning
Complete current native JSON body; cannot mix with native body flags or payload_file.
payload_file
Type or constraint
string (minLength=1)
Requirement
Optional
Meaning
Absolute regular non-symlink native JSON body file, at most1MiB. Cannot mix with payload or body flags.

Native body fields below must also satisfy their required fields/oneOf branch. Supply native flat fields, payload OR payload_file. The entire machine-readable schema is available through the CLI and get_operation_schema.

services
Type or constraint
array
Requirement
Required
Meaning
Native field
services.[].variant 1
Type or constraint
value
Requirement
Choose one
Meaning
Native oneOf
services.[].variant1.type
Type or constraint
string
Requirement
Required
Meaning
Native field
services.[].variant1.broadcasterId
Type or constraint
string
Requirement
Optional
Meaning
Native field
services.[].variant1.broadcasterLogin
Type or constraint
string
Requirement
Optional
Meaning
Native field
services.[].variant1.thumbnailUrl
Type or constraint
string
Requirement
Optional
Meaning
Native field

end_streaming

Rate limit: 100 requests / 10 seconds per shop. See [Rate limiting](/guides/rate-limiting).

Sets streaming status to ended for specified services

CLI: fourthwall-cli end-streaming. Policy: explicit confirmation.

Native: PUT /open-api/v1.0/streaming/end. Current source.

services
Type or constraint
array
Requirement
Optional
Meaning
Native field
account
Type or constraint
string
Requirement
Optional
Meaning
Exact private shop profile label; not a provider identity or authorization proof.
confirm
Type or constraint
boolean
Requirement
Optional
Meaning
Explicit approval for this exact provider effect or local private-file operation.
payload
Type or constraint
object
Requirement
Optional
Meaning
Complete current native JSON body; cannot mix with native body flags or payload_file.
payload_file
Type or constraint
string (minLength=1)
Requirement
Optional
Meaning
Absolute regular non-symlink native JSON body file, at most1MiB. Cannot mix with payload or body flags.

Native body fields below must also satisfy their required fields/oneOf branch. Supply native flat fields, payload OR payload_file. The entire machine-readable schema is available through the CLI and get_operation_schema.

services
Type or constraint
array
Requirement
Required
Meaning
Native field

get_public_token

Rate limit: 100 requests / 10 seconds per shop. See [Rate limiting](/guides/rate-limiting).

Returns an existing public token for the shop, or creates a new one if none exists

CLI: fourthwall-cli get-public-token. Policy: explicit confirmation.

Native: PUT /open-api/v1.0/public-token. Current source.

account
Type or constraint
string
Requirement
Optional
Meaning
Exact private shop profile label; not a provider identity or authorization proof.
confirm
Type or constraint
boolean
Requirement
Optional
Meaning
Explicit approval for this exact provider effect or local private-file operation.
output_file
Type or constraint
string (minLength=1)
Requirement
Required
Meaning
Absolute NEW owner-private receipt file; exclusive0600 creation, no overwrite. Upload/public-token URLs never enter ordinary output.

get_promotion

Rate limit: 100 requests / 10 seconds per shop. See [Rate limiting](/guides/rate-limiting).

Returns a promotion by id

CLI: fourthwall-cli get-promotion. Policy: read.

Native: GET /open-api/v1.0/promotions/{promotionId}. Current source.

promotion_id
Type or constraint
string (minLength=1, maxLength=256)
Requirement
Required
Meaning
Native promotionId
account
Type or constraint
string
Requirement
Optional
Meaning
Exact private shop profile label; not a provider identity or authorization proof.

update_promotion

Rate limit: 100 requests / 10 seconds per shop. See [Rate limiting](/guides/rate-limiting).

Updates an existing promotion's configuration. Only provided fields are updated; omitted fields remain unchanged. Status changes (activate/deactivate) are part of the same update call.

CLI: fourthwall-cli update-promotion. Policy: explicit confirmation.

Native: PUT /open-api/v1.0/promotions/{promotionId}. Current source.

promotion_id
Type or constraint
string (minLength=1, maxLength=256)
Requirement
Required
Meaning
Native promotionId
limits
Type or constraint
object
Requirement
Optional
Meaning
Native field
requirements
Type or constraint
object
Requirement
Optional
Meaning
Native field
appliesTo
Type or constraint
union
Requirement
Optional
Meaning
Native field
status
Type or constraint
LIVE, ENDED
Requirement
Optional
Meaning
Native field
account
Type or constraint
string
Requirement
Optional
Meaning
Exact private shop profile label; not a provider identity or authorization proof.
confirm
Type or constraint
boolean
Requirement
Optional
Meaning
Explicit approval for this exact provider effect or local private-file operation.
payload
Type or constraint
object
Requirement
Optional
Meaning
Complete current native JSON body; cannot mix with native body flags or payload_file.
payload_file
Type or constraint
string (minLength=1)
Requirement
Optional
Meaning
Absolute regular non-symlink native JSON body file, at most1MiB. Cannot mix with payload or body flags.

Native body fields below must also satisfy their required fields/oneOf branch. Supply native flat fields, payload OR payload_file. The entire machine-readable schema is available through the CLI and get_operation_schema.

limits
Type or constraint
object
Requirement
Optional
Meaning
Native field
limits.maximumUse
Type or constraint
integer (format=int32)
Requirement
Optional
Meaning
Native field
limits.oneUsePerCustomer
Type or constraint
boolean
Requirement
Required
Meaning
Native field
requirements
Type or constraint
object
Requirement
Optional
Meaning
Native field
requirements.minimumOrderValue
Type or constraint
object
Requirement
Optional
Meaning
Native field
requirements.minimumOrderValue.value
Type or constraint
number (minimum=0)
Requirement
Required
Meaning
Native field
requirements.minimumOrderValue.currency
Type or constraint
string
Requirement
Required
Meaning
Native field
appliesTo
Type or constraint
union
Requirement
Optional
Meaning
Native field
appliesTo.variant 1
Type or constraint
value
Requirement
Choose one
Meaning
Native oneOf
appliesTo.variant1.type
Type or constraint
string
Requirement
Optional
Meaning
Native field
appliesTo.variant 2
Type or constraint
value
Requirement
Choose one
Meaning
Native oneOf
appliesTo.variant2.productIds
Type or constraint
array
Requirement
Optional
Meaning
Native field
appliesTo.variant2.oncePerOrder
Type or constraint
boolean
Requirement
Optional
Meaning
Native field
status
Type or constraint
LIVE, ENDED
Requirement
Optional
Meaning
Native field

update_product_state

Rate limit: 100 requests / 10 seconds per shop. See [Rate limiting](/guides/rate-limiting).

Transitions the product between PUBLIC and HIDDEN. Use DELETE /products/{productId} to archive — ARCHIVED is not reachable here. The sold-out (available) flag is preserved; flip it via PUT /products/{productId}/availability. Idempotent: no-op if the product is already in the requested state.

CLI: fourthwall-cli update-product-state. Policy: explicit confirmation.

Native: PUT /open-api/v1.0/products/{productId}/state. Current source.

product_id
Type or constraint
string (minLength=1, maxLength=256)
Requirement
Required
Meaning
Native productId
state
Type or constraint
PUBLIC, HIDDEN
Requirement
Optional
Meaning
Target lifecycle state. PUBLIC makes the product visible on the storefront; HIDDEN keeps it unlisted. The sold-out (available) flag is preserved across the transition — use PUT /products/{productId}/availability to flip it.
account
Type or constraint
string
Requirement
Optional
Meaning
Exact private shop profile label; not a provider identity or authorization proof.
confirm
Type or constraint
boolean
Requirement
Optional
Meaning
Explicit approval for this exact provider effect or local private-file operation.
payload
Type or constraint
object
Requirement
Optional
Meaning
Complete current native JSON body; cannot mix with native body flags or payload_file.
payload_file
Type or constraint
string (minLength=1)
Requirement
Optional
Meaning
Absolute regular non-symlink native JSON body file, at most1MiB. Cannot mix with payload or body flags.

Native body fields below must also satisfy their required fields/oneOf branch. Supply native flat fields, payload OR payload_file. The entire machine-readable schema is available through the CLI and get_operation_schema.

state
Type or constraint
PUBLIC, HIDDEN
Requirement
Required
Meaning
Target lifecycle state. PUBLIC makes the product visible on the storefront; HIDDEN keeps it unlisted. The sold-out (available) flag is preserved across the transition — use PUT /products/{productId}/availability to flip it.

toggle_product_availability

Rate limit: 100 requests / 10 seconds per shop. See [Rate limiting](/guides/rate-limiting).

Updates a product (offer) availability

CLI: fourthwall-cli toggle-product-availability. Policy: explicit confirmation.

Native: PUT /open-api/v1.0/products/{productId}/availability. Current source.

product_id
Type or constraint
string (minLength=1, maxLength=256)
Requirement
Required
Meaning
Native productId
available
Type or constraint
boolean
Requirement
Optional
Meaning
Native field
account
Type or constraint
string
Requirement
Optional
Meaning
Exact private shop profile label; not a provider identity or authorization proof.
confirm
Type or constraint
boolean
Requirement
Optional
Meaning
Explicit approval for this exact provider effect or local private-file operation.
payload
Type or constraint
object
Requirement
Optional
Meaning
Complete current native JSON body; cannot mix with native body flags or payload_file.
payload_file
Type or constraint
string (minLength=1)
Requirement
Optional
Meaning
Absolute regular non-symlink native JSON body file, at most1MiB. Cannot mix with payload or body flags.

Native body fields below must also satisfy their required fields/oneOf branch. Supply native flat fields, payload OR payload_file. The entire machine-readable schema is available through the CLI and get_operation_schema.

available
Type or constraint
boolean
Requirement
Required
Meaning
Native field

mark_download_complete

Rate limit: 100 requests / 10 seconds per shop. See [Rate limiting](/guides/rate-limiting).

Marks digital download as downloaded. If no downloads exist for a digital order and defaultFileUrl is provided in the request body, creates a download with that URL and marks it as downloaded.

CLI: fourthwall-cli mark-download-complete. Policy: explicit confirmation.

Native: PUT /open-api/v1.0/order/{orderId}/downloaded. Current source.

order_id
Type or constraint
string (minLength=1, maxLength=256)
Requirement
Required
Meaning
Native orderId
defaultFileUrl
Type or constraint
string
Requirement
Optional
Meaning
Native field
account
Type or constraint
string
Requirement
Optional
Meaning
Exact private shop profile label; not a provider identity or authorization proof.
confirm
Type or constraint
boolean
Requirement
Optional
Meaning
Explicit approval for this exact provider effect or local private-file operation.
payload
Type or constraint
object
Requirement
Optional
Meaning
Complete current native JSON body; cannot mix with native body flags or payload_file.
payload_file
Type or constraint
string (minLength=1)
Requirement
Optional
Meaning
Absolute regular non-symlink native JSON body file, at most1MiB. Cannot mix with payload or body flags.

Native body fields below must also satisfy their required fields/oneOf branch. Supply native flat fields, payload OR payload_file. The entire machine-readable schema is available through the CLI and get_operation_schema.

defaultFileUrl
Type or constraint
string
Requirement
Optional
Meaning
Native field

finish_giveaway

Rate limit: 100 requests / 10 seconds per shop. See [Rate limiting](/guides/rate-limiting).

Finish giveaway and select winners

CLI: fourthwall-cli finish-giveaway. Policy: explicit confirmation.

Native: PUT /open-api/v1.0/giveaways/giveaways/{id}/finish/twitch. Current source.

id
Type or constraint
string (minLength=1, maxLength=256)
Requirement
Required
Meaning
Native id
participants
Type or constraint
array
Requirement
Optional
Meaning
Native field
account
Type or constraint
string
Requirement
Optional
Meaning
Exact private shop profile label; not a provider identity or authorization proof.
confirm
Type or constraint
boolean
Requirement
Optional
Meaning
Explicit approval for this exact provider effect or local private-file operation.
payload
Type or constraint
object
Requirement
Optional
Meaning
Complete current native JSON body; cannot mix with native body flags or payload_file.
payload_file
Type or constraint
string (minLength=1)
Requirement
Optional
Meaning
Absolute regular non-symlink native JSON body file, at most1MiB. Cannot mix with payload or body flags.

Native body fields below must also satisfy their required fields/oneOf branch. Supply native flat fields, payload OR payload_file. The entire machine-readable schema is available through the CLI and get_operation_schema.

participants
Type or constraint
array
Requirement
Required
Meaning
Native field
participants.[].userId
Type or constraint
string
Requirement
Required
Meaning
Native field
participants.[].userName
Type or constraint
string
Requirement
Required
Meaning
Native field

create_giveaway_checkout

Rate limit: 100 requests / 10 seconds per shop. See [Rate limiting](/guides/rate-limiting).

Creates a new giveaway or updates existing one

CLI: fourthwall-cli create-giveaway-checkout. Policy: explicit confirmation.

Native: PUT /open-api/v1.0/giveaways/giveaway-checkout. Current source.

heading
Type or constraint
string
Requirement
Optional
Meaning
Native field
description
Type or constraint
string
Requirement
Optional
Meaning
Native field
iconUrl
Type or constraint
string
Requirement
Optional
Meaning
Native field
buttonText
Type or constraint
string
Requirement
Optional
Meaning
Native field
disabled
Type or constraint
boolean
Requirement
Optional
Meaning
Native field
account
Type or constraint
string
Requirement
Optional
Meaning
Exact private shop profile label; not a provider identity or authorization proof.
confirm
Type or constraint
boolean
Requirement
Optional
Meaning
Explicit approval for this exact provider effect or local private-file operation.
payload
Type or constraint
object
Requirement
Optional
Meaning
Complete current native JSON body; cannot mix with native body flags or payload_file.
payload_file
Type or constraint
string (minLength=1)
Requirement
Optional
Meaning
Absolute regular non-symlink native JSON body file, at most1MiB. Cannot mix with payload or body flags.

Native body fields below must also satisfy their required fields/oneOf branch. Supply native flat fields, payload OR payload_file. The entire machine-readable schema is available through the CLI and get_operation_schema.

heading
Type or constraint
string
Requirement
Required
Meaning
Native field
description
Type or constraint
string
Requirement
Required
Meaning
Native field
iconUrl
Type or constraint
string
Requirement
Required
Meaning
Native field
buttonText
Type or constraint
string
Requirement
Required
Meaning
Native field
disabled
Type or constraint
boolean
Requirement
Optional
Meaning
Native field

disable_giveaway_checkout

Rate limit: 100 requests / 10 seconds per shop. See [Rate limiting](/guides/rate-limiting).

disables a giveaway config

CLI: fourthwall-cli disable-giveaway-checkout. Policy: explicit confirmation.

Native: DELETE /open-api/v1.0/giveaways/giveaway-checkout. Current source.

account
Type or constraint
string
Requirement
Optional
Meaning
Exact private shop profile label; not a provider identity or authorization proof.
confirm
Type or constraint
boolean
Requirement
Optional
Meaning
Explicit approval for this exact provider effect or local private-file operation.

finish_giveaway_draw

Rate limit: 100 requests / 10 seconds per shop. See [Rate limiting](/guides/rate-limiting).

Finish draw and select winners

CLI: fourthwall-cli finish-giveaway-draw. Policy: explicit confirmation.

Native: PUT /open-api/v1.0/gifting/draw/{id}/finish. Current source.

id
Type or constraint
string (minLength=1, maxLength=256)
Requirement
Required
Meaning
Native id
participants
Type or constraint
array
Requirement
Optional
Meaning
Native field
account
Type or constraint
string
Requirement
Optional
Meaning
Exact private shop profile label; not a provider identity or authorization proof.
confirm
Type or constraint
boolean
Requirement
Optional
Meaning
Explicit approval for this exact provider effect or local private-file operation.
payload
Type or constraint
object
Requirement
Optional
Meaning
Complete current native JSON body; cannot mix with native body flags or payload_file.
payload_file
Type or constraint
string (minLength=1)
Requirement
Optional
Meaning
Absolute regular non-symlink native JSON body file, at most1MiB. Cannot mix with payload or body flags.

Native body fields below must also satisfy their required fields/oneOf branch. Supply native flat fields, payload OR payload_file. The entire machine-readable schema is available through the CLI and get_operation_schema.

participants
Type or constraint
array
Requirement
Required
Meaning
Native field
participants.[].variant 1
Type or constraint
value
Requirement
Choose one
Meaning
Native oneOf
participants.[].variant1.service
Type or constraint
string
Requirement
Required
Meaning
Native field
participants.[].variant1.userId
Type or constraint
string
Requirement
Optional
Meaning
Native field
participants.[].variant1.userName
Type or constraint
string
Requirement
Optional
Meaning
Native field

get_gifting_config

Returns the calling shop's saved gifting rules. Returns a default-shaped config when none is persisted yet.

CLI: fourthwall-cli get-gifting-config. Policy: read.

Native: GET /open-api/v1.0/gifting/config. Current source.

account
Type or constraint
string
Requirement
Optional
Meaning
Exact private shop profile label; not a provider identity or authorization proof.

update_gifting_config

Writes the four creator-controlled gifting rule fields. Validation (duration 20-180s, valid shipping/products) and the one-platform-per-shop mutex are enforced server-side. Upserts: a first-ever PUT materializes the config row.

CLI: fourthwall-cli update-gifting-config. Policy: explicit confirmation.

Native: PUT /open-api/v1.0/gifting/config. Current source.

enabled
Type or constraint
boolean
Requirement
Optional
Meaning
Master flag. Off pauses purchasability without losing the rest.
entryTimeLimitSeconds
Type or constraint
integer (format=int32)
Requirement
Optional
Meaning
Entry time limit in seconds. Validated 20-180.
shipping
Type or constraint
union
Requirement
Optional
Meaning
Native field
products
Type or constraint
union
Requirement
Optional
Meaning
Native field
account
Type or constraint
string
Requirement
Optional
Meaning
Exact private shop profile label; not a provider identity or authorization proof.
confirm
Type or constraint
boolean
Requirement
Optional
Meaning
Explicit approval for this exact provider effect or local private-file operation.
payload
Type or constraint
object
Requirement
Optional
Meaning
Complete current native JSON body; cannot mix with native body flags or payload_file.
payload_file
Type or constraint
string (minLength=1)
Requirement
Optional
Meaning
Absolute regular non-symlink native JSON body file, at most1MiB. Cannot mix with payload or body flags.

Native body fields below must also satisfy their required fields/oneOf branch. Supply native flat fields, payload OR payload_file. The entire machine-readable schema is available through the CLI and get_operation_schema.

enabled
Type or constraint
boolean
Requirement
Required
Meaning
Master flag. Off pauses purchasability without losing the rest.
entryTimeLimitSeconds
Type or constraint
integer (format=int32)
Requirement
Required
Meaning
Entry time limit in seconds. Validated 20-180.
shipping
Type or constraint
union
Requirement
Required
Meaning
Native field
shipping.variant 1
Type or constraint
value
Requirement
Choose one
Meaning
Native oneOf
shipping.variant1.type
Type or constraint
string
Requirement
Required
Meaning
Native field
shipping.variant1.type
Type or constraint
ALL_CREATOR
Requirement
Optional
Meaning
Native field
shipping.variant 2
Type or constraint
value
Requirement
Choose one
Meaning
Native oneOf
shipping.variant2.type
Type or constraint
string
Requirement
Required
Meaning
Native field
shipping.variant2.type
Type or constraint
ALL_WINNER
Requirement
Optional
Meaning
Native field
shipping.variant 3
Type or constraint
value
Requirement
Choose one
Meaning
Native oneOf
shipping.variant3.type
Type or constraint
string
Requirement
Required
Meaning
Native field
shipping.variant3.max
Type or constraint
number (format=double)
Requirement
Optional
Meaning
Native field
shipping.variant3.type
Type or constraint
MAX_CREATOR
Requirement
Optional
Meaning
Native field
products
Type or constraint
union
Requirement
Required
Meaning
Native field
products.variant 1
Type or constraint
value
Requirement
Choose one
Meaning
Native oneOf
products.variant1.type
Type or constraint
string
Requirement
Required
Meaning
Native field
products.variant1.type
Type or constraint
ALL
Requirement
Optional
Meaning
Native field
products.variant 2
Type or constraint
value
Requirement
Choose one
Meaning
Native oneOf
products.variant2.type
Type or constraint
string
Requirement
Required
Meaning
Native field
products.variant2.offerIds
Type or constraint
array
Requirement
Optional
Meaning
Native field
products.variant2.type
Type or constraint
EXCLUDED
Requirement
Optional
Meaning
Native field
products.variant 3
Type or constraint
value
Requirement
Choose one
Meaning
Native oneOf
products.variant3.type
Type or constraint
string
Requirement
Required
Meaning
Native field
products.variant3.offerIds
Type or constraint
array
Requirement
Optional
Meaning
Native field
products.variant3.type
Type or constraint
SELECTED
Requirement
Optional
Meaning
Native field

update_collection

Rate limit: 100 requests / 10 seconds per shop. See [Rate limiting](/guides/rate-limiting).

Updates collection name, description, and/or product list

CLI: fourthwall-cli update-collection. Policy: explicit confirmation.

Native: PUT /open-api/v1.0/collections/{collectionId}. Current source.

collection_id
Type or constraint
string (minLength=1, maxLength=256)
Requirement
Required
Meaning
Native collectionId
name
Type or constraint
string
Requirement
Optional
Meaning
Native field
description
Type or constraint
string
Requirement
Optional
Meaning
Native field
offerIds
Type or constraint
array
Requirement
Optional
Meaning
List of product IDs to set in the collection
account
Type or constraint
string
Requirement
Optional
Meaning
Exact private shop profile label; not a provider identity or authorization proof.
confirm
Type or constraint
boolean
Requirement
Optional
Meaning
Explicit approval for this exact provider effect or local private-file operation.
payload
Type or constraint
object
Requirement
Optional
Meaning
Complete current native JSON body; cannot mix with native body flags or payload_file.
payload_file
Type or constraint
string (minLength=1)
Requirement
Optional
Meaning
Absolute regular non-symlink native JSON body file, at most1MiB. Cannot mix with payload or body flags.

Native body fields below must also satisfy their required fields/oneOf branch. Supply native flat fields, payload OR payload_file. The entire machine-readable schema is available through the CLI and get_operation_schema.

name
Type or constraint
string
Requirement
Optional
Meaning
Native field
description
Type or constraint
string
Requirement
Optional
Meaning
Native field
offerIds
Type or constraint
array
Requirement
Optional
Meaning
List of product IDs to set in the collection

get_collection_products

Rate limit: 100 requests / 10 seconds per shop. See [Rate limiting](/guides/rate-limiting).

Returns paginated products in a collection with optional status filtering. The maximum page size is 100 - larger values are capped at 100.

CLI: fourthwall-cli get-collection-products. Policy: read.

Native: GET /open-api/v1.0/collections/{collectionId}/products. Current source.

collection_id
Type or constraint
string (minLength=1, maxLength=256)
Requirement
Required
Meaning
Native collectionId
page
Type or constraint
integer (minimum=0, format=int32, default=0)
Requirement
Optional
Meaning
Native page
size
Type or constraint
integer (minimum=1, maximum=100, format=int32, default=20)
Requirement
Optional
Meaning
Number of elements per page. The maximum page size is 100 - larger values are capped at 100.
status
Type or constraint
PUBLIC, AVAILABLE, SOLD_OUT, HIDDEN, ARCHIVED
Requirement
Optional
Meaning
Filter by product status
account
Type or constraint
string
Requirement
Optional
Meaning
Exact private shop profile label; not a provider identity or authorization proof.

update_collection_products

Rate limit: 100 requests / 10 seconds per shop. See [Rate limiting](/guides/rate-limiting).

Sets the full list of product IDs in the collection

CLI: fourthwall-cli update-collection-products. Policy: explicit confirmation.

Native: PUT /open-api/v1.0/collections/{collectionId}/products. Current source.

collection_id
Type or constraint
string (minLength=1, maxLength=256)
Requirement
Required
Meaning
Native collectionId
offerIds
Type or constraint
array
Requirement
Optional
Meaning
Full list of product IDs to set in the collection
account
Type or constraint
string
Requirement
Optional
Meaning
Exact private shop profile label; not a provider identity or authorization proof.
confirm
Type or constraint
boolean
Requirement
Optional
Meaning
Explicit approval for this exact provider effect or local private-file operation.
payload
Type or constraint
object
Requirement
Optional
Meaning
Complete current native JSON body; cannot mix with native body flags or payload_file.
payload_file
Type or constraint
string (minLength=1)
Requirement
Optional
Meaning
Absolute regular non-symlink native JSON body file, at most1MiB. Cannot mix with payload or body flags.

Native body fields below must also satisfy their required fields/oneOf branch. Supply native flat fields, payload OR payload_file. The entire machine-readable schema is available through the CLI and get_operation_schema.

offerIds
Type or constraint
array
Requirement
Required
Meaning
Full list of product IDs to set in the collection

update_collection_availability

Rate limit: 100 requests / 10 seconds per shop. See [Rate limiting](/guides/rate-limiting).

Toggle collection availability (available/unavailable)

CLI: fourthwall-cli update-collection-availability. Policy: explicit confirmation.

Native: PUT /open-api/v1.0/collections/{collectionId}/availability. Current source.

collection_id
Type or constraint
string (minLength=1, maxLength=256)
Requirement
Required
Meaning
Native collectionId
available
Type or constraint
boolean
Requirement
Optional
Meaning
Native field
account
Type or constraint
string
Requirement
Optional
Meaning
Exact private shop profile label; not a provider identity or authorization proof.
confirm
Type or constraint
boolean
Requirement
Optional
Meaning
Explicit approval for this exact provider effect or local private-file operation.
payload
Type or constraint
object
Requirement
Optional
Meaning
Complete current native JSON body; cannot mix with native body flags or payload_file.
payload_file
Type or constraint
string (minLength=1)
Requirement
Optional
Meaning
Absolute regular non-symlink native JSON body file, at most1MiB. Cannot mix with payload or body flags.

Native body fields below must also satisfy their required fields/oneOf branch. Supply native flat fields, payload OR payload_file. The entire machine-readable schema is available through the CLI and get_operation_schema.

available
Type or constraint
boolean
Requirement
Required
Meaning
Native field

list_webhooks

Rate limit: 100 requests / 10 seconds per shop. See [Rate limiting](/guides/rate-limiting).

Get webhooks

CLI: fourthwall-cli list-webhooks. Policy: read.

Native: GET /open-api/v1.0/webhooks. Current source.

account
Type or constraint
string
Requirement
Optional
Meaning
Exact private shop profile label; not a provider identity or authorization proof.

create_webhook

Rate limit: 100 requests / 10 seconds per shop. See [Rate limiting](/guides/rate-limiting).

Create a webhook

CLI: fourthwall-cli create-webhook. Policy: explicit confirmation.

Native: POST /open-api/v1.0/webhooks. Current source.

url
Type or constraint
string
Requirement
Optional
Meaning
Native field
allowedTypes
Type or constraint
array
Requirement
Optional
Meaning
Native field
account
Type or constraint
string
Requirement
Optional
Meaning
Exact private shop profile label; not a provider identity or authorization proof.
confirm
Type or constraint
boolean
Requirement
Optional
Meaning
Explicit approval for this exact provider effect or local private-file operation.
payload
Type or constraint
object
Requirement
Optional
Meaning
Complete current native JSON body; cannot mix with native body flags or payload_file.
payload_file
Type or constraint
string (minLength=1)
Requirement
Optional
Meaning
Absolute regular non-symlink native JSON body file, at most1MiB. Cannot mix with payload or body flags.

Native body fields below must also satisfy their required fields/oneOf branch. Supply native flat fields, payload OR payload_file. The entire machine-readable schema is available through the CLI and get_operation_schema.

url
Type or constraint
string
Requirement
Required
Meaning
Native field
allowedTypes
Type or constraint
array
Requirement
Required
Meaning
Native field

list_promotions

Rate limit: 100 requests / 10 seconds per shop. See [Rate limiting](/guides/rate-limiting).

Returns all promotions. The maximum page size is 100 - larger values are capped at 100.

CLI: fourthwall-cli list-promotions. Policy: read.

Native: GET /open-api/v1.0/promotions. Current source.

page
Type or constraint
integer (minimum=0, format=int32, default=0)
Requirement
Optional
Meaning
Native page
size
Type or constraint
integer (minimum=1, maximum=100, format=int32, default=20)
Requirement
Optional
Meaning
Number of elements per page. The maximum page size is 100 - larger values are capped at 100.
codes
Type or constraint
array
Requirement
Optional
Meaning
Filter by promotion code(s)
account
Type or constraint
string
Requirement
Optional
Meaning
Exact private shop profile label; not a provider identity or authorization proof.

create_promotion

Rate limit: 100 requests / 10 seconds per shop. See [Rate limiting](/guides/rate-limiting).

Creates a promotion

CLI: fourthwall-cli create-promotion. Policy: explicit confirmation.

Native: POST /open-api/v1.0/promotions. Current source.

account
Type or constraint
string
Requirement
Optional
Meaning
Exact private shop profile label; not a provider identity or authorization proof.
confirm
Type or constraint
boolean
Requirement
Optional
Meaning
Explicit approval for this exact provider effect or local private-file operation.
payload
Type or constraint
union
Requirement
Optional
Meaning
Complete current native JSON body; cannot mix with native body flags or payload_file.
payload_file
Type or constraint
string (minLength=1)
Requirement
Optional
Meaning
Absolute regular non-symlink native JSON body file, at most1MiB. Cannot mix with payload or body flags.

Native body fields below must also satisfy their required fields/oneOf branch. Supply native flat fields, payload OR payload_file. The entire machine-readable schema is available through the CLI and get_operation_schema.

variant 1
Type or constraint
value
Requirement
Choose one
Meaning
Native oneOf
variant1.type
Type or constraint
string
Requirement
Required
Meaning
Native field
variant1.codes
Type or constraint
array
Requirement
Optional
Meaning
Native field
variant1.discount
Type or constraint
union
Requirement
Optional
Meaning
Native field
variant1.discount.variant 1
Type or constraint
value
Requirement
Choose one
Meaning
Native oneOf
variant1.discount.variant1.type
Type or constraint
string
Requirement
Required
Meaning
Native field
variant1.discount.variant1.percentage
Type or constraint
number
Requirement
Optional
Meaning
Native field
variant1.discount.variant1.type
Type or constraint
PERCENTAGE
Requirement
Optional
Meaning
Native field
variant1.requirements
Type or constraint
object
Requirement
Optional
Meaning
Native field
variant1.requirements.newMembersOnly
Type or constraint
boolean
Requirement
Required
Meaning
Native field
variant1.subscriptionType
Type or constraint
union
Requirement
Optional
Meaning
Native field
variant1.subscriptionType.variant 1
Type or constraint
value
Requirement
Choose one
Meaning
Native oneOf
variant1.subscriptionType.variant1.type
Type or constraint
string
Requirement
Required
Meaning
Native field
variant1.subscriptionType.variant1.type
Type or constraint
ALL
Requirement
Optional
Meaning
Native field
variant1.subscriptionType.variant 2
Type or constraint
value
Requirement
Choose one
Meaning
Native oneOf
variant1.subscriptionType.variant2.type
Type or constraint
string
Requirement
Required
Meaning
Native field
variant1.subscriptionType.variant2.type
Type or constraint
ANNUAL
Requirement
Optional
Meaning
Native field
variant1.subscriptionType.variant 3
Type or constraint
value
Requirement
Choose one
Meaning
Native oneOf
variant1.subscriptionType.variant3.type
Type or constraint
string
Requirement
Required
Meaning
Native field
variant1.subscriptionType.variant3.type
Type or constraint
MONTHLY
Requirement
Optional
Meaning
Native field
variant1.tiers
Type or constraint
union
Requirement
Optional
Meaning
Native field
variant1.tiers.variant 1
Type or constraint
value
Requirement
Choose one
Meaning
Native oneOf
variant1.tiers.variant1.type
Type or constraint
string
Requirement
Required
Meaning
Native field
variant1.tiers.variant1.type
Type or constraint
ALL
Requirement
Optional
Meaning
Native field
variant1.tiers.variant 2
Type or constraint
value
Requirement
Choose one
Meaning
Native oneOf
variant1.tiers.variant2.type
Type or constraint
string
Requirement
Required
Meaning
Native field
variant1.tiers.variant2.ids
Type or constraint
array
Requirement
Optional
Meaning
Native field
variant1.tiers.variant2.type
Type or constraint
SELECTED
Requirement
Optional
Meaning
Native field
variant1.type
Type or constraint
MEMBERSHIPS_MULTI
Requirement
Optional
Meaning
Native field
variant 2
Type or constraint
value
Requirement
Choose one
Meaning
Native oneOf
variant2.type
Type or constraint
string
Requirement
Required
Meaning
Native field
variant2.code
Type or constraint
string
Requirement
Optional
Meaning
Native field
variant2.discount
Type or constraint
union
Requirement
Optional
Meaning
Native field
variant2.discount.variant 1
Type or constraint
value
Requirement
Choose one
Meaning
Native oneOf
variant2.discount.variant1.type
Type or constraint
string
Requirement
Required
Meaning
Native field
variant2.discount.variant1.percentage
Type or constraint
number
Requirement
Optional
Meaning
Native field
variant2.discount.variant1.type
Type or constraint
PERCENTAGE
Requirement
Optional
Meaning
Native field
variant2.requirements
Type or constraint
object
Requirement
Optional
Meaning
Native field
variant2.requirements.newMembersOnly
Type or constraint
boolean
Requirement
Required
Meaning
Native field
variant2.subscriptionType
Type or constraint
union
Requirement
Optional
Meaning
Native field
variant2.subscriptionType.variant 1
Type or constraint
value
Requirement
Choose one
Meaning
Native oneOf
variant2.subscriptionType.variant1.type
Type or constraint
string
Requirement
Required
Meaning
Native field
variant2.subscriptionType.variant1.type
Type or constraint
ALL
Requirement
Optional
Meaning
Native field
variant2.subscriptionType.variant 2
Type or constraint
value
Requirement
Choose one
Meaning
Native oneOf
variant2.subscriptionType.variant2.type
Type or constraint
string
Requirement
Required
Meaning
Native field
variant2.subscriptionType.variant2.type
Type or constraint
ANNUAL
Requirement
Optional
Meaning
Native field
variant2.subscriptionType.variant 3
Type or constraint
value
Requirement
Choose one
Meaning
Native oneOf
variant2.subscriptionType.variant3.type
Type or constraint
string
Requirement
Required
Meaning
Native field
variant2.subscriptionType.variant3.type
Type or constraint
MONTHLY
Requirement
Optional
Meaning
Native field
variant2.tiers
Type or constraint
union
Requirement
Optional
Meaning
Native field
variant2.tiers.variant 1
Type or constraint
value
Requirement
Choose one
Meaning
Native oneOf
variant2.tiers.variant1.type
Type or constraint
string
Requirement
Required
Meaning
Native field
variant2.tiers.variant1.type
Type or constraint
ALL
Requirement
Optional
Meaning
Native field
variant2.tiers.variant 2
Type or constraint
value
Requirement
Choose one
Meaning
Native oneOf
variant2.tiers.variant2.type
Type or constraint
string
Requirement
Required
Meaning
Native field
variant2.tiers.variant2.ids
Type or constraint
array
Requirement
Optional
Meaning
Native field
variant2.tiers.variant2.type
Type or constraint
SELECTED
Requirement
Optional
Meaning
Native field
variant2.type
Type or constraint
MEMBERSHIPS_SINGLE
Requirement
Optional
Meaning
Native field
variant 3
Type or constraint
value
Requirement
Choose one
Meaning
Native oneOf
variant3.type
Type or constraint
string
Requirement
Required
Meaning
Native field
variant3.codes
Type or constraint
array
Requirement
Optional
Meaning
Native field
variant3.discount
Type or constraint
union
Requirement
Optional
Meaning
Native field
variant3.discount.variant 1
Type or constraint
value
Requirement
Choose one
Meaning
Native oneOf
variant3.discount.variant1.type
Type or constraint
string
Requirement
Required
Meaning
Native field
variant3.discount.variant1.money
Type or constraint
object
Requirement
Optional
Meaning
Native field
variant3.discount.variant1.money.value
Type or constraint
number (minimum=0)
Requirement
Required
Meaning
Native field
variant3.discount.variant1.money.currency
Type or constraint
string
Requirement
Required
Meaning
Native field
variant3.discount.variant1.freeShipping
Type or constraint
boolean
Requirement
Optional
Meaning
Native field
variant3.discount.variant1.type
Type or constraint
FLAT_RATE
Requirement
Optional
Meaning
Native field
variant3.discount.variant 2
Type or constraint
value
Requirement
Choose one
Meaning
Native oneOf
variant3.discount.variant2.type
Type or constraint
string
Requirement
Required
Meaning
Native field
variant3.discount.variant2.type
Type or constraint
FREE_SHIPPING
Requirement
Optional
Meaning
Native field
variant3.discount.variant 3
Type or constraint
value
Requirement
Choose one
Meaning
Native oneOf
variant3.discount.variant3.type
Type or constraint
string
Requirement
Required
Meaning
Native field
variant3.discount.variant3.percentage
Type or constraint
number
Requirement
Optional
Meaning
Native field
variant3.discount.variant3.shipping
Type or constraint
Excluded, Included, FreeLowestOnly, Free
Requirement
Optional
Meaning
Native field
variant3.discount.variant3.type
Type or constraint
PERCENTAGE
Requirement
Optional
Meaning
Native field
variant3.requirements
Type or constraint
object
Requirement
Optional
Meaning
Native field
variant3.requirements.minimumOrderValue
Type or constraint
object
Requirement
Optional
Meaning
Native field
variant3.requirements.minimumOrderValue.value
Type or constraint
number (minimum=0)
Requirement
Required
Meaning
Native field
variant3.requirements.minimumOrderValue.currency
Type or constraint
string
Requirement
Required
Meaning
Native field
variant3.appliesToProducts
Type or constraint
object
Requirement
Optional
Meaning
Native field
variant3.appliesToProducts.productIds
Type or constraint
array
Requirement
Required
Meaning
Native field
variant3.appliesToProducts.oncePerOrder
Type or constraint
boolean
Requirement
Optional
Meaning
Native field
variant3.limits
Type or constraint
object
Requirement
Optional
Meaning
Native field
variant3.limits.maximumUse
Type or constraint
integer (format=int32)
Requirement
Optional
Meaning
Native field
variant3.limits.oneUsePerCustomer
Type or constraint
boolean
Requirement
Required
Meaning
Native field
variant3.type
Type or constraint
SHOP_MULTI
Requirement
Optional
Meaning
Native field
variant 4
Type or constraint
value
Requirement
Choose one
Meaning
Native oneOf
variant4.type
Type or constraint
string
Requirement
Required
Meaning
Native field
variant4.code
Type or constraint
string
Requirement
Optional
Meaning
Native field
variant4.discount
Type or constraint
union
Requirement
Optional
Meaning
Native field
variant4.discount.variant 1
Type or constraint
value
Requirement
Choose one
Meaning
Native oneOf
variant4.discount.variant1.type
Type or constraint
string
Requirement
Required
Meaning
Native field
variant4.discount.variant1.money
Type or constraint
object
Requirement
Optional
Meaning
Native field
variant4.discount.variant1.money.value
Type or constraint
number (minimum=0)
Requirement
Required
Meaning
Native field
variant4.discount.variant1.money.currency
Type or constraint
string
Requirement
Required
Meaning
Native field
variant4.discount.variant1.freeShipping
Type or constraint
boolean
Requirement
Optional
Meaning
Native field
variant4.discount.variant1.type
Type or constraint
FLAT_RATE
Requirement
Optional
Meaning
Native field
variant4.discount.variant 2
Type or constraint
value
Requirement
Choose one
Meaning
Native oneOf
variant4.discount.variant2.type
Type or constraint
string
Requirement
Required
Meaning
Native field
variant4.discount.variant2.type
Type or constraint
FREE_SHIPPING
Requirement
Optional
Meaning
Native field
variant4.discount.variant 3
Type or constraint
value
Requirement
Choose one
Meaning
Native oneOf
variant4.discount.variant3.type
Type or constraint
string
Requirement
Required
Meaning
Native field
variant4.discount.variant3.percentage
Type or constraint
number
Requirement
Optional
Meaning
Native field
variant4.discount.variant3.shipping
Type or constraint
Excluded, Included, FreeLowestOnly, Free
Requirement
Optional
Meaning
Native field
variant4.discount.variant3.type
Type or constraint
PERCENTAGE
Requirement
Optional
Meaning
Native field
variant4.requirements
Type or constraint
object
Requirement
Optional
Meaning
Native field
variant4.requirements.minimumOrderValue
Type or constraint
object
Requirement
Optional
Meaning
Native field
variant4.requirements.minimumOrderValue.value
Type or constraint
number (minimum=0)
Requirement
Required
Meaning
Native field
variant4.requirements.minimumOrderValue.currency
Type or constraint
string
Requirement
Required
Meaning
Native field
variant4.appliesToProducts
Type or constraint
object
Requirement
Optional
Meaning
Native field
variant4.appliesToProducts.productIds
Type or constraint
array
Requirement
Required
Meaning
Native field
variant4.appliesToProducts.oncePerOrder
Type or constraint
boolean
Requirement
Optional
Meaning
Native field
variant4.limits
Type or constraint
object
Requirement
Optional
Meaning
Native field
variant4.limits.maximumUse
Type or constraint
integer (format=int32)
Requirement
Optional
Meaning
Native field
variant4.limits.oneUsePerCustomer
Type or constraint
boolean
Requirement
Required
Meaning
Native field
variant4.type
Type or constraint
SHOP_SINGLE
Requirement
Optional
Meaning
Native field

list_products

Rate limit: 100 requests / 10 seconds per shop. See [Rate limiting](/guides/rate-limiting).

Returns all products with pagination. The maximum page size is 100 - larger values are capped at 100.

CLI: fourthwall-cli list-products. Policy: read.

Native: GET /open-api/v1.0/products. Current source.

page
Type or constraint
integer (minimum=0, format=int32, default=0)
Requirement
Optional
Meaning
Native page
size
Type or constraint
integer (minimum=1, maximum=100, format=int32, default=20)
Requirement
Optional
Meaning
Number of elements per page. The maximum page size is 100 - larger values are capped at 100.
search
Type or constraint
string
Requirement
Optional
Meaning
Native search
account
Type or constraint
string
Requirement
Optional
Meaning
Exact private shop profile label; not a provider identity or authorization proof.

create_product

Rate limit: 5 requests / minute per shop. See [Rate limiting](/guides/rate-limiting).

Creates a product from a design or a digital product.

CLI: fourthwall-cli create-product. Policy: explicit confirmation.

Native: POST /open-api/v1.0/products. Current source.

account
Type or constraint
string
Requirement
Optional
Meaning
Exact private shop profile label; not a provider identity or authorization proof.
confirm
Type or constraint
boolean
Requirement
Optional
Meaning
Explicit approval for this exact provider effect or local private-file operation.
payload
Type or constraint
object
Requirement
Optional
Meaning
Complete current native JSON body; cannot mix with native body flags or payload_file.
payload_file
Type or constraint
string (minLength=1)
Requirement
Optional
Meaning
Absolute regular non-symlink native JSON body file, at most1MiB. Cannot mix with payload or body flags.

Native body fields below must also satisfy their required fields/oneOf branch. Supply native flat fields, payload OR payload_file. The entire machine-readable schema is available through the CLI and get_operation_schema.

type
Type or constraint
string
Requirement
Required
Meaning
Native field
variant 1
Type or constraint
value
Requirement
Choose one
Meaning
Native oneOf
variant1.type
Type or constraint
string
Requirement
Required
Meaning
Native field
variant1.productTemplateId
Type or constraint
string
Requirement
Optional
Meaning
Id of the product template to render the design onto, from GET /open-api/v1.0/product-templates.
variant1.regions
Type or constraint
array
Requirement
Optional
Meaning
Design regions to place on the product. Each region references a registered media image by id (register it via POST /open-api/v1.0/media/images and pass the returned id as imageId).
variant1.regions.[].region
Type or constraint
string
Requirement
Required
Meaning
Name of the product region to place the image on, e.g. front or back.
variant1.regions.[].imageId
Type or constraint
string
Requirement
Required
Meaning
Id of a registered media-library image to render on the region. Register the image first via POST /open-api/v1.0/media/images and pass the returned id here.
variant1.regions.[].placementId
Type or constraint
string
Requirement
Optional
Meaning
Placement to target when placementStrategy is PLACEMENT_ID. Required for that strategy and ignored by the others.
variant1.regions.[].placementStrategy
Type or constraint
AUTO, FILL_ALL, FULL_REGION, PLACEMENT_ID
Requirement
Optional
Meaning
How the image is placed on the region. Defaults to AUTO when omitted, and takes precedence over placementId/fillAllPlacements. - AUTO — let the renderer decide using the product's automation defaults (its preferred placement, or fill-all for products like mugs/stickers). - FILL_ALL — apply the image to every placement in the region. - FULL_REGION — render the image across the full region, skipping the preferred placement. - PLACEMENT_ID — target the single placement named by placementId (required for this strategy).
variant1.colors
Type or constraint
array
Requirement
Optional
Meaning
Colors to render. Defaults to all available product colors when omitted. Values not offered by the product are ignored; the request is rejected with 400 if none of the supplied colors are available.
variant1.sizes
Type or constraint
array
Requirement
Optional
Meaning
Sizes to include. Defaults to all available product sizes when omitted. Values not offered by the product are ignored; the request is rejected with 400 if none of the supplied sizes are available. When both colors and sizes are supplied, the request is also rejected with 400 if no requested color/size combination is an available variant.
variant1.name
Type or constraint
string
Requirement
Optional
Meaning
Product name
variant1.description
Type or constraint
string
Requirement
Optional
Meaning
Product description
variant1.profitMargin
Type or constraint
number
Requirement
Optional
Meaning
Profit margin in USD applied on top of the base cost.
variant1.publishOnCreate
Type or constraint
boolean
Requirement
Optional
Meaning
Publish the product immediately on creation. Defaults to false (product stays hidden).
variant1.type
Type or constraint
design
Requirement
Optional
Meaning
Native field
variant 2
Type or constraint
value
Requirement
Choose one
Meaning
Native oneOf
variant2.type
Type or constraint
string
Requirement
Required
Meaning
Native field
variant2.name
Type or constraint
string
Requirement
Optional
Meaning
Product name
variant2.description
Type or constraint
string
Requirement
Optional
Meaning
Product description
variant2.price
Type or constraint
number
Requirement
Optional
Meaning
Price set by the creator, in USD.
variant2.publishOnCreate
Type or constraint
boolean
Requirement
Optional
Meaning
Publish the product immediately on creation. Defaults to false (product stays hidden).
variant2.type
Type or constraint
digital
Requirement
Optional
Meaning
Native field

attach_product_images

Rate limit: 100 requests / 10 seconds per shop. See [Rate limiting](/guides/rate-limiting).

Attaches images to a product. Images should be uploaded first via the media upload endpoint.

CLI: fourthwall-cli attach-product-images. Policy: explicit confirmation.

Native: POST /open-api/v1.0/products/{productId}/images. Current source.

product_id
Type or constraint
string (minLength=1, maxLength=256)
Requirement
Required
Meaning
Native productId
images
Type or constraint
array
Requirement
Optional
Meaning
List of images to attach
account
Type or constraint
string
Requirement
Optional
Meaning
Exact private shop profile label; not a provider identity or authorization proof.
confirm
Type or constraint
boolean
Requirement
Optional
Meaning
Explicit approval for this exact provider effect or local private-file operation.
payload
Type or constraint
object
Requirement
Optional
Meaning
Complete current native JSON body; cannot mix with native body flags or payload_file.
payload_file
Type or constraint
string (minLength=1)
Requirement
Optional
Meaning
Absolute regular non-symlink native JSON body file, at most1MiB. Cannot mix with payload or body flags.

Native body fields below must also satisfy their required fields/oneOf branch. Supply native flat fields, payload OR payload_file. The entire machine-readable schema is available through the CLI and get_operation_schema.

images
Type or constraint
array
Requirement
Required
Meaning
List of images to attach
images.[].url
Type or constraint
string
Requirement
Required
Meaning
Image URL
images.[].width
Type or constraint
integer (format=int32)
Requirement
Required
Meaning
Image width in pixels
images.[].height
Type or constraint
integer (format=int32)
Requirement
Required
Meaning
Image height in pixels

remove_product_images

Rate limit: 100 requests / 10 seconds per shop. See [Rate limiting](/guides/rate-limiting).

Removes specified images from a product by their URLs.

CLI: fourthwall-cli remove-product-images. Policy: explicit confirmation.

Native: DELETE /open-api/v1.0/products/{productId}/images. Current source.

product_id
Type or constraint
string (minLength=1, maxLength=256)
Requirement
Required
Meaning
Native productId
imageUrls
Type or constraint
array
Requirement
Optional
Meaning
List of image URLs to remove
account
Type or constraint
string
Requirement
Optional
Meaning
Exact private shop profile label; not a provider identity or authorization proof.
confirm
Type or constraint
boolean
Requirement
Optional
Meaning
Explicit approval for this exact provider effect or local private-file operation.
payload
Type or constraint
object
Requirement
Optional
Meaning
Complete current native JSON body; cannot mix with native body flags or payload_file.
payload_file
Type or constraint
string (minLength=1)
Requirement
Optional
Meaning
Absolute regular non-symlink native JSON body file, at most1MiB. Cannot mix with payload or body flags.

Native body fields below must also satisfy their required fields/oneOf branch. Supply native flat fields, payload OR payload_file. The entire machine-readable schema is available through the CLI and get_operation_schema.

imageUrls
Type or constraint
array
Requirement
Required
Meaning
List of image URLs to remove

confirm_digital_file_upload

Rate limit: 100 requests / 10 seconds per shop. See [Rate limiting](/guides/rate-limiting).

After uploading a file to the presigned URL, call this endpoint to link the file to the product. The file must exist in storage before calling this endpoint.

CLI: fourthwall-cli confirm-digital-file-upload. Policy: explicit confirmation.

Native: POST /open-api/v1.0/products/{productId}/digital-files. Current source.

product_id
Type or constraint
string (minLength=1, maxLength=256)
Requirement
Required
Meaning
Native productId
fileUrl
Type or constraint
string
Requirement
Optional
Meaning
The file URL returned from the upload-url endpoint
fileName
Type or constraint
string
Requirement
Optional
Meaning
Display name for the file
account
Type or constraint
string
Requirement
Optional
Meaning
Exact private shop profile label; not a provider identity or authorization proof.
confirm
Type or constraint
boolean
Requirement
Optional
Meaning
Explicit approval for this exact provider effect or local private-file operation.
payload
Type or constraint
object
Requirement
Optional
Meaning
Complete current native JSON body; cannot mix with native body flags or payload_file.
payload_file
Type or constraint
string (minLength=1)
Requirement
Optional
Meaning
Absolute regular non-symlink native JSON body file, at most1MiB. Cannot mix with payload or body flags.

Native body fields below must also satisfy their required fields/oneOf branch. Supply native flat fields, payload OR payload_file. The entire machine-readable schema is available through the CLI and get_operation_schema.

fileUrl
Type or constraint
string
Requirement
Required
Meaning
The file URL returned from the upload-url endpoint
fileName
Type or constraint
string
Requirement
Required
Meaning
Display name for the file

remove_digital_file

Rate limit: 100 requests / 10 seconds per shop. See [Rate limiting](/guides/rate-limiting).

Removes a digital file from the product by its file URL.

CLI: fourthwall-cli remove-digital-file. Policy: explicit confirmation.

Native: DELETE /open-api/v1.0/products/{productId}/digital-files. Current source.

product_id
Type or constraint
string (minLength=1, maxLength=256)
Requirement
Required
Meaning
Native productId
fileUrl
Type or constraint
string
Requirement
Optional
Meaning
Native field
account
Type or constraint
string
Requirement
Optional
Meaning
Exact private shop profile label; not a provider identity or authorization proof.
confirm
Type or constraint
boolean
Requirement
Optional
Meaning
Explicit approval for this exact provider effect or local private-file operation.
payload
Type or constraint
object
Requirement
Optional
Meaning
Complete current native JSON body; cannot mix with native body flags or payload_file.
payload_file
Type or constraint
string (minLength=1)
Requirement
Optional
Meaning
Absolute regular non-symlink native JSON body file, at most1MiB. Cannot mix with payload or body flags.

Native body fields below must also satisfy their required fields/oneOf branch. Supply native flat fields, payload OR payload_file. The entire machine-readable schema is available through the CLI and get_operation_schema.

fileUrl
Type or constraint
string
Requirement
Required
Meaning
Native field

request_digital_file_upload_url

Rate limit: 100 requests / 10 seconds per shop. See [Rate limiting](/guides/rate-limiting).

Returns a presigned URL to upload a digital file to. After receiving the response, PUT the file bytes directly to the uploadUrl, then call the confirm endpoint to link the file to the product.

CLI: fourthwall-cli request-digital-file-upload-url. Policy: explicit confirmation.

Native: POST /open-api/v1.0/products/{productId}/digital-files/upload-url. Current source.

product_id
Type or constraint
string (minLength=1, maxLength=256)
Requirement
Required
Meaning
Native productId
fileName
Type or constraint
string
Requirement
Optional
Meaning
Name of the file
contentType
Type or constraint
string
Requirement
Optional
Meaning
MIME type of the file
size
Type or constraint
integer (format=int64)
Requirement
Optional
Meaning
Size of the file in bytes. Must match the x-goog-content-length-range header sent when uploading the bytes to uploadUrl.
account
Type or constraint
string
Requirement
Optional
Meaning
Exact private shop profile label; not a provider identity or authorization proof.
confirm
Type or constraint
boolean
Requirement
Optional
Meaning
Explicit approval for this exact provider effect or local private-file operation.
payload
Type or constraint
object
Requirement
Optional
Meaning
Complete current native JSON body; cannot mix with native body flags or payload_file.
payload_file
Type or constraint
string (minLength=1)
Requirement
Optional
Meaning
Absolute regular non-symlink native JSON body file, at most1MiB. Cannot mix with payload or body flags.
output_file
Type or constraint
string (minLength=1)
Requirement
Required
Meaning
Absolute NEW owner-private receipt file; exclusive0600 creation, no overwrite. Upload/public-token URLs never enter ordinary output.

Native body fields below must also satisfy their required fields/oneOf branch. Supply native flat fields, payload OR payload_file. The entire machine-readable schema is available through the CLI and get_operation_schema.

fileName
Type or constraint
string
Requirement
Required
Meaning
Name of the file
contentType
Type or constraint
string
Requirement
Required
Meaning
MIME type of the file
size
Type or constraint
integer (format=int64)
Requirement
Required
Meaning
Size of the file in bytes. Must match the x-goog-content-length-range header sent when uploading the bytes to uploadUrl.

request_media_upload_url

Rate limit: 20 requests / minute per shop. See [Rate limiting](/guides/rate-limiting).

Returns a pre-signed upload URL for uploading a new image. After receiving the response, PUT the image bytes directly to the uploadUrl.

CLI: fourthwall-cli request-media-upload-url. Policy: explicit confirmation.

Native: POST /open-api/v1.0/media/upload-url. Current source.

fileName
Type or constraint
string
Requirement
Optional
Meaning
Name of the file
contentType
Type or constraint
string
Requirement
Optional
Meaning
MIME type of the file
size
Type or constraint
integer (format=int64)
Requirement
Optional
Meaning
Size of the file in bytes. Must match the x-goog-content-length-range header sent when uploading the bytes to uploadUrl.
account
Type or constraint
string
Requirement
Optional
Meaning
Exact private shop profile label; not a provider identity or authorization proof.
confirm
Type or constraint
boolean
Requirement
Optional
Meaning
Explicit approval for this exact provider effect or local private-file operation.
payload
Type or constraint
object
Requirement
Optional
Meaning
Complete current native JSON body; cannot mix with native body flags or payload_file.
payload_file
Type or constraint
string (minLength=1)
Requirement
Optional
Meaning
Absolute regular non-symlink native JSON body file, at most1MiB. Cannot mix with payload or body flags.
output_file
Type or constraint
string (minLength=1)
Requirement
Required
Meaning
Absolute NEW owner-private receipt file; exclusive0600 creation, no overwrite. Upload/public-token URLs never enter ordinary output.

Native body fields below must also satisfy their required fields/oneOf branch. Supply native flat fields, payload OR payload_file. The entire machine-readable schema is available through the CLI and get_operation_schema.

fileName
Type or constraint
string
Requirement
Required
Meaning
Name of the file
contentType
Type or constraint
string
Requirement
Required
Meaning
MIME type of the file
size
Type or constraint
integer (format=int64)
Requirement
Required
Meaning
Size of the file in bytes. Must match the x-goog-content-length-range header sent when uploading the bytes to uploadUrl.

list_media_images

Rate limit: 100 requests / 10 seconds per shop. See [Rate limiting](/guides/rate-limiting).

Retrieves all images from the shop's media library

CLI: fourthwall-cli list-media-images. Policy: read.

Native: GET /open-api/v1.0/media/images. Current source.

account
Type or constraint
string
Requirement
Optional
Meaning
Exact private shop profile label; not a provider identity or authorization proof.

save_media_image

Rate limit: 100 requests / 10 seconds per shop. See [Rate limiting](/guides/rate-limiting).

Persists an uploaded image in the media library after the client has PUT it to the signed URL

CLI: fourthwall-cli save-media-image. Policy: explicit confirmation.

Native: POST /open-api/v1.0/media/images. Current source.

fileUrl
Type or constraint
string
Requirement
Optional
Meaning
Native field
width
Type or constraint
integer (format=int32)
Requirement
Optional
Meaning
Native field
height
Type or constraint
integer (format=int32)
Requirement
Optional
Meaning
Native field
account
Type or constraint
string
Requirement
Optional
Meaning
Exact private shop profile label; not a provider identity or authorization proof.
confirm
Type or constraint
boolean
Requirement
Optional
Meaning
Explicit approval for this exact provider effect or local private-file operation.
payload
Type or constraint
object
Requirement
Optional
Meaning
Complete current native JSON body; cannot mix with native body flags or payload_file.
payload_file
Type or constraint
string (minLength=1)
Requirement
Optional
Meaning
Absolute regular non-symlink native JSON body file, at most1MiB. Cannot mix with payload or body flags.

Native body fields below must also satisfy their required fields/oneOf branch. Supply native flat fields, payload OR payload_file. The entire machine-readable schema is available through the CLI and get_operation_schema.

fileUrl
Type or constraint
string
Requirement
Required
Meaning
Native field
width
Type or constraint
integer (format=int32)
Requirement
Required
Meaning
Native field
height
Type or constraint
integer (format=int32)
Requirement
Required
Meaning
Native field

create_giveaway

Rate limit: 100 requests / 10 seconds per shop. See [Rate limiting](/guides/rate-limiting).

Creates a new giveaway

CLI: fourthwall-cli create-giveaway. Policy: explicit confirmation.

Native: POST /open-api/v1.0/giveaways/giveaways. Current source.

offerId
Type or constraint
string (format=uuid)
Requirement
Optional
Meaning
Native field
quantity
Type or constraint
integer (format=int32)
Requirement
Optional
Meaning
Native field
username
Type or constraint
string
Requirement
Optional
Meaning
Native field
message
Type or constraint
string
Requirement
Optional
Meaning
Native field
account
Type or constraint
string
Requirement
Optional
Meaning
Exact private shop profile label; not a provider identity or authorization proof.
confirm
Type or constraint
boolean
Requirement
Optional
Meaning
Explicit approval for this exact provider effect or local private-file operation.
payload
Type or constraint
object
Requirement
Optional
Meaning
Complete current native JSON body; cannot mix with native body flags or payload_file.
payload_file
Type or constraint
string (minLength=1)
Requirement
Optional
Meaning
Absolute regular non-symlink native JSON body file, at most1MiB. Cannot mix with payload or body flags.

Native body fields below must also satisfy their required fields/oneOf branch. Supply native flat fields, payload OR payload_file. The entire machine-readable schema is available through the CLI and get_operation_schema.

offerId
Type or constraint
string (format=uuid)
Requirement
Required
Meaning
Native field
quantity
Type or constraint
integer (format=int32)
Requirement
Required
Meaning
Native field
username
Type or constraint
string
Requirement
Optional
Meaning
Native field
message
Type or constraint
string
Requirement
Optional
Meaning
Native field

Rate limit: 100 requests / 10 seconds per shop. See [Rate limiting](/guides/rate-limiting).

Creates a new package with specified number of giveaway links

CLI: fourthwall-cli create-giveaway-links. Policy: explicit confirmation.

Native: POST /open-api/v1.0/giveaway-links. Current source.

productId
Type or constraint
string (format=uuid)
Requirement
Optional
Meaning
Native field
number
Type or constraint
integer (format=int32)
Requirement
Optional
Meaning
Native field
account
Type or constraint
string
Requirement
Optional
Meaning
Exact private shop profile label; not a provider identity or authorization proof.
confirm
Type or constraint
boolean
Requirement
Optional
Meaning
Explicit approval for this exact provider effect or local private-file operation.
payload
Type or constraint
object
Requirement
Optional
Meaning
Complete current native JSON body; cannot mix with native body flags or payload_file.
payload_file
Type or constraint
string (minLength=1)
Requirement
Optional
Meaning
Absolute regular non-symlink native JSON body file, at most1MiB. Cannot mix with payload or body flags.

Native body fields below must also satisfy their required fields/oneOf branch. Supply native flat fields, payload OR payload_file. The entire machine-readable schema is available through the CLI and get_operation_schema.

productId
Type or constraint
string (format=uuid)
Requirement
Required
Meaning
Native field
number
Type or constraint
integer (format=int32)
Requirement
Required
Meaning
Native field

create_gifting_checkout

Creates a paid checkout for gifting a product to live chat

CLI: fourthwall-cli create-gifting-checkout. Policy: explicit confirmation.

Native: POST /open-api/v1.0/gifting/checkout. Current source.

offerId
Type or constraint
string
Requirement
Optional
Meaning
The product offer to gift to live chat.
quantity
Type or constraint
integer (minimum=1, maximum=10000, format=int32)
Requirement
Optional
Meaning
How many gifts to purchase.
currency
Type or constraint
USD, EUR, CAD, GBP, AUD, NZD, SEK, NOK, DKK, PLN, INR, JPY, MYR, SGD, MXN, BRL, CHF
Requirement
Optional
Meaning
Display currency for the checkout. Defaults to the shop's currency.
account
Type or constraint
string
Requirement
Optional
Meaning
Exact private shop profile label; not a provider identity or authorization proof.
confirm
Type or constraint
boolean
Requirement
Optional
Meaning
Explicit approval for this exact provider effect or local private-file operation.
payload
Type or constraint
object
Requirement
Optional
Meaning
Complete current native JSON body; cannot mix with native body flags or payload_file.
payload_file
Type or constraint
string (minLength=1)
Requirement
Optional
Meaning
Absolute regular non-symlink native JSON body file, at most1MiB. Cannot mix with payload or body flags.

Native body fields below must also satisfy their required fields/oneOf branch. Supply native flat fields, payload OR payload_file. The entire machine-readable schema is available through the CLI and get_operation_schema.

offerId
Type or constraint
string
Requirement
Required
Meaning
The product offer to gift to live chat.
quantity
Type or constraint
integer (minimum=1, maximum=10000, format=int32)
Requirement
Required
Meaning
How many gifts to purchase.
currency
Type or constraint
USD, EUR, CAD, GBP, AUD, NZD, SEK, NOK, DKK, PLN, INR, JPY, MYR, SGD, MXN, BRL, CHF
Requirement
Optional
Meaning
Display currency for the checkout. Defaults to the shop's currency.

create_fulfillment

Rate limit: 100 requests / 10 seconds per shop. See [Rate limiting](/guides/rate-limiting).

Creates a fulfillment with a shipment tracker for provided order items. When trackers change their state, order.status will change to IN_PRODUCTION, PARTIALLY_IN_PRODUCTION, PARTIALLY_SHIPPED, SHIPPED depending on the shipping tracker info. Order updated webhooks will be triggered.

CLI: fourthwall-cli create-fulfillment. Policy: explicit confirmation.

Native: POST /open-api/v1.0/fulfillments. Current source.

orderId
Type or constraint
string (format=uuid)
Requirement
Optional
Meaning
Native field
items
Type or constraint
array (minItems=1)
Requirement
Optional
Meaning
Native field
shippingLabel
Type or constraint
object
Requirement
Optional
Meaning
Native field
account
Type or constraint
string
Requirement
Optional
Meaning
Exact private shop profile label; not a provider identity or authorization proof.
confirm
Type or constraint
boolean
Requirement
Optional
Meaning
Explicit approval for this exact provider effect or local private-file operation.
payload
Type or constraint
object
Requirement
Optional
Meaning
Complete current native JSON body; cannot mix with native body flags or payload_file.
payload_file
Type or constraint
string (minLength=1)
Requirement
Optional
Meaning
Absolute regular non-symlink native JSON body file, at most1MiB. Cannot mix with payload or body flags.

Native body fields below must also satisfy their required fields/oneOf branch. Supply native flat fields, payload OR payload_file. The entire machine-readable schema is available through the CLI and get_operation_schema.

orderId
Type or constraint
string (format=uuid)
Requirement
Required
Meaning
Native field
items
Type or constraint
array (minItems=1)
Requirement
Required
Meaning
Native field
items.[].variantId
Type or constraint
string (format=uuid)
Requirement
Required
Meaning
Native field
items.[].quantity
Type or constraint
integer (minimum=1, format=int32)
Requirement
Required
Meaning
Native field
shippingLabel
Type or constraint
object
Requirement
Required
Meaning
Native field
shippingLabel.trackingNumber
Type or constraint
string (minLength=1)
Requirement
Required
Meaning
Native field
shippingLabel.trackingCompany
Type or constraint
string (minLength=1)
Requirement
Required
Meaning
Native field

validate_dns

Rate limit: 20 requests / minute per shop. See [Rate limiting](/guides/rate-limiting).

Triggers a live DNS validation by checking all configured records against actual DNS servers and updates their verification status

CLI: fourthwall-cli validate-dns. Policy: explicit confirmation.

Native: POST /open-api/v1.0/dns/validate. Current source.

account
Type or constraint
string
Requirement
Optional
Meaning
Exact private shop profile label; not a provider identity or authorization proof.
confirm
Type or constraint
boolean
Requirement
Optional
Meaning
Explicit approval for this exact provider effect or local private-file operation.

list_collections

Rate limit: 100 requests / 10 seconds per shop. See [Rate limiting](/guides/rate-limiting).

Returns all collections with pagination. The maximum page size is 100 - larger values are capped at 100.

CLI: fourthwall-cli list-collections. Policy: read.

Native: GET /open-api/v1.0/collections. Current source.

page
Type or constraint
integer (minimum=0, format=int32, default=0)
Requirement
Optional
Meaning
Native page
size
Type or constraint
integer (minimum=1, maximum=100, format=int32, default=20)
Requirement
Optional
Meaning
Number of elements per page. The maximum page size is 100 - larger values are capped at 100.
search
Type or constraint
string
Requirement
Optional
Meaning
Native search
account
Type or constraint
string
Requirement
Optional
Meaning
Exact private shop profile label; not a provider identity or authorization proof.

create_collection

Rate limit: 100 requests / 10 seconds per shop. See [Rate limiting](/guides/rate-limiting).

Creates a new collection with name, description, and optional product list

CLI: fourthwall-cli create-collection. Policy: explicit confirmation.

Native: POST /open-api/v1.0/collections. Current source.

name
Type or constraint
string
Requirement
Optional
Meaning
Native field
description
Type or constraint
string
Requirement
Optional
Meaning
Native field
offerIds
Type or constraint
array
Requirement
Optional
Meaning
List of product IDs to include in the collection
account
Type or constraint
string
Requirement
Optional
Meaning
Exact private shop profile label; not a provider identity or authorization proof.
confirm
Type or constraint
boolean
Requirement
Optional
Meaning
Explicit approval for this exact provider effect or local private-file operation.
payload
Type or constraint
object
Requirement
Optional
Meaning
Complete current native JSON body; cannot mix with native body flags or payload_file.
payload_file
Type or constraint
string (minLength=1)
Requirement
Optional
Meaning
Absolute regular non-symlink native JSON body file, at most1MiB. Cannot mix with payload or body flags.

Native body fields below must also satisfy their required fields/oneOf branch. Supply native flat fields, payload OR payload_file. The entire machine-readable schema is available through the CLI and get_operation_schema.

name
Type or constraint
string
Requirement
Required
Meaning
Native field
description
Type or constraint
string
Requirement
Required
Meaning
Native field
offerIds
Type or constraint
array
Requirement
Required
Meaning
List of product IDs to include in the collection

list_webhook_events

Rate limit: 100 requests / 10 seconds per shop. See [Rate limiting](/guides/rate-limiting).

Get webhook events with pagination and optional filtering by one or more webhook types (repeat or comma-separate the type param). The maximum page size is 100 - larger values are capped at 100.

CLI: fourthwall-cli list-webhook-events. Policy: read.

Native: GET /open-api/v1.0/webhook-events. Current source.

type
Type or constraint
array
Requirement
Optional
Meaning
Native type
page
Type or constraint
integer (minimum=0, format=int32, default=0)
Requirement
Optional
Meaning
Native page
size
Type or constraint
integer (minimum=1, maximum=100, format=int32, default=50)
Requirement
Optional
Meaning
Number of elements per page. The maximum page size is 100 - larger values are capped at 100.
account
Type or constraint
string
Requirement
Optional
Meaning
Exact private shop profile label; not a provider identity or authorization proof.

get_webhook_event

Rate limit: 100 requests / 10 seconds per shop. See [Rate limiting](/guides/rate-limiting).

Get a single webhook event by ID

CLI: fourthwall-cli get-webhook-event. Policy: read.

Native: GET /open-api/v1.0/webhook-events/{webhookEventId}. Current source.

webhook_event_id
Type or constraint
string (minLength=1, maxLength=256)
Requirement
Required
Meaning
Native webhookEventId
account
Type or constraint
string
Requirement
Optional
Meaning
Exact private shop profile label; not a provider identity or authorization proof.

get_thank_you

Rate limit: 100 requests / 10 seconds per shop. See [Rate limiting](/guides/rate-limiting).

Get Thank You details

CLI: fourthwall-cli get-thank-you. Policy: read.

Native: GET /open-api/v1.0/thank-yous/{thankYouId}. Current source.

thank_you_id
Type or constraint
string (minLength=1, maxLength=256)
Requirement
Required
Meaning
Native thankYouId
account
Type or constraint
string
Requirement
Optional
Meaning
Exact private shop profile label; not a provider identity or authorization proof.

list_contributions

Rate limit: 100 requests / 10 seconds per shop. See [Rate limiting](/guides/rate-limiting).

Returns paginated list of orders, donations, and other contributions that can be thanked. The maximum page size is 100 - larger values are capped at 100.

CLI: fourthwall-cli list-contributions. Policy: read.

Native: GET /open-api/v1.0/thank-you-contributions. Current source.

page
Type or constraint
integer (minimum=0, format=int32, default=0)
Requirement
Optional
Meaning
Native page
size
Type or constraint
integer (minimum=1, maximum=100, format=int32, default=50)
Requirement
Optional
Meaning
Number of elements per page. The maximum page size is 100 - larger values are capped at 100.
state
Type or constraint
array
Requirement
Optional
Meaning
Native state
search
Type or constraint
string
Requirement
Optional
Meaning
Native search
min_value
Type or constraint
number (format=double)
Requirement
Optional
Meaning
Native minValue
contains_msg
Type or constraint
boolean
Requirement
Optional
Meaning
Native containsMsg
account
Type or constraint
string
Requirement
Optional
Meaning
Exact private shop profile label; not a provider identity or authorization proof.

get_streaming_status

Rate limit: 100 requests / 10 seconds per shop. See [Rate limiting](/guides/rate-limiting).

Returns streaming status for all services

CLI: fourthwall-cli get-streaming-status. Policy: read.

Native: GET /open-api/v1.0/streaming. Current source.

account
Type or constraint
string
Requirement
Optional
Meaning
Exact private shop profile label; not a provider identity or authorization proof.

get_shop

Rate limit: 100 requests / 10 seconds per shop. See [Rate limiting](/guides/rate-limiting).

Returns the current shop

CLI: fourthwall-cli get-shop. Policy: read.

Native: GET /open-api/v1.0/shops/current. Current source.

account
Type or constraint
string
Requirement
Optional
Meaning
Exact private shop profile label; not a provider identity or authorization proof.

get_shop_contact

Rate limit: 100 requests / 10 seconds per shop. See [Rate limiting](/guides/rate-limiting).

Returns the current shop contact info

CLI: fourthwall-cli get-shop-contact. Policy: read.

Native: GET /open-api/v1.0/shops/current/contact-info. Current source.

account
Type or constraint
string
Requirement
Optional
Meaning
Exact private shop profile label; not a provider identity or authorization proof.

get_sample_balance

Rate limit: 100 requests / 10 seconds per shop. See [Rate limiting](/guides/rate-limiting).

Returns the current sample credit balance for the shop

CLI: fourthwall-cli get-sample-balance. Policy: read.

Native: GET /open-api/v1.0/samples/balance. Current source.

account
Type or constraint
string
Requirement
Optional
Meaning
Exact private shop profile label; not a provider identity or authorization proof.

list_reports

Rate limit: 100 requests / 10 seconds per shop. See [Rate limiting](/guides/rate-limiting).

Returns the list of available report IDs with metadata including name, columns, and supported precisions

CLI: fourthwall-cli list-reports. Policy: read.

Native: GET /open-api/v1.0/reports. Current source.

account
Type or constraint
string
Requirement
Optional
Meaning
Exact private shop profile label; not a provider identity or authorization proof.

get_report

Rate limit: 100 requests / 10 seconds per shop. See [Rate limiting](/guides/rate-limiting).

Fetches a specific analytics report for a date range

CLI: fourthwall-cli get-report. Policy: read.

Native: GET /open-api/v1.0/reports/{reportId}. Current source.

report_id
Type or constraint
string (minLength=1, maxLength=256)
Requirement
Required
Meaning
Native reportId
from
Type or constraint
string (format=date-time)
Requirement
Required
Meaning
Native from
to
Type or constraint
string (format=date-time)
Requirement
Required
Meaning
Native to
aggregation_timezone
Type or constraint
string
Requirement
Required
Meaning
Timezone in ISO-8601 format (e.g., Europe/Warsaw for Warsaw)
aggregation_precision
Type or constraint
hour, day, week, month, quarter, year
Requirement
Required
Meaning
Native aggregationPrecision
account
Type or constraint
string
Requirement
Optional
Meaning
Exact private shop profile label; not a provider identity or authorization proof.

get_product

Rate limit: 100 requests / 10 seconds per shop. See [Rate limiting](/guides/rate-limiting).

Returns product by id

CLI: fourthwall-cli get-product. Policy: read.

Native: GET /open-api/v1.0/products/{productId}. Current source.

product_id
Type or constraint
string (minLength=1, maxLength=256)
Requirement
Required
Meaning
Native productId
account
Type or constraint
string
Requirement
Optional
Meaning
Exact private shop profile label; not a provider identity or authorization proof.

archive_product

Rate limit: 100 requests / 10 seconds per shop. See [Rate limiting](/guides/rate-limiting).

Soft-archives the product — sets it to Archived. Terminal at this surface: once archived, the product cannot be returned to PUBLIC/HIDDEN through the open-api (restoration stays admin-only). Idempotent: re-DELETE on an already-archived product also returns 204.

CLI: fourthwall-cli archive-product. Policy: explicit confirmation.

Native: DELETE /open-api/v1.0/products/{productId}. Current source.

product_id
Type or constraint
string (minLength=1, maxLength=256)
Requirement
Required
Meaning
Native productId
account
Type or constraint
string
Requirement
Optional
Meaning
Exact private shop profile label; not a provider identity or authorization proof.
confirm
Type or constraint
boolean
Requirement
Optional
Meaning
Explicit approval for this exact provider effect or local private-file operation.

get_product_inventory

Rate limit: 100 requests / 10 seconds per shop. See [Rate limiting](/guides/rate-limiting).

Returns product (offer) inventory by id

CLI: fourthwall-cli get-product-inventory. Policy: read.

Native: GET /open-api/v1.0/products/{productId}/inventory. Current source.

product_id
Type or constraint
string (minLength=1, maxLength=256)
Requirement
Required
Meaning
Native productId
account
Type or constraint
string
Requirement
Optional
Meaning
Exact private shop profile label; not a provider identity or authorization proof.

list_product_templates

List available product templates. Returns 25 results. To paginate, use the /page/{N} variant of this endpoint (1-indexed). Use the total field in the response to calculate total pages. Pagination is path-based for HTTP cacheability.

CLI: fourthwall-cli list-product-templates. Policy: read.

Native: GET /open-api/v1.0/product-templates. Current source.

account
Type or constraint
string
Requirement
Optional
Meaning
Exact private shop profile label; not a provider identity or authorization proof.

get_product_template

Get detailed information about a specific product template.

This endpoint is public and does not require authentication. Returns full product details including variants, customizable areas, size guide, and images.

CLI: fourthwall-cli get-product-template. Policy: read.

Native: GET /open-api/v1.0/product-templates/{productId}. Current source.

product_id
Type or constraint
string (minLength=1, maxLength=256)
Requirement
Required
Meaning
Product template ID
account
Type or constraint
string
Requirement
Optional
Meaning
Exact private shop profile label; not a provider identity or authorization proof.

search_product_templates

Search product templates by name, brand, description, sizes, categories, colors, or production method. Returns 25 results. To paginate, use the /search/{query}/page/{N} variant of this endpoint (1-indexed). Use the total field in the response to calculate total pages. Pagination is path-based for HTTP cacheability.

CLI: fourthwall-cli search-product-templates. Policy: read.

Native: GET /open-api/v1.0/product-templates/search/{query}. Current source.

query
Type or constraint
string (minLength=1, maxLength=256)
Requirement
Required
Meaning
Search query (e.g., 'hoodie', 'black%20t-shirt')
account
Type or constraint
string
Requirement
Optional
Meaning
Exact private shop profile label; not a provider identity or authorization proof.

search_product_templates_paged

Search product templates with pagination. This endpoint is public and does not require authentication.

CLI: fourthwall-cli search-product-templates-paged. Policy: read.

Native: GET /open-api/v1.0/product-templates/search/{query}/page/{page}. Current source.

query
Type or constraint
string (minLength=1, maxLength=256)
Requirement
Required
Meaning
Search query (e.g., 'hoodie', 'black%20t-shirt')
page
Type or constraint
integer (minimum=1, format=int32)
Requirement
Required
Meaning
Page number (1-indexed)
account
Type or constraint
string
Requirement
Optional
Meaning
Exact private shop profile label; not a provider identity or authorization proof.

search_product_templates_grouped

Search product templates and group results by product family (libraryId). Products sharing the same physical item but with different production methods (e.g. DTG, Embroidery, DTFX) are collapsed into a single result with a variants list. Returns 25 grouped results. To paginate, use the /search-grouped/{query}/page/{N} variant (1-indexed). Pagination is path-based for HTTP cacheability.

CLI: fourthwall-cli search-product-templates-grouped. Policy: read.

Native: GET /open-api/v1.0/product-templates/search-grouped/{query}. Current source.

query
Type or constraint
string (minLength=1, maxLength=256)
Requirement
Required
Meaning
Search query (e.g., 'hoodie', 'black%20t-shirt')
account
Type or constraint
string
Requirement
Optional
Meaning
Exact private shop profile label; not a provider identity or authorization proof.

search_product_templates_grouped_paged

Search product templates grouped by product family with pagination. This endpoint is public and does not require authentication.

CLI: fourthwall-cli search-product-templates-grouped-paged. Policy: read.

Native: GET /open-api/v1.0/product-templates/search-grouped/{query}/page/{page}. Current source.

query
Type or constraint
string (minLength=1, maxLength=256)
Requirement
Required
Meaning
Search query (e.g., 'hoodie', 'black%20t-shirt')
page
Type or constraint
integer (minimum=1, format=int32)
Requirement
Required
Meaning
Page number (1-indexed)
account
Type or constraint
string
Requirement
Optional
Meaning
Exact private shop profile label; not a provider identity or authorization proof.

list_product_templates_paged

List available product templates with pagination. This endpoint is public and does not require authentication.

CLI: fourthwall-cli list-product-templates-paged. Policy: read.

Native: GET /open-api/v1.0/product-templates/page/{page}. Current source.

page
Type or constraint
integer (minimum=1, format=int32)
Requirement
Required
Meaning
Page number (1-indexed)
account
Type or constraint
string
Requirement
Optional
Meaning
Exact private shop profile label; not a provider identity or authorization proof.

list_product_templates_by_category

Browse product templates filtered by category. Category matches by prefix (e.g., 'Apparel' matches 'Apparel/T-Shirts'). Returns 25 results. To paginate, use the /category/{category}/page/{N} variant of this endpoint (1-indexed). Use the total field in the response to calculate total pages. Pagination is path-based for HTTP cacheability.

CLI: fourthwall-cli list-product-templates-by-category. Policy: read.

Native: GET /open-api/v1.0/product-templates/category/{category}. Current source.

category
Type or constraint
Apparel, Accessories, Home & Living
Requirement
Required
Meaning
Category path. Top-level: Apparel, Accessories, Home & Living. Subcategory paths like 'Apparel/T-Shirts' are also valid.
account
Type or constraint
string
Requirement
Optional
Meaning
Exact private shop profile label; not a provider identity or authorization proof.

list_product_templates_by_category_paged

Browse product templates by category with pagination. This endpoint is public and does not require authentication.

CLI: fourthwall-cli list-product-templates-by-category-paged. Policy: read.

Native: GET /open-api/v1.0/product-templates/category/{category}/page/{page}. Current source.

category
Type or constraint
Apparel, Accessories, Home & Living
Requirement
Required
Meaning
Category path. Top-level: Apparel, Accessories, Home & Living. Subcategory paths like 'Apparel/T-Shirts' are also valid.
page
Type or constraint
integer (minimum=1, format=int32)
Requirement
Required
Meaning
Page number (1-indexed)
account
Type or constraint
string
Requirement
Optional
Meaning
Exact private shop profile label; not a provider identity or authorization proof.

get_pro_subscription

Rate limit: 100 requests / 10 seconds per shop. See [Rate limiting](/guides/rate-limiting).

Returns the current Fourthwall Pro platform subscription status, plan, and usage against plan limits

CLI: fourthwall-cli get-pro-subscription. Policy: read.

Native: GET /open-api/v1.0/pro-subscription. Current source.

account
Type or constraint
string
Requirement
Optional
Meaning
Exact private shop profile label; not a provider identity or authorization proof.

list_orders

Rate limit: 100 requests / 10 seconds per shop. See [Rate limiting](/guides/rate-limiting).

Returns all orders with pagination. The maximum page size is 100 - larger values are capped at 100.

CLI: fourthwall-cli list-orders. Policy: read.

Native: GET /open-api/v1.0/order. Current source.

page
Type or constraint
integer (minimum=0, format=int32, default=0)
Requirement
Optional
Meaning
Native page
size
Type or constraint
integer (minimum=1, maximum=100, format=int32, default=20)
Requirement
Optional
Meaning
Number of elements per page. The maximum page size is 100 - larger values are capped at 100.
email
Type or constraint
string
Requirement
Optional
Meaning
Native email
created_at_gt
Type or constraint
string (format=date-time)
Requirement
Optional
Meaning
Native createdAt[gt]
created_at_lt
Type or constraint
string (format=date-time)
Requirement
Optional
Meaning
Native createdAt[lt]
updated_at_gt
Type or constraint
string (format=date-time)
Requirement
Optional
Meaning
Native updatedAt[gt]
updated_at_lt
Type or constraint
string (format=date-time)
Requirement
Optional
Meaning
Native updatedAt[lt]
status
Type or constraint
array
Requirement
Optional
Meaning
Native status
account
Type or constraint
string
Requirement
Optional
Meaning
Exact private shop profile label; not a provider identity or authorization proof.

get_order

Rate limit: 100 requests / 10 seconds per shop. See [Rate limiting](/guides/rate-limiting).

Returns order by id

CLI: fourthwall-cli get-order. Policy: read.

Native: GET /open-api/v1.0/order/{orderId}. Current source.

order_id
Type or constraint
string (minLength=1, maxLength=256)
Requirement
Required
Meaning
Native orderId
account
Type or constraint
string
Requirement
Optional
Meaning
Exact private shop profile label; not a provider identity or authorization proof.

get_order_by_friendly_id

Rate limit: 100 requests / 10 seconds per shop. See [Rate limiting](/guides/rate-limiting).

Returns order by friendly id

CLI: fourthwall-cli get-order-by-friendly-id. Policy: read.

Native: GET /open-api/v1.0/order/by-friendly-id/{friendlyId}. Current source.

friendly_id
Type or constraint
string (minLength=1, maxLength=256)
Requirement
Required
Meaning
Native friendlyId
account
Type or constraint
string
Requirement
Optional
Meaning
Exact private shop profile label; not a provider identity or authorization proof.

list_membership_tiers

Rate limit: 100 requests / 10 seconds per shop. See [Rate limiting](/guides/rate-limiting).

Lists all tiers for the current shop

CLI: fourthwall-cli list-membership-tiers. Policy: read.

Native: GET /open-api/v1.0/memberships/tiers. Current source.

account
Type or constraint
string
Requirement
Optional
Meaning
Exact private shop profile label; not a provider identity or authorization proof.

list_members

Rate limit: 100 requests / 10 seconds per shop. See [Rate limiting](/guides/rate-limiting).

Lists all members for the current shop. The maximum page size is 100 - larger values are capped at 100.

CLI: fourthwall-cli list-members. Policy: read.

Native: GET /open-api/v1.0/memberships/members. Current source.

page
Type or constraint
integer (minimum=0, format=int32, default=0)
Requirement
Optional
Meaning
Native page
size
Type or constraint
integer (minimum=1, maximum=100, format=int32, default=20)
Requirement
Optional
Meaning
Number of elements per page. The maximum page size is 100 - larger values are capped at 100.
account
Type or constraint
string
Requirement
Optional
Meaning
Exact private shop profile label; not a provider identity or authorization proof.

get_member

Rate limit: 100 requests / 10 seconds per shop. See [Rate limiting](/guides/rate-limiting).

Gets a member by id

CLI: fourthwall-cli get-member. Policy: read.

Native: GET /open-api/v1.0/memberships/members/{id}. Current source.

id
Type or constraint
string (minLength=1, maxLength=256)
Requirement
Required
Meaning
Native id
account
Type or constraint
string
Requirement
Optional
Meaning
Exact private shop profile label; not a provider identity or authorization proof.

list_mailing_list

Rate limit: 100 requests / 10 seconds per shop. See [Rate limiting](/guides/rate-limiting).

Returns all mailing list entries. The maximum page size is 100 - larger values are capped at 100.

CLI: fourthwall-cli list-mailing-list. Policy: read.

Native: GET /open-api/v1.0/mailing-list-entries. Current source.

page
Type or constraint
integer (minimum=0, format=int32, default=0)
Requirement
Optional
Meaning
Native page
size
Type or constraint
integer (minimum=1, maximum=100, format=int32, default=20)
Requirement
Optional
Meaning
Number of elements per page. The maximum page size is 100 - larger values are capped at 100.
account
Type or constraint
string
Requirement
Optional
Meaning
Exact private shop profile label; not a provider identity or authorization proof.

list_giveaway_packages

Rate limit: 100 requests / 10 seconds per shop. See [Rate limiting](/guides/rate-limiting).

Returns all packages with giveaway links

CLI: fourthwall-cli list-giveaway-packages. Policy: read.

Native: GET /open-api/v1.0/giveaway-links/packages. Current source.

account
Type or constraint
string
Requirement
Optional
Meaning
Exact private shop profile label; not a provider identity or authorization proof.

get_giveaway_package

Rate limit: 100 requests / 10 seconds per shop. See [Rate limiting](/guides/rate-limiting).

Returns all giveaway links for packageId

CLI: fourthwall-cli get-giveaway-package. Policy: read.

Native: GET /open-api/v1.0/giveaway-links/packages/{packageId}. Current source.

package_id
Type or constraint
string (minLength=1, maxLength=256)
Requirement
Required
Meaning
Native packageId
account
Type or constraint
string
Requirement
Optional
Meaning
Exact private shop profile label; not a provider identity or authorization proof.

get_giveaway_draw

Rate limit: 100 requests / 10 seconds per shop. See [Rate limiting](/guides/rate-limiting).

Get draw details

CLI: fourthwall-cli get-giveaway-draw. Policy: read.

Native: GET /open-api/v1.0/gifting/draw/{id}. Current source.

id
Type or constraint
string (minLength=1, maxLength=256)
Requirement
Required
Meaning
Native id
account
Type or constraint
string
Requirement
Optional
Meaning
Exact private shop profile label; not a provider identity or authorization proof.

get_gift_purchase

Rate limit: 100 requests / 10 seconds per shop. See [Rate limiting](/guides/rate-limiting).

Returns gift purchase details by id

CLI: fourthwall-cli get-gift-purchase. Policy: read.

Native: GET /open-api/v1.0/gift-purchase/{giftPurchaseId}. Current source.

gift_purchase_id
Type or constraint
string (minLength=1, maxLength=256)
Requirement
Required
Meaning
Native giftPurchaseId
account
Type or constraint
string
Requirement
Optional
Meaning
Exact private shop profile label; not a provider identity or authorization proof.

list_donations

Rate limit: 100 requests / 10 seconds per shop. See [Rate limiting](/guides/rate-limiting).

Returns all donations with pagination. The maximum page size is 100 - larger values are capped at 100.

CLI: fourthwall-cli list-donations. Policy: read.

Native: GET /open-api/v1.0/donations. Current source.

page
Type or constraint
integer (minimum=0, format=int32, default=0)
Requirement
Optional
Meaning
Native page
size
Type or constraint
integer (minimum=1, maximum=100, format=int32, default=20)
Requirement
Optional
Meaning
Number of elements per page. The maximum page size is 100 - larger values are capped at 100.
account
Type or constraint
string
Requirement
Optional
Meaning
Exact private shop profile label; not a provider identity or authorization proof.

get_donation

Rate limit: 100 requests / 10 seconds per shop. See [Rate limiting](/guides/rate-limiting).

Returns donation by id

CLI: fourthwall-cli get-donation. Policy: read.

Native: GET /open-api/v1.0/donations/{donationId}. Current source.

donation_id
Type or constraint
string (minLength=1, maxLength=256)
Requirement
Required
Meaning
Native donationId
account
Type or constraint
string
Requirement
Optional
Meaning
Exact private shop profile label; not a provider identity or authorization proof.

get_dns_status

Rate limit: 100 requests / 10 seconds per shop. See [Rate limiting](/guides/rate-limiting).

Returns the cached DNS configuration and record status for the shop's custom domain

CLI: fourthwall-cli get-dns-status. Policy: read.

Native: GET /open-api/v1.0/dns. Current source.

account
Type or constraint
string
Requirement
Optional
Meaning
Exact private shop profile label; not a provider identity or authorization proof.

get_collection

Rate limit: 100 requests / 10 seconds per shop. See [Rate limiting](/guides/rate-limiting).

Returns a collection by its ID or slug

CLI: fourthwall-cli get-collection. Policy: read.

Native: GET /open-api/v1.0/collections/{collectionIdOrSlug}. Current source.

collection_id_or_slug
Type or constraint
string (minLength=1, maxLength=256)
Requirement
Required
Meaning
Native collectionIdOrSlug
account
Type or constraint
string
Requirement
Optional
Meaning
Exact private shop profile label; not a provider identity or authorization proof.

list_accounts

Local labels/default/auth source availability only. No credential values, paths, provider identity or network.

CLI: fourthwall-cli list-accounts. Policy: read.

get_operation_schema

Local reviewed native method/path/query/body/scopes/rate limit and pinned schema provenance. No provider access or authority proof.

CLI: fourthwall-cli get-operation-schema. Policy: read.

operation
Type or constraint
get_webhook, update_webhook, delete_webhook, start_streaming, end_streaming, get_public_token, get_promotion, update_promotion, update_product_state, toggle_product_availability, mark_download_complete, finish_giveaway, create_giveaway_checkout, disable_giveaway_checkout, finish_giveaway_draw, get_gifting_config, update_gifting_config, update_collection, get_collection_products, update_collection_products, update_collection_availability, list_webhooks, create_webhook, list_promotions, create_promotion, list_products, create_product, attach_product_images, remove_product_images, confirm_digital_file_upload, remove_digital_file, request_digital_file_upload_url, request_media_upload_url, list_media_images, save_media_image, create_giveaway, create_giveaway_links, create_gifting_checkout, create_fulfillment, validate_dns, list_collections, create_collection, list_webhook_events, get_webhook_event, get_thank_you, list_contributions, get_streaming_status, get_shop, get_shop_contact, get_sample_balance, list_reports, get_report, get_product, archive_product, get_product_inventory, list_product_templates, get_product_template, search_product_templates, search_product_templates_paged, search_product_templates_grouped, search_product_templates_grouped_paged, list_product_templates_paged, list_product_templates_by_category, list_product_templates_by_category_paged, get_pro_subscription, list_orders, get_order, get_order_by_friendly_id, list_membership_tiers, list_members, get_member, list_mailing_list, list_giveaway_packages, get_giveaway_package, get_giveaway_draw, get_gift_purchase, list_donations, get_donation, get_dns_status, get_collection
Requirement
Required
Meaning
Native field

preview_shop_batch

Validate every exact request and hash order/profile label/schema locally. No native request, credential loading, ownership check or provider preview.

CLI: fourthwall-cli preview-shop-batch. Policy: read.

tasks
Type or constraint
array (minItems=1, maxItems=20)
Requirement
Required
Meaning
One to twenty exact ordered native effects. No signed receipts or mutable payload files. Cannot override account/confirm/output settings.
account
Type or constraint
string
Requirement
Optional
Meaning
Exact private shop profile label; not a provider identity or authorization proof.

submit_shop_batch

Confirmed ordered effects; all validated/hash checked before first request. Stop on first failure with known and unattempted receipts; no retry, rollback or implicit continuation.

CLI: fourthwall-cli submit-shop-batch. Policy: explicit confirmation.

tasks
Type or constraint
array (minItems=1, maxItems=20)
Requirement
Required
Meaning
One to twenty exact ordered native effects. No signed receipts or mutable payload files. Cannot override account/confirm/output settings.
account
Type or constraint
string
Requirement
Optional
Meaning
Exact private shop profile label; not a provider identity or authorization proof.
confirm
Type or constraint
boolean
Requirement
Optional
Meaning
Explicit approval for this exact provider effect or local private-file operation.
review_sha256
Type or constraint
string
Requirement
Required
Meaning
Native field

export_resources

Confirmed native page/size/results export into a new exclusive0600 file with page/item/5MiB budgets and explicit page/offset continuation. No links followed, binary downloads or atomic-backup guarantee.

CLI: fourthwall-cli export-resources. Policy: explicit confirmation.

operation
Type or constraint
get_collection_products, list_promotions, list_products, list_collections, list_webhook_events, list_contributions, list_orders, list_members, list_mailing_list, list_donations
Requirement
Required
Meaning
Native field
arguments
Type or constraint
object
Requirement
Optional
Meaning
Current list query/path arguments; cannot override profile/policy/output.
account
Type or constraint
string
Requirement
Optional
Meaning
Exact private shop profile label; not a provider identity or authorization proof.
confirm
Type or constraint
boolean
Requirement
Optional
Meaning
Explicit approval for this exact provider effect or local private-file operation.
start_offset
Type or constraint
integer (minimum=0, maximum=99)
Requirement
Optional
Meaning
Native field
max_pages
Type or constraint
integer (minimum=1, maximum=100)
Requirement
Optional
Meaning
Native field
max_items
Type or constraint
integer (minimum=1, maximum=10000)
Requirement
Optional
Meaning
Native field
output_file
Type or constraint
string (minLength=1)
Requirement
Required
Meaning
Native field

upload_file

Explicitly confirmed Google Storage PUT using a selected private upload receipt and a bounded local regular file. Exact size/Content-Type and x-goog-content-length-range are preserved. No Fourthwall credentials or redirects, no automatic registration/publishing.

CLI: fourthwall-cli upload-file. Policy: explicit confirmation.

account
Type or constraint
string
Requirement
Optional
Meaning
Exact private shop profile label; not a provider identity or authorization proof.
confirm
Type or constraint
boolean
Requirement
Optional
Meaning
Explicit approval for this exact provider effect or local private-file operation.
receipt_file
Type or constraint
string (minLength=1)
Requirement
Required
Meaning
Native field
input_file
Type or constraint
string (minLength=1)
Requirement
Required
Meaning
Native field

Writing safely

Every one of the 37 effects requires confirm:true in MCP or --confirm in the CLI. This includes new checkouts, public-token PUT, uploads and local export file writes. Read-only hides and directly refuses effects. FOURTHWALL_ALLOW_DESTRUCTIVE=0 refuses them even when confirmed. Local guard approval is separate from provider authorization and customer consent.

Read the intended record and inspect get_operation_schema before writing. Validate IDs, quantities, callback events and the exact profile. Product creation defaults to hidden. Availability is not lifecycle state: available:false and state:HIDDEN are separate native changes.

No effect retries automatically. A timeout, malformed receipt or partial batch can mean an unknown outcome. Inspect native state before deliberately repeating. The default pacing is 1,000 ms per request; tighter documented operation buckets are respected locally. Other processes share provider quotas.

Products media and fulfillment

The pinned contract uses /open-api/v1.0 and current native typed bodies. Product creation supports selected design/digital variants, not every custom production workflow. Digital price is a nonnegative USD amount; publishOnCreate defaults false.

fourthwall-cli create-product --payload-file /absolute/private/digital-product.json --account intended-shop --confirm --agent
fourthwall-cli toggle-product-availability --product-id REVIEWED_PRODUCT_ID --available false --confirm --agent
fourthwall-cli update-product-state --product-id REVIEWED_PRODUCT_ID --state HIDDEN --confirm --agent

The digital tutorial describes admin publishing while the current state endpoint documents PUBLIC/HIDDEN. Check actual authorization and storefront visibility before claiming a live publication outcome. These examples are placeholders, not successful shop receipts.

Media workflow: request_media_upload_url saves a signed receipt to a NEW private file; upload_file sends exact local bytes; save_media_image registers the uploaded reference separately. Digital-file workflow uses request_digital_file_upload_url, upload_file and confirm_digital_file_upload. Use private payload files for fileUrl; never paste signed receipts into agent context.

fourthwall-cli request-media-upload-url --fileName reviewed.png --contentType image/png --size 4096 --output-file /absolute/private/upload-receipt.json --account intended-shop --confirm --agent
fourthwall-cli upload-file --receipt-file /absolute/private/upload-receipt.json --input-file /absolute/private/reviewed.png --account intended-shop --confirm --agent
fourthwall-cli save-media-image --payload-file /absolute/private/register-image.json --account intended-shop --confirm --agent

Replace 4096 with the exact file byte count. The helper's local cap is 64 MiB, not a Fourthwall plan entitlement. HTTPS Google Storage signed hosts only, no redirects, exact Content-Type and x-goog-content-length-range; no Fourthwall Authorization header reaches storage. Upload acknowledgement is not registration, storefront publication or access proof. Receipts bind a profile label and metadata, not cryptographic ownership.

Fulfillment requires native orderId, nonempty items with variantId/quantity, and shippingLabel with trackingCompany/trackingNumber. Giveaway links require productId and number, not the old quantity wrapper. Promotions retain four native variants and their nested discount shapes. Streaming services are native typed objects, not strings. Inspect schema before submitting any of these.

Several accounts and reviewed batches

FOURTHWALL_ACCOUNTS is a private JSON array of unique name plus one username/password, access_token or credentials_file source. Named profiles never inherit globals. FOURTHWALL_DEFAULT_ACCOUNT selects an exact default; --account selects another label. Discovery reports labels and source availability only, never secret values or paths.

Preview validates 1–20 ordered native effects locally before any provider call. Signed-output operations and mutable payload files are excluded. Every nested argument is validated; account/confirm/output overrides are forbidden. Preview returns reviewSha256 and providerValidated:false.

fourthwall-cli preview-shop-batch --tasks '{"tool":"toggle_product_availability","arguments":{"product_id":"REVIEWED_PRODUCT_ID","available":false}}' --account intended-shop --agent
fourthwall-cli submit-shop-batch --tasks '{"tool":"toggle_product_availability","arguments":{"product_id":"REVIEWED_PRODUCT_ID","available":false}}' --review-sha256 REVIEWED_64_CHARACTER_HASH --account intended-shop --confirm --agent

The repeatable JSON flag becomes the tasks array. Use the exact hash from your local preview. It binds prepared requests, task order, profile label and selected schema, not credentials, provider state, expiry or single-use execution. Re-review after credential/state changes. Execution stops on the first failure and reports known results and unattempted indices. No transaction or rollback is promised.

Pagination and private exports

Query pagination uses native zero-based page/size, with size capped locally at 100. Product-template path pagination is one-based. The old cursor/limit wrappers are obsolete. Native date filter names and repeated status values are preserved by the request encoder; inspect the actual list schema.

export_resources supports the ten selected lists whose current schema exposes results/page/size/totalPages. It validates counters, limits pages/items/bytes, and returns continuation with a page and start_offset when needed. Default budgets are ten pages and 1,000 items; maxima are 100 pages, 10,000 items and 5 MiB.

fourthwall-cli export-resources --operation list_orders --arguments '{"page":0,"size":100}' --max-pages 10 --max-items 1000 --output-file /absolute/private/orders.json --account intended-shop --confirm --agent

A new file is reserved exclusively before fetching; existing files and symlinks are not overwritten. POSIX output mode is 0600; Windows ACLs require separate restriction. Errors remove the partial new file. Exports redact known credentials/signed URLs, but other customer metadata remains private. This is bounded filtered metadata, not an atomic backup, binary download or stable snapshot while data changes.

How it works

The SDK stdio server and CLI in-memory transport call the same handlers. Ajv validates discovered input schemas and current native body variants. A shared guard applies confirmation and read-only policy before effects. Native method/path allowlists prevent arbitrary provider requests; query arrays and date names retain their native representation.

Six local helpers add private profile discovery, contract inspection, reviewed batches, bounded exports and exact byte uploads. No vendor or community runtime is copied. Official schema provenance and the 39-name migration mapping are checked by scripts.

npm ci
npm run typecheck
npm run build
npm test
npm run check:counts
npm run check:discovery
npm run sync:api -- --check
npm run build:mcpb

CI runs macOS, Windows and Linux on Node 22/24 plus desktop packaging. These checks prove local contracts, policy, transports and artifacts; authenticated provider outcomes, desktop GUI installation and matched Codex tokens remain separate. See RELEASE-CHECKLIST.md.

Your data

Credentials live in private process settings or owner-private files; there is no hosted service or telemetry. Provider API requests go only to api.fourthwall.com. Storage uploads are separately scoped to the documented Google Storage HTTPS hosts and carry no provider credentials.

Raw signed upload receipts and generated public tokens are intentionally written only to a requested new private output_file. Known credentials, sensitive token/file fields and signed credential URLs are redacted from ordinary output and errors. Customer names, emails, order contents and other legitimate native metadata are not automatically anonymized.

Treat provider content and URLs as untrusted data. Optional best-effort audit logs contain static guard decisions, not payloads or credentials; they are not financial ledgers. Keep exports and receipts private. Uninstalling does not revoke provider credentials or reverse effects. Revoke or rotate in Fourthwall and restart dependent runtimes.

Official and community comparison

Fourthwall's official MCP already exists. It provides hosted OAuth, broad shop tooling, confirmations and documented previews, with 123 documented tools at review. This package is a selected local companion, with 80 native operations and six workflows. Neither count proves greater coverage or efficiency.

Authentication
This companion
Private shop Basic pair or existing OAuth bearer/file
Existing tooling
Official hosted OAuth with shop selection
Coverage
This companion
Selected reviewed Platform API routes
Existing tooling
Official broader shop, brand, merch and analytics tools
Terminal
This companion
Dedicated task CLI over the exact same MCP handlers
Existing tooling
Generic MCP terminal clients also exist
Local approvals
This companion
Mandatory per-call approval and direct read-only refusal on both surfaces
Existing tooling
Official confirmations and previews already exist
Repeated work
This companion
Exact local ordered batch review and failure receipts
Existing tooling
No claim of transaction or state locking
Export
This companion
Bounded private native metadata export with resume offset
Existing tooling
Not an atomic backup or binary download
Upload
This companion
Private signed receipts and explicit bounded byte helper
Existing tooling
Native upload services remain the authority
Cost
This companion
No measured task-token saving yet
Existing tooling
Equivalent completed tasks must be measured

The reviewed generic wong2/mcp-cli source at 7d12b464 already supports remote interactive OAuth. Its noninteractive JSON call path in that snapshot uses stdio; HTTP noninteractive equivalence was not verified. A bounded GitHub community search found no additional dedicated Fourthwall MCP repository, which is not proof none exists. See COMPARISON.md for review evidence and exclusions.

Versions and migration

ComponentVersion or evidence
Package and desktop2.0.0
RuntimeNode >=22
Native APICurrent Platform v1.0 schema checked 2026-10-04
Selected operations80 of 95 native operations, 80 distinct method/path routes
Legacy39 actual tool names preserved; breaking argument refresh
Task/token, provider and GUI outcomesSeparate acceptance work; not inferred from local tests

Old cursor/limit fields become page/size, availability uses available, fulfillment uses items/shippingLabel, giveaway uses productId/number, webhooks require url and allowedTypes, promotions use native oneOf variants, and streaming services use typed objects. Effects now require explicit approval. Token/upload receipts need new private output_file. Product creation stays hidden by default. Use schema/help before migrating scripts.

The current official source SHA-256 is 77de1061d5c9273927fd3cf4cac1375c4bb684bed4cc4c0f22252ea6b0e203fe. Provenance, excluded operations and sanitized snapshot checksum ship in src/tools/provenance.json. CHANGELOG.md records the full refresh; private legacy history remains separate.

Risks

Full-access Basic credentials make careful profile and permission selection necessary. Local approval cannot prove ownership, customer consent, fulfillment delivery or storefront state. There are no automatic retries, rollbacks, refunds or cleanup workflows beyond the explicitly documented tools.

Fixed local bounds are 1 MiB request/body file, 5 MiB API response/export and 64 MiB byte upload. Timeout defaults to 30 seconds and local pacing to one second, with tighter native buckets. These are conservative process controls, not global quota guarantees. Sandbox verification uses fixtures and makes no real shop changes.

Troubleshooting

SymptomCheck
Missing configurationChoose one complete private auth source; confirm the launching runtime inherits it
API 401/403Check revoked credentials, OAuth scopes, shop permissions and intended resource
Unknown profileUse exact list_accounts labels; named profiles never inherit globals
429Respect shared provider quotas; do not repeatedly retry a possibly completed effect
Invalid argumentsRun schema/--help; old wrappers and guessed body fields are rejected
Upload byte mismatchRequest a new receipt for the exact file size; preserve required headers
Existing output filePick a new private path; outputs never overwrite
Empty or malformed receiptInspect native state before deliberately repeating
GUI launcher cannot find npxCheck the client's PATH or use absolute node/package paths
Hidden write absentRead-only intentionally removes it and refuses direct calls

Report sanitized reproducible details through GitHub issues, or use private security reporting. Never attach credentials, upload URLs or customer exports.

Fourthwall MCP server & CLI FAQs

Authentication, official alternatives, approvals, uploads and what has been verified.

A local program that lets an MCP app call selected Fourthwall Platform API operations.

It exposes 86 shared tasks, including six local workflows, through one implementation also used by the CLI.

The same tasks as terminal commands.

Tool names use underscores in MCP and dashes in commands, such as list_products and fourthwall-cli list-products.

Shell agents and scripts can use JSON output without configuring an MCP connection.

Yes.

Fourthwall offers a hosted OAuth MCP at https://mcp.fourthwall.com with broader shop, brand, merchandising and analytics coverage.

Its documentation listed 123 tools when reviewed on October 4, 2026; that is a documentation count, not authenticated discovery.

Choose it for hosted OAuth, broad dashboard coverage and its own native previews and confirmations.

Choose this companion when you need a dedicated shared task CLI, exact local request reviews, isolated profile selection or bounded private metadata exports.

No.

Generic MCP terminal clients also exist, and the official MCP already confirms changes.

The useful additions here are specific local workflows and consistent per-call policy across CLI and MCP.

There is no universal superiority or total-coverage claim.

Codex, Claude Code, Claude Desktop, Cursor, VS Code/Copilot, Windsurf, Zed and Gemini CLI can launch a local stdio server where supported.

Other stdio clients can use the same executable.

URL-only hosted connectors cannot connect directly to this local package.

The npm package and manifest require Node 22 or newer.

The desktop bundle includes production JavaScript dependencies; a compatible host must provide the required runtime. macOS, Windows and Linux are declared; CI and actual GUI installation are separate checks.

A Fourthwall SUPER ADMIN can create shop API credentials in Settings > For Developers.

Configure the complete private username/password pair, an existing OAuth access token, or a private credential JSON file.

Basic credentials grant full shop access.

No. fourthwall-cli login prints the private setup instructions.

It does not create credentials, open browser consent, exchange tokens or refresh an existing OAuth token.

Use the official provider flow separately if you need OAuth.

Yes.

FOURTHWALL_ACCOUNTS contains independently configured named profiles, and --account selects one exact label.

Named profiles never inherit global credentials.

Labels and review hashes do not establish shop ownership or lock credential contents.

FOURTHWALL_READ_ONLY=1 exposes only the 49 read operations and directly refuses the 37 hidden effects, even if confirm is supplied.

This is a local runtime policy; it does not reduce permissions on Fourthwall credentials or govern another client.

All 37 provider and local effects need confirm:true in MCP or --confirm in the CLI.

That includes product changes, checkout creation, token generation, upload URL requests, byte uploads, reviewed batches and exports. --yes and --agent do not grant permission.

Creation defaults publishOnCreate to false, keeping the product hidden.

Publishing is a separate deliberate choice.

The current state endpoint documents PUBLIC/HIDDEN, while the digital-product tutorial also describes admin publishing; authorization and live visibility must be checked in the intended shop.

No.

Preview validates every request locally and hashes exact requests, order, profile label and pinned contract.

Submit verifies that hash and stops on the first failure.

There is no rollback, state lock, expiry or single-use promise; failed effect outcomes can be unknown.

No.

Exports save selected native page/size/results metadata with explicit page, item and byte budgets and continuation.

They are not atomic snapshots, binary downloads or a guarantee of completeness while shop data changes.

Request a signed upload receipt into a new private file, then explicitly upload matching local bytes to the documented Google Storage host.

Registration or attachment is separate.

The upload sends no Fourthwall Authorization header and never automatically publishes a product.

Credentials remain in private environment settings or owner-only regular files outside repositories.

Signed upload URLs and public tokens are saved only to requested new private files.

Ordinary output redacts known credentials and signed URLs; other shop/customer fields remain private data.

Download fourthwall-2.0.0.mcpb from GitHub Releases and install it through a supported Claude Desktop Extensions screen.

Choose one credential source and leave others empty.

The release includes production dependencies and no credentials.

Archive/protocol checks do not prove GUI installation in every client build.

The software is free under AGPL-3.0.

Fourthwall service fees, plans and usage still apply.

CLI can avoid loading unused MCP schemas, but command help, results, retries and task completion also cost context.

Matched completed Codex task/token measurements remain pending; no savings percentage is invented.

All 39 actual legacy tool names remain, but native arguments and pagination were corrected.

The new package adds a CLI, desktop bundle, 80 selected native operations, six local workflows, explicit effect approval and stronger private output handling.

Version 2.0.0 is a breaking contract refresh; old private history is preserved separately.

Navid Moazzez

AI business strategist & AI OS builder

Navid Moazzez helps creators and founders master AI and build their own AI Operating System (AI OS) to automate their business and life.

Navid.me is reader-supported. When you buy through links on this site, I may earn an affiliate commission. Learn more.

More MCP servers & CLIs

Related free tools

Free AI newsletter

The most actionable AI newsletter for founders

Every week, get proven AI strategies, curated tools, and step-by-step systems to grow your audience, create better content, and build a profitable creator business.

No fluff, no filler, no BS. Just five minutes each week that might level up your online business and life.

P.S. Sign up now to get free access to my ultimate AI tools guide for creators.

Loved by 10,000+ readers