{"openapi":"3.1.0","info":{"title":"AbuseIPDB (BYOK) API","version":"0.1.0","description":"AbuseIPDB (BYOK) lets an AI assistant read your own AbuseIPDB data through the AbuseIPDB API with a key you supply (AbuseIPDB API key). Read-only: 5 tools (check_ip, list_ip_reports, check_network_block, get_blacklist, get_blacklist_by_country). The BYOK key travels with each request, is used for that one call only and is never stored, logged or cached; it is only ever sent to api.abuseipdb.com....\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-abuseipdb.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-abuseipdb/docs"},"termsOfService":"https://connectorbay.com/byok-abuseipdb/terms"},"servers":[{"url":"https://byok-abuseipdb.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-abuseipdb/docs"},"security":[{"upstreamKey":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","description":"Optional. A Pro API key raises rate limits; no credentials are required."},"upstreamKey":{"type":"apiKey","in":"header","name":"X-Upstream-Key","description":"Your own key for the service this connector wraps (bring your own key). Used for that one call only; never stored, logged or cached."}},"schemas":{"Error":{"type":"object","properties":{"ok":{"const":false},"error":{"type":"object"}}}}},"paths":{"/v1/tools/check_ip":{"post":{"operationId":"check_ip","summary":"Check one IP address: abuse confidence score (0 to 100), country, ISP, usage type, domain, Tor flag, report counts and l","description":"Check one IP address: abuse confidence score (0 to 100), country, ISP, usage type, domain, Tor flag, report counts and last report time. Counts the reports of the chosen time window. Use for \"Is the IP address 118.25.6.39 reported for abuse\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"ip_address":{"description":"IPv4 or IPv6 address to look up, for example '118.25.6.39'.","maxLength":45,"title":"Ip Address","type":"string"},"max_age_in_days":{"anyOf":[{"maximum":365,"minimum":1,"type":"integer"},{"type":"null"}],"default":30,"description":"Only count reports from the last N days (1 to 365, default 30).","title":"Max Age In Days"}},"required":["ip_address"],"title":"check_ipArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_ip_reports":{"post":{"operationId":"list_ip_reports","summary":"List the individual abuse reports filed against an IP address (time, comment, category numbers, reporter country), paged","description":"List the individual abuse reports filed against an IP address (time, comment, category numbers, reporter country), paged. This endpoint is documented as open beta. Use for \"Show the recent abuse reports for 118.25.6.39\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"ip_address":{"description":"IPv4 or IPv6 address to look up, for example '118.25.6.39'.","maxLength":45,"title":"Ip Address","type":"string"},"max_age_in_days":{"anyOf":[{"maximum":365,"minimum":1,"type":"integer"},{"type":"null"}],"default":30,"description":"Only count reports from the last N days (1 to 365, default 30).","title":"Max Age In Days"},"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"},"per_page":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"Reports per page (1 to 100, default 25).","title":"Per Page"}},"required":["ip_address"],"title":"list_ip_reportsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/check_network_block":{"post":{"operationId":"check_network_block","summary":"Check a whole network in CIDR notation and list the reported addresses in it with report counts and scores. The allowed ","description":"Check a whole network in CIDR notation and list the reported addresses in it with report counts and scores. The allowed block size and time window depend on the plan (Standard: up to /24 and 30 days). Use for \"Which addresses in 127.0.0.0/24 have abuse reports\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"network":{"description":"Network in CIDR notation, for example '127.0.0.0/24'.","maxLength":50,"title":"Network","type":"string"},"max_age_in_days":{"anyOf":[{"maximum":365,"minimum":1,"type":"integer"},{"type":"null"}],"default":30,"description":"Only count reports from the last N days (1 to 365, default 30).","title":"Max Age In Days"}},"required":["network"],"title":"check_network_blockArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_blacklist":{"post":{"operationId":"get_blacklist","summary":"Get AbuseIPDB's blacklist of the most reported IP addresses with confidence score and last report time. The number of en","description":"Get AbuseIPDB's blacklist of the most reported IP addresses with confidence score and last report time. The number of entries allowed per day and the maximum size depend on the plan. Use for \"Give me the top reported abusive IP addresses\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"limit":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":100,"description":"How many entries to return (1 up to the plan limit; the default of the API is 10000, this tool defaults to 100).","title":"Limit"},"confidence_minimum":{"anyOf":[{"maximum":100,"minimum":25,"type":"integer"},{"type":"null"}],"default":null,"description":"Minimum abuse confidence score, 25 to 100 (subscriber plans only).","title":"Confidence Minimum"},"ip_version":{"anyOf":[{"enum":[4,6],"type":"integer"},{"type":"null"}],"default":null,"description":"Only IPv4 or IPv6 addresses: 4 or 6 (default both).","title":"Ip Version"}},"title":"get_blacklistArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_blacklist_by_country":{"post":{"operationId":"get_blacklist_by_country","summary":"Get the blacklist limited to chosen countries, or without chosen countries. Needs a subscriber plan. Use for \"Which blac","description":"Get the blacklist limited to chosen countries, or without chosen countries. Needs a subscriber plan. Use for \"Which blacklisted IP addresses are located in Germany\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"only_countries":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Comma-separated two-letter country codes to include, for example 'DE,FR'.","title":"Only Countries"},"except_countries":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Comma-separated two-letter country codes to leave out.","title":"Except Countries"},"limit":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":100,"description":"How many entries to return (1 up to the plan limit, default 100).","title":"Limit"}},"title":"get_blacklist_by_countryArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}}}}