{"uid":"cap_tIFfhAeX4xma-vWKBkG77","slug":"migration-export-compare-21655b26","name":"Migration Export Compare","description":"Compare two supplied JSON exports using unique string key fields. Report additions, removals and changed fields, keeping missing/null/boolean/number distinct. No database access or writes; source export completeness is not established.","url":"https://gogeta2-u35175.vm.elestio.app/agents/v1/structured/migration-compare?utm_source=zero.xyz","method":"POST","headers":{},"bodySchema":{"type":"object","properties":{"after":{"type":"array","items":{"type":"object"},"maxItems":1000},"before":{"type":"array","items":{"type":"object"},"maxItems":1000},"key_fields":{"type":"array","items":{"type":"string","maxLength":256,"minLength":1},"maxItems":64,"minItems":1,"uniqueItems":true},"compare_fields":{"type":"array","items":{"type":"string","maxLength":256,"minLength":1},"maxItems":64,"minItems":1,"uniqueItems":true}}},"responseSchema":null,"example":null,"exampleRequest":null,"tags":["x402"],"displayCostAmount":"0.01","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.01/call","primary":{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.01","per":"call","confidence":"exact"},"accepted":[{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.01","per":"call","confidence":"exact"}]},"paymentMethods":[{"uid":"pm_j05xOwi0CIkoOrh1zPp3k","protocol":"x402","methodType":"crypto","chain":"base","mode":"charge","costAmount":"0.01","costPer":"request","priority":0,"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","unit":"request","depositMicros":null,"planRef":null}],"brandName":null,"brandSlug":null,"brandBaseUrl":null,"brandDocsUrl":null,"whatItDoes":"Compares two JSON export snapshots (before/after) by key fields and reports additions, removals, and field-level changes without any database access or writes.","exampleAgentPrompt":"I have two JSON exports from before and after our user migration — the 'before' array has the old records and the 'after' array has the new ones. Compare them using 'user_id' as the key field and check 'email', 'role', and 'status' for changes — tell me which users were added, removed, or had fields modified.","exampleUseCases":[{"title":"Database migration audit","prompt":"We just migrated our customer table and I have a JSON export from before and after. Using 'customer_id' as the key, compare the 'plan', 'email', and 'active' fields across both exports and tell me which customers were added, removed, or had any of those fields change."},{"title":"Config file change detection","prompt":"I exported our app config as JSON before and after a deployment. Key each record by 'service_name' and compare 'timeout', 'max_retries', and 'enabled' — highlight anything that was added, dropped, or modified between the two snapshots."},{"title":"CRM data import validation","prompt":"Before and after running our CRM import script I saved JSON dumps of the contacts table. Use 'contact_id' as the unique key and compare 'first_name', 'last_name', 'company', and 'email' fields — show me which contacts are new, which were deleted, and which had field values change."}],"resultDescription":"Returns a structured diff report listing: records present in 'after' but not 'before' (additions), records present in 'before' but not 'after' (removals), and records present in both where one or more compared fields changed (changes), with field-level before/after values. Null, boolean, and numeric types are kept distinct in comparisons.","failureModes":["Missing or empty key_fields causes inability to uniquely identify records","Duplicate key values within a single export may produce ambiguous diff results","Records exceeding 1000 items per array are rejected","key_fields or compare_fields entries exceeding 256 characters are rejected","Malformed JSON or non-object array items cause validation errors","If compare_fields is omitted, the scope of comparison may be undefined"],"whenToPreferThis":"Choose this endpoint when you need a pure, stateless diff of two JSON export arrays without touching any database. Ideal for post-migration audits, deployment change detection, and import validation where you already have before/after snapshots in hand. Prefer this over database-query-based diff tools when you want reproducible, offline comparison with no side effects and clear type-aware field diffing.","instructions":null,"reviewSummary":null,"reviewSummaryHighlights":null,"reviewSummaryConcerns":null,"reviewSummaryGeneratedAt":null,"activationCount":0,"lastUsedAt":null,"lastSuccessfullyRanAt":null,"lastHealthCheckAt":"2026-10-29T12:39:50.390Z","isFirstParty":false,"canonicalSlug":"migration-export-compare-21655b26"}