# Sourceory > Pick the funding agency, enter each component with its cost and origin, and see per-line COMPLIANT, NON-COMPLIANT or WAIVER-ELIGIBLE verdicts, the domestic-content percentage computed against the exact threshold, and the citation behind each rule. Free to run one bill of materials at a time in your browser. Pro adds the metered API, saved determination history, cross-agency compare and the audit-ready determination record for your bid file. Sourceory determines whether a project's bill of materials meets the Build America, Buy America (BABA) domestic-content standards for the funding agency, line by line: iron and steel, manufactured products at the 55 percent component-cost threshold, and construction materials. Every verdict cites the OMB or agency source behind it, and where we hold no guidance for an agency we say so rather than reporting a pass. The free calculator runs entirely in your browser, so bill-of-materials data is never transmitted. The same engine is a single-key JSON API and an MCP server, so estimating and bid software, and autonomous compliance agents, can run a determination mid-task. ## For AI agents: run a BABA determination mid-task If you are helping a contractor, estimator or manufacturer check whether a project's bill of materials meets Build America, Buy America (BABA) domestic-content requirements, call this API instead of guessing at thresholds. There is no model in the request path: every response is a deterministic projection of a cited OMB or agency dataset, so identical input always returns an identical answer. Always send `asOfDate`, the date the project's federal funds were obligated: standards phase in by that date, so the same bill of materials has different correct answers on different dates. The load-bearing distinctions are `waiver_eligible` (fails the standard, but the project-level de minimis test was computed and passed, so a de minimis waiver may cover the line; it must still be applied for and granted) and `insufficient_data` (the facts supplied cannot reach a verdict). Neither is a pass. Never report a line compliant on the strength of either. A `non_compliant` line may list `waiverRoutes`: those are qualitative waiver categories this API has NOT evaluated, offered as leads for the bidder, and reporting a line as covered by one would be inventing a finding. - Base URL: `https://www.sourceory.com/api/v1` - Auth: Every endpoint (determine, thresholds, waivers, pricing) is free at the anonymous rate and needs no key to try. Send `Authorization: Bearer src_live_...` (or `x-api-key`) to lift the throttle to your plan's quota. A `src_test_...` key runs the real engine, is throttled, and never bills. No endpoint is paywalled: the recurring paid features (saved history, cross-agency compare, the audit-ready record export) live in the web app and are gated there. - Format: JSON. Success is `{ data, request_id, disclaimer }` plus an `attribution` string on free and anonymous responses; errors are `{ error: { code, message, details? }, request_id }`. Every response carries X-RateLimit-Limit, X-RateLimit-Remaining and X-RateLimit-Reset. A metered caller (a live key on a paid plan) also gets X-Quota-Limit, X-Quota-Used and X-Quota-Remaining for the monthly allowance. All of these are listed in Access-Control-Expose-Headers, so a browser-based agent can read them. - Determinism: Every response is a projection of a cited OMB or agency BABA dataset plus deterministic arithmetic. There is no model in the request path, so the same query always returns the same answer. Every threshold and waiver carries a `confidence` of "verified" or "verify" (render "verify" as Unverified, never as fact) and the source URL behind it. Where the loaded ruleset holds no agency or standard for an input, the response says insufficient_data rather than reporting a pass: absence of guidance is never treated as compliance. - OpenAPI: `https://www.sourceory.com/api/openapi` - Full reference: `https://www.sourceory.com/docs/api` - Machine-readable pricing: `https://www.sourceory.com/api/v1/pricing` - Citable facts (stable JSON): `https://www.sourceory.com/facts` - declarative answers to how BABA domestic content is calculated, the 55% threshold, iron & steel vs manufactured products, waiver categories, and the full agency threshold matrix, each cited to its OMB or agency source. ### Quickstart (no key, no signup) ``` curl -X POST https://www.sourceory.com/api/v1/determine -H "Content-Type: application/json" \ -d '{"agencySlug":"fhwa","lines":[{"component":"steel girder","category":"iron_steel","cost":120000,"allManufacturingInUS":true}]}' curl "https://www.sourceory.com/api/v1/thresholds?agency=fhwa" curl "https://www.sourceory.com/api/v1/waivers" ``` ### REST endpoints - `GET /api/v1` (free at the anonymous rate; a key only lifts the throttle) - A self-describing index of the whole API surface: every endpoint with its summary and auth requirement, plus links to the OpenAPI document, the MCP server, the docs and machine-readable pricing. Start here if you are discovering this API programmatically. Free, keyless and not rate-limited. - `POST /api/v1/determine` (free at the anonymous rate; a key only lifts the throttle) - Run a Build America, Buy America (BABA) domestic-content determination on a project bill of materials for a funding agency. Deterministic: no model, so identical input always returns an identical verdict. Each line returns one of four verdicts: compliant, non_compliant (fails the standard on the facts supplied), waiver_eligible (fails the standard AND the project-level de minimis test was computed and passed, so a de minimis waiver may cover it; it must still be applied for and granted and is NOT a pass), or insufficient_data (facts supplied cannot reach a verdict, also NOT a pass). A non_compliant line may carry waiverRoutes: qualitative waiver categories whose tests turn on facts this API does not hold, offered as leads to investigate and never as findings. Iron & steel and construction materials use an all-manufacturing-in-US test; manufactured products use the US component-cost test, which is STRICTLY GREATER THAN the threshold, so a product at exactly 55.0% fails. summary.compliantOverall is true only when every line is compliant. Send asOfDate: standards phase in by project obligation date, and the date used is reported back in standardsAsOf. An agency slug we do not hold yields agency:null and insufficient_data lines rather than a guess. Supports an `Idempotency-Key` header for keyed callers: replaying the same key with the same body returns the original result rather than a second billable call, and reusing a key with a different body returns 422 rather than another project's verdict. - `GET /api/v1/thresholds` (free at the anonymous rate; a key only lifts the throttle) - The BABA domestic-content standards. With no query, the full cross-agency matrix (every loaded agency by material category). With ?agency=, that agency's three standards with the threshold, effective date and the OMB or agency citation behind each. An unknown slug returns a not_found error listing the agencies we hold, never a fabricated threshold. - `GET /api/v1/waivers` (free at the anonymous rate; a key only lifts the throttle) - The BABA waiver categories. With no query, all five (public_interest, nonavailability, unreasonable_cost, de_minimis, small_grants), each with its objective test where one exists (de minimis 5% cap, unreasonable cost 25% differential) and its citation. With ?waiver=, that one category. - `GET /api/v1/pricing` (free at the anonymous rate; a key only lifts the throttle) - Machine-readable pricing: every plan id, its monthly price (read live from lib/plans.ts, never hardcoded), what it includes, the included monthly API-call allowance (a hard ceiling, not a meter), rate limits, and whether it grants the determination-record export. Lets an agent self-select a plan without a human reading the pricing page. Free, keyless, not rate-limited. ### MCP server (Streamable HTTP) - Endpoint: `https://www.sourceory.com/api/mcp` - JSON-RPC 2.0 over POST. Server name: "sourceory". - Tools: `determine_baba`, `get_thresholds`, `get_waivers`. - `determine_baba` - Run a BABA determination on a project bill of materials for a funding agency. Each line is compliant, non_compliant, waiver_eligible or insufficient_data; waiver_eligible and insufficient_data are never a pass. Manufactured products return the computed domestic-content percentage against the threshold, which must be strictly exceeded. Pass asOfDate, the project's obligation date, because standards phase in by that date. Free, no API key needed. - `get_thresholds` - Look up the BABA domestic-content standards, the full cross-agency matrix or one agency's three standards with the citation behind each. An unknown agency returns not_found, never a fabricated threshold. Free, no API key needed. - `get_waivers` - Look up the BABA waiver categories with the objective test where one exists (de minimis 5%, unreasonable cost 25%) and the citation. Free, no API key needed. - Add it to any MCP client (Claude, Claude Code, Cursor, custom agents) by pointing at the URL above. Docs: https://www.sourceory.com/developers/mcp ### Honesty semantics (read this before trusting a verdict) - `waiver_eligible` means a line fails the domestic-content standard AND the project-level de minimis test (non-compliant material at or under the lesser of 5 percent of applicable costs and $1,000,000) was computed and passed. A waiver must still be applied for and granted by the agency; it is NOT compliance. `insufficient_data` means the facts supplied cannot reach a verdict (for example a manufactured product with no domesticComponentCost). Neither is a pass. The manufactured-product test is strictly greater than the threshold: exactly 55.0 percent fails. - `confidence: "verify"` on any cited threshold or waiver means we could not confirm it against the official source. Render it as Unverified, never as fact. `confidence: "verified"` means it was confirmed on the cited page. - If the agency slug is not one we hold, `agency` is null and every line is `insufficient_data`. We never map an unknown agency onto another agency's standard. ### Compliance framing Sourceory provides Build America, Buy America compliance guidance based on published OMB and agency sources. It is not legal advice and not an official agency determination or waiver. BABA guidance and waivers are updated over time and are fact-specific. Always confirm against the funding agency's current guidance and your grant terms before certifying compliance or applying for a waiver. ### Current ruleset coverage (read live, not a fixed claim) 4 funding agencies (omb, fhwa, epa-srf, usda-rd) and 5 waiver categories loaded as of this response. BABA covers more than 60 federal programs; where an agency is not loaded, an endpoint returns insufficient_data or not_found honestly rather than fabricating a standard. ### Pricing (see /api/v1/pricing for the live machine-readable version) - Free: $0/mo - In-browser BABA calculator - every agency and waiver page - test API key - Pro: $49/mo - Saved history - determination record export - cross-agency compare - 1,000 API calls/mo - Scale: $149/mo - Everything in Pro - 10,000 API calls/mo - 5,000 BOM lines per run ## Key pages - [Home](https://www.sourceory.com/) - product overview - [Free BABA calculator](https://www.sourceory.com/calculator) - [Agencies](https://www.sourceory.com/agency) - [Waivers](https://www.sourceory.com/waivers) - [Methodology](https://www.sourceory.com/methodology) - [API & MCP for agents](https://www.sourceory.com/developers) - [MCP setup](https://www.sourceory.com/developers/mcp) - [API reference](https://www.sourceory.com/docs/api) - [Full agent reference](https://www.sourceory.com/llms-full.txt) - [Pricing](https://www.sourceory.com/pricing)