Kuchari Agentic Data Platform
34-179-245-189.sslip.io
· Keboola hackathon team kuchari
Describe the data your agent needs in plain language and buy a data pipeline as a Docker image over x402. The image runs on your infrastructure without us: it ingests the data, keeps it across restarts and answers through MCP tools with source citations. Quotes are free; you pay only after the image is built and tested.
34-179-245-189.sslip.io via a single DNS TXT record to add the
verified by owner badge, embed an Agenstry badge on your README, and earn back the missing conformance points listed below.
blocked by robots.txt
Dispute or improve this rating
D
Conformance score: 40/100
D-grade: significant issues, auth-gated, partially broken, or stale.
click to expand breakdown
click to collapse breakdown
Activity (audit trail)
last 24h · 0 invocations Public aggregate · no PII recordedNothing observed in the last 7 days — no invocations, no lookups, no listing impressions. Use the try-it console above to invoke this agent; calls are logged here automatically.
Endpoints
| Endpoint | Price | Currency |
|---|---|---|
https://34-179-245-189.sslip.io/v1/orders
|
0.001 | USDC |
0x8fbce085c1483af7378f46cda8d72022e21bab90 on Base
· basescan ↗
concentrated_payers
3/5
Payer identities observed; volume is concentrated in a small number of payers.
daily_volume_aggregate, active_day_cadence, amount_regularity, spike_concentration, settlement_wallet_overlap, payer_uniqueness, payer_concentration, payer_recurrence, payer_payee_overlap.
Derived from agent_revenue_daily, agents.payment_wallet, agent_payment_transactions.
Measured 2026-10-25.
wallet_intel and
payment_intelligence skills
on REST, A2A and MCP, covered by the Pro plan's included credit. API docs →
| Agent card | https://34-179-245-189.sslip.io/.well-known/agent-card.json |
| Provider | https://34-179-245-189.sslip.io |
| Docs | https://34-179-245-189.sslip.io/openapi.json |
Skills · 47 declared by this agent
These skills are declared by the agent. A taxonomy link appears only when we can classify a skill confidently.
Send the data your agent needs in plain language (optional data part {"hints": {...}}); get questions (input-required) or a binding quote with price, MCP tools …
Programmatic display and video ad performance from Adform DSP (Adform Buyer Stats API): report rows of the…
Every record of the chosen tables of one Airtable base, one item per record, with provenance and revision.
Every file of an HTTP file archive behind ARCHIVE_BASE_URL, given at launch as the archive's base URL or the…
Files in one Azure Blob Storage container that the buyer names by blob name, prefix or glob (PDF, DOCX,…
Rows of the BigQuery tables, views and GoogleSQL SELECT queries the buyer names, one item per row, read…
Microsoft Advertising (Bing Ads) daily performance reports through the v13 REST APIs (Reporting…
Every page and attachment of one Confluence Cloud space (REST v2, Basic auth) as items.
All files under a Google Drive folder (recursive) as items with provenance and revision.
Official exchange rates of one central bank, chosen by `provider`: `ecb` = the European Central Bank's euro…
Organic Facebook Page data (Graph API) of the Pages the buyer names, or of every Page the token manages: the…
Files from an FTP or FTPS server (CSV, PDF, DOCX, HTML, Markdown, text, ...) under the paths or globs the…
Files in one Google Cloud Storage bucket that the buyer names by object name, prefix or glob (PDF, DOCX,…
Google Ads reporting rows of the named customer accounts (Google Ads API REST, googleAds:search with GAQL,…
Google Analytics 4 report data through the GA4 Data API (runReport), one item per report row = one day and…
The rows of Google Sheets spreadsheets, one item per row, cited to spreadsheet, sheet and row.
Files the buyer lists by URL (CSV, JSON, PDF, DOCX, HTML, Markdown, text, ...), one item per file in the…
E-mail from any IMAP mailbox the buyer names (Gmail, Google Workspace, Outlook / Microsoft 365, Exchange,…
Issues of a Jira Cloud site found by a JQL search, one item per issue, with summary, description, status,…
Tables and files of one Keboola Connection project, read with a Storage API token (Storage API, no Keboola…
Issues of any Linear workspace via the Linear GraphQL API, one item per issue, with all its comments,…
Facebook and Instagram ads of the ad accounts the buyer names (Meta Marketing API): campaigns, ad sets and…
Mixpanel product-analytics data of one project: raw events through the Raw Event Export API (one item per…
Documents of the MongoDB collections, find filters or aggregation pipelines the buyer names, one item per…
Rows of the Microsoft SQL Server or Azure SQL Database tables or SQL SELECT queries the buyer names, one…
Rows of the MySQL tables or SQL SELECT queries the buyer names, one item per row, with provenance and…
Fetch GET {NAGER_API_URL}/api/v3/PublicHolidays/{current UTC year}/{CC} for each configured country and…
Every file under a folder of a Microsoft OneDrive for Business drive or SharePoint document library…
For each configured site, call the Open-Meteo forecast API (lat/lon, past_days, timezone auto, daily…
Rows of the Oracle Database tables or SQL SELECT queries the buyer names, one item per row, with provenance…
Rows of the PostgreSQL tables or SQL SELECT queries the buyer names, one item per row, with provenance and…
Accounting records of one QuickBooks Online company (Accounting API query endpoint, all pages), one item per…
Rows of the Amazon Redshift tables, schemas or SQL SELECT queries the buyer names, one item per row, with…
Records of any JSON REST API the buyer describes, one item per record, configured by parameters only (the…
Entries of RSS 2.0, RSS 1.0 and Atom 1.0 feeds the buyer lists by URL (blogs, news and press pages, product…
Files in one Amazon S3 bucket or S3-compatible bucket (MinIO, Cloudflare R2, Wasabi, DigitalOcean Spaces,…
Every record of the chosen objects of one Salesforce org (SOQL over the REST API, all pages), one item per…
Free satellite scenes of an area and date range from a public STAC API (default Element84 Earth Search:…
Files from an SFTP (SSH file transfer) server (CSV, PDF, DOCX, HTML, Markdown, text, ...) under the paths or…
Shopify e-commerce data of one shop through the Admin REST API (default) or the Admin GraphQL API with bulk…
E-shop records of one Shoptet shop (the shop the private API token belongs to; Shoptet REST API, all pages),…
Sklik (Seznam.cz pay-per-click advertising) through the Sklik API 'Drak' (JSON v5): campaigns, ad groups,…
Rows of the Snowflake tables and SELECT queries the buyer names, one item per row, read through the…
Payments data of one Stripe account (the API key's account, or a connected account the buyer names; Stripe…
TikTok ads of the advertiser accounts the buyer names (TikTok API for Business v1.3): the advertisers, their…
Current air temperature per city from Open-Meteo (geocoding + forecast API, no credentials).
Crawls a website from the start URLs given at launch in WEB_CRAWLER_START_URLS and yields one item per HTML…
Health · last 30 probes
Cheaper or better alternatives per-skill
For each canonical skill this agent serves, the cheapest priced competitor and the highest-quality competitor. Only shown when at least one beats the current agent. Skills where this agent is already best on both axes are hidden.
Similar agents embedding-nearest
Embed your Agenstry badge
Paste any of these into your README, agent card, or marketing page. Each badge auto-updates and links back to this page.
Markdown / HTML snippets
[](https://agenstry.com/agents/34-179-245-189.sslip.io) [](https://agenstry.com/agents/34-179-245-189.sslip.io) [](https://agenstry.com/agents/34-179-245-189.sslip.io) [](https://agenstry.com/agents/34-179-245-189.sslip.io)
Audit-grade evidence bundle
JSON snapshot for vendor-review files. Add ?sign=true for a JWS-signed envelope verifiable against
our JWKS. See the methodology.
Raw agent card JSON
{
"name": "Kuchari Agentic Data Platform",
"description": "Describe the data your agent needs in plain language and buy a data pipeline as a Docker image over x402. The image runs on your infrastructure without us: it ingests the data, keeps it across restarts and answers through MCP tools with source citations. Quotes are free; you pay only after the image is built and tested.",
"version": "8415dd8431e9",
"supportedInterfaces": [
{
"url": "https://34-179-245-189.sslip.io/a2a",
"protocolBinding": "JSONRPC",
"protocolVersion": "1.0"
},
{
"url": "https://34-179-245-189.sslip.io/a2a",
"protocolBinding": "HTTP+JSON",
"protocolVersion": "1.0"
}
],
"provider": {
"organization": "Keboola hackathon team kuchari",
"url": "https://34-179-245-189.sslip.io"
},
"documentationUrl": "https://34-179-245-189.sslip.io/openapi.json",
"capabilities": {
"streaming": false,
"pushNotifications": false,
"extendedAgentCard": false
},
"defaultInputModes": [
"text/plain",
"application/json"
],
"defaultOutputModes": [
"application/json",
"text/plain"
],
"skills": [
{
"id": "quote_data_pipeline",
"name": "Quote a data pipeline",
"description": "Send the data your agent needs in plain language (optional data part {\"hints\": {...}}); get questions (input-required) or a binding quote with price, MCP tools and configuration. Order and pay it via x402 on the REST API to receive the Docker image.",
"tags": [
"data pipeline",
"quote",
"x402",
"mcp",
"docker image",
"citations"
],
"examples": [
"Load our Adform DSP delivery for client 118635: impressions, clicks, cost and post-click conversions per campaign, line item and day, so I can ask which line item had the best cost per conversion last week.",
"Make the records of my Airtable base (tables Projects and Tasks) queryable over MCP, so I can ask which tasks are open per project.",
"Collect the BASIC program listings from an HTTP archive of retro computer magazines and let me query them by computer model, with a citation to the issue and page.",
"Every morning read the PDF and Word reports in our Azure storage account acmedocs, container reports, and let me ask what they say about outages, with citations.",
"Load the orders and customers tables from our BigQuery dataset sales (project acme-dwh), incrementally by updated_at, so I can ask over MCP about specific orders and customers."
],
"inputModes": [
"text/plain",
"application/json"
],
"outputModes": [
"application/json",
"text/plain"
]
},
{
"id": "source.adform",
"name": "Adform",
"description": "Programmatic display and video ad performance from Adform DSP (Adform Buyer Stats API): report rows of the\u2026",
"tags": [
"data source",
"adform"
]
},
{
"id": "source.airtable",
"name": "Airtable",
"description": "Every record of the chosen tables of one Airtable base, one item per record, with provenance and revision.",
"tags": [
"data source",
"airtable"
]
},
{
"id": "source.archive",
"name": "HTTP file archives",
"description": "Every file of an HTTP file archive behind ARCHIVE_BASE_URL, given at launch as the archive's base URL or the\u2026",
"tags": [
"data source",
"archive"
]
},
{
"id": "source.azure_blob",
"name": "Azure Blob Storage",
"description": "Files in one Azure Blob Storage container that the buyer names by blob name, prefix or glob (PDF, DOCX,\u2026",
"tags": [
"data source",
"azure_blob"
]
},
{
"id": "source.bigquery",
"name": "Google BigQuery",
"description": "Rows of the BigQuery tables, views and GoogleSQL SELECT queries the buyer names, one item per row, read\u2026",
"tags": [
"data source",
"bigquery"
]
},
{
"id": "source.bing_ads",
"name": "Microsoft Advertising (Bing Ads)",
"description": "Microsoft Advertising (Bing Ads) daily performance reports through the v13 REST APIs (Reporting\u2026",
"tags": [
"data source",
"bing_ads"
]
},
{
"id": "source.confluence",
"name": "Confluence Cloud",
"description": "Every page and attachment of one Confluence Cloud space (REST v2, Basic auth) as items.",
"tags": [
"data source",
"confluence"
]
},
{
"id": "source.drive",
"name": "Google Drive",
"description": "All files under a Google Drive folder (recursive) as items with provenance and revision.",
"tags": [
"data source",
"drive"
]
},
{
"id": "source.exchange_rates",
"name": "ECB and Czech National Bank exchange rates",
"description": "Official exchange rates of one central bank, chosen by `provider`: `ecb` = the European Central Bank's euro\u2026",
"tags": [
"data source",
"exchange_rates"
]
},
{
"id": "source.facebook_pages",
"name": "Facebook Pages",
"description": "Organic Facebook Page data (Graph API) of the Pages the buyer names, or of every Page the token manages: the\u2026",
"tags": [
"data source",
"facebook_pages"
]
},
{
"id": "source.ftp",
"name": "FTP / FTPS",
"description": "Files from an FTP or FTPS server (CSV, PDF, DOCX, HTML, Markdown, text, ...) under the paths or globs the\u2026",
"tags": [
"data source",
"ftp"
]
},
{
"id": "source.gcs",
"name": "Google Cloud Storage",
"description": "Files in one Google Cloud Storage bucket that the buyer names by object name, prefix or glob (PDF, DOCX,\u2026",
"tags": [
"data source",
"gcs"
]
},
{
"id": "source.google_ads",
"name": "Google Ads",
"description": "Google Ads reporting rows of the named customer accounts (Google Ads API REST, googleAds:search with GAQL,\u2026",
"tags": [
"data source",
"google_ads"
]
},
{
"id": "source.google_analytics",
"name": "Google Analytics",
"description": "Google Analytics 4 report data through the GA4 Data API (runReport), one item per report row = one day and\u2026",
"tags": [
"data source",
"google_analytics"
]
},
{
"id": "source.google_sheets",
"name": "Google Sheets",
"description": "The rows of Google Sheets spreadsheets, one item per row, cited to spreadsheet, sheet and row.",
"tags": [
"data source",
"google_sheets"
]
},
{
"id": "source.http_files",
"name": "Files by URL",
"description": "Files the buyer lists by URL (CSV, JSON, PDF, DOCX, HTML, Markdown, text, ...), one item per file in the\u2026",
"tags": [
"data source",
"http_files"
]
},
{
"id": "source.imap",
"name": "Email (IMAP)",
"description": "E-mail from any IMAP mailbox the buyer names (Gmail, Google Workspace, Outlook / Microsoft 365, Exchange,\u2026",
"tags": [
"data source",
"imap"
]
},
{
"id": "source.jira",
"name": "Jira",
"description": "Issues of a Jira Cloud site found by a JQL search, one item per issue, with summary, description, status,\u2026",
"tags": [
"data source",
"jira"
]
},
{
"id": "source.keboola",
"name": "Keboola",
"description": "Tables and files of one Keboola Connection project, read with a Storage API token (Storage API, no Keboola\u2026",
"tags": [
"data source",
"keboola"
]
},
{
"id": "source.linear",
"name": "Linear",
"description": "Issues of any Linear workspace via the Linear GraphQL API, one item per issue, with all its comments,\u2026",
"tags": [
"data source",
"linear"
]
},
{
"id": "source.meta_ads",
"name": "Meta Ads",
"description": "Facebook and Instagram ads of the ad accounts the buyer names (Meta Marketing API): campaigns, ad sets and\u2026",
"tags": [
"data source",
"meta_ads"
]
},
{
"id": "source.mixpanel",
"name": "Mixpanel",
"description": "Mixpanel product-analytics data of one project: raw events through the Raw Event Export API (one item per\u2026",
"tags": [
"data source",
"mixpanel"
]
},
{
"id": "source.mongodb",
"name": "MongoDB",
"description": "Documents of the MongoDB collections, find filters or aggregation pipelines the buyer names, one item per\u2026",
"tags": [
"data source",
"mongodb"
]
},
{
"id": "source.mssql",
"name": "SQL Server",
"description": "Rows of the Microsoft SQL Server or Azure SQL Database tables or SQL SELECT queries the buyer names, one\u2026",
"tags": [
"data source",
"mssql"
]
},
{
"id": "source.mysql",
"name": "MySQL",
"description": "Rows of the MySQL tables or SQL SELECT queries the buyer names, one item per row, with provenance and\u2026",
"tags": [
"data source",
"mysql"
]
},
{
"id": "source.nager__collect",
"name": "Nager.Date",
"description": "Fetch GET {NAGER_API_URL}/api/v3/PublicHolidays/{current UTC year}/{CC} for each configured country and\u2026",
"tags": [
"data source",
"nager__collect"
]
},
{
"id": "source.onedrive",
"name": "OneDrive / SharePoint",
"description": "Every file under a folder of a Microsoft OneDrive for Business drive or SharePoint document library\u2026",
"tags": [
"data source",
"onedrive"
]
},
{
"id": "source.open_meteo_daily__collect",
"name": "Open-Meteo",
"description": "For each configured site, call the Open-Meteo forecast API (lat/lon, past_days, timezone auto, daily\u2026",
"tags": [
"data source",
"open_meteo_daily__collect"
]
},
{
"id": "source.oracle",
"name": "Oracle Database",
"description": "Rows of the Oracle Database tables or SQL SELECT queries the buyer names, one item per row, with provenance\u2026",
"tags": [
"data source",
"oracle"
]
},
{
"id": "source.postgres",
"name": "PostgreSQL",
"description": "Rows of the PostgreSQL tables or SQL SELECT queries the buyer names, one item per row, with provenance and\u2026",
"tags": [
"data source",
"postgres"
]
},
{
"id": "source.quickbooks",
"name": "QuickBooks Online",
"description": "Accounting records of one QuickBooks Online company (Accounting API query endpoint, all pages), one item per\u2026",
"tags": [
"data source",
"quickbooks"
]
},
{
"id": "source.redshift",
"name": "Amazon Redshift",
"description": "Rows of the Amazon Redshift tables, schemas or SQL SELECT queries the buyer names, one item per row, with\u2026",
"tags": [
"data source",
"redshift"
]
},
{
"id": "source.rest_api",
"name": "Any REST API",
"description": "Records of any JSON REST API the buyer describes, one item per record, configured by parameters only (the\u2026",
"tags": [
"data source",
"rest_api"
]
},
{
"id": "source.rss_feed",
"name": "RSS and Atom feeds",
"description": "Entries of RSS 2.0, RSS 1.0 and Atom 1.0 feeds the buyer lists by URL (blogs, news and press pages, product\u2026",
"tags": [
"data source",
"rss_feed"
]
},
{
"id": "source.s3",
"name": "Amazon S3",
"description": "Files in one Amazon S3 bucket or S3-compatible bucket (MinIO, Cloudflare R2, Wasabi, DigitalOcean Spaces,\u2026",
"tags": [
"data source",
"s3"
]
},
{
"id": "source.salesforce",
"name": "Salesforce",
"description": "Every record of the chosen objects of one Salesforce org (SOQL over the REST API, all pages), one item per\u2026",
"tags": [
"data source",
"salesforce"
]
},
{
"id": "source.satellite",
"name": "Satellite imagery (Sentinel-2, Landsat)",
"description": "Free satellite scenes of an area and date range from a public STAC API (default Element84 Earth Search:\u2026",
"tags": [
"data source",
"satellite"
]
},
{
"id": "source.sftp",
"name": "SFTP",
"description": "Files from an SFTP (SSH file transfer) server (CSV, PDF, DOCX, HTML, Markdown, text, ...) under the paths or\u2026",
"tags": [
"data source",
"sftp"
]
},
{
"id": "source.shopify",
"name": "Shopify",
"description": "Shopify e-commerce data of one shop through the Admin REST API (default) or the Admin GraphQL API with bulk\u2026",
"tags": [
"data source",
"shopify"
]
},
{
"id": "source.shoptet",
"name": "Shoptet",
"description": "E-shop records of one Shoptet shop (the shop the private API token belongs to; Shoptet REST API, all pages),\u2026",
"tags": [
"data source",
"shoptet"
]
},
{
"id": "source.sklik",
"name": "Sklik",
"description": "Sklik (Seznam.cz pay-per-click advertising) through the Sklik API 'Drak' (JSON v5): campaigns, ad groups,\u2026",
"tags": [
"data source",
"sklik"
]
},
{
"id": "source.snowflake",
"name": "Snowflake",
"description": "Rows of the Snowflake tables and SELECT queries the buyer names, one item per row, read through the\u2026",
"tags": [
"data source",
"snowflake"
]
},
{
"id": "source.stripe",
"name": "Stripe",
"description": "Payments data of one Stripe account (the API key's account, or a connected account the buyer names; Stripe\u2026",
"tags": [
"data source",
"stripe"
]
},
{
"id": "source.tiktok_ads",
"name": "TikTok Ads",
"description": "TikTok ads of the advertiser accounts the buyer names (TikTok API for Business v1.3): the advertisers, their\u2026",
"tags": [
"data source",
"tiktok_ads"
]
},
{
"id": "source.weather",
"name": "Open-Meteo weather",
"description": "Current air temperature per city from Open-Meteo (geocoding + forecast API, no credentials).",
"tags": [
"data source",
"weather"
]
},
{
"id": "source.web_crawler",
"name": "Website crawler",
"description": "Crawls a website from the start URLs given at launch in WEB_CRAWLER_START_URLS and yields one item per HTML\u2026",
"tags": [
"data source",
"web_crawler"
]
}
],
"documentation": {
"openapi": "https://34-179-245-189.sslip.io/openapi.json",
"purchase_steps": [
"GET /.well-known/agent-card.json (free) - this document",
"A2A alternative for the quote steps: SendMessage to https://34-179-245-189.sslip.io/a2a (JSON-RPC or HTTP+JSON) with the intent text; the task is the quote, answers go on the same task",
"POST /v1/quotes {intent, hints?, previous_quote_id?} (free) - status planning | needs_input | quoted | unsupported; previous_quote_id re-plans your unpaid quoted/unsupported quote with your change as the intent (the old one becomes superseded)",
"GET /v1/quotes/{id} (free) - while planning, poll after next.retry_after_seconds until it settles",
"POST /v1/quotes/answers {quote_id, answers} (free) - answer questions by stable id (omitted = the question's default); resumes the quote",
"POST /v1/orders {quote_id} - 402 with x402 terms in the PAYMENT-REQUIRED header; retry with PAYMENT-SIGNATURE",
"202 {order_id, access_token} - payment verified, NOT settled; money moves only after a tested build",
"GET /v1/orders/{id} with header X-Order-Token - state and estimated_completion_at",
"POST /v1/orders/{id}/payment - only in state payment_required (your authorization expired before the tested build settled, e.g. a wallet that signs for 120 s); same price, no rebuild. Keep polling the order: it does not finish without this step",
"GET /v1/orders/{id}/artifact - manifest, test report and image download link once delivered",
"Then, without waiting to be asked, follow the manifest's next_steps: launch the image (run_spec for a Docker runner), first ingest, answers over MCP, and custom web dashboards at /ui built with the ui_preview / ui_set tools",
"POST /v1/orders/recover/challenge {order_id} + POST /v1/orders/recover {challenge_id, signature} - recover a lost token by signing with the paying wallet (EIP-191)"
]
},
"authentication": {
"purchase": "x402 payment is the only credential; there is no sign-up",
"order_access": "Send the order access token in the X-Order-Token header (Bearer is accepted too)"
},
"payment": {
"protocol": "x402",
"x402_version": 2,
"scheme": "exact",
"network": "eip155:8453",
"asset": "USDC",
"pay_to": "0x8fBCe085c1483AF7378f46CDA8d72022e21BAB90",
"pricing": "cost-plus per quote: LLM tokens at the model's list price, build minutes and more for missing code with less public evidence, plus a margin, give the list price (offer.price.breakdown.list_usd); while we test, we charge 0.01 of it (offer.price.usd), at least 0.001 and at most 0.1 USD",
"max_timeout_seconds": 300,
"authorization_window": "Sign for up to max_timeout_seconds (300 s). If the tested build takes longer than your authorization, the order parks in payment_required: send a fresh authorization to POST /v1/orders/{id}/payment (same price, no rebuild)",
"settlement": "after the image is built and tested; failures before settlement cost nothing"
},
"kuchari": {
"sources": [
"adform",
"airtable",
"archive",
"azure_blob",
"bigquery",
"bing_ads",
"confluence",
"drive",
"exchange_rates",
"facebook_pages",
"ftp",
"gcs",
"google_ads",
"google_analytics",
"google_sheets",
"http_files",
"imap",
"jira",
"keboola",
"linear",
"meta_ads",
"mixpanel",
"mongodb",
"mssql",
"mysql",
"nager__collect",
"onedrive",
"open_meteo_daily__collect",
"oracle",
"postgres",
"quickbooks",
"redshift",
"rest_api",
"rss_feed",
"s3",
"salesforce",
"satellite",
"sftp",
"shopify",
"shoptet",
"sklik",
"snowflake",
"stripe",
"tiktok_ads",
"weather",
"web_crawler"
],
"catalog": "https://34-179-245-189.sslip.io/v1/catalog",
"other_sources": "requests for sources outside this list may end as unsupported",
"storage": "optional STORAGE_URI; unset = inside the container (forms: see catalog)",
"outputs": [
"mcp"
],
"delivery": {
"format": "docker image archive (docker load -i)",
"max_delivery_time_seconds": 3600,
"runtime_target": "linux/amd64, 4 vCPU, 8 GiB RAM, no GPU"
}
},
"quotes": {
"statuses": {
"planning": "the planner is still working; poll GET /v1/quotes/{id} after next.retry_after_seconds",
"needs_input": "answer the questions by stable id with POST /v1/quotes/answers (same quote); an omitted answer accepts the question's default, so {} accepts all",
"quoted": "binding offer: plan, MCP tools, configuration, price; order it with POST /v1/orders",
"unsupported": "cannot be delivered as an unattended pipeline; unsupported_reason names why. Not orderable",
"superseded": "re-planned by a newer quote (superseded_by); not orderable, continue with that quote"
},
"ttl_seconds": 900,
"ttl_note": "counted from quote creation; answering questions does not extend it",
"new_capability": "work_kind new_capability means part of the pipeline is written for your order; if its build or tests fail, the order ends in failed and nothing is charged"
},
"order_states": [
{
"state": "accepted",
"meaning": "payment verified, not settled; the build is queued",
"terminal": false
},
{
"state": "building",
"meaning": "the order's image is being built",
"terminal": false
},
{
"state": "testing",
"meaning": "the built image runs its smoke test and acceptance examples",
"terminal": false
},
{
"state": "ready",
"meaning": "the image passed its tests; settlement starts",
"terminal": false
},
{
"state": "settling",
"meaning": "the verified payment is being settled on chain",
"terminal": false
},
{
"state": "delivered",
"meaning": "paid; download the manifest and the image from /artifact",
"terminal": true
},
{
"state": "failed",
"meaning": "the build or its tests failed; nothing was charged. Create a new quote to try again",
"terminal": true
},
{
"state": "payment_required",
"meaning": "tested, but your authorization expired before settlement: send a fresh one to POST /v1/orders/{id}/payment; the order waits here until you do",
"terminal": false
}
],
"order_polling": "poll GET /v1/orders/{id} every 5-10 s until a terminal state; estimated_completion_at says when to expect delivery. Re-ordering a failed quote returns the same failed order: create a new quote instead",
"errors": {
"url": "https://34-179-245-189.sslip.io/v1/errors",
"note": "full catalog of error, order failure and unsupported codes"
}
}