{"openapi":"3.1.0","info":{"title":"IP Address and CIDR Guard API","version":"1.0.0","description":"Canonicalize literal IPv4, IPv6, and CIDR values; check containment and overlap; create exact network covers; and apply explicit destination policy. The API never resolves DNS, opens a socket, fetches reputation or geolocation data, or stores payloads. A permitted literal must be checked again after DNS resolution and on every redirect, then enforced by the caller's network layer."},"paths":{"/marketplace/rapid/ip/v1/inspect":{"post":{"tags":["IP Address Inspect"],"summary":"Inspect IP address or CIDR","description":"Canonicalize a literal IPv4, IPv6, or CIDR value and return explicit address-class evidence without DNS, geolocation, or network access.","operationId":"inspectIpAddress","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IPInspectRequest"},"examples":{"example":{"summary":"Inspect IP address or CIDR","value":{"value":"2001:0db8:0000:0000:0000:0000:0000:0042"}}}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IPInspectResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/marketplace/rapid/ip/v1/cidr/contains":{"post":{"tags":["CIDR Containment"],"summary":"Check CIDR containment","description":"Check whether one literal address or canonical network is fully contained by another CIDR, with explicit IP-version evidence.","operationId":"checkCidrContains","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CIDRContainsRequest"},"examples":{"example":{"summary":"Check CIDR containment","value":{"network":"10.20.0.0/16","candidate":"10.20.4.25"}}}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CIDRContainsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/marketplace/rapid/ip/v1/cidr/overlap":{"post":{"tags":["CIDR Overlap"],"summary":"Check CIDR overlap","description":"Return equality, subnet, supernet, overlap, disjoint, or IP-version-mismatch evidence for two canonical networks.","operationId":"checkCidrOverlap","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CIDROverlapRequest"},"examples":{"example":{"summary":"Check CIDR overlap","value":{"left":"10.20.0.0/16","right":"10.20.128.0/17"}}}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CIDROverlapResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/marketplace/rapid/ip/v1/cidr/summarize":{"post":{"tags":["CIDR Summarize"],"summary":"Summarize IP addresses and CIDRs","description":"Create the smallest exact canonical cover for supplied address and network literals without adding addresses to the represented set.","operationId":"summarizeCidrs","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CIDRSummarizeRequest"},"examples":{"example":{"summary":"Summarize IP addresses and CIDRs","value":{"values":["192.0.2.0/25","192.0.2.128/25","2001:db8::1"]}}}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CIDRSummarizeResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/marketplace/rapid/ip/v1/policy-check":{"post":{"tags":["IP Address Policy"],"summary":"Check IP address policy","description":"Apply explicit allow and deny networks plus conservative non-global, metadata, and IPv4-transition rules to one literal address before network access.","operationId":"checkIpAddressPolicy","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IPPolicyRequest"},"examples":{"example":{"summary":"Check IP address policy","value":{"candidate":"203.0.113.42","allowed_networks":["203.0.113.0/24"],"require_allowlist":true,"require_global_unicast":false,"allow_documentation":true}}}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IPPolicyResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"CIDRContainsRequest":{"properties":{"network":{"type":"string","maxLength":256,"minLength":1,"title":"Network"},"candidate":{"type":"string","maxLength":256,"minLength":1,"title":"Candidate"}},"additionalProperties":false,"type":"object","required":["network","candidate"],"title":"CIDRContainsRequest"},"CIDRContainsResponse":{"properties":{"status":{"type":"string","const":"COMPLETED","title":"Status","default":"COMPLETED"},"decision":{"type":"string","enum":["CLEAR","REVIEW_REQUIRED","BLOCKED"],"title":"Decision"},"network":{"type":"string","title":"Network"},"candidate":{"type":"string","title":"Candidate"},"candidate_kind":{"type":"string","enum":["ADDRESS","NETWORK"],"title":"Candidate Kind"},"same_ip_version":{"type":"boolean","title":"Same Ip Version"},"contains":{"type":"boolean","title":"Contains"},"relationship":{"type":"string","enum":["CONTAINS","EQUAL","OUTSIDE","VERSION_MISMATCH"],"title":"Relationship"},"network_access_performed":{"type":"boolean","const":false,"title":"Network Access Performed","default":false},"payload_stored":{"type":"boolean","const":false,"title":"Payload Stored","default":false},"next_action":{"type":"string","title":"Next Action"}},"additionalProperties":false,"type":"object","required":["decision","network","candidate","candidate_kind","same_ip_version","contains","relationship","next_action"],"title":"CIDRContainsResponse"},"CIDROverlapRequest":{"properties":{"left":{"type":"string","maxLength":256,"minLength":1,"title":"Left"},"right":{"type":"string","maxLength":256,"minLength":1,"title":"Right"}},"additionalProperties":false,"type":"object","required":["left","right"],"title":"CIDROverlapRequest"},"CIDROverlapResponse":{"properties":{"status":{"type":"string","const":"COMPLETED","title":"Status","default":"COMPLETED"},"decision":{"type":"string","enum":["CLEAR","REVIEW_REQUIRED","BLOCKED"],"title":"Decision"},"left":{"type":"string","title":"Left"},"right":{"type":"string","title":"Right"},"same_ip_version":{"type":"boolean","title":"Same Ip Version"},"overlaps":{"type":"boolean","title":"Overlaps"},"relationship":{"type":"string","enum":["EQUAL","LEFT_SUBNET_OF_RIGHT","LEFT_SUPERNET_OF_RIGHT","OVERLAP","DISJOINT","VERSION_MISMATCH"],"title":"Relationship"},"intersection_first":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Intersection First"},"intersection_last":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Intersection Last"},"network_access_performed":{"type":"boolean","const":false,"title":"Network Access Performed","default":false},"payload_stored":{"type":"boolean","const":false,"title":"Payload Stored","default":false},"next_action":{"type":"string","title":"Next Action"}},"additionalProperties":false,"type":"object","required":["decision","left","right","same_ip_version","overlaps","relationship","next_action"],"title":"CIDROverlapResponse"},"CIDRSummarizeRequest":{"properties":{"values":{"items":{"type":"string"},"type":"array","maxItems":2000,"minItems":1,"title":"Values"}},"additionalProperties":false,"type":"object","required":["values"],"title":"CIDRSummarizeRequest"},"CIDRSummarizeResponse":{"properties":{"status":{"type":"string","const":"COMPLETED","title":"Status","default":"COMPLETED"},"decision":{"type":"string","const":"CLEAR","title":"Decision","default":"CLEAR"},"input_count":{"type":"integer","title":"Input Count"},"output_network_count":{"type":"integer","title":"Output Network Count"},"networks":{"items":{"type":"string"},"type":"array","title":"Networks"},"ipv4_address_count":{"type":"string","title":"Ipv4 Address Count"},"ipv6_address_count":{"type":"string","title":"Ipv6 Address Count"},"exact_cover":{"type":"boolean","const":true,"title":"Exact Cover","default":true},"network_access_performed":{"type":"boolean","const":false,"title":"Network Access Performed","default":false},"payload_stored":{"type":"boolean","const":false,"title":"Payload Stored","default":false},"next_action":{"type":"string","title":"Next Action"}},"additionalProperties":false,"type":"object","required":["input_count","output_network_count","networks","ipv4_address_count","ipv6_address_count","next_action"],"title":"CIDRSummarizeResponse"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"IPFinding":{"properties":{"code":{"type":"string","title":"Code"},"severity":{"type":"string","enum":["LOW","MEDIUM","HIGH"],"title":"Severity"},"message":{"type":"string","title":"Message"},"evidence":{"additionalProperties":true,"type":"object","title":"Evidence"},"next_action":{"type":"string","title":"Next Action"}},"additionalProperties":false,"type":"object","required":["code","severity","message","next_action"],"title":"IPFinding"},"IPInspectRequest":{"properties":{"value":{"type":"string","maxLength":256,"minLength":1,"title":"Value"}},"additionalProperties":false,"type":"object","required":["value"],"title":"IPInspectRequest"},"IPInspectResponse":{"properties":{"status":{"type":"string","const":"COMPLETED","title":"Status","default":"COMPLETED"},"decision":{"type":"string","enum":["CLEAR","REVIEW_REQUIRED","BLOCKED"],"title":"Decision"},"kind":{"type":"string","enum":["ADDRESS","NETWORK"],"title":"Kind"},"version":{"type":"integer","enum":[4,6],"title":"Version"},"normalized":{"type":"string","title":"Normalized"},"input_was_canonical":{"type":"boolean","title":"Input Was Canonical"},"prefix_length":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Prefix Length"},"network_address":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Network Address"},"broadcast_address":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Broadcast Address"},"first_address":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"First Address"},"last_address":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Address"},"address_count":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Address Count"},"properties":{"$ref":"#/components/schemas/IPProperties"},"findings":{"items":{"$ref":"#/components/schemas/IPFinding"},"type":"array","title":"Findings"},"ruleset_version":{"type":"string","title":"Ruleset Version","default":"2026-08-10"},"dns_resolved":{"type":"boolean","const":false,"title":"Dns Resolved","default":false},"network_access_performed":{"type":"boolean","const":false,"title":"Network Access Performed","default":false},"geolocation_performed":{"type":"boolean","const":false,"title":"Geolocation Performed","default":false},"reputation_lookup_performed":{"type":"boolean","const":false,"title":"Reputation Lookup Performed","default":false},"payload_stored":{"type":"boolean","const":false,"title":"Payload Stored","default":false},"next_action":{"type":"string","title":"Next Action"}},"additionalProperties":false,"type":"object","required":["decision","kind","version","normalized","input_was_canonical","properties","findings","next_action"],"title":"IPInspectResponse"},"IPPolicyRequest":{"properties":{"candidate":{"type":"string","maxLength":256,"minLength":1,"title":"Candidate"},"allowed_networks":{"items":{"type":"string"},"type":"array","maxItems":1000,"title":"Allowed Networks"},"denied_networks":{"items":{"type":"string"},"type":"array","maxItems":1000,"title":"Denied Networks"},"require_allowlist":{"type":"boolean","title":"Require Allowlist","default":false},"require_global_unicast":{"type":"boolean","title":"Require Global Unicast","default":true},"allow_private":{"type":"boolean","title":"Allow Private","default":false},"allow_loopback":{"type":"boolean","title":"Allow Loopback","default":false},"allow_link_local":{"type":"boolean","title":"Allow Link Local","default":false},"allow_multicast":{"type":"boolean","title":"Allow Multicast","default":false},"allow_reserved":{"type":"boolean","title":"Allow Reserved","default":false},"allow_unspecified":{"type":"boolean","title":"Allow Unspecified","default":false},"allow_documentation":{"type":"boolean","title":"Allow Documentation","default":false},"allow_benchmark":{"type":"boolean","title":"Allow Benchmark","default":false},"allow_shared_address_space":{"type":"boolean","title":"Allow Shared Address Space","default":false},"allow_metadata_targets":{"type":"boolean","title":"Allow Metadata Targets","default":false},"allow_transition_addresses":{"type":"boolean","title":"Allow Transition Addresses","default":false}},"additionalProperties":false,"type":"object","required":["candidate"],"title":"IPPolicyRequest"},"IPPolicyResponse":{"properties":{"status":{"type":"string","const":"COMPLETED","title":"Status","default":"COMPLETED"},"decision":{"type":"string","enum":["CLEAR","REVIEW_REQUIRED","BLOCKED"],"title":"Decision"},"permitted":{"type":"boolean","title":"Permitted"},"candidate":{"type":"string","title":"Candidate"},"version":{"type":"integer","enum":[4,6],"title":"Version"},"properties":{"$ref":"#/components/schemas/IPProperties"},"matched_allowed_networks":{"items":{"type":"string"},"type":"array","title":"Matched Allowed Networks"},"matched_denied_networks":{"items":{"type":"string"},"type":"array","title":"Matched Denied Networks"},"findings":{"items":{"$ref":"#/components/schemas/IPFinding"},"type":"array","title":"Findings"},"static_analysis_only":{"type":"boolean","const":true,"title":"Static Analysis Only","default":true},"dns_resolved":{"type":"boolean","const":false,"title":"Dns Resolved","default":false},"network_access_performed":{"type":"boolean","const":false,"title":"Network Access Performed","default":false},"payload_stored":{"type":"boolean","const":false,"title":"Payload Stored","default":false},"next_action":{"type":"string","title":"Next Action"}},"additionalProperties":false,"type":"object","required":["decision","permitted","candidate","version","properties","matched_allowed_networks","matched_denied_networks","findings","next_action"],"title":"IPPolicyResponse"},"IPProperties":{"properties":{"global_unicast":{"type":"boolean","title":"Global Unicast"},"private":{"type":"boolean","title":"Private"},"loopback":{"type":"boolean","title":"Loopback"},"link_local":{"type":"boolean","title":"Link Local"},"multicast":{"type":"boolean","title":"Multicast"},"reserved":{"type":"boolean","title":"Reserved"},"unspecified":{"type":"boolean","title":"Unspecified"},"documentation":{"type":"boolean","title":"Documentation"},"benchmark":{"type":"boolean","title":"Benchmark"},"shared_address_space":{"type":"boolean","title":"Shared Address Space"},"known_metadata_target":{"type":"boolean","title":"Known Metadata Target"},"embedded_ipv4":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Embedded Ipv4"},"transition_mechanism":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Transition Mechanism"}},"additionalProperties":false,"type":"object","required":["global_unicast","private","loopback","link_local","multicast","reserved","unspecified","documentation","benchmark","shared_address_space","known_metadata_target"],"title":"IPProperties"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}}},"tags":[{"name":"IP Address Inspect","description":"A bounded, stateless IP-address and CIDR preflight for agents, cloud automation, firewalls, and SSRF-resistant network workflows."},{"name":"CIDR Containment","description":"A bounded, stateless IP-address and CIDR preflight for agents, cloud automation, firewalls, and SSRF-resistant network workflows."},{"name":"CIDR Overlap","description":"A bounded, stateless IP-address and CIDR preflight for agents, cloud automation, firewalls, and SSRF-resistant network workflows."},{"name":"CIDR Summarize","description":"A bounded, stateless IP-address and CIDR preflight for agents, cloud automation, firewalls, and SSRF-resistant network workflows."},{"name":"IP Address Policy","description":"A bounded, stateless IP-address and CIDR preflight for agents, cloud automation, firewalls, and SSRF-resistant network workflows."}],"servers":[{"url":"https://api-production-9502.up.railway.app"}]}