{"uid":"cap_W8NYZIIivu0_iVJk-aNp4","slug":"parquetharmonize-e7de305e","name":"ParquetHarmonize","description":"Harmonize 2 to 8 Parquet files into a compatible schema and return the harmonized Parquet payload with validation metadata.","url":"https://mainnet-c1b2ed1---parquetharmonize-v01-x402-h2k3kompva-pd.a.run.app/v1/harmonize","method":"POST","headers":{},"bodySchema":{"type":"object","properties":{"files":{"type":"array","items":{"type":"string","format":"binary"},"maxItems":8,"minItems":2,"description":"2 to 8 Parquet files. Maximum 12 MiB per file and 20 MiB total input."}}},"responseSchema":null,"example":null,"exampleRequest":null,"tags":["x402"],"displayCostAmount":"0.03","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.03/call","primary":{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.03","per":"call","confidence":"exact"},"accepted":[{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.03","per":"call","confidence":"exact"}]},"paymentMethods":[{"uid":"pm_50p_Jo9p25wZQ7VuR217d","protocol":"x402","methodType":"crypto","chain":"base","mode":"charge","costAmount":"0.03","costPer":"request","priority":0,"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","unit":"request","depositMicros":null,"planRef":null}],"brandName":null,"brandSlug":null,"brandBaseUrl":null,"brandDocsUrl":null,"whatItDoes":"Merges 2–8 Parquet files into a unified, compatible schema and returns the harmonized Parquet output along with validation metadata.","exampleAgentPrompt":"I have 3 Parquet files exported from different data sources that have slightly different schemas — can you harmonize them into a single compatible Parquet file and show me any validation issues?","exampleUseCases":[{"title":"Merging ETL pipeline outputs","prompt":"I have 4 Parquet files produced by different ETL jobs this morning — they have overlapping but slightly inconsistent column types. Harmonize them into one unified Parquet file and tell me what schema conflicts were resolved."},{"title":"Consolidating multi-team data exports","prompt":"Our analytics team and the product team both exported their data as Parquet files but used different column names and types. Merge these 2 files into a compatible schema and give me a validation report."},{"title":"Preparing data lake ingestion","prompt":"Before I load these 5 Parquet files into our data lake, I need to make sure they all share the same schema — can you harmonize them and flag any validation issues I should know about?"}],"resultDescription":"A harmonized Parquet binary payload representing all input files merged into a single compatible schema, accompanied by validation metadata describing any schema conflicts detected and how they were resolved.","failureModes":["Fewer than 2 or more than 8 files provided — returns validation error","Total input exceeds 20 MiB — returns payload too large error","A single file exceeds 12 MiB — returns per-file size limit error","Irreconcilable type conflicts (e.g. string vs nested struct on same column) — returns schema incompatibility error","Malformed or corrupted Parquet binary — returns parse error","Payment not provided or insufficient — returns 402 Payment Required"],"whenToPreferThis":"Use this endpoint when you need to programmatically merge 2–8 Parquet files that may have divergent schemas (different column names, types, or nullability) and require a single harmonized output. Prefer it over manual schema reconciliation scripts when you also need validation metadata confirming what was changed. Best suited for ETL pipelines, data lake ingestion workflows, and cross-team data consolidation tasks where schema drift is common.","instructions":null,"reviewSummary":null,"reviewSummaryHighlights":null,"reviewSummaryConcerns":null,"reviewSummaryGeneratedAt":null,"activationCount":0,"lastUsedAt":null,"lastSuccessfullyRanAt":null,"lastHealthCheckAt":"2026-09-15T18:30:22.905Z","isFirstParty":false}