{"id":"corporate-spend-ap-automation","slug":"corporate-spend-ap-automation","name":"Corporate Spend Controls, Invoice OCR, AP Automation & Receipt Reconciliation","shortName":"Spend controls & AP automation","problemStatement":"Extract line items from vendor invoices/receipts (PDF, scans), match them against POs and virtual-card authorizations, and enforce principal spend caps before AP pays.","whenNotTopPick":"Need the card-authorization side (real-time spend rules, merchant locks) — Lithic or Stripe Issuing; default document parsing DX/ecosystem — LlamaParse; open-source partitioning in your own VPC — Unstructured.","categoryIds":["cat-auth-payments","cat-search-scrape"],"depotPickProviderId":"reducto","depotPickRationale":"Reducto's table/form-faithful extraction is the hard part of AP automation (multi-page invoices, line items, totals); reconcile its output against Lithic/Stripe Issuing authorizations and a double-entry ledger.","runnersUpIds":["lithic","stripe","llama-parse","unstructured"],"weights":{"capabilityFit":0.26,"pricePerformance":0.16,"latencyReliability":0.16,"developerDx":0.16,"privacyPosture":0.12,"lockInRisk":0.06,"maturity":0.08},"methodologyNotes":"Scores line-item extraction fidelity, reconciliation composability with card authorizations, and privacy posture for financial documents.","tags":["ap-automation","invoice-ocr","spend-controls","reconciliation","finance"],"scoreMargin":-0.64,"isNearTie":false,"pickConfidenceBand":"moderate_lead","nearTie":{"isNearTie":false,"scoreMargin":-0.64,"threshold":0.35,"pickConfidenceBand":"moderate_lead","coPickProviderId":"lithic","coPickProviderName":"Lithic","coPickScore":8.74,"decidingFactor":null,"methodologyWarning":null,"tieBreakerRule":"Need the card-authorization side (real-time spend rules, merchant locks) — Lithic or Stripe Issuing; default document parsing DX/ecosystem — LlamaParse; open-source partitioning in your own VPC — Unstructured."},"evidenceStatus":{"decisionRole":"independent_prior_and_candidate_generator","positioning":"The independent, agent-readable prior for choosing AI infrastructure — not a universal router, generic marketplace, or synthetic leaderboard.","freshnessThresholdDays":30,"freshness_policy":{"policy_version":"agentdepot.freshness_policy.v1","threshold_days":30},"freshness_state":"fresh","editorial_freshness_state":"stale_prior","unqualified_current_pick_allowed":true,"pick_qualification":"qualified_current_pick","promotionClass":"deterministic_source_reverified","evidenceClass":"editorial_prior","staleDowngraded":false,"effectiveConfidence":"high","confidenceHalfWidth":0.5,"pickScoreAgeDays":9,"editorialJudgmentAgeDays":44,"pricingAgeDays":9,"isPickScoreStale":false,"isPricingStale":false,"editorialJudgmentAsOf":"2026-09-14","pricingVerifiedAt":"2026-10-19","outcomeVerifiedAt":null,"effectiveVerifiedAsOf":"2026-10-19","downgradeReasons":[],"stalenessWarning":"Editorial judgment scored on 2026-09-14 (44d ago); promoted to deterministic_source_reverified on 2026-10-19 via deterministic pricing/source gate.","promotionGate":{"deterministicPricingCheck":true,"approvedScoreReaffirm":false,"pendingHumanReviewBlock":false,"zeroUnverifiedSkus":true,"costEfficiencyConsistent":true,"lockInAndReliabilityConsistent":true,"secondModelOrRuleAudit":true,"countersignReceiptIds":[],"otsAttestationHead":"b32634d5784cbfe663be0a16cce4f60a3ff1c3d4490437be00361cb4ae5d5d59","sourceCheckDate":"2026-10-27","activePricingRowsCount":2,"freeResourcesCount":0,"runnerUpPricingRowsCount":0},"claimProvenance":{"claim_id":"claim:corporate-spend-ap-automation:reducto:depot-pick","provider_id":"reducto","jtbd_id":"corporate-spend-ap-automation","primary_url":"https://reducto.ai/pricing","source_type":"primary_pricing","source_revision":"sha256:909e8b8f35711473","observed_at":"2026-10-28","checked_at":"2026-10-28","claim_support_state":"claim_specific_supported","max_allowed_evidence_class":"replicated_outcome","defect_codes":[],"sources":[{"original_url":"https://reducto.ai/pricing","final_url":"https://reducto.ai/pricing","redirected":false,"http_status":200,"reachable":true,"source_type":"primary_pricing","is_claim_specific":true,"source_revision":"sha256:909e8b8f35711473","observed_at":"2026-10-28","checked_at":"2026-10-28"},{"original_url":"https://reducto.ai","final_url":"https://reducto.ai","redirected":false,"http_status":200,"reachable":true,"source_type":"generic_homepage","is_claim_specific":false,"source_revision":"sha256:7df4d713b4bea8c4","observed_at":"2026-10-28","checked_at":"2026-10-28"}]},"verifiedOutcomeSummary":{"totalVerifiedReceipts":0,"byEvidenceTier":{"E0_ASSERTION":0,"E1_SOURCE_BOUND":0,"E2_DELIVERY":0,"E3_INDEPENDENT_OUTCOME":0,"E4_REPLICATED_OUTCOME":0},"bySubjectLayer":{"provider":0,"product":0,"model_version":0,"runtime_route":0}}},"pickScoreDetails":{"scoreRange":[7.6,8.6],"formattedScore":"8.1 ± 0.5 (7.6–8.6 · editorial_prior)","evidenceClass":"editorial_prior","promotionClass":"deterministic_source_reverified","staleDowngraded":false,"freshState":"fresh","freshness_state":"fresh","effectiveConfidence":"high","confidenceInterval":{"low":7.6,"mid":8.1,"high":8.6,"halfWidth":0.5,"confidenceLevel":0.8,"basis":"deterministic_source_reverified_interval_0.5"},"editorialJudgmentAsOf":"2026-10-28","sourceAgeDays":44,"pricingVerifiedAt":"2026-10-19","pricingAgeDays":9,"outcomeVerifiedAt":null,"effectiveVerifiedAsOf":"2026-10-19","dissentingEvidence":["Extract/Edit SKUs get expensive vs LlamaParse Fast/Cost-effective","Younger ecosystem than LlamaIndex","Studio seat cap (5) on Standard","When not to use top pick: Need the card-authorization side (real-time spend rules, merchant locks) — Lithic or Stripe Issuing; default document parsing DX/ecosystem — LlamaParse; open-source partitioning in your own VPC — Unstructured.","Runner-up Lithic (lithic) is the primary alternative when constraints disqualify Reducto."],"whatWouldChangePick":["Caller constraint matching: Need the card-authorization side (real-time spend rules, merchant locks) — Lithic or Stripe Issuing; default document parsing DX/ecosystem — LlamaParse; open-source partitioning in your own VPC — Unstructured.","Live quota or rate-limit exhaustion on reducto (pass ?exhausted=reducto or liveQuota.exhaustedProviders=[\"reducto\"] to promote lithic).","Active subscription or enterprise commit on lithic combined with low switching-cost tolerance (existingSubscriptions + switchingCost.maxMigrationEffort=\"low\").","Sourced price increase >20% on https://reducto.ai or unverified SKU drift detected by npm run check:sources."],"claimProvenance":{"claim_id":"claim:corporate-spend-ap-automation:reducto:depot-pick","provider_id":"reducto","jtbd_id":"corporate-spend-ap-automation","primary_url":"https://reducto.ai/pricing","source_type":"primary_pricing","source_revision":"sha256:909e8b8f35711473","observed_at":"2026-10-28","checked_at":"2026-10-28","claim_support_state":"claim_specific_supported","max_allowed_evidence_class":"replicated_outcome","defect_codes":[],"sources":[{"original_url":"https://reducto.ai/pricing","final_url":"https://reducto.ai/pricing","redirected":false,"http_status":200,"reachable":true,"source_type":"primary_pricing","is_claim_specific":true,"source_revision":"sha256:909e8b8f35711473","observed_at":"2026-10-28","checked_at":"2026-10-28"},{"original_url":"https://reducto.ai","final_url":"https://reducto.ai","redirected":false,"http_status":200,"reachable":true,"source_type":"generic_homepage","is_claim_specific":false,"source_revision":"sha256:7df4d713b4bea8c4","observed_at":"2026-10-28","checked_at":"2026-10-28"}]},"calibratedScore":{"point":8.1,"band":[7.6,8.6],"interval":{"lower":7.6,"upper":8.6,"half_width":0.5},"score_kind":"source_bound_prior_band","evidence_class":"source_bound","confidence":"medium","confidence_ceiling":"medium","age_days":9,"dissent":["Extract/Edit SKUs get expensive vs LlamaParse Fast/Cost-effective","Younger ecosystem than LlamaIndex","Studio seat cap (5) on Standard","When not to use top pick: Need the card-authorization side (real-time spend rules, merchant locks) — Lithic or Stripe Issuing; default document parsing DX/ecosystem — LlamaParse; open-source partitioning in your own VPC — Unstructured.","Runner-up Lithic (lithic) is the primary alternative when constraints disqualify Reducto."],"what_would_change_this":["Caller constraint matching: Need the card-authorization side (real-time spend rules, merchant locks) — Lithic or Stripe Issuing; default document parsing DX/ecosystem — LlamaParse; open-source partitioning in your own VPC — Unstructured.","Live quota or rate-limit exhaustion on reducto (pass ?exhausted=reducto or liveQuota.exhaustedProviders=[\"reducto\"] to promote lithic).","Active subscription or enterprise commit on lithic combined with low switching-cost tolerance (existingSubscriptions + switchingCost.maxMigrationEffort=\"low\").","Sourced price increase >20% on https://reducto.ai or unverified SKU drift detected by npm run check:sources."],"subject_layer":"provider"},"subject_ref":{"layer":"provider","provider_id":"reducto","product_id":"reducto-core","model_id":null,"version":null,"route_class":null,"inheritance_policy":"no_cross_layer_inheritance"}},"runtimeRoutes":[{"routeId":"corporate-spend-ap-automation:reducto:primary","roleForJob":"depot_pick","provider":{"id":"reducto","slug":"reducto","name":"Reducto","website":"https://reducto.ai","status":"active"},"model":{"representativeModelId":"r-1 Parse API","skuId":"reducto-parse-1k-pages","unit":"usd_per_1k_pages","amountUsd":10,"sourceUrl":"https://reducto.ai/pricing","asOf":"2026-10-19"},"servingRoute":{"primaryRouteType":"managed_cloud_service","endpointPattern":"https://reducto.ai (managed cloud service)","aggregatorAlternatives":[{"aggregatorId":"direct-only","name":"Reducto Direct API","routeType":"first_party","tradeoff":"Direct vendor SDK/REST contract; pair with runner-up for multi-vendor failover."}]},"accountAndQuota":{"freeTierAvailable":false,"freeTierSummary":null,"rateLimitsSummary":"See /api/limits?provider=reducto","subscriptionFirstEligible":true,"documentedPlansCount":0},"regions":{"supportedRegions":["global","us","eu"],"multiRegionFailover":true,"euResidencyAvailable":true},"toolSchemaSupport":{"strictJsonSchema":true,"parallelToolCalls":false,"mcpServerAvailable":false,"streamingSupported":true},"latencyTier":{"tier":"standard_1s_to_5s","latencyReliabilityScore":8.2,"coldStartNotes":"Standard warm pool; check provider SLA for burst concurrency"},"privacyConfig":{"privacyPostureScore":8.6,"zeroDataRetentionAvailable":true,"trainsOnApiDataByDefault":false,"hipaaEligible":true,"selfHostable":false},"availabilityStatus":{"providerStatus":"active","verifiedActiveSkus":2,"unverifiedSkus":0,"liveFailoverTargetId":"lithic"},"subject_ref":{"layer":"runtime_route","subject_id":"runtime_route:reducto:r-1 Parse API:managed_cloud_service:global","provider_id":"reducto","product_id":"reducto-core","model_id":"r-1 Parse API","version":"2026-10-19","route_class":"managed_cloud_service","region":"global","score_status":"layer_evidenced","layer_score":"unknown","inherited_from_parent_layer":false,"inheritance_policy":"no_cross_layer_inheritance"},"distinctRouteSubjects":[{"layer":"runtime_route","subject_id":"runtime_route:reducto:r-1 Parse API:direct_api:global","provider_id":"reducto","product_id":"reducto-core","model_id":"r-1 Parse API","version":"2026-10-19","route_class":"direct_api","region":"global","score_status":"layer_evidenced","layer_score":"unknown","inherited_from_parent_layer":false,"inheritance_policy":"no_cross_layer_inheritance"}]},{"routeId":"corporate-spend-ap-automation:lithic:primary","roleForJob":"runner_up","provider":{"id":"lithic","slug":"lithic","name":"Lithic","website":"https://www.lithic.com","status":"active"},"model":{"representativeModelId":"Lithic Starter Programmable Card Issuing ($0/mo base platform fee)","skuId":"lithic-starter-platform","unit":"usd_per_month","amountUsd":0,"sourceUrl":"https://www.lithic.com/pricing","asOf":"2026-10-28"},"servingRoute":{"primaryRouteType":"managed_cloud_service","endpointPattern":"https://www.lithic.com (managed cloud service)","aggregatorAlternatives":[{"aggregatorId":"direct-only","name":"Lithic Direct API","routeType":"first_party","tradeoff":"Direct vendor SDK/REST contract; pair with runner-up for multi-vendor failover."}]},"accountAndQuota":{"freeTierAvailable":false,"freeTierSummary":null,"rateLimitsSummary":"See /api/limits?provider=lithic","subscriptionFirstEligible":true,"documentedPlansCount":0},"regions":{"supportedRegions":["us"],"multiRegionFailover":false,"euResidencyAvailable":false},"toolSchemaSupport":{"strictJsonSchema":true,"parallelToolCalls":false,"mcpServerAvailable":true,"streamingSupported":true},"latencyTier":{"tier":"interactive_sub_1s","latencyReliabilityScore":9.2,"coldStartNotes":"Standard warm pool; check provider SLA for burst concurrency"},"privacyConfig":{"privacyPostureScore":8.8,"zeroDataRetentionAvailable":true,"trainsOnApiDataByDefault":false,"hipaaEligible":true,"selfHostable":false},"availabilityStatus":{"providerStatus":"active","verifiedActiveSkus":1,"unverifiedSkus":0,"liveFailoverTargetId":"reducto"},"subject_ref":{"layer":"runtime_route","subject_id":"runtime_route:lithic:Lithic Starter Programmable Card Issuing ($0/mo base platform fee):managed_cloud_service:us","provider_id":"lithic","product_id":"lithic-core","model_id":"Lithic Starter Programmable Card Issuing ($0/mo base platform fee)","version":"2026-10-28","route_class":"managed_cloud_service","region":"us","score_status":"layer_evidenced","layer_score":"unknown","inherited_from_parent_layer":false,"inheritance_policy":"no_cross_layer_inheritance"},"distinctRouteSubjects":[{"layer":"runtime_route","subject_id":"runtime_route:lithic:Lithic Starter Programmable Card Issuing ($0/mo base platform fee):direct_api:us","provider_id":"lithic","product_id":"lithic-core","model_id":"Lithic Starter Programmable Card Issuing ($0/mo base platform fee)","version":"2026-10-28","route_class":"direct_api","region":"us","score_status":"layer_evidenced","layer_score":"unknown","inherited_from_parent_layer":false,"inheritance_policy":"no_cross_layer_inheritance"}]},{"routeId":"corporate-spend-ap-automation:stripe:primary","roleForJob":"runner_up","provider":{"id":"stripe","slug":"stripe","name":"Stripe","website":"https://stripe.com","status":"active"},"model":{"representativeModelId":"Stripe Standard US Online Card Processing (2.9% + $0.30 per successful card charge)","skuId":"stripe-card-processing-base","unit":"usd_per_transaction","amountUsd":0.3,"sourceUrl":"https://stripe.com/pricing","asOf":"2026-10-28"},"servingRoute":{"primaryRouteType":"managed_cloud_service","endpointPattern":"https://stripe.com (managed cloud service)","aggregatorAlternatives":[{"aggregatorId":"direct-only","name":"Stripe Direct API","routeType":"first_party","tradeoff":"Direct vendor SDK/REST contract; pair with runner-up for multi-vendor failover."}]},"accountAndQuota":{"freeTierAvailable":false,"freeTierSummary":null,"rateLimitsSummary":"See /api/limits?provider=stripe","subscriptionFirstEligible":true,"documentedPlansCount":0},"regions":{"supportedRegions":["global"],"multiRegionFailover":true,"euResidencyAvailable":true},"toolSchemaSupport":{"strictJsonSchema":true,"parallelToolCalls":false,"mcpServerAvailable":true,"streamingSupported":true},"latencyTier":{"tier":"interactive_sub_1s","latencyReliabilityScore":9.4,"coldStartNotes":"Standard warm pool; check provider SLA for burst concurrency"},"privacyConfig":{"privacyPostureScore":8.5,"zeroDataRetentionAvailable":true,"trainsOnApiDataByDefault":false,"hipaaEligible":true,"selfHostable":false},"availabilityStatus":{"providerStatus":"active","verifiedActiveSkus":1,"unverifiedSkus":0,"liveFailoverTargetId":"reducto"},"subject_ref":{"layer":"runtime_route","subject_id":"runtime_route:stripe:Stripe Standard US Online Card Processing (2.9% + $0.30 per successful card charge):managed_cloud_service:global","provider_id":"stripe","product_id":"stripe-core","model_id":"Stripe Standard US Online Card Processing (2.9% + $0.30 per successful card charge)","version":"2026-10-28","route_class":"managed_cloud_service","region":"global","score_status":"layer_evidenced","layer_score":"unknown","inherited_from_parent_layer":false,"inheritance_policy":"no_cross_layer_inheritance"},"distinctRouteSubjects":[{"layer":"runtime_route","subject_id":"runtime_route:stripe:Stripe Standard US Online Card Processing (2.9% + $0.30 per successful card charge):direct_api:global","provider_id":"stripe","product_id":"stripe-core","model_id":"Stripe Standard US Online Card Processing (2.9% + $0.30 per successful card charge)","version":"2026-10-28","route_class":"direct_api","region":"global","score_status":"layer_evidenced","layer_score":"unknown","inherited_from_parent_layer":false,"inheritance_policy":"no_cross_layer_inheritance"}]},{"routeId":"corporate-spend-ap-automation:llama-parse:primary","roleForJob":"runner_up","provider":{"id":"llama-parse","slug":"llama-parse","name":"LlamaParse","website":"https://www.llamaindex.ai","status":"active"},"model":{"representativeModelId":"LlamaParse Primary Runtime","skuId":null,"unit":null,"amountUsd":null,"sourceUrl":"https://www.llamaindex.ai","asOf":"2026-10-28"},"servingRoute":{"primaryRouteType":"managed_cloud_service","endpointPattern":"https://www.llamaindex.ai (managed cloud service)","aggregatorAlternatives":[{"aggregatorId":"direct-only","name":"LlamaParse Direct API","routeType":"first_party","tradeoff":"Direct vendor SDK/REST contract; pair with runner-up for multi-vendor failover."}]},"accountAndQuota":{"freeTierAvailable":false,"freeTierSummary":null,"rateLimitsSummary":"Free: Free … Monthly credits 10,000 · Price $0/mo … Free plan: When credits are exhausted, API r","subscriptionFirstEligible":true,"documentedPlansCount":3},"regions":{"supportedRegions":["global","us","eu"],"multiRegionFailover":true,"euResidencyAvailable":true},"toolSchemaSupport":{"strictJsonSchema":true,"parallelToolCalls":false,"mcpServerAvailable":true,"streamingSupported":true},"latencyTier":{"tier":"standard_1s_to_5s","latencyReliabilityScore":8.4,"coldStartNotes":"Standard warm pool; check provider SLA for burst concurrency"},"privacyConfig":{"privacyPostureScore":8,"zeroDataRetentionAvailable":true,"trainsOnApiDataByDefault":false,"hipaaEligible":false,"selfHostable":false},"availabilityStatus":{"providerStatus":"active","verifiedActiveSkus":0,"unverifiedSkus":0,"liveFailoverTargetId":"reducto"},"subject_ref":{"layer":"runtime_route","subject_id":"runtime_route:llama-parse:llama-parse-primary:managed_cloud_service:global","provider_id":"llama-parse","product_id":"llama-parse-core","model_id":"llama-parse-primary","version":"2026-10-28","route_class":"managed_cloud_service","region":"global","score_status":"layer_evidenced","layer_score":"unknown","inherited_from_parent_layer":false,"inheritance_policy":"no_cross_layer_inheritance"},"distinctRouteSubjects":[{"layer":"runtime_route","subject_id":"runtime_route:llama-parse:llama-parse-primary:direct_api:global","provider_id":"llama-parse","product_id":"llama-parse-core","model_id":"llama-parse-primary","version":"2026-10-28","route_class":"direct_api","region":"global","score_status":"layer_evidenced","layer_score":"unknown","inherited_from_parent_layer":false,"inheritance_policy":"no_cross_layer_inheritance"}]}],"depth":{"whenNotToUse":{"text":"Need the card-authorization side (real-time spend rules, merchant locks) — Lithic or Stripe Issuing; default document parsing DX/ecosystem — LlamaParse; open-source partitioning in your own VPC — Unstructured.","source":"editorial `whenNotTopPick` (data/jtbds.json)"},"whenNotToUseReason":null,"runnerUp":{"providerId":"lithic","name":"Lithic","overallForJob":8.74,"pickOverallForJob":8.1,"beatsPickOn":["capabilityFit","pricePerformance","latencyReliability","developerDx","privacyPosture","maturity"],"source":"first resolvable entry of the job's editorially ranked `runnersUpIds`; scores are stored job-weighted scores"},"runnerUpReason":null,"lockIn":{"pickLockInRisk":4.5,"runnerUpLockInRisk":4.5,"scale":"0–10 stored curated estimate; higher = more lock-in (worse)","pickExitSignals":[],"runnerUpExitSignals":[],"pickNotes":[],"selfHostFallback":[],"migration":null,"migrationReason":"no_stored_migration_data","derivedFrom":"stored lockInRisk scores, provider tags (oss, self-host, openai-compat, open-models), free rows that list this job, and verbatim provider notes. No migration guide was invented."}},"freshness":{"pick":{"score":{"asOf":"2026-10-28","ageDays":1,"stale":false,"staleAfterDays":30,"reason":null},"lastReviewed":{"asOf":"2026-10-28","ageDays":1,"stale":false,"staleAfterDays":30,"reason":null},"sourceCheck":{"checkedAt":"2026-10-28","sourceUrls":2,"sourcesReachable":2,"pricingRows":2,"pricingRowsReconfirmed":1,"note":"A source re-check confirms the page is reachable and, for pricing rows, that the stored amount and SKU name appear on it. It does not re-derive or change the score.","reason":null}}},"whenNotTopPickRules":[{"ifConstraint":"escape_hatch_clause_1","recommendedProviderId":"lithic","activeModelOrSku":"lithic-starter-platform","reason":"Need the card-authorization side (real-time spend rules, merchant locks) — Lithic or Stripe Issuing"},{"ifConstraint":"escape_hatch_clause_2","recommendedProviderId":"llama-parse","activeModelOrSku":"llama-parse-default","reason":"default document parsing DX/ecosystem — LlamaParse"},{"ifConstraint":"exit:self_host_or_open_weights","recommendedProviderId":"unstructured","activeModelOrSku":"unstructured-standard","reason":"open-source partitioning in your own VPC — Unstructured."}],"bootstrap":{"sdkInstall":{"npm":"npm install reductoai","pip":"pip install reductoai"},"installCommand":"npm install reductoai","envVars":["REDUCTO_API_KEY"],"activeModelOrSku":"reducto-parse","canonicalSnippet":"import Reducto from \"reductoai\";\nconst client = new Reducto({ apiKey: process.env.REDUCTO_API_KEY });\nconst parsed = await client.parse.run({ document_url: \"https://example.com/filing.pdf\" });","docsUrl":"https://docs.reducto.ai/","authType":"api_key","signupUrl":"https://reducto.ai","apiKeyUrl":"https://reducto.ai","mcpServer":null,"cliInit":null,"verifyCommand":"test -n \"$REDUCTO_API_KEY\" && echo \"REDUCTO_API_KEY configured\""},"quickstartSpec":{"installCommand":"npm install reductoai","envVars":["REDUCTO_API_KEY"],"activeModelOrSku":"reducto-parse","canonicalSnippet":"import Reducto from \"reductoai\";\nconst client = new Reducto({ apiKey: process.env.REDUCTO_API_KEY });\nconst parsed = await client.parse.run({ document_url: \"https://example.com/filing.pdf\" });","sdkInstall":{"npm":"npm install reductoai","pip":"pip install reductoai"},"verifyCommand":"test -n \"$REDUCTO_API_KEY\" && echo \"REDUCTO_API_KEY configured\"","apiKeyUrl":"https://reducto.ai","docsUrl":"https://docs.reducto.ai/","mcpServer":null,"bootstrapReason":null},"operationalGotchas":[{"code":"hidden_spend_tier_gates","severity":"warning","summary":"Extract/Edit SKUs get expensive vs LlamaParse Fast/Cost-effective","sourceDate":"2026-10-28"},{"code":"hidden_spend_tier_gates","severity":"warning","summary":"Younger ecosystem than LlamaIndex","sourceDate":"2026-10-28"}],"relatedPacks":[]}