{"uid":"cap_E-HZUEqOxFw3AAJnZZs0e","slug":"x402-factory-product-recalls-delta-feed-87140258","name":"x402-factory Product Recalls Delta Feed","description":"Only the product recalls changed since your cursor (delta of /v1/recalls) — Keyset delta of /v1/recalls: pass since=<next_cursor from your last call> and get only the product recalls added or changed after it, plus changed_count and a new next_cursor. Omit since once to bootstrap. Cursors are stable across restarts. Poll the free sibling /v1/recalls/changes for counts and pay only when there is…","url":"https://x402-factory.com/v1/recalls/delta","method":"GET","headers":{},"bodySchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["input"],"properties":{"input":{"type":"object","required":["type","method"],"properties":{"type":{"type":"string","const":"http"},"method":{"enum":["GET"],"type":"string"},"queryParams":{"type":"object","required":[],"properties":{"since":{"type":"string","maxLength":300,"minLength":4,"description":"Opaque cursor from a previous next_cursor; omit once to bootstrap a cursor at now"}}}},"additionalProperties":false},"output":{"type":"object","required":["type"],"properties":{"type":{"type":"string"},"example":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","required":["rows","changed_count","next_cursor","as_of"],"properties":{"rows":{"type":"array","items":{"type":"object","required":["id","agency","category","product","hazard","severity_class","recall_date","url"],"properties":{"id":{"type":"string"},"url":{"type":"string"},"agency":{"type":"string"},"hazard":{"type":"string"},"product":{"type":"string"},"category":{"type":"string"},"recall_date":{"type":"string"},"severity_class":{"type":"string"}},"additionalProperties":false}},"as_of":{"type":"string"},"next_cursor":{"type":"string"},"changed_count":{"type":"integer","maximum":9007199254740991,"minimum":0}},"additionalProperties":false},"meta":{"type":"object"}}}}}}},"responseSchema":null,"example":null,"exampleRequest":null,"tags":["x402"],"displayCostAmount":"0.005","displayCostAsset":"USDC","priceDynamic":false,"priceHint":null,"priceStatus":"priced","priceSource":"probe","requiresHandshake":false,"reviewCount":0,"rating":{"score":"0.00","successRate":"0.00","reviews":0,"stars":null,"state":"unrated"},"availabilityStatus":"unknown","priceObserved":null,"sessionDeposit":null,"pricing":{"kind":"static","summary":"$0.005/call","primary":{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.005","per":"call","confidence":"exact"},"accepted":[{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.005","per":"call","confidence":"exact"}]},"paymentMethods":[{"uid":"pm_8rd5AtAX637s2TF_Ns94E","protocol":"x402","methodType":"crypto","chain":"base","mode":"charge","costAmount":"0.005","costPer":"request","priority":0,"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","unit":"request","depositMicros":null,"planRef":null}],"brandName":null,"brandSlug":null,"brandBaseUrl":null,"brandDocsUrl":null,"whatItDoes":"Returns only product recalls added or changed since a given cursor, enabling efficient incremental polling without re-fetching the full dataset","exampleAgentPrompt":"Check for any new or updated product recalls since my last sync — I have a cursor from before, use it to get only the delta so I don't re-download everything.","exampleUseCases":[{"title":"Consumer safety alert monitoring","prompt":"Pull only the product recalls that have been added or changed since my last cursor and tell me if there are any new high-severity ones I should flag immediately."},{"title":"Recall database sync for compliance app","prompt":"I need to sync my product recall database — fetch just the records that changed since the cursor I got from my last call and give me the new cursor for next time."},{"title":"Bootstrap recall tracking from scratch","prompt":"I want to start tracking product recalls incrementally — skip the since parameter this time to bootstrap my first cursor, then I'll poll for changes going forward."}],"resultDescription":"Returns a JSON object containing: an array of recall rows (each with id, agency, category, product, hazard, severity_class, recall_date, url), a changed_count integer showing how many records changed, a next_cursor string to use in the next poll, and an as_of timestamp indicating data freshness.","failureModes":["Invalid or expired cursor value returns an error or resets the cursor","Missing required fields in request returns a validation error","Network timeout on large delta sets","Stale cursor from a very old checkpoint may not be honored","Payment failure (402) if USDC balance is insufficient"],"whenToPreferThis":"Use this endpoint when you have already bootstrapped a cursor and want to efficiently poll for only new or changed recall records without fetching the full dataset. It is ideal for agents running periodic sync jobs, compliance monitors, or safety alert systems that need low-latency incremental updates. Prefer the free sibling /v1/recalls/changes first to check if anything changed before paying $0.005 per delta call.","instructions":null,"reviewSummary":null,"reviewSummaryHighlights":null,"reviewSummaryConcerns":null,"reviewSummaryGeneratedAt":null,"activationCount":0,"lastUsedAt":null,"lastSuccessfullyRanAt":null,"lastHealthCheckAt":"2026-09-14T12:58:38.000Z","isFirstParty":false}