fabtally-com Quote API
The Quote API from fabtally-com — 1 operation(s) for quote.
The Quote API from fabtally-com — 1 operation(s) for quote.
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/fabtally-com:fabtally-com-quote-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
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: FabTally Quote API
version: 0.2.0
description: 'Pay-per-call utilities for AI agents: slicer-accurate FDM 3D-printing quotes and signed point-in-time URL attestations. Settlement via x402 (USDC on Base).'
x-guidance: 'Two paid endpoints, both x402 (USDC on Base). POST /agent/v1/quote takes a multipart body (file=STL/3MF/STEP, plus optional material and quantity) and returns print time, filament grams and a priced quote ($0.005). POST /agent/v1/attest takes JSON {url, check, needle?} and returns an ed25519-signed record of what the URL returned ($0.01). GET /agent/overview and GET /agent/v1/attest/schema are free discovery docs. Each paid call responds 402 with an x402 `accepts` challenge; pay and retry to receive the result. Bring your own pricing: POST /agent/v1/quote accepts optional material_cost_per_kg, machine_rate_per_hour, setup_fee, margin, markup_percent, minimum_price and currency — omit for hobbyist defaults, pass your own for business economics (config is free; call price unchanged). The quote echoes a `pricing_basis` object of default-vs-custom values.'
contact:
email: hello@fabtally.com
servers:
- url: https://fabtally.com
tags:
- name: Quote
paths:
/agent/v1/quote:
post:
operationId: quote
summary: Quote — slicer-accurate FDM 3D-printing quote (paid, $0.005 USDC on Base)
tags:
- Quote
description: Real FDM 3D-printing quote from a real slicer. Upload an STL/3MF/STEP and get print time, filament grams and a priced quote (material + machine time + setup, volume discounts). Runs a production slicing engine against calibrated machine profiles — not an estimate.
x-payment-info:
price:
mode: fixed
currency: USD
amount: '0.005000'
protocols:
- x402:
scheme: exact
network: eip155:8453
asset: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913'
maxAmountRequired: '5000'
payTo: '0xccB5d25C698FdfdaA7B21d54088774cF512A90e3'
resource: https://fabtally.com/agent/v1/quote
facilitator: https://facilitator.payai.network
maxTimeoutSeconds: 300
requestBody:
required: true
content:
multipart/form-data:
schema:
type: object
required:
- file
properties:
file:
type: string
format: binary
description: 3D model file to quote (STL, 3MF, OBJ, STEP). Max 64 MB.
material:
type: string
description: 'Material/profile id. One of: pla, pla-cf, petg, petg-cf, abs, abs-cf, asa, asa-cf, nylon, pc, pet, tpu. Default pla.'
quantity:
type: string
description: Number of parts, 1-10000. Volume discounts apply. Default 1.
material_cost_per_kg:
type: string
description: 'Bring your own pricing (optional): override material $/kg.'
machine_rate_per_hour:
type: string
description: 'Bring your own pricing (optional): machine rate $/hour (default 2.00).'
setup_fee:
type: string
description: 'Bring your own pricing (optional): per-job setup fee (default 1.50).'
margin:
type: string
description: 'Bring your own pricing (optional): margin fraction on cost, 0.30=30% (default 0.30).'
markup_percent:
type: string
description: 'Bring your own pricing (optional): extra % markup on top of margin.'
minimum_price:
type: string
description: 'Bring your own pricing (optional): per-job price floor (default 5.00).'
currency:
type: string
description: 'Bring your own pricing (optional): currency label echoed back (default USD).'
responses:
'200':
description: Priced quote
content:
application/json:
schema:
type: object
properties:
model:
type: string
material:
type: string
print_time_sec:
type: integer
print_time_human:
type: string
filament_g:
type: number
quote:
type: object
properties:
currency:
type: string
unit:
type: object
properties:
material_cost:
type: number
machine_cost:
type: number
setup_fee:
type: number
price:
type: number
quantity:
type: integer
quantity_discount:
type: number
total:
type: number
quoted_at:
type: string
format: date-time
example:
model: bracket.stl
material: pla
print_time_sec: 988
print_time_human: 16m28s
filament_g: 4.16
quote:
currency: USD
unit:
material_cost: 0.1
machine_cost: 0.69
setup_fee: 1.5
price: 5
quantity: 1
quantity_discount: 0
total: 5
quoted_at: '2026-07-30T16:40:00Z'
'402':
description: Payment Required