Agent API · Trust-gated · x402

Inventory, machine readable.

Agents don't browse websites. They query structured data, pay per call, and settle on-chain. Inventory is exposed the way software actually consumes it.

Access flow

Three steps to paid data.

Tokenized inventory skips all three — it is free and needs no identity. This applies to the x402-priced endpoints only.

01

Valiron trust check

Agents identify themselves with X-Agent-Id and X-Agent-Address headers. A minimum trust score of 65 is required before paid endpoints respond.

02

x402 payment

Call a paid endpoint without payment and receive a 402 challenge stating the exact amount, network and recipient. Settlement is USDC on Base.

03

API access

Retry with the payment header attached and the endpoint returns structured JSON.

Endpoints

What you can call.

Tokenized inventory reads are free and unauthenticated. Marketplace listing and market data are x402-priced.

GET

/api/agent/v1

Capability manifest: endpoints, pricing, and payment requirements.

Free
GET

/api/agent/v1/listings

Search active marketplace listings by query, brand, category, condition and price.

$0.005
GET

/api/agent/v1/listings/{slug}

Full listing detail: description, condition, images, seller, verification level, and on-chain provenance if anchored.

$0.005
GET

/api/agent/v1/market/{slug}

Market data for a product: price history and market statistics.

$0.01
GET

/api/v1/tokenized-skus

Public tokenized inventory: supply, unit price, contract reference and merchant for every active SKU. No identity headers, no payment. Filter by status, merchantId, brandSlug or q.

Free
GET

/api/v1/tokenized-skus/{id}

One tokenized SKU with availableQuantity, its recorded ledgerEntries, and on-chain state.

Free
POST

/api/v1/tokenized-skus

Tokenize an item you hold. No catalogue entry needed — a title is enough. Pass backedSupply to activate in the same call.

Key
POST

/api/v1/tokenized-skus/bulk

Up to 200 SKUs per call for ERP and catalogue imports. Rows succeed or fail independently.

Key

Example

Reading inventory.

Request

curl https://port66.xyz/api/v1/tokenized-skus \
  -G -d status=ACTIVE -d limit=2

Response shape

{
  "data": {
    "items": [
      {
        "id": "cms1…",
        "merchantSku": "RO-RAMONES-42",
        "unitPriceUsdc": "1250",
        "physicalStock": 3,
        "tokenizedStock": 2,
        "chain": "BASE_MAINNET",
        "contractAddress": "0x…",
        "tokenId": "18472",
        "metadataHash": "0x…",
        "product": { "name": "…", "brand": { … } },
        "merchant": { "verified": true, … }
      }
    ],
    "total": 1, "page": 1, "limit": 2
  }
}

Write access

Tokenize your own inventory.

For companies putting their own stock on the record — not for buying. Purchases stay on the session flow.

Issue an API key from your account, then create and activate SKUs over HTTP. No catalogue entry is required — describe the item and it stands on its own. A key is scoped to the tokenized-SKU API and to the merchant that issued it: it cannot reach orders, payments, or anything else on the account, and it cannot issue further keys.

Create and activate in one call

curl -X POST https://port66.xyz/api/v1/tokenized-skus \
  -H "Authorization: Bearer p66_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Deep Groove Ball Bearing 6205-2RS",
    "brandName": "SKF",
    "merchantSku": "BRG-6205",
    "unitPriceUsdc": "4.50",
    "physicalStock": 10000,
    "backedSupply": 10000
  }'

Or import a catalogue, 200 at a time

curl -X POST \
  https://port66.xyz/api/v1/tokenized-skus/bulk \
  -H "Authorization: Bearer p66_live_…" \
  -H "Content-Type: application/json" \
  -d '{ "items": [ { … }, { … } ] }'

# Rows succeed or fail independently:
# { "requested": 200, "created": [ … ], "failed": [ … ] }

Self-described items are labelled as such. They read back in the same shape as catalogue items, carry selfDescribed: true, and never report a verified brand — a name you type has been checked by nobody, and this registry does not imply otherwise.

The claim is minted at purchase, not at listing. Creating and activating a SKU makes it discoverable and records the supply you are backing. The ERC-1155 claim is minted when someone buys, and burned when they redeem the physical item.

Roadmap

Not available yet.

Documented so integrators can plan against them — not served today.

Ownership and transfer queries

Not yet indexed

GET ownership and transfer history require an ERC-1155 event indexer on Base. No endpoint returns holder data today.

Agent offers on marketplace listings

Not yet indexed

Agents can buy tokenized inventory today through /api/agent/v1/skus. Making offers on ordinary marketplace listings is not exposed to agents.

Merchant scores and delivery ETA

Not yet indexed

No merchant scoring model or fulfilment-time dataset exists. Only verification status is exposed.

Redemption status endpoint

Not yet indexed

Redemptions are recorded in the inventory ledger but have no dedicated public read route.

Building on this?

The manifest is the contract. Start there, and check what we verify before you rely on a field.

Portscan

An open explorer for tokenized physical inventory. It reports operator records and their on-chain references — it does not assert authenticity or ownership beyond what those records contain.