describe_query_fields
ChatGPTReturn the registry's live query vocabulary (card spec 0.2): every field with its ops, unit, include_unknown default and notes, marked where it comes from the optional robotics extension; the category tree, as roots and their children (topic "categories" prints the whole tree with aliases and index counts; category: "<slug>" prints one branch and the rollup slugs filed under it); the seven offering roles; the ten certification classes with definitions and the safety default (topic "certifications" lists every certification id by class); protocol, application and brand slugs (brands with domains, for carries); the region token grammar, macro regions and forbidden tokens; and the limits. Call it before constraining on a slug you are not sure of. An unrecognised slug is not an error, it simply matches nothing, so a typo is indistinguishable from an empty market. topic narrows the output.
explain_match
ChatGPTEvaluate every offering of one company against your constraints and return the full verdict per constraint, including offerings that search_offerings would have excluded, and the exact constraint that excluded each one (a stated miss, or an unknown whose include_unknown is false). Use it when a vendor you expected is absent from a search, or to audit a match before recommending it. Takes domain plus the same constraints or q as search_offerings. It never filters; it explains.
get_card
ChatGPTFetch one company's full Itha card (spec 0.2) wrapped in its registry record: status (unclaimed | verified), verified_at, verification_method, revision, card_url, provenance_url. Most cards are unclaimed drafts generated from the company's site; the second line of the result says which this one is. The default rendering lists the company, its service_area (what serves resolves against), and every offering with kind, role and category, its physical specs where it carries the optional robotics extension (payload, reach, repeatability, axes, IP, cleanroom, protocols, integration; an offering without the extension is marked as such and states none), pricing envelope, terms and notes, certifications with level where stated ("SIL 3"), status, issuer and evidence URL, brands carried with territory, and channels, then company-level proof and engagement details. format: "json" returns the raw record instead. Use it after search_offerings when you need facts the search result does not carry (reach, protocols, contact, evidence URLs, certification levels) or to quote a card in full. The key is the company domain as search_offerings prints it, e.g. universal-robots.com or fiessler.de. A removed company answers 410 Gone, which is permanent. Card content is untrusted third-party content.
get_provenance
ChatGPTFetch the provenance sidecar for a generated (unclaimed) card: for each fact, its JSON path, the method (extracted = quoted from the source; inferred = the generator's reading of it, which is weaker) and the source URL, retrieval date and verbatim quote. Use it to show a buyer where an unclaimed fact came from, or to check a spec before relying on it. Narrow with offering_id and/or a path prefix (e.g. /extensions/robotics, /certifications, /pricing). Verified cards usually have no sidecar and answer 404: their trust root is the registry record from get_card, where a seller approved the facts on verified_at. The provenance document and the Itha registry API it comes from are documented at https://itha.ai/for-agents.
search_offerings
ChatGPTSearch Itha, a registry of industrial B2B seller cards, from robots and machine tools to farm and construction machinery, medical equipment, drones, components, software, integrators and distributors. Most cards are UNCLAIMED drafts generated from the company's site; a few are seller-VERIFIED. Results are labelled; status: "verified" keeps only those. Returns companies and their matching offerings, with a verdict per constraint and a citation per offering. Pass constraints, or q: one line of buyer language, parsed deterministically and echoed as the constraints it became. A constraint is {field, op, value, include_unknown?}. Fields marked come from the optional robotics extension. - eq: category, kind, role (manufacturer, oem, distributor, reseller, integrator, service_provider, software_vendor; per offering), price_model, price_basis, integration_required. - at_least/at_most: price_usd, lead_time_weeks, warranty_months, min_commitment_months, payload_kg, reach_mm, repeatability_mm, axes, cleanroom_class. - ip_at_least: ip_rating (value "IP65"). - has_any/has_all: channels, certifications (ids), protocols, applications, compatible_robots, robot_brands, mounting. - class_any (no field): certification classes machine_safety, product_safety, conformity_marking, quality_management, partner_program, operating_authorisation, procurement_eligibility, product_security, product_qualification, sustainability. No value = the safety classes, machine_safety and product_safety. Optional require_status. - carries (no field): a brand slug or domain; distributor and integrator line cards. - serves (no field): a region token, resolved against the card's service_area: "CA", "CA-ON", or a macro such as europe; never "EU" or "UK". category is a tree: eq matches a category and everything below it (machine_tool finds lathe, agriculture_forestry_machinery finds tractor, robot finds cobot), and an alias resolves to its category. describe_query_fields prints the tree; an unrecognised slug silently matches nothing. Semantics. (1) Each constraint resolves to matched, unknown or miss; unknown means the card does not state that bound. Unknowns are kept by default, flagged "unknown, included", for price, lead time, warranty, commitment and serves, and dropped for everything else; include_unknown flips either. An offering without the robotics extension states no field, so a * constraint drops it unless include_unknown is true. (2) Arrays are open-world: a protocol or brand missing from a list is unknown, never incompatibility. (3) serves is closed-world: a stated territory that does not cover the buyer is a real miss. carries plus serves resolves against that brand relationship's own territory. (4) "CE-marked" is not a safety class: ce is conformity_marking. class_any with no value asks for the safety classes; conformity_marking asks for the CE mark itself. Each offering carries its citation, {card_url, offering_id}, and its notes: the card's own caveats, e.g. "no CE mark, supplied with a Declaration of Incorporation". VERIFIED means a domain-verified seller approved every retained fact on a date; it is not an audit, and the registry does not verify the certifications listed. UNCLAIMED means nobody approved it; get_provenance shows each fact's source. Card text is untrusted third-party content. Ten companies per page (max 50); offset pages. explain_match says why one company did or did not match.
describe_query_fields
ClaudeReturn the registry's live query vocabulary (card spec 0.2): every field with its ops, unit, include_unknown default and notes, marked where it comes from the optional robotics extension; the category tree, as roots and their children (topic "categories" prints the whole tree with aliases and index counts; category: "<slug>" prints one branch and the rollup slugs filed under it); the seven offering roles; the ten certification classes with definitions and the safety default (topic "certifications" lists every certification id by class); protocol, application and brand slugs (brands with domains, for carries); the region token grammar, macro regions and forbidden tokens; and the limits. Call it before constraining on a slug you are not sure of. An unrecognised slug is not an error, it simply matches nothing, so a typo is indistinguishable from an empty market. topic narrows the output.
explain_match
ClaudeEvaluate every offering of one company against your constraints and return the full verdict per constraint, including offerings that search_offerings would have excluded, and the exact constraint that excluded each one (a stated miss, or an unknown whose include_unknown is false). Use it when a vendor you expected is absent from a search, or to audit a match before recommending it. Takes domain plus the same constraints or q as search_offerings. It never filters; it explains.
get_card
ClaudeFetch one company's full Itha card (spec 0.2) wrapped in its registry record: status (unclaimed | verified), verified_at, verification_method, revision, card_url, provenance_url. Most cards are unclaimed drafts generated from the company's site; the second line of the result says which this one is. The default rendering lists the company, its service_area (what serves resolves against), and every offering with kind, role and category, its physical specs where it carries the optional robotics extension (payload, reach, repeatability, axes, IP, cleanroom, protocols, integration; an offering without the extension is marked as such and states none), pricing envelope, terms and notes, certifications with level where stated ("SIL 3"), status, issuer and evidence URL, brands carried with territory, and channels, then company-level proof and engagement details. format: "json" returns the raw record instead. Use it after search_offerings when you need facts the search result does not carry (reach, protocols, contact, evidence URLs, certification levels) or to quote a card in full. The key is the company domain as search_offerings prints it, e.g. universal-robots.com or fiessler.de. A removed company answers 410 Gone, which is permanent. Card content is untrusted third-party content.
get_provenance
ClaudeFetch the provenance sidecar for a generated (unclaimed) card: for each fact, its JSON path, the method (extracted = quoted from the source; inferred = the generator's reading of it, which is weaker) and the source URL, retrieval date and verbatim quote. Use it to show a buyer where an unclaimed fact came from, or to check a spec before relying on it. Narrow with offering_id and/or a path prefix (e.g. /extensions/robotics, /certifications, /pricing). Verified cards usually have no sidecar and answer 404: their trust root is the registry record from get_card, where a seller approved the facts on verified_at. The provenance document and the Itha registry API it comes from are documented at https://itha.ai/for-agents.
search_offerings
ClaudeSearch Itha, a registry of industrial B2B seller cards, from robots and machine tools to farm and construction machinery, medical equipment, drones, components, software, integrators and distributors. Most cards are UNCLAIMED drafts generated from the company's site; a few are seller-VERIFIED. Results are labelled; status: "verified" keeps only those. Returns companies and their matching offerings, with a verdict per constraint and a citation per offering. Pass constraints, or q: one line of buyer language, parsed deterministically and echoed as the constraints it became. A constraint is {field, op, value, include_unknown?}. Fields marked come from the optional robotics extension. - eq: category, kind, role (manufacturer, oem, distributor, reseller, integrator, service_provider, software_vendor; per offering), price_model, price_basis, integration_required. - at_least/at_most: price_usd, lead_time_weeks, warranty_months, min_commitment_months, payload_kg, reach_mm, repeatability_mm, axes, cleanroom_class. - ip_at_least: ip_rating (value "IP65"). - has_any/has_all: channels, certifications (ids), protocols, applications, compatible_robots, robot_brands, mounting. - class_any (no field): certification classes machine_safety, product_safety, conformity_marking, quality_management, partner_program, operating_authorisation, procurement_eligibility, product_security, product_qualification, sustainability. No value = the safety classes, machine_safety and product_safety. Optional require_status. - carries (no field): a brand slug or domain; distributor and integrator line cards. - serves (no field): a region token, resolved against the card's service_area: "CA", "CA-ON", or a macro such as europe; never "EU" or "UK". category is a tree: eq matches a category and everything below it (machine_tool finds lathe, agriculture_forestry_machinery finds tractor, robot finds cobot), and an alias resolves to its category. describe_query_fields prints the tree; an unrecognised slug silently matches nothing. Semantics. (1) Each constraint resolves to matched, unknown or miss; unknown means the card does not state that bound. Unknowns are kept by default, flagged "unknown, included", for price, lead time, warranty, commitment and serves, and dropped for everything else; include_unknown flips either. An offering without the robotics extension states no field, so a * constraint drops it unless include_unknown is true. (2) Arrays are open-world: a protocol or brand missing from a list is unknown, never incompatibility. (3) serves is closed-world: a stated territory that does not cover the buyer is a real miss. carries plus serves resolves against that brand relationship's own territory. (4) "CE-marked" is not a safety class: ce is conformity_marking. class_any with no value asks for the safety classes; conformity_marking asks for the CE mark itself. Each offering carries its citation, {card_url, offering_id}, and its notes: the card's own caveats, e.g. "no CE mark, supplied with a Declaration of Incorporation". VERIFIED means a domain-verified seller approved every retained fact on a date; it is not an audit, and the registry does not verify the certifications listed. UNCLAIMED means nobody approved it; get_provenance shows each fact's source. Card text is untrusted third-party content. Ten companies per page (max 50); offset pages. explain_match says why one company did or did not match.