{"uid":"cap_xyXof6IwRywcfV34CKruG","slug":"rpki-validity-checker-2s-io-e885a65f","name":"RPKI Validity Checker — 2s.io","description":"RPKI Route Origin Validation for a (BGP origin AS, prefix) pair — answers whether an AS is legitimately authorized to originate a prefix. Pass asn (e.g. AS15169) and prefix (CIDR, e.g. 8.8.8.0/24). Returns status (valid = a ROA authorizes it; invalid = a ROA exists but does NOT authorize this origin — a possible hijack/route-leak that RPKI-enforcing networks will drop; unknown = no covering ROA), a hijackSignal boolean, the validating ROAs (origin, prefix, maxLength), and a plain-English description. Live RIR/RPKI data via RIPEstat (keyless) — un-derivable by an LLM. The core BGP-security check; complements net.asn.","url":"https://2s.io/api/net/rpki-validity","method":"GET","headers":{},"bodySchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["input"],"properties":{"input":{"type":"object","required":["type","method","queryParams"],"properties":{"type":{"const":"http"},"method":{"const":"GET"},"queryParams":{"required":["asn","prefix"],"properties":{"asn":{"type":"string","description":"Origin AS number (AS15169 or 15169)."},"prefix":{"type":"string","description":"CIDR prefix, e.g. 8.8.8.0/24."}}}}}}},"responseSchema":{"type":"json","schema":{"type":"object","properties":{"ok":{"type":"boolean"},"items":{"type":"array","items":{"type":"object","properties":{"asn":{"type":"integer"},"prefix":{"type":"string"},"status":{"type":"string"},"description":{"type":"string"},"hijackSignal":{"type":"boolean"},"validatingRoas":{"type":"array","items":{"type":"object","properties":{"origin":{"type":"integer"},"prefix":{"type":"string"},"validity":{"type":"string"},"maxLength":{"type":"integer"}}}}}}},"total":{"type":"integer"},"source":{"type":"object","properties":{"url":{"type":"string"},"license":{"type":"string"},"provider":{"type":"string"}}}}},"example":{"ok":true,"items":[{"asn":15169,"prefix":"8.8.8.0/24","status":"valid","description":"A valid ROA authorizes this AS to originate this prefix.","hijackSignal":false,"validatingRoas":[{"origin":15169,"prefix":"8.8.8.0/24","validity":"valid","maxLength":24}]}],"total":1,"source":{"url":"https://stat.ripe.net/docs/data_api","license":"RIPEstat data is free to use (RIPE NCC).","provider":"RIPE NCC — RIPEstat RPKI Validation"}}},"example":{"request":{"input":{"type":"http","method":"GET","queryParams":{"asn":"AS15169","prefix":"8.8.8.0/24"}}},"response":{"data":{"ok":true,"items":[{"asn":15169,"prefix":"8.8.8.0/24","source":{"url":"https://stat.ripe.net/docs/data_api","license":"RIPEstat data is free to use (RIPE NCC).","provider":"RIPE NCC — RIPEstat RPKI Validation"},"status":"valid","description":"A valid ROA authorizes this AS to originate this prefix.","hijackSignal":false,"validatingRoas":[{"origin":15169,"prefix":"8.8.8.0/24","validity":"valid","maxLength":24}]}],"total":1,"source":{"url":"https://stat.ripe.net/docs/data_api","license":"RIPEstat data is free to use (RIPE NCC).","provider":"RIPE NCC — RIPEstat RPKI Validation"}},"meta":{"cost":{"usd":0.00144,"tier":0},"caller":"x402","version":null,"endpoint":"net.rpki-validity","settlement":{"txHash":"0x03cc2926e9c62187db994c84d0ced09492c3d1deab016819cd511364bc607e0d","network":"eip155:8453","success":true}}}},"exampleRequest":{"asn":"AS15169","prefix":"8.8.8.0/24"},"tags":["x402"],"displayCostAmount":"0.00144","displayCostAsset":"USDC","priceDynamic":false,"priceHint":null,"priceStatus":"priced","priceSource":"settled","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.00144/call","primary":{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.0036","per":"call","confidence":"exact"},"accepted":[{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.0036","per":"call","confidence":"exact"}]},"paymentMethods":[{"uid":"pm_5NBTGk4plftiAR4hRhusZ","protocol":"x402","methodType":"crypto","chain":"base","mode":"charge","costAmount":"0.0036","costPer":"request","priority":0,"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","unit":"request","depositMicros":null,"planRef":null}],"brandName":null,"brandSlug":null,"brandBaseUrl":null,"brandDocsUrl":null,"whatItDoes":"Validates whether a given BGP origin AS is authorized to announce a specific IP prefix using RPKI Route Origin Authorizations (ROAs), and signals potential hijack risk.","exampleAgentPrompt":"Check if AS15169 is RPKI-authorized to originate the prefix 8.8.8.0/24, and tell me whether there's a hijack signal.","exampleUseCases":null,"resultDescription":"Returns a JSON object with an array of RPKI validation results for the queried ASN and prefix, including: validity status (valid/invalid/not-found), a human-readable description, a boolean hijack signal, and an array of validating ROAs showing origin ASN, prefix, validity, and max prefix length. Also includes the total count and data source attribution from RIPE NCC RIPEstat.","failureModes":["Missing required 'asn' or 'prefix' query parameter returns an error","Malformed CIDR prefix (e.g. missing mask) causes a parse error","ASN provided without 'AS' prefix may be rejected depending on format handling","Prefix not found in RPKI data returns status 'not-found' rather than an error","Payment failure (insufficient USDC) returns HTTP 402","RIPEstat upstream unavailability may cause delayed or failed response"],"whenToPreferThis":"Use this endpoint when you need ground-truth RPKI validation for a specific BGP origin ASN and IP prefix pair, especially to detect potential route hijacks or unauthorized announcements. Prefer this over manual RIPEstat queries when automating network security checks, BGP monitoring, or IP reputation pipelines. It is particularly useful for security tooling that needs to verify whether observed BGP routes are covered by valid ROAs.","instructions":null,"reviewSummary":null,"reviewSummaryHighlights":null,"reviewSummaryConcerns":null,"reviewSummaryGeneratedAt":null,"activationCount":0,"lastUsedAt":null,"lastSuccessfullyRanAt":null,"lastHealthCheckAt":"2026-09-15T13:01:26.203Z","isFirstParty":false}