Developer Guide

Integration reference for the channel knowledge transcript service. Payment rails, API routes, pricing modes, and working code examples.

Overview

Service status is currently unavailable. The information below reflects the known rail and endpoint structure, but live readiness could not be confirmed.

Payment Rails

Each rail represents a blockchain + protocol combination that can settle payments for this service. Only rails marked Live now are available for production use.

Rail data is not available.

Rail Details

Expanded explanation of each rail, what it does, and its current readiness.

Rail data is not available.

API Routes

The service exposes the following route families. All routes are proxied through the app at /api/service/* to the ingestion backend.

Catalog

Browse available channels, offerings, and pricing policies.

  • /api/service/catalog/channels
  • /api/service/offerings
  • /api/service/pricing/policies
  • /api/service/channels/whole-channel-price

Quoting

Request price quotes for individual channels, custom selections, or bulk orders.

  • /api/service/quotes
  • /api/service/quotes/{quoteId}
  • /api/service/quotes/{quoteId}/commercials
  • /api/service/bulk/quotes

Commerce

Checkout, order management, receipts, and entitlements.

  • /api/service/checkout-sessions
  • /api/service/orders
  • /api/service/orders/{orderId}
  • /api/service/receipts/{receiptId}
  • /api/service/accounts/{subject}/entitlements

Delivery

Access purchased transcript packs, manifests, and exports.

  • /api/service/packs/{packId}/manifest
  • /api/service/packs/{packId}/exports/{name}

ACP (Agent Commerce Protocol)

Fixed-price agent-to-agent transcript pack jobs. This is the live public paid route.

  • /api/service/acp/offerings
  • /api/service/acp/jobs
  • /api/service/acp/jobs/{acpJobId}

Operations

Service readiness, rail status, and operational health.

  • /api/service/ops/readiness
  • /api/service/ops/readiness/history
  • /api/service/ops/readiness/overrides
  • /api/service/ops/status

Purchase Modes

Every offering has a purchase mode that determines the buyer experience and settlement path.

Buy now

instant_buy

Available for immediate purchase through a live payment rail.

Request quote

quote_only

Requires a custom quote before purchase.

Manual review

manual_review

Requires manual review and approval before purchase.

How pricing works

Fixed-price ACP offerings are priced in USDC. The current default ACP job price is $3.00 USDC per job. Pricing for custom quotes depends on channel size, video count, and the offering type.

Whole-channel and bulk requests may use different pricing tiers. The backend returns pricing details with every quote, including per-video cost, total amount, and any applicable discounts.

Code Samples

Working examples for the most common integration flows. All examples target the live ACP + Solana MPP path.

List ACP offerings

Fetch the current fixed-price ACP offerings available for instant purchase.

curl -s https://icm.fyi/api/service/acp/offerings | jq .

Submit an ACP job (Solana MPP)

POST a transcript pack job. Without a shared-secret header, the server returns a 402 MPP challenge that your wallet must sign.

# Step 1: POST the job — server returns 402 with MPP challenge
curl -s -X POST https://icm.fyi/api/service/acp/jobs \
  -H "Content-Type: application/json" \
  -d '{"channel_handle": "@ChannelName", "namespace": "videos"}' \
  -D - -o /dev/null
# Look for the WWW-Authenticate header containing the MPP challenge.

# Step 2: Sign the challenge with your Solana wallet,
# then re-POST with the Authorization header containing the signed response.
# The server verifies the on-chain USDC transfer and dispatches the job.

Poll an ACP job

After submitting a job, poll for status updates. The response includes the current state and delivery details when complete.

curl -s https://icm.fyi/api/service/acp/jobs/{acpJobId} | jq .

Check service status

Returns the live rail map, readiness state, offering counts, and endpoint families.

curl -s https://icm.fyi/api/service/ops/status | jq .