io.aeroz/aeroz

Aeroz

Prove a physical item is genuine (NFC chip); read its EU Digital Product Passport, recalls, custody.

Endpointhttps://api.aeroz.io/mcp (streamable-http)
Registry version0.2.0
Now43 tools · grade F (3) · pin ts_e21beac5c940c36a700a0f6c758e03bf · protocol 2025-06-18
First / last listed2026-11-08 01:18 UTC / 2026-11-08 01:18 UTC
Grade over time2026-11-08: F (3), 43 tools

Is this your server? Own a server? ToolFit hosted watch re-checks it every 24 h ($0.25 per 30 days) or 6 h ($0.60) and sends you an HMAC-signed webhook when its tools or grade change: POST https://api.youraitools.co/toolfit/v1/watch. To opt out, see About & opt-out.

Timeline

First listing · 2026-11-08 01:18 UTC
43 tools, grade F (3)

Tools: verify_chip check_recall dpp_readiness list_findings list_agents get_usage list_sandbox_chips onboarding_status onboarding_next_step complete_onboarding_step business_brief ask_agent agent_conversation create_shipment shipment_status list_shipments log_telemetry record_custody plan_route shipment_profiles bind_graded_item graded_item record_provenance list_graded_items my_section trace_unit find_unit chain_readiness get_passport verify_passport_credential list_connectors list_integrations test_integration list_webhook_endpoints send_webhook_test list_webhook_deliveries list_webhook_events list_products create_product import_products get_import_template_columns search where_is

Current tools (43)

verify_chipVerify a physical item by its Aeroz chip: the UID plus whatever signature the tap carried. Same answer as GET /v1/verify. Use this before trusting any claim about a physical unit — a database record proves a record exists, not that the object in front of you is the one it describes. Read `proof` and `proves`: proof "presence" means the chip answered a fresh one-time SUN challenge (picc_data + cmac
params: uid, signature, picc_data, cmac, tap_url
check_recallCheck whether a specific unit is subject to an active recall, from the register: reads only, verifies no signature and spends no chip answer. Returns known (on the register), recalled, and the recall reason, severity, date and id when one applies. recalled:null means the status is UNKNOWN (the UID is not on the register, or the register could not be read) — never report that as "not recalled". Thi
params: uid*
dpp_readinessAssess how ready a product category is for an EU Digital Product Passport, against the delegated act that applies to it. Returns the required data fields, which are present, and which are missing. For batteries (category "batteries", or "lmt" / "ev" / "industrial" / "stationary") the assessment is against the Commission's 71 numbered data points: score, missing, not-required-yet, awaiting first re
params: category*, unit_id
list_findingsList findings raised by the Aeroz compliance agents watching this organisation — recall hits, DPP data gaps, regulatory changes, dwell anomalies, and clone detections. Use this to answer "what needs my attention".
params: severity, limit
list_agentsList the Aeroz compliance agents available to this organisation and which are currently enabled. Use this to explain monitoring coverage or to find an agent worth enabling.
params: none
get_usageReturn this organisation's Aeroz verification volume and outcome breakdown over a recent period. Use for reporting on scan volume, authentication failure rates, and trend. The buckets — authentic, recalled (any tap whose answer carried a recall, verified or not), mismatched (failed static or SUN signature), not_found, unverified (no or unchecked signature, test tag, held or disabled unit) and othe
params: days
list_sandbox_chipsList the seeded sandbox chips for this organisation, with the UID and signature to pass to verify_chip, one per scenario: authentic, recalled, signature_mismatch (listed with a deliberately WRONG signature) and not_found (a UID that is not on the register). Sandbox only — use when building or testing an integration before physical chips ship.
params: none
onboarding_statusReport where this organisation stands in Aeroz onboarding: current stage, percentage complete, health, the single next action, and every open step with which side owns it. Use this to answer "what do we still need to do", "why are we not live yet", or "what is Aeroz waiting on". Steps marked side="aeroz" are Aeroz's obligation, not the customer's — say so plainly rather than presenting them as hom
params: none
onboarding_next_stepReturn only the single most important next action and how to complete it. Use when the user asks what to do next and does not want the whole checklist.
params: none
complete_onboarding_stepMark a manual onboarding step complete on behalf of this organisation. Only steps the customer owns and that Aeroz cannot verify automatically can be set this way; an automatically verified step will refuse, because a self-report that contradicts the platform data is worse than no report. Pass the step key from onboarding_status.
params: key*, note
business_briefThe full picture of this business as Aeroz holds it: declared product categories with their mandate dates and whether each date is fixed or provisional, onboarding state, open findings, and — importantly — which recall sources are NOT being monitored. Use this to orient before answering anything about the account. Never present an empty findings list as evidence of safety without also reporting co
params: none
ask_agentAsk this organisation's dedicated Aeroz agent a question in plain language and get a grounded answer. Use it for anything a human at the business would ask their account manager: "what do we still need to do", "when is our deadline", "what is Aeroz waiting on", "what is not being monitored", "how do we go live". It also looks up lots, units, holds and shipments ("where is lot X", "which units of Y
params: question*
agent_conversationThe recent conversation between this organisation and its Aeroz agent, across the dashboard, MCP and email. Use it to see what has already been asked and answered before asking again.
params: limit
create_shipmentRegister a shipment of physical items under a sensitivity profile so Aeroz can watch it in transit. Profiles: cold_chain (2–8 °C, mean kinetic temperature), frozen (≤ −15 °C), ambient_crt (15–30 °C, MKT ≤ 25), fragile (shock, tilt), high_value (light = container opened, dwell, chip-verified custody at every handoff), standard (movement only). Origin and destination need decimal-degree coordinates.
params: reference, profile, carrier, origin*, destination*, planned_depart, planned_arrive, thresholds, items
shipment_statusEverything Aeroz holds about one shipment: profile and thresholds, status, items, custody events with their chip verification, the telemetry assessment (min/max/mean temperature, mean kinetic temperature, minutes out of range, peak shock, whether an excursion is open), the ranked routes, and open findings. Use for "where is it", "is the cold chain intact", "was it ever opened". An open excursion o
params: shipment_id*
list_shipmentsList this organisation's shipments, optionally by status (planned | in_transit | delivered | exception | cancelled).
params: status, limit
log_telemetryRecord sensor readings for a shipment — position, temperature, humidity, shock, tilt, light, battery — up to 500 per call. Aeroz judges the whole recent stream against the lane's thresholds immediately and returns the assessment and any findings raised. A shipment in `planned` moves to `in_transit` on its first reading. Readings from a logger read out at the dock are accepted after `delivered` if
params: shipment_id*, readings*
record_custodyRecord a custody event on a shipment: pickup, checkpoint, handoff, delivered, exception or note. Pass the chip `uid` (and `signature`) read at the handoff and Aeroz verifies it on the spot, turning a signature on a form into proof of presence. On a high_value lane a handoff without a verified chip raises a finding, and so does a chip that is not among the shipment's items (even an authentic one: `
params: shipment_id*, kind*, actor, uid, signature, lat, lng, location, note, occurred_at
plan_routeCompute and rank routes for a shipment at a departure time, scored for its sensitivity profile: traffic-aware duration and delay, ambient heat or cold along the way against the lane's ceiling, and rain, snow or gusts. Lower score is better and only comparable within one computation. The best route is marked chosen. The response says plainly when routing or weather data was unavailable and the rank
params: shipment_id*, depart_at
shipment_profilesThe sensitivity profiles Aeroz can judge a shipment against and the exact thresholds each applies, plus whether traffic and weather providers are configured for this deployment.
params: none
bind_graded_itemBind an Aeroz chip to a graded collectible slab (PSA, CGC, SGC, BGS, TAG). The chip UID, grader, cert number, grade and card identity are signed together, so the chip vouches for exactly this label: a label moved to another holder, or a cert reprinted on a copy, shows as "binding broken" on a buyer's tap. For PSA, the cert is cross-checked against PSA's own record when PSA_API_TOKEN is configured;
params: uid*, grader*, cert_number*, grade*, title*, category, year, set_name, card_number, subject, variety, front_image_url, back_image_url, public, sealed_at, sealed_by
graded_itemA graded item as Aeroz holds it: grader, cert, grade, identity, whether the grader's own record matched, how many times it has been verified by tap, and its full provenance chain (sealed, sold, consigned, vaulted, shipped, verified…). Use for "is this slab the one that was sealed", "where has it been", "has anyone tried to pass off a copy". Report what this proves AND what it does not.
params: item_id*
record_provenanceAppend an event to a graded item's chain: sold, consigned, vaulted, withdrawn, shipped, received, flagged, retired, note. Events are append-only and, when public, appear on the buyer's tap page. `flagged` marks the item and needs a `note` saying why. `retired` ends the binding (the slab was re-holdered or destroyed) and needs a `note` saying why: the chip stops vouching for any label and the grade
params: item_id*, kind*, actor, location, note, occurred_at, public
list_graded_itemsList this organisation's chip-bound graded items, optionally by status (sealed | active | flagged | retired).
params: status, limit
my_sectionReturn everything the Aeroz agent has built for this organisation: the regulatory calendar with only ADOPTED dates, the passport scaffold per product showing exactly which fields are missing, the identifier audit, the GS1 route, monitoring coverage, integration readiness, and the pre-filled audit scope. Each block carries a confidence — `computed` is derived from this account's own data and needs
params: block
trace_unitThe whole history of one serialized unit: every custody hop from commissioning to dispensing, whether the append-only log has been tampered with, and what each regulation makes of it. Use this to answer "where has this been", "who handled it", "is its record trustworthy" and "does this unit pass DSCSA / the EU passport rules". Every failing check cites the clause it enforces — quote the clause, no
params: unit_id*, pack
find_unitResolve anything a scanner or a person can produce — a chip UID, a GS1 Digital Link URI, or a GTIN plus serial — to a unit, and return its history and verdicts. This is the tool for "what is this thing in front of me". An identifier that resolves to nothing is NOT the same as one that fails verification: the first means we have never seen it, the second means we have and it did not check out. Repo
params: uid, upi, gtin, serial
chain_readinessSweep this organisation's units and report which regulatory checks are failing across the portfolio, how many units each affects, and examples to open. This is the tool for "which of my units have a broken custody chain", "what is failing right now", "what will not pass on 18 February" and "how are we doing overall". Counts are exact for the units swept; the response says when it hit its cap rathe
params: pack, status, limit
get_passportRead the PUBLIC view of a published Digital Product Passport hosted by Aeroz, by its GS1 Digital Link (e.g. https://id.aeroz.io/01/09506000134352/21/ABC123) or its passport id (dpp_...). Returns the signed passport fields everyone may see, the version and its date, recall status and the item's links. Fields restricted to repairers, recyclers or authorities are listed as withheld, never shown. This
params: digital_link, dpp_id, version, date
verify_passport_credentialCheck a passport credential (a vc+jwt issued by Aeroz) against Aeroz's published signing keys. Returns valid:true with the issuer, product id, passportVersion and validFrom when the signature checks out and the credential is an Aeroz Digital Product Passport, or valid:false with the reason (including "revoked by the issuer" and "not an Aeroz passport credential"). A valid result means Aeroz issued
params: jwt*
list_connectorsThe systems Aeroz can connect to (WMS, ERP, commerce, EPCIS). Each has a tier and `tier_means` in words: `live` moves data today, `credentials` only checks your sign-in, `bridge` needs an on-site agent, `guided` means an Aeroz engineer finishes the hookup. Do not describe a guided connector as automatic.
params: none
list_integrationsThis company's connected systems, each with its `status` and `status_means`. Only `connected` is proven; `unverified` means stored but not yet proven, which is not the same as working.
params: none
test_integrationTest one connected system now and return the real result, including the remote server's own error text. Changes its status to what the test proved. Pulls no data.
params: integration_id*
list_webhook_endpointsThis company's webhook endpoints: the address (query string hidden), the events each receives, and its health in words. Never shows a signing secret. Needs the `webhooks:read` scope.
params: none
send_webhook_testSend a signed `ping` to one webhook endpoint now and return the receiver's answer (HTTP status and body). A real request to the customer's address; it is not retried. Needs the `webhooks:write` scope.
params: endpoint_id*
list_webhook_deliveriesRecent webhook deliveries, newest first, each with every attempt and the receiver's answer. A `pending` delivery has a `next_attempt_at`: it is being retried, not lost. Needs the `webhooks:read` scope.
params: endpoint_id, status, limit
list_webhook_eventsEvery event Aeroz can send to a webhook, with a description and an example payload (sample values from a fictional company, not real data), how deliveries are signed, and the retry schedule.
params: none
list_productsThis company's registered products (archived ones left out). An empty list means recall watch has nothing to match against, not that all is clear.
params: limit
create_productRegister one product, by the same rules as POST /v1/products. Recall watch needs a GTIN, NDC or UPC. Returns the passport gap for its category when there is one; that is a readiness signal, not a legal determination.
params: product_name*, brand, sku, gtin, ndc, upc, category, lot_numbers, description, dpp_fields
import_productsAdd or update many products at once, by the same rules as POST /v1/products/import: at most 5,000 rows, each row the fields of create_product. Send `dry_run: true` first: it checks every row and writes nothing. A real import writes nothing while any row has a problem. Each row comes back as create, update, unchanged or conflict.
params: rows*, dry_run
get_import_template_columnsThe columns import_products reads, in the template's order, with the template's sample rows (a fictional company's products, not real data), the row limit and the rule for matching rows to existing products.
params: none
searchSearch this company's records the way the dashboard search bar does: products (name, SKU, GTIN, NDC), lots, units (chip ID, serial), tags (UID, EPC), shipments (reference, carrier, places), holds and cases, partners (name, GLN), locations, recalls, integrations and webhooks by name, plus Aeroz help topics. Paste an identifier as-is — a GTIN, NDC, GLN, lot, chip ID, GS1 Digital Link, element string
params: q*, limit
where_isWhere a product's or a lot's units are, by last known place: sites, partners, scans and shipments in transit, each with how the place is known. Units with no recorded place are counted and listed, never placed. Give `product` (a product id), `lot`, or both.
params: product, lot, status

Entries describe changes in tool definitions. They are not statements about a server, its quality or its author. The grade measures how the tool definitions fit model providers (token cost, schema compatibility, confusable names) as scored by the ToolFit engine at the time of the listing. JSON: append .json. Opt-out: how or hello@youraitools.co.