{"openapi":"3.1.0","info":{"title":"Abstract IP Intelligence (BYOK) API","version":"0.1.0","description":"Abstract IP Intelligence (BYOK) lets an AI assistant read your own Abstract IP Intelligence data through the Abstract IP Intelligence API with a key you supply (Abstract IP Intelligence API key). Read-only: 4 tools (lookup_ip, get_ip_location, get_ip_security, get_ip_network_owner). The BYOK key travels with each request, is used for that one call only and is never stored, logged or cached; it is...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-abstractip.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-abstractip/docs"},"termsOfService":"https://connectorbay.com/byok-abstractip/terms"},"servers":[{"url":"https://byok-abstractip.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-abstractip/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/lookup_ip":{"post":{"operationId":"lookup_ip","summary":"Get the full IP Intelligence answer for an address: security flags, ASN, company, location, time zone, flag and currency","description":"Get the full IP Intelligence answer for an address: security flags, ASN, company, location, time zone, flag and currency. Each call counts against the plan's request quota. Use for \"What can you tell me about the IP address 166.171.248.255\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"ip_address":{"anyOf":[{"maxLength":45,"type":"string"},{"type":"null"}],"default":null,"description":"IPv4 or IPv6 address to look up, for example '166.171.248.255'. Leave empty to look up the address the request comes from.","title":"Ip Address"},"fields":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Comma-separated top-level keys to return (ip_address, security, asn, company, domains, location, timezone, flag, currency).","title":"Fields"}},"title":"lookup_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/get_ip_location":{"post":{"operationId":"get_ip_location","summary":"Get where an IP address is: city, region, postal code, country, continent, coordinates, and its local time zone. Use for","description":"Get where an IP address is: city, region, postal code, country, continent, coordinates, and its local time zone. Use for \"Which city and time zone is the IP address 8.8.8.8 in\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"ip_address":{"description":"IPv4 or IPv6 address to look up, for example '166.171.248.255'.","maxLength":45,"title":"Ip Address","type":"string"},"fields":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":"ip_address,location,timezone","description":"Comma-separated top-level keys to return (ip_address, security, asn, company, domains, location, timezone, flag, currency).","title":"Fields"}},"required":["ip_address"],"title":"get_ip_locationArguments","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_ip_security":{"post":{"operationId":"get_ip_security","summary":"Check an IP address for VPN, proxy, Tor, hosting, relay, mobile and abuse flags. Use for \"Is the IP address 185.197.192.","description":"Check an IP address for VPN, proxy, Tor, hosting, relay, mobile and abuse flags. Use for \"Is the IP address 185.197.192.65 a VPN, proxy or Tor node\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"ip_address":{"description":"IPv4 or IPv6 address to look up, for example '166.171.248.255'.","maxLength":45,"title":"Ip Address","type":"string"},"fields":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":"ip_address,security","description":"Comma-separated top-level keys to return (ip_address, security, asn, company, domains, location, timezone, flag, currency).","title":"Fields"}},"required":["ip_address"],"title":"get_ip_securityArguments","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_ip_network_owner":{"post":{"operationId":"get_ip_network_owner","summary":"Find the network behind an IP address: ASN number, name, domain and type, plus the company that uses it. Use for \"Which ","description":"Find the network behind an IP address: ASN number, name, domain and type, plus the company that uses it. Use for \"Which ASN and company own the IP address 1.1.1.1\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"ip_address":{"description":"IPv4 or IPv6 address to look up, for example '166.171.248.255'.","maxLength":45,"title":"Ip Address","type":"string"},"fields":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":"ip_address,asn,company","description":"Comma-separated top-level keys to return (ip_address, security, asn, company, domains, location, timezone, flag, currency).","title":"Fields"}},"required":["ip_address"],"title":"get_ip_network_ownerArguments","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}}}}