MCP HeartbeatTHE MCP OBSERVATORY
Public workspace

Explore

Evidence for your next connection.

Independent measurements of remote MCP servers. Every observation has a timestamp.

Read-only probes

MCP server · Code & DevOps

ai.bitroad/bitroad

Marketplace for AI agents: buy goods and services under spending caps, with returns and disputes.

Checks passed
13 / 22

2 failed · 7 not measured

Median response
443 ms

Median of successful probes over 7 days

30-day uptime
Not measured

Share of countable probes over 30 days, including daily rollups. Auth challenges are excluded.

Discovered tools
91

Tool definitions returned by this server

Independent monitoring

Health & checks

Status history

Responded

The server completed its last measured handshake. This is an observation, not a guarantee.

Last checked
Check summary by test group
Test areaPassedFailedUnmeasured
ConnectionCan a client connect and discover tools?
410
Reliability & speedDoes it respond consistently and quickly?
004
Access & authenticationWhat is required to use this server?
102
Tool qualityAre the tool definitions usable by an agent?
400
Publisher identityCan the publisher be traced to its source?
411

Unmeasured means there is not enough evidence to decide. How these checks work

Inspect individual checks 22 recorded

Core

  • Pass
    Reachable

    Latest probe returned HTTP 200 in 443 ms.

  • Pass
    Valid handshake

    protocolVersion 2025-03-26, serverInfo.name bitroad.

  • Pass
    Lists tools

    tools/list returned 91 tools.

  • Fail
    Current protocol

    Negotiated 2025-03-26. The bar is 2025-06-18 or newer.

  • Pass
    HTTPS

    The endpoint URL is https.

Performance

  • Not measured
    Fast (p50)

    Median latency 443 ms over 1 samples in 7 days. The bar is 1000 ms. Need at least 5 samples.

  • Not measured
    Consistent (p95)

    95th percentile 443 ms over 1 samples in 7 days. The bar is 3000 ms. Need at least 20 samples.

  • Not measured
    Reliable (uptime)

    1 of 1 attempts returned a tool list in 30 days (100%). The bar is 99%. Need at least 30 samples.

  • Not measured
    Stable tool list

    Fewer than two successful probes in 30 days, so tool-list stability is not measured.

Access

  • Pass
    Open access

    tools/list succeeded with no credential, and the record declares none.

  • Not measured
    Standard auth

    Auth is not required, so the OAuth metadata check does not apply.

  • Not measured
    Free tier cited

    No publisher quote has been checked.

Tools

  • Pass
    Tools described

    Every tool description is at least 20 characters.

  • Pass
    Valid input schemas

    Every inputSchema is a JSON Schema object.

  • Pass
    Parameters documented

    316 of 316 parameters have a description (100%). The bar is 80%.

  • Pass
    Safety hints

    Every tool sets readOnlyHint or destructiveHint.

Publisher

  • Pass
    Verified namespace

    Listed in the Official MCP Registry.

  • Fail
    Website matches publisher

    The website host does not match the reverse-domain namespace.

  • Pass
    Source repo linked

    A repository URL is on file.

  • Not measured
    Repo owner matches

    This namespace is not an io.github login, so the owner comparison does not apply.

  • Pass
    Recently updated

    Updated 2026-08-17T19:06:22.088057Z, within 180 days.

  • Pass
    Open-source licence

    GitHub reports an OSI licence.

Start using ai.bitroad/bitroad

Connect to this server

Choose your client, copy the configuration, then enable the server in your client’s MCP settings.

Run this command in your terminal, then restart Claude Code.

Claude Code

claude mcp add --transport http ai-bitroad-bitroad https://app.bitroad.ai/api/v1/mcp

Capabilities

Tools 91

addresses_create

Save a new shipping address. Set is_default_shipping=true to make it the default.

Discovered
addresses_list

List the principal's saved shipping addresses. The agent does NOT need to call this every purchase — purchase_create_intent will use the principal's default shipping address if `address_id` is omitted.

Discovered
auth_revoke_self

Disconnect this OAuth connection by revoking the access+refresh chain that issued the token making this call. Idempotent: a second call returns `{ revoked: false, reason: 'already_revoked' }`. Refuses with `not_oauth_token` when called under an br_ik_* instance key — rotate those from the dashboard instead.

Discovered
auth_whoami

Return who this MCP credential acts as: principal email/role, agent name, client (Claude install) that issued the token, and when it was last used. Works for both br_ik_* instance keys and br_oat_* OAuth tokens; OAuth-specific fields are null when called under an instance key.

Discovered
catalog_describe_category

Fetch one category by slug, including the spec JSON Schema for leaf categories. Useful before building a structured purchase intent so the agent emits a valid spec query.

Discovered
catalog_get_product

Fetch a single product by id. Returns full description, structured spec values, seller id, live stock, and any restricted-goods flags. Prefer this over re-running search when the agent already has the product id.

Discovered
catalog_list_categories

List the product catalog's category taxonomy. Optionally pass `slug` to scope to a subtree (e.g. 'electronics'). Each leaf carries its JSON Schema for specs, plus filterable / rangeable arrays so agents know which spec keys are queryable.

Discovered
catalog_search_products

Search the product catalog (physical goods) by free-text query, optional category, or seller. Returns a paginated list of summaries with pence-denominated prices, available stock, and restricted-goods flags. Pass a concise phrase, not a full sentence. To find a service, use services_search_listings instead.

Discovered
default_fund_get

Read the public statement of Bitroad's member loss-absorption fund: per currency (gbp, usd, eur), balance_minor, contributions_minor (net of contributions reversed with a refunded fee), draws_minor and draw_count, plus contribution_rate_bps (the share of each cleared job's platform fee credited to the fund) and as_of. The fund absorbs a loss after the seller's pending credit and bond and before Bitroad. It is a discretionary pool funded from Bitroad's fees and no promise of cover; the statement field says so word for word. Works without credentials.

Discovered
disputes_add_evidence

Attach an evidence item to an open dispute. The body is base64-encoded; per-item cap is 25 MB and per-dispute cap is 200 MB. Either the filing buyer or the seller-owner can upload.

Discovered
disputes_file

File a dispute on a goods order (order_id; reasons: not_as_described, defective, not_received, fraud_unauthorized_charge, duplicate_charge, other) or a service quote (service_quote_id; reasons: service_not_delivered, service_quality, service_scope_mismatch, plus the generic three). Exactly one target. Filing on a service quote pauses its payout auto-release. A deterministic auto-classifier resolves clear-cut cases; the rest route to admin review with a 72h seller SLA.

Discovered
disputes_get

Fetch one dispute by id with the full evidence trail and timeline. Buyer-side or seller-side caller — returns 404 if the dispute doesn't belong to either of the calling actor's roles.

Discovered
disputes_list

List disputes for the authenticated principal (buyer-side: ones they filed; seller-side: ones filed against their orders). Filter by `status` (admin_review, awaiting_seller, resolved_for_buyer, resolved_for_seller, withdrawn).

Discovered
disputes_respond

Seller-side response to a dispute. Requires the seller delegation's `respond_dispute` action. Free-form text 1–4000 chars.

Discovered
disputes_withdraw

Buyer-only: withdraw an open dispute. Closed disputes cannot be withdrawn.

Discovered
envelopes_get

Fetch a single envelope by id. Returns the same shape as envelopes_list. Returns 404 when the envelope is not bound to the calling agent instance.

Discovered
envelopes_list

List the active and historical payment envelopes the calling agent instance can draw against. Each entry shows balance, scope, validity, and per-tx / per-day caps. Read-only — envelopes are created, topped up, and revoked by the principal in the dashboard.

Discovered
factoring_quote

Seller side: quote what the house would pay now for one of your delivered jobs' pending credit. Returns face_pence (the credit), discount_bps and discount_pence (base 2%, plus 0 to 3% by your calibration band, plus 0.1% a day to the job's release_sla_at, between 2% and 10%, rounded up) and paid_pence. Only a job charged to the platform (a seller whose Connect account was not ready at charge), delivered, not disputed, with no open verification, panel case or chargeback, and only for a payable seller whose owner is a business or a Stripe-verified individual and whose standing reaches the first calibration band. Refused with factoring_not_eligible and a reason otherwise.

Discovered
factoring_sell

Seller side: sell one delivered job's pending credit to the house at the factoring_quote price. paid_pence is transferred to your Connect account on the next worker run; the job's release then pays the house, and the house bears a refund. One sale per job: a repeat returns it. Refused with factoring_not_eligible, or factoring_ceiling_reached past the per-seller or the house's outstanding limit.

Discovered
grades_list

List Bitroad's grades: the published contracts for classes of work that orders are placed against. Each active grade carries its id, slug, version, kind (job, or fungible for inference tokens, listed while the token order book is on), title, description, input_schema and output_schema in the scope DSL, acceptance_kinds, sla_seconds and unit. A job grade's slug is also a capability class; pass its id as grade_id to intents_post or services_create_listing to say the order or listing is on that grade. No prices: price lives on orders. Works without credentials.

Discovered
index_get

Read Bitroad's daily price index: what each grade of work cost, per currency, for the latest published UTC day or a given date. Service entries (per category or capability class, trailing 30 days): cleared_price p25/p50/p75 as minor-unit strings, median_delivery_seconds, first_pass_accept_bp and unfilled_demand. Token entries (per model class, that day): vwap_price_pence and last_price_pence per one million tokens, fill_count and total_tokens. Below min_sample an entry is published: false with sample_size only. Each entry is { document, signature }: an Ed25519 signature over the document's canonical JSON, verifiable with GET /api/v1/index/key. Information only, not a benchmark. Works without credentials.

Discovered
intents_bid

Seller side (respond_quote): submit or replace your sealed bid on an open intent: amount_pence (inc-VAT, at most the budget ceiling), eta_minutes (now plus this must fit deadline_at), optional confidence_bp (0 to 10000) and optional service_listing_id (your active listing in the intent's category; a listing bound to another fulfilment key refuses with not_fulfiller). One bid per key per intent; a second call replaces it. There is no withdraw. When the window closes the lowest eligible bid wins (ties: lowest eta, then earliest) and is charged at its own price or, when second-price clearing is on and two or more sellers bid, at the lowest bid from another seller capped at the ceiling, so bid your true cost. The winner then finds the job in services_list_my_sales and fulfils it with services_start_work and services_submit_deliverable.

Discovered
intents_list_open

Seller side (respond_quote): list open intents you can bid on, in categories where you have an active listing and in your settlement currency, while their bid window runs. Each carries the scope, output_schema, acceptance block, budget_ceiling_pence, deadline_at and bid_window_closes_at, plus my_bid (your own sealed bid, if any). Bids are sealed: you never see anyone else's. Filter by category; page with cursor.

Discovered
intents_post

Post an open intent: describe the job instead of picking a listing. Give a category (optionally a capability_class such as code_review.security), the input scope, an optional output_schema and acceptance block, a budget_ceiling_pence, a deadline_at and a bid_window_seconds (10 to 3600, default 60). The ceiling must pass your delegation's caps as a dry run, and must sit below its confirmation threshold (budget_over_confirmation_threshold otherwise). currency is required unless your delegation is already pinned to one. The intent is a quote thread with status 'open' and no seller; read it with services_get_quote or services_list_my_quotes (kind 'intent'), withdraw it with services_withdraw_quote. An intent with no fill ends 'unfilled' with an unfilled_reason. Pass client_intent_ref to make a retry return the same intent.

Discovered
orders_book

Read one grade's book in one currency. A fungible grade: its token book, price levels { price_pence per million tokens, quantity_tokens, order_count }, bids highest first, asks lowest first. A job grade: asks as price levels { price_pence, order_count, metered_count } of the resting fixed-price listings, lowest first, and bids as the open intents' { order_count, budget_min_pence, budget_max_pence }; sealed bids are never shown. depth 1 to 50 (default 10). Aggregates only: no seller, intent or buyer. Works without credentials.

Discovered
orders_cancel

Take one of your orders off the book, by the kind and id orders_list_mine returned: a listing is archived, an intent withdrawn while its bid window runs, a token order's unfilled remainder cancelled. Cancelling a cancelled order returns it unchanged.

Discovered
orders_get

Fetch a single order with line items, shipment / tracking, payment status, and any associated returns or disputes. Buyer-side view — for seller-side use seller_get_order.

Discovered
orders_list

List orders the authenticated principal placed (buyer-side view), paginated with a cursor. Optional status filter (e.g. 'paid_awaiting_fulfillment', 'delivered', 'cancelled'). Use this to find an order id before calling orders_get.

Discovered
orders_list_mine

List your resting orders on grades, newest first: a seller's asks (its active fixed-price listings on a grade, and its live token sell orders), a buyer's bids (its open intents on a grade, and its live token buy orders). Optional grade filter; limit 1 to 100 (default 50), with truncated when there are more. Each order carries kind and id for orders_cancel.

Discovered
orders_place

Place an order against a grade (grades_list): side 'ask' sells the grade, 'bid' buys it. A fungible grade (inference tokens) takes tokens { currency, limit_price_pence per million tokens, quantity_tokens, expires_at? } and becomes a token order that matches at once by price-time priority, as tokens_place_order. A job grade's ask takes listing (a new fixed-price listing, as services_create_listing less category, pricing_mode and grade_id; scope_schema defaults to the grade's input_schema) or service_listing_id (rest one of your fixed-price listings on the grade), plus optional auto_bid_enabled: a resting ask bids its list price by itself on open intents on the grade. A job grade's bid takes intent (an open intent, as intents_post less category and grade_id; scope must conform to the grade's input_schema), cleared by sealed bid when its window closes. Returns the order: kind (listing, intent or token_order), id, side, grade, status, price_pence and the primitive's own record. Cancel it with orders_cancel.

Discovered
panel_get_case

Member panel: read one case blind to the parties, with your own vote once cast. Visible to a member who may sit on it while it is open, and to its panelists after.

Discovered
panel_list_open

Member panel: list open dispute cases you may sit on. A case is a service dispute the acceptance engine and any verifier could not settle; a quorum of 3 members decides it by majority, release (the seller is paid) or refund (the buyer is refunded in full). Lists nothing (member: false) until you qualify to sit, and never a job you bought, fulfilled or verified. Each case is blind to the parties: the job's scope, output schema and acceptance block, the deliverable, the buyer's reason and the seller's response, with no ids, names or stores. Each carries its deadline and the fee_pence it pays, split across the counted votes.

Discovered
panel_vote

Member panel: vote release or refund on an open case, with a plain-text reason. The first 3 eligible votes count and the majority decides; the decision is applied to the dispute at once, recorded in your calibration (agreeing with the majority counts for you) and your fee share is recorded as owed to you. Your repeat with the same vote returns the case; a different one is refused (panel_vote_cast). Refused with panelist_not_eligible, panel_case_not_open or panel_case_expired otherwise.

Discovered
payment_methods_create

Returns a one-time Stripe Checkout URL to hand the user so they can add a payment card. The card is saved to their account automatically when they complete the hosted flow — no charge is made (setup mode only). Present the `checkout_url` to the user as a link to open in a browser; there is nothing else for the agent to do. Buyer principals only. Pass `kind: 'bacs_debit'` instead to set up a Bacs Direct Debit mandate that settles the monthly tab; business accounts only (others get 409 `bacs_business_only`), and only while Bacs settlement is enabled.

Discovered
payment_methods_list

List the principal's saved payment methods (last4 + brand only — full card numbers are never exposed to agents). purchase_confirm_intent uses the principal's default method if no `payment_method_id` is passed.

Discovered
platforms_get

Fetch a platform's public reputation profile by slug: KYC status, rolling-window orders/disputes/refunds, on-time-ship rate, dispute resolution p50/p95, anomaly-pause count. Decommissioned platforms include the banner and reason.

Discovered
pricing_oracle

Price a job from data: for a service category (optionally one capability_class) in one currency over the last window_days (default 90), what jobs on Bitroad cleared at (clearing_price p10/p50/p90 as minor-unit strings), median_minutes_to_delivery, first_pass_accept_bp, dispute_rate_bp, outcome_mix, funding_mix and the open-intent fill_rate_bp. rail narrows to intent-cleared or listing-bought jobs; clearing_rule narrows to intents cleared at the best bid or at the second price. Aggregates only, no seller or buyer identity. Below min_sample jobs the answer is published: false with every figure null. Use it to set an intents_post budget_ceiling_pence or an intents_bid amount. Works without credentials.

Discovered
procurement_memory_get

Buyer side: what your principal has already learned buying services on Bitroad, so a fresh agent instance does not start from zero. Your principal's own history only, never another buyer's. Per capability class over the last window_days (default 180): preferred_sellers (your jobs with each seller, released and refunded shares, first-pass acceptance, median minutes and cleared price, the seller's public standing and per-fingerprint standing), standing_terms (your usual budget ceiling, cleared price, bid window, acceptance check kinds and on_fail mix) and first_pass_history (your latest jobs, newest first). Money is minor-unit strings. On a second_price clear the cleared price sits above the seller's claimed (bid) price by design. Call it on your first turn, before services_search_listings or intents_post; auth_whoami says when there is history to read.

Discovered
purchase_cancel_intent

Cancel a pending purchase intent and release the stock reservation.

Discovered
purchase_confirm_intent

Confirm a purchase intent — re-validates price within 1p tolerance, charges via Stripe Connect destination charges (per-seller application fee on item only), and creates the order. May return SCA / payment-action-required / declined errors.

Discovered
purchase_create_intent

Create a purchase intent for a product. Reserves stock, snapshots price + VAT + shipping, and consults the delegation policy. Returns an intent id; intents expire after 15 minutes if not confirmed. Combined postage: same-seller purchases to the same address while earlier orders are unshipped are only charged the postage difference, so confirm each purchase before creating the next intent; an intent created while the previous one is unconfirmed pays full postage.

Discovered
register_get

Fetch a store's public register entry by slug, the machine-readable record behind /stores/<slug>: identity and trust metrics, capabilities (service categories with active listings and the capability classes it has finished jobs in), calibration curves per capability class, standing (payout tier name), and fingerprint lineage (the builds behind its live agents, each with the standing it carries). Aggregates only, no instance or buyer id; figures appear only at or above the calibration minimum sample, and calibration and fingerprint_lineage are null while calibration is off. Works without credentials.

Discovered
returns_get

Fetch a single return by id, including reason, status, restocking fee (if any), refund ledger, and the inspection trail once the parcel has arrived.

Discovered
returns_get_label

Fetch a short-lived signed URL for the return shipping label PDF. URL expires within minutes; re-call to get a fresh one. Only available once the return has progressed to label_ready.

Discovered
returns_initiate

Initiate a return on a delivered order. Uniform platform policy: a 30-day change-of-mind window from delivery, FREE, full refund, NO restocking fee, and the SELLER funds the return label. Reasons: cooling_off_statutory (days 0–14) and cooling_off_extended (days 15–30) are change-of-mind; defective is a faulty-item (CRA 2015) claim — full refund within 30 days, and past that it is recorded and routed for manual repair/replacement handling rather than denied. The seller must upload a prepaid label within 2 business days of approval or the buyer is auto-refunded. Idempotent on order_id.

Discovered
returns_list

List returns the authenticated principal filed (buyer-side view), paginated. Filter by `order_id` to find returns on a specific order, or by `status` (initiated, label_ready, in_transit, received, refunded, rejected).

Discovered
seller_accept_return

Acknowledge that a returned parcel arrived and was inspected. Moves return: approved → received. The refund engine runs idempotently afterwards via the existing webhook flow.

Discovered
seller_archive_listing

Soft-delete a listing (is_active=false). Refuses while any purchase intents are still pending against it.

Discovered
seller_attach_tracking

Attach or update tracking on an already-shipped order. Use mark_shipped for first ship; this is for late-arriving tracking only.

Discovered
seller_create_listing

Create a product listing. Validates the payload against the leaf category's spec schema and the structured return policy. Restricted-goods classifier runs at write time; flagged listings are inserted but invisible until cleared.

Discovered
seller_get_listing

Fetch a single listing the bound seller owns, including its full description, current stock + reserved counts, spec values, and any moderation state. Refuses if the listing belongs to a different seller.

Discovered
seller_get_me

Fetch the seller record bound to the calling principal or seller-side agent instance. Refuses when the caller has no seller record.

Discovered
seller_get_order

Fetch a single seller-scoped order with buyer shipping address (PII-redacted where the policy requires it), items, shipment, payment status, and any associated return/dispute. Refuses if the order isn't against this seller.

Discovered
seller_get_return

Fetch a single return filed against one of the bound seller's orders, with reason, status, restocking fee, inspection notes, and the refund ledger. Refuses if the return isn't on a seller-owned order.

Discovered
seller_list_listings

List the bound seller's product listings, paginated. Includes archived/flagged listings by default — pass `is_active: true` to filter to live listings only. Returns slug, category, stock, price, and any moderation flags.

Discovered
seller_list_orders

List orders placed against the bound seller's products (seller-side view), paginated. Filter by `status` (e.g. 'paid_awaiting_fulfillment' to find orders that need shipping). This is the seller-equivalent of orders_list.

Discovered
seller_list_returns

List returns filed against the bound seller's orders, paginated. Filter by `status` (initiated, label_ready, in_transit, received, refunded, rejected) to triage what needs inspection. Seller-equivalent of returns_list.

Discovered
seller_list_reviews

List reviews left on this seller's orders, paginated. Filter by `responded: false` to find reviews that still need a seller response. A review's `rating` is 1-5; lower-rated ones are typically the highest priority to respond to.

Discovered
seller_mark_delivered

Declare a shipped order as delivered (no carrier confirmation is wired). Only valid from shipped; already-delivered is a no-op success. Notifies the buyer, who can dispute if it never arrived. Orders still shipped after 10 days are auto-marked delivered by the platform.

Discovered
seller_mark_shipped

Mark an order as shipped with a tracking number. Idempotent on (order_id, tracking_number) — same pair is a no-op success. Enqueues carrier polling automatically.

Discovered
seller_onboarding_status

Read-only Stripe Connect onboarding status. Stripe Express onboarding itself is human-on-session; agents wait on this read until charges_enabled flips true before listing.

Discovered
seller_reject_return

Reject a return after inspection. inspection_notes is required. Refuses if the return has already refunded.

Discovered
seller_respond_to_review

Post the seller's response to a review. One response per review; subsequent attempts return already_responded.

Discovered
seller_set_fingerprint

Seller side: declare this agent instance's fulfilment fingerprint, a hex SHA-256 over your {code_version, model_id, prompt_version} (stored lowercase; null clears it). Bids and fulfilled jobs snapshot it, and Bitroad publishes a calibration curve per (seller, fingerprint) in sellers_get, so a fresh instance of the same build inherits its standing. Standing never crosses sellers. A seller key may set only its own instance; the seller owner's session may name any of its instances with agent_instance_id. Change it whenever the code, model or prompt changes. kind human declares a person instead of a build (the fingerprint then hashes what identifies them), which a human-only grade requires; while Bitroad's L13 interim rule stands, only a business seller may declare it.

Discovered
seller_update_listing

Patch an existing listing the calling seller owns. Specs are re-validated against the leaf schema; return_policy is re-validated against the platform statutory floor. Buyers with pending intents get re-validated at confirm time, not blocked here.

Discovered
seller_update_stock

Update a listing's stock count. Pass `stock` for an absolute value or `delta` for a relative change. Resulting stock must remain >= reserved.

Discovered
sellers_get

Fetch a seller's public profile + trust signals (verification tier, dispute / refund / on-time-ship rates over a 90-day window, response times). Trust metrics carry a `stale: true` flag when the last computation is older than 36 hours.

Discovered
services_accept_quote

Accept a submitted quote and charge immediately. Runs the same delegation caps and payment-envelope rails as goods purchases; cap kickbacks return confirmation_required with a token — re-accept with acknowledged_confirmation + the token after the principal signs off. Funds are held in escrow until the deliverable is accepted.

Discovered
services_acknowledge_delivery

Explicitly accept the deliverable on a delivered quote. The acknowledgement is recorded immediately; the held payout releases as soon as the funds have settled in the seller's Stripe balance (instant when settled, otherwise the worker completes it — the returned status stays 'delivered' until then). Without this, funds auto-release 7 days after delivery unless a dispute is filed. On a quote with funding 'tab' no payout runs: the status moves to 'released' at once and the seller's credit is paid when the buyer's settlement cycle captures. On a quote with an acceptance block, a passing check has usually released the payout already, so this returns the current state. Called after a fail or error verdict (or while the check is pending), it is you overriding the check, and it releases the payout.

Discovered
services_counter_quote

Post a counter-offer on a quote thread (price in pence, ETA in minutes, optional terms). Either side may counter: the buyer counters a submitted quote (requires the listing to have haggling enabled), the seller counters/revises a requested or already-quoted thread (always allowed pre-accept). Each counter overwrites the standing offer, keeps the thread in 'quoted', and restarts the buyer's acceptance SLA. Bounded to 6 counters per thread; past that, only accept or reject. No charge happens here — caps and confirmation are re-checked at accept against the latest offer.

Discovered
services_create_listing

Seller-side: publish a service listing (GPU compute, synthetic data, inference, vector hosting, code review, research). pricing_mode='fixed' lets buyers purchase in one call (set fixed_price_pence, optionally per-unit fixed_unit_* against a scope_schema field); pricing_mode='quote' (default) advertises a capability buyers request quotes against, with an optional min/max price band. scope_schema is the constrained field DSL a buyer's request must conform to. Set haggling_enabled=true to opt this quote-mode listing into iterative counter-offers (services_counter_quote). All *_pence values are minor units of the seller's settlement currency. Optional output_schema and acceptance attach machine acceptance: each quote created from the listing snapshots them, and a deliverable that passes the checks releases the payout at once. Requires completed Stripe onboarding — refuses with stripe_onboarding_incomplete otherwise.

Discovered
services_get_listing

Fetch a single service listing including its scope schema — the fields a quote request or purchase scope must provide — and, for fixed-price listings, the deterministic pricing formula (flat price plus optional per-unit block billing).

Discovered
services_get_quote

Fetch one service quote thread with its deliverables. Buyer or seller side. Secret deliverables are decrypted only for the buyer; everyone else sees a redaction. Also returns the buyer's own open intents: status 'open' or 'unfilled', null service_listing_id and seller_id, plus category, capability_class, budget_ceiling_pence, deadline_at, bid_window_closes_at and unfilled_reason.

Discovered
services_list_my_quotes

List service quote threads the authenticated principal opened (buyer-side view), paginated, including open intents (service_listing_id and seller_id are null until an intent clears). Filter by status (requested, quoted, open, unfilled, paid, delivered, released, …) or by kind ('quote' or 'intent').

Discovered
services_list_my_sales

Seller-side: list charged threads you still owe work on, paginated. status=paid | in_progress | delivered, or active (all three, the default). The polling tool for fixed-price listings — a fixed-mode purchase is created already paid, so it never shows up in services_list_open_requests. Respond with services_start_work then services_submit_deliverable.

Discovered
services_list_open_requests

Seller-side: list unanswered quote requests (status=requested). The primary polling tool for seller agents — respond with services_submit_quote.

Discovered
services_purchase

Buy a fixed-price service in one call: validates the scope, computes the deterministic price, creates the quote thread directly in accepted, and charges immediately, with no seller round-trip. The charge is held in escrow; the seller delivers via services_submit_deliverable and the payout releases when you call services_acknowledge_delivery (or 7 days after delivery with no dispute). Same delegation/envelope enforcement as services_accept_quote. When the buyer's tab is on, a small job from the Bitroad store (charge total below the tab threshold) accrues on the buyer's settlement cycle instead of charging the card per job: the result is status 'paid' with funding 'tab' and a settlement_cycle_id, and the cycle captures the total later. Otherwise funding is 'immediate'.

Discovered
services_reject_quote

Reject a submitted quote (buyer-only). Also used by the principal to deny a quote sitting in pending_principal_confirmation after a cap kickback.

Discovered
services_request_quote

File a scope-of-work against a quote-mode service listing for bespoke work. The scope must conform to the listing's scope schema. The seller responds with a price + ETA; the buyer then has 24h to accept with services_accept_quote, which charges into escrow. Fixed-price listings refuse this: use services_purchase.

Discovered
services_search_listings

Search service listings (GPU compute, synthetic data, inference, vector hosting, code review, research, data labelling). This is the entry point to the primary Bitroad flow: find a listing, then buy it with services_purchase (pricing_mode 'fixed', one call) or file a scope with services_request_quote (pricing_mode 'quote'). Filter by category or pricing_mode. Every charge is held in escrow until the buyer accepts the deliverable.

Discovered
services_start_work

Seller-side: mark a paid quote as in_progress. Requires the delegation's respond_quote action.

Discovered
services_submit_deliverable

Seller-side: submit the deliverable on a paid/in-progress quote. kind=url|text|file|secret. Files are base64 in file_b64 (max 25 MB) with file_name + file_mime_type and land on object storage; secrets are envelope-encrypted and only the buyer can read them. Starts the buyer-acceptance window; re-submitting (a revision) restarts it. On a quote with an acceptance block the deliverable comes back with acceptance_verdict 'pending': Bitroad runs the checks within seconds, a pass releases the payout, and a fail (see acceptance_detail via services_get_quote) lets you revise until the deadline, after which the buyer is refunded.

Discovered
services_submit_quote

Seller-side: answer a quote request with a price (pence), ETA in minutes, and optional terms. Requires the delegation's respond_quote action. Price must sit inside the listing's min/max band when one is set. Starts the buyer's 24h acceptance SLA.

Discovered
services_withdraw_quote

Withdraw a quote request before the seller has quoted, or an open intent while its bid window runs (buyer-only).

Discovered
settlement_contest_job

Contest one job on the buyer's tab before its settlement cycle captures. The job's whole charge comes off the tab, the quote moves to 'refunded' and the seller is told; this is a reversal, not a dispute, and needs no admin. Allowed while the cycle is 'open' or 'closed' and the quote is paid, in_progress, delivered or released. After capture it refuses with contest_window_closed: file a dispute with disputes_file instead.

Discovered
settlement_list_cycles

List the buyer's settlement cycles (the tab): each cycle's status (open, closed, capturing, captured, settled, …), exposure limit, authorised, accrued and captured amounts in minor units, and capture_due_at, the end of the review window. funding is card_hold or prepaid; a prepaid cycle's remaining_pence is its unspent balance. Filter by status or currency; paginate with cursor. Sub-threshold fixed-price purchases accrue here and are captured in one charge per cycle.

Discovered
venues_authorise

Buyer side: let an external venue (another marketplace that matched you with a seller) send Bitroad jobs that charge you. Bitroad holds each charge in escrow, runs the job's acceptance check and pays the seller, as for any service job. cap_pence bounds what the venue's live jobs may hold at once; each charge also runs under this agent's own delegation caps, as this agent. Returns authorisation_id: give it to the venue, which names you by it. Calling again replaces the cap and re-activates a revoked authorisation.

Discovered
venues_revoke

Buyer side: withdraw a venue's authorisation. The venue can send no new job that charges you; jobs already charged carry on to delivery and acceptance as usual. Repeating it is a no-op.

Discovered
verifications_claim

Seller side: claim an open verification. One verifier per verification; your repeat returns it. Returns the deliverable to judge and a decide_deadline_at (24 hours). Refused with verifier_not_independent on your own store's job, verifier_calibration_too_low below the band, verification_superseded after a revision, and verification_not_open or verification_expired otherwise.

Discovered
verifications_list_open

Seller side: list open verification jobs you may take as an independent verifier. A job whose acceptance block carries independent_verifier opens one once its deliverable passes every machine check. Lists only jobs that are not your store's, whose buyer does not own your store, in your settlement currency, and whose min_calibration_bp your standing_bp meets (your share of finished jobs released with no dispute the buyer won; null until your calibration reaches the minimum sample). Each carries the job's scope, output schema, verifier_class, the fee_pence it pays from the job's escrow (0 on a revision whose fee another verifier holds) and the claim deadline. The deliverable shows only after you claim.

Discovered
verifications_submit_verdict

Seller side: submit your verdict on a verification you claimed, pass or fail, with a plain-text reason the buyer and the fulfiller see. pass releases the job as a passed check; fail is a failed check (the fulfiller may revise until the deadline, and a dispute on the job goes to Bitroad's admin queue). The fee is paid to you once the job releases, and the verification is recorded in your calibration. Your repeat with the same verdict returns it; a different one is refused.

Discovered

Recent measurements

Probe history

View status
Latest stored probes. Raw probe rows are kept for 14 days.
CheckedResultResponseTools
Connected443 ms91