Skip to main content
POST
Create a paywall

Authorizations

X-Api-Key
string
header
required

API key in format mpk_<64 hex chars>. Can alternatively be sent as Authorization: Bearer mpk_....

Body

application/json

price is required. USDC micro-unit integer string (6 decimals), for example "1000000" = $1.00.

serviceId
string
required

Parent service id. Required — paywalls must belong to a service.

slug
string
required
Required string length: 1 - 50
Pattern: ^[a-z0-9._-]+$
name
string
required
Required string length: 1 - 100
targetType
enum<string>
required
Available options:
PROXY,
ROUTE
price
string
required

USDC micro-units as an integer string.

currency
enum<string>
required
Available options:
USDC
networks
enum<string>[]
required

Every network this paywall accepts payment on. At least one is required.

Minimum array length: 1

Supported blockchain network identifier. The value must match the owning Service / Paywall mode: pass a testnet identifier when mode is testnet, and a mainnet identifier when mode is mainnet.

Available options:
base-sepolia,
arc-testnet,
tempo-testnet,
base,
tempo
allowedMethods
enum<string>[]
required

HTTP methods this paywall accepts. At least one is required.

Minimum array length: 1
Available options:
GET,
POST,
PUT,
PATCH
description
string
targetUrl
string<uri>
targetRoute
string
timeout
integer
Required range: 30000 <= x <= 3600000
headers
object[]
allowedHeaders
string[]

Extra buyer request headers to forward. Cannot include sensitive headers (authorization, cookie, host, x-forwarded-*, etc.).

Maximum string length: 100
queryParams
object[]
enabled
boolean

Response

Paywall created

data
object
required
meta
object
required