Fabler Labs Commerce API
Paid autonomous purchase of downloadable product SKUs.
Operations 5
GET
/buy/pre-deploy-security-checklist
Buy the 18-Point Pre-Deploy Security Checklist ($0.10, zip)
#
Paid autonomous purchase of downloadable product SKUs.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/fablerlabs-com:fablerlabs-com-commerce-api"
curl "https://apis.io/api/v1/apis?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Fabler Labs machine store (x402 API) Commerce API
version: '2026-07-10'
summary: A machine-payable HTTP API for AI agents, priced per call in USDC over x402.
description: Machine-payable endpoints for AI agents, over x402 protocol v2. Unpaid requests to a paid endpoint return `402 Payment Required` with an empty `{}` body and a typed challenge (price, network, asset, pay-to address) in a base64-encoded `PAYMENT-REQUIRED` response header; decode it, pay the USDC, and replay with a base64 `PAYMENT-SIGNATURE` header to get the result. Built and operated by an autonomous AI agent, filmed for transparency. Live status and prices are authoritative in https://fablerlabs.com/products.json.
x-guidance: 'No account or API key is required. Call a paid operation without payment: HTTP 402 -> decode PAYMENT-REQUIRED -> settle the exact x402 v2 Base USDC terms -> replay the same request with PAYMENT-SIGNATURE.'
contact:
name: Fabler Labs support
email: support@fablerlabs.com
url: https://fablerlabs.com/contact.html
termsOfService: https://fablerlabs.com/terms.html
license:
name: Proprietary — usage governed by the Terms of Service
url: https://fablerlabs.com/terms.html
servers:
- url: https://x402.fablerlabs.com
description: Production machine store (preview)
security: []
tags:
- name: Commerce
description: Paid autonomous purchase of downloadable product SKUs.
paths:
/buy/pack:
get:
tags:
- Commerce
operationId: buyPack
summary: Buy the AI Coding Workflow Pack ($24, zip)
description: Buy the AI Coding Workflow Pack with USDC, at parity with the human Stripe checkout. On settlement, the response body is the product .zip itself (Content-Disposition attachment).
x-402:
priceUsd: 24
network: eip155:8453
asset: USDC
x-payment-info:
price:
mode: fixed
amount: '24.00'
currency: USD
protocols:
- x402: {}
parameters:
- $ref: '#/components/parameters/FilenameOverride'
responses:
'200':
description: Payment settled; the product .zip bytes.
content:
application/zip:
schema:
type: string
format: binary
'400':
$ref: '#/components/responses/BadRequest'
'402':
$ref: '#/components/responses/PaymentRequired'
/buy/agent-kit:
get:
tags:
- Commerce
operationId: buyAgentKit
summary: Buy the Autonomous Agent Starter Kit ($29, zip)
description: Buy the Autonomous Agent Starter Kit with USDC, at parity with the human Stripe checkout. On settlement, the response body is the product .zip itself (Content-Disposition attachment).
x-402:
priceUsd: 29
network: eip155:8453
asset: USDC
x-payment-info:
price:
mode: fixed
amount: '29.00'
currency: USD
protocols:
- x402: {}
parameters:
- $ref: '#/components/parameters/FilenameOverride'
responses:
'200':
description: Payment settled; the product .zip bytes.
content:
application/zip:
schema:
type: string
format: binary
'400':
$ref: '#/components/responses/BadRequest'
'402':
$ref: '#/components/responses/PaymentRequired'
/buy/ai-coding-security-pack-v1:
get:
tags:
- Commerce
operationId: buySecurityPack
summary: Buy the AI Coding Security Pack ($29, zip)
description: Buy the AI Coding Security Pack with USDC, at parity with the human Stripe checkout. On settlement, the response body is the product .zip itself (Content-Disposition attachment).
x-402:
priceUsd: 29
network: eip155:8453
asset: USDC
x-payment-info:
price:
mode: fixed
amount: '29.00'
currency: USD
protocols:
- x402: {}
parameters:
- $ref: '#/components/parameters/FilenameOverride'
responses:
'200':
description: Payment settled; the product .zip bytes.
content:
application/zip:
schema:
type: string
format: binary
'400':
$ref: '#/components/responses/BadRequest'
'402':
$ref: '#/components/responses/PaymentRequired'
/buy/constitution-packs-v1:
get:
tags:
- Commerce
operationId: buyConstitutionPack
summary: Buy the Agent Constitution Pack ($19, zip)
description: Buy the Agent Constitution Pack with USDC, at parity with the human Stripe checkout. On settlement, the response body is the product .zip itself (Content-Disposition attachment).
x-402:
priceUsd: 19
network: eip155:8453
asset: USDC
x-payment-info:
price:
mode: fixed
amount: '19.00'
currency: USD
protocols:
- x402: {}
parameters:
- $ref: '#/components/parameters/FilenameOverride'
responses:
'200':
description: Payment settled; the product .zip bytes.
content:
application/zip:
schema:
type: string
format: binary
'400':
$ref: '#/components/responses/BadRequest'
'402':
$ref: '#/components/responses/PaymentRequired'
/buy/pre-deploy-security-checklist:
get:
tags:
- Commerce
operationId: buyPreDeploySecurityChecklist
summary: Buy the 18-Point Pre-Deploy Security Checklist ($0.10, zip)
description: Buy the editable pre-deploy security checklist with USDC. On settlement, the response body is the product .zip itself (Content-Disposition attachment). This low-ticket entry product is sold directly over x402.
x-402:
priceUsd: 0.1
network: eip155:8453
asset: USDC
x-payment-info:
price:
mode: fixed
amount: '0.10'
currency: USD
protocols:
- x402: {}
parameters:
- $ref: '#/components/parameters/FilenameOverride'
responses:
'200':
description: Payment settled; the product .zip bytes.
content:
application/zip:
schema:
type: string
format: binary
'400':
$ref: '#/components/responses/BadRequest'
'402':
$ref: '#/components/responses/PaymentRequired'
components:
responses:
BadRequest:
description: Malformed request body — not valid JSON, not a top-level JSON object, or a required field is missing or the wrong type. The body is a typed error.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
invalidJson:
value:
error: invalid_json
message: request body is not valid JSON
invalidRequest:
value:
error: invalid_request
message: 'body must be {"text": string}'
PaymentRequired:
description: Payment required. The response body is always empty (`{}`) — the accepted payment terms (price, network, asset, pay-to address) ride in a base64-encoded `PAYMENT-REQUIRED` response header instead (x402 protocol v2; see the `PaymentRequired` schema for the decoded shape). Decode it, pay the USDC, and replay the request with a `PAYMENT-SIGNATURE` header.
headers:
PAYMENT-REQUIRED:
description: Base64-encoded JSON matching the `PaymentRequired` schema. Decode with e.g. `curl -si ... | grep -i '^payment-required:' | cut -d' ' -f2 | base64 -d`.
schema:
type: string
format: byte
examples:
- eyJ4NDAyVmVyc2lvbiI6Miwi...
content:
application/json:
schema:
type: object
additionalProperties: false
description: Always empty in x402 protocol v2 — the challenge is carried in the `PAYMENT-REQUIRED` header, not the body.
examples:
emptyBody:
value: {}
schemas:
Error:
type: object
required:
- error
properties:
error:
type: string
detail:
type: string
parameters:
FilenameOverride:
name: filename
in: query
required: false
description: Optional override for the downloaded file's name, sent back in the Content-Disposition header (the file's bytes and content are unchanged — this only renames the saved file). Must match `^[A-Za-z0-9][A-Za-z0-9._-]{0,127}$` (no path separators, quotes, or control characters); a non-matching value is rejected with 400 before payment is requested. Omit it to get the product's default filename.
schema:
type: string
pattern: ^[A-Za-z0-9][A-Za-z0-9._-]{0,127}$
examples:
- my-pack.zip
externalDocs:
description: Human-readable overview of the machine store
url: https://fablerlabs.com/x402
x-pricing:
scan-secrets: 0.005
scrape: 0.005
market-funding-spreads: 0.001
nft-owner: 0.003
market-polymarket-activity: 0.001
market-krw-prices: 0.001
render-og: 0.01
audit-agent-config: 0.05
audit-pre-deploy: 0.08
audit-url-security: 0.08
buy-pack: 24
buy-agent-kit: 29
buy-ai-coding-security-pack-v1: 29
buy-constitution-packs-v1: 19
buy-pre-deploy-security-checklist: 0.1