{"productId":"fallback","name":"Fallback","description":"Pay-per-call tools that help AI agents find sources, diagnose failures, repair requests, and decide when to stop searching.","tagline":"Tiny paid recovery and decision utilities for autonomous agents.","version":"0.1.0-beta.1","transports":{"http":"active","mcp":"active","payment":"active"},"payment":{"mode":"production","x402":true,"network":"eip155:8453"},"endpoints":{"mcp":"https://fallback.factrail.online/mcp","catalog":"https://fallback.factrail.online/catalog.json","openapi":"https://fallback.factrail.online/openapi.json","serverCard":"https://fallback.factrail.online/.well-known/mcp/server-card.json","x402":"https://fallback.factrail.online/.well-known/x402.json","skill":"https://fallback.factrail.online/skill.md"},"tools":[{"id":"source_route","version":"0.1.0-beta.1","name":"source_route","description":"Find likely authoritative or machine-readable sources when you know what information you need but not where to retrieve it. Provide a goal and optional publisher domain or start URL; it returns ranked candidate routes and bounded evidence. Use it before blind searching. Do not use it when you already have the correct source or only need reasoning over supplied context.","category":"source-discovery","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"goal":{"type":"string","minLength":3,"maxLength":500},"domain":{"type":"string","maxLength":253,"format":"hostname","pattern":"^(?=.{1,253}\\.?$)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[-0-9a-zA-Z]{0,61}[0-9a-zA-Z])?)*\\.?$"},"start_url":{"type":"string","maxLength":2048},"preferred_formats":{"maxItems":7,"type":"array","items":{"type":"string","enum":["json","csv","xml","rss","api","bulk_download","html"]}},"require_official":{"default":false,"type":"boolean"},"max_candidates":{"default":5,"type":"integer","minimum":1,"maximum":10}},"required":["goal"],"additionalProperties":false},"outputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"status":{"type":"string","enum":["routes_found","no_suitable_route_found","insufficient_input"]},"routes":{"maxItems":10,"type":"array","items":{"type":"object","properties":{"url":{"type":"string","format":"uri"},"route_type":{"type":"string","enum":["official_api","openapi","bulk_download","structured_feed","dataset","developer_docs","structured_web","web"]},"format":{"type":"string"},"publisher_match":{"type":"string","enum":["exact_domain","same_site","linked_from_domain","search_discovered"]},"verification":{"type":"string","enum":["content_verified","publisher_linked","search_only"]},"machine_readable":{"type":"boolean"},"auth":{"type":"string","enum":["none_observed","appears_required","unknown"]},"score":{"type":"number","minimum":0,"maximum":1,"description":"Bounded route-ranking value combining publisher relationship, route semantics, goal relevance, format preference, and observed authentication. Not a probability or confidence estimate."},"reasons":{"maxItems":8,"type":"array","items":{"type":"string"}}},"required":["url","route_type","publisher_match","verification","machine_readable","auth","score","reasons"],"additionalProperties":false}},"checked":{"type":"object","properties":{"direct_probes":{"maxItems":16,"type":"array","items":{"type":"string"}},"pages_fetched":{"type":"integer","minimum":0,"maximum":9007199254740991},"search_queries":{"type":"integer","minimum":0,"maximum":1}},"required":["direct_probes","pages_fetched","search_queries"],"additionalProperties":false},"limitations":{"maxItems":12,"type":"array","items":{"type":"string"}}},"required":["status","routes","checked","limitations"],"additionalProperties":false},"price":{"amount":"0.02","currency":"USD","model":"pay-per-call"},"availability":"available","httpRoute":"/v1/tools/source_route","mcpName":"source_route","examples":[{"title":"Find a machine-readable route","input":{"goal":"Download the latest population dataset","domain":"statistics.example"},"expected":"routes_found or no_suitable_route_found within checked scope"}],"latencyTargetMs":12000,"x402":{"resourceType":"http","enabled":true,"discoveryExtension":"bazaar","active":true},"distribution":{"apifyActorId":"fallback/source-route","smitheryServerId":"source_route","glamaServerId":"source_route"}},{"id":"error_route","version":"0.1.0-beta.1","name":"error_route","description":"Diagnose a failed API, HTTP, MCP, or tool request and return a bounded safe next action. Use it after a request fails when the safe next step is unclear. Provide a status, response, or error text; it does not execute requests or verify undocumented fixes.","category":"recovery","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"goal":{"type":"string","minLength":1,"maxLength":500},"request":{"type":"object","properties":{"method":{"type":"string","maxLength":16},"url":{"type":"string","maxLength":2048},"headers":{"type":"object","propertyNames":{"type":"string","maxLength":128},"additionalProperties":{"type":"string","maxLength":2048}},"body":{}},"additionalProperties":false},"response":{"type":"object","properties":{"status":{"type":"integer","minimum":100,"maximum":599},"headers":{"type":"object","propertyNames":{"type":"string","maxLength":128},"additionalProperties":{"type":"string","maxLength":2048}},"body":{"type":"string","maxLength":8192}},"additionalProperties":false},"error":{"type":"string","maxLength":2048},"attempt":{"type":"integer","minimum":1,"maximum":100}},"additionalProperties":false},"outputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"classification":{"type":"string","enum":["authentication_required","authorization_denied","rate_limited","quota_exhausted","payment_required","payment_failed","schema_mismatch","invalid_input","not_found","method_not_allowed","unsupported_media_type","timeout","connection_failure","dns_failure","tls_failure","upstream_failure","service_unavailable","conflict","stale_state","malformed_response","blocked_or_challenged","unknown"]},"retry":{"type":"string","enum":["never","immediate","after_delay","after_change","after_auth","after_payment","unknown"]},"safe_to_retry":{"type":"boolean"},"next_action":{"type":"object","properties":{"type":{"type":"string","enum":["modify_request","inspect_schema","wait","authenticate","change_endpoint","reduce_rate","pay","stop_retrying","escalate","unknown"]},"instruction":{"type":"string","minLength":1,"maxLength":240},"changes":{"maxItems":4,"type":"array","items":{"type":"string","maxLength":160}}},"required":["type","instruction","changes"],"additionalProperties":false},"confidence":{"type":"number","minimum":0,"maximum":1},"evidence":{"maxItems":8,"type":"array","items":{"type":"object","properties":{"signal":{"type":"string","maxLength":40},"value":{"anyOf":[{"type":"string","maxLength":160},{"type":"number"},{"type":"boolean"}]}},"required":["signal","value"],"additionalProperties":false}},"limits":{"maxItems":6,"type":"array","items":{"type":"string","maxLength":180}},"tool_version":{"type":"string"}},"required":["classification","retry","safe_to_retry","next_action","confidence","evidence","limits","tool_version"],"additionalProperties":false},"price":{"amount":"0.002","currency":"USD","model":"pay-per-call"},"availability":"available","httpRoute":"/v1/tools/error_route","mcpName":"error_route","examples":[{"title":"Diagnose a request schema error","input":{"goal":"Retrieve a company profile","request":{"method":"POST","url":"https://api.example/company"},"response":{"status":400,"body":"current_company_domain is not a valid field"}},"expected":"schema_mismatch with inspect_schema guidance"}],"latencyTargetMs":50,"x402":{"resourceType":"http","enabled":true,"discoveryExtension":"bazaar","active":true},"distribution":{"apifyActorId":"fallback/error-route","smitheryServerId":"error_route","glamaServerId":"error_route"}},{"id":"request_repair","version":"0.1.0-beta.1","name":"request_repair","description":"Repair a failed API or HTTP request using only supplied schema and error evidence. Use after error_route identifies a request-shape or input problem. Returns the smallest justified request changes and abstains when evidence is insufficient.","category":"recovery","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"goal":{"type":"string","minLength":1,"maxLength":500},"request":{"type":"object","properties":{"method":{"type":"string","minLength":1,"maxLength":16},"url":{"type":"string","maxLength":2048},"headers":{"type":"object","propertyNames":{"type":"string","maxLength":128},"additionalProperties":{"type":"string","maxLength":4096}},"query":{"type":"object","propertyNames":{"type":"string","maxLength":128},"additionalProperties":{"$ref":"#/$defs/__schema0"}},"body":{"$ref":"#/$defs/__schema0"}},"additionalProperties":false},"response":{"type":"object","properties":{"status":{"type":"integer","minimum":100,"maximum":599},"headers":{"type":"object","propertyNames":{"type":"string","maxLength":128},"additionalProperties":{"type":"string","maxLength":4096}},"body":{"$ref":"#/$defs/__schema0"}},"additionalProperties":false},"error":{"type":"string","maxLength":4000},"error_route":{"type":"object","properties":{"classification":{"type":"string","enum":["authentication_required","authorization_denied","rate_limited","quota_exhausted","payment_required","payment_failed","schema_mismatch","invalid_input","not_found","method_not_allowed","unsupported_media_type","timeout","connection_failure","dns_failure","tls_failure","upstream_failure","service_unavailable","conflict","stale_state","malformed_response","blocked_or_challenged","unknown"]},"retry":{"type":"string","enum":["never","immediate","after_delay","after_change","after_auth","after_payment","unknown"]}},"required":["classification"],"additionalProperties":{}},"schema":{"$ref":"#/$defs/__schema0"},"constraints":{"default":{"allow_method_change":false,"allow_url_change":false},"type":"object","properties":{"allow_method_change":{"default":false,"type":"boolean"},"allow_url_change":{"default":false,"type":"boolean"}},"additionalProperties":false}},"required":["request"],"additionalProperties":false,"$defs":{"__schema0":{"anyOf":[{"type":"string","maxLength":8192},{"type":"number"},{"type":"boolean"},{"type":"null"},{"maxItems":256,"type":"array","items":{"$ref":"#/$defs/__schema0"}},{"type":"object","propertyNames":{"type":"string","maxLength":128},"additionalProperties":{"$ref":"#/$defs/__schema0"}}]}}},"outputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"status":{"type":"string","enum":["repair_available","insufficient_evidence"]},"original_request":{"type":"object","properties":{"method":{"type":"string"},"url":{"type":"string"},"headers":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}},"query":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/$defs/__schema0"}},"body":{"$ref":"#/$defs/__schema0"}},"additionalProperties":false},"repaired_request":{"type":"object","properties":{"method":{"type":"string"},"url":{"type":"string"},"headers":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}},"query":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/$defs/__schema0"}},"body":{"$ref":"#/$defs/__schema0"}},"additionalProperties":false},"changes":{"maxItems":3,"type":"array","items":{"type":"object","properties":{"path":{"type":"string","minLength":1,"maxLength":256},"operation":{"type":"string","enum":["add","remove","replace","move"]},"value":{"$ref":"#/$defs/__schema0"},"value_source":{"type":"string","enum":["caller_input","explicit_server_evidence","caller_schema","response_header"]},"reason":{"type":"string","minLength":1,"maxLength":180}},"required":["path","operation","reason"],"additionalProperties":false}},"evidence":{"maxItems":8,"type":"array","items":{"type":"object","properties":{"source":{"type":"string","enum":["caller_schema","server_error","response_header","http_semantics"]},"signal":{"type":"string","enum":["schema_rejects_field","explicit_field_replacement","required_value_available","schema_scalar_type","schema_parameter_location","supported_content_type","allow_header_single_method","explicit_field_rejection"]}},"required":["source","signal"],"additionalProperties":false}},"confidence":{"type":"number","minimum":0,"maximum":1},"safe_to_retry":{"type":"boolean"},"limits":{"maxItems":6,"type":"array","items":{"type":"string","maxLength":180}}},"required":["status","original_request","changes","evidence","confidence","safe_to_retry","limits"],"additionalProperties":false,"$defs":{"__schema0":{"anyOf":[{"type":"string","maxLength":8192},{"type":"number"},{"type":"boolean"},{"type":"null"},{"maxItems":256,"type":"array","items":{"$ref":"#/$defs/__schema0"}},{"type":"object","propertyNames":{"type":"string","maxLength":128},"additionalProperties":{"$ref":"#/$defs/__schema0"}}]}}},"price":{"amount":"0.005","currency":"USD","model":"pay-per-call"},"availability":"available","httpRoute":"/v1/tools/request_repair","mcpName":"request_repair","examples":[{"title":"Apply an explicit field rename","input":{"goal":"Retrieve a company profile","request":{"method":"POST","url":"https://api.example.com/company","headers":{"content-type":"application/json"},"body":{"company_domain":"example.com"}},"response":{"status":400,"body":"company_domain is invalid; use current_company_domains"}},"expected":"rename only the explicitly rejected field and abstain without evidence"}],"latencyTargetMs":50,"x402":{"resourceType":"http","enabled":true,"discoveryExtension":"bazaar","active":true},"distribution":{"apifyActorId":"fallback/request-repair","smitheryServerId":"request_repair","glamaServerId":"request_repair"}},{"id":"stop_search","version":"0.1.0-beta.1","name":"stop_search","description":"Decide whether another search or paid retrieval is worth the cost based on the scope already checked. Use after several search or source checks when you need to decide whether to continue or return a scoped not-found result. It does not prove universal absence and performs no searches itself.","category":"search-quality","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"goal":{"type":"string","minLength":1,"maxLength":500},"checks":{"default":[],"maxItems":40,"type":"array","items":{"type":"object","properties":{"target":{"type":"string","minLength":1,"maxLength":300},"method":{"type":"string","enum":["direct","search","documentation","api_catalog","registry","browser","other"]},"result":{"type":"string","enum":["found","not_found","inconclusive","error","blocked","contradictory"]},"authority":{"type":"string","enum":["primary","official","secondary","general","unknown"]},"coverage":{"type":"string","enum":["low","medium","high"]},"exhaustive":{"default":false,"type":"boolean"},"checked_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"}},"required":["target","method","result","authority","coverage"],"additionalProperties":false}},"remaining_routes":{"default":[],"maxItems":20,"type":"array","items":{"type":"object","properties":{"route":{"type":"string","minLength":1,"maxLength":300},"expected_value":{"anyOf":[{"type":"string","enum":["low","medium","high"]},{"type":"string","const":"unknown"}]},"estimated_cost_usd":{"type":"number","minimum":0,"maximum":10000}},"required":["route","expected_value"],"additionalProperties":false}},"search_budget":{"type":"object","properties":{"calls_used":{"type":"integer","minimum":0,"maximum":10000},"calls_remaining":{"type":"integer","minimum":0,"maximum":10000},"cost_used_usd":{"type":"number","minimum":0,"maximum":10000},"cost_remaining_usd":{"type":"number","minimum":0,"maximum":10000}},"additionalProperties":false},"risk":{"default":"medium","type":"string","enum":["low","medium","high"]}},"additionalProperties":false},"outputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"decision":{"type":"string","enum":["stop","continue","insufficient_evidence"]},"confidence":{"type":"number","minimum":0,"maximum":1},"reason_codes":{"minItems":1,"maxItems":6,"type":"array","items":{"type":"string","enum":["primary_sources_checked","exhaustive_source_checked","independent_routes_checked","routes_redundant","remaining_expected_value_low","budget_exhausted","budget_nearly_exhausted","evidence_too_shallow","high_risk_requires_more_coverage","promising_route_remaining","insufficient_independence","contradictory_results"]}},"coverage":{"type":"object","properties":{"primary":{"type":"string","enum":["low","medium","high"]},"secondary":{"type":"string","enum":["low","medium","high"]},"independent_routes":{"type":"integer","minimum":0,"maximum":40}},"required":["primary","secondary","independent_routes"],"additionalProperties":false},"next_action":{"type":"string","enum":["return_not_found_with_scope","continue_search","use_found_candidate","gather_more_evidence"]},"scope_note":{"type":"string","minLength":1,"maxLength":240},"limits":{"maxItems":4,"type":"array","items":{"type":"string","maxLength":180}}},"required":["decision","confidence","reason_codes","coverage","next_action","scope_note","limits"],"additionalProperties":false},"price":{"amount":"0.003","currency":"USD","model":"pay-per-call"},"availability":"available","httpRoute":"/v1/tools/stop_search","mcpName":"stop_search","examples":[{"title":"Assess completed primary-source checks","input":{"goal":"Find the official dataset API","risk":"low","checks":[{"target":"https://publisher.example","method":"direct","result":"not_found","authority":"primary","coverage":"high","exhaustive":true}]},"expected":"stop with a scoped not-found result because the caller reports an exhaustive primary-source check"}],"latencyTargetMs":25,"x402":{"resourceType":"http","enabled":true,"discoveryExtension":"bazaar","active":true},"distribution":{"apifyActorId":"fallback/stop-search","smitheryServerId":"stop_search","glamaServerId":"stop_search"}}]}