openapi: 3.2.0
info:
title: IP Information Tools REST Ip Info API
version: 1.0.0
description: IP geolocation, ISP detection, and network information lookup
servers:
- url: https://connect.mcp360.ai
description: MCP360 API Server
security:
- bearerAuth: []
- apiKey: []
tags:
- name: ip-info
paths:
/api/v1/ip-info/get_ip_info:
post:
summary: Execute get_ip_info
operationId: ip-info_get_ip_info
tags:
- ip-info
parameters:
- name: validateOutput
in: query
schema:
type: boolean
description: Validate output against schema
- name: strictValidation
in: query
schema:
type: boolean
description: Fail on validation errors
- name: includeMetadata
in: query
schema:
type: boolean
description: Include execution metadata
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ip-info_get_ip_info_input'
responses:
'200':
description: Successful execution
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
data:
type: object
metadata:
type: object
properties:
service:
type: string
tool:
type: string
executionTime:
type: string
creditsUsed:
type: number
timestamp:
type: string
format: date-time
required:
- success
- data
'400':
description: Bad request or validation error
'401':
description: Unauthorized
'403':
description: Forbidden (premium access required)
'404':
description: Service or tool not found
'429':
description: Rate limit exceeded
'500':
description: Internal server error
get:
summary: Execute get_ip_info
operationId: ip-info_get_ip_info_get
tags:
- ip-info
parameters:
- name: ip
in: query
required: true
schema:
type: string
description: IP address to lookup (IPv4 or IPv6)
- name: validateOutput
in: query
schema:
type: boolean
description: Validate output against schema
- name: includeMetadata
in: query
schema:
type: boolean
description: Include execution metadata
responses:
'200':
description: Successful execution
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
data:
type: object
metadata:
type: object
properties:
service:
type: string
tool:
type: string
executionTime:
type: string
creditsUsed:
type: number
timestamp:
type: string
format: date-time
required:
- success
- data
'400':
description: Bad request or validation error
'401':
description: Unauthorized
'403':
description: Forbidden (premium access required)
'404':
description: Service or tool not found
'429':
description: Rate limit exceeded
'500':
description: Internal server error
/api/v1/ip-info/batch_ip_lookup:
post:
summary: Execute batch_ip_lookup
operationId: ip-info_batch_ip_lookup
tags:
- ip-info
parameters:
- name: validateOutput
in: query
schema:
type: boolean
description: Validate output against schema
- name: strictValidation
in: query
schema:
type: boolean
description: Fail on validation errors
- name: includeMetadata
in: query
schema:
type: boolean
description: Include execution metadata
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ip-info_batch_ip_lookup_input'
responses:
'200':
description: Successful execution
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
data:
type: object
metadata:
type: object
properties:
service:
type: string
tool:
type: string
executionTime:
type: string
creditsUsed:
type: number
timestamp:
type: string
format: date-time
required:
- success
- data
'400':
description: Bad request or validation error
'401':
description: Unauthorized
'403':
description: Forbidden (premium access required)
'404':
description: Service or tool not found
'429':
description: Rate limit exceeded
'500':
description: Internal server error
components:
schemas:
ip-info_batch_ip_lookup_input:
type: object
properties:
ips:
type: array
items:
type: string
minLength: 7
maxLength: 45
pattern: ^((25[0-5]|(2[0-4]|1\d|[1-9]|)\d)\.?\b){4}$|^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$
minItems: 1
maxItems: 5
description: Array of IP addresses to lookup (max 5)
required:
- ips
additionalProperties: false
ip-info_get_ip_info_input:
type: object
properties:
ip:
type: string
minLength: 7
maxLength: 45
pattern: ^((25[0-5]|(2[0-4]|1\d|[1-9]|)\d)\.?\b){4}$|^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$
description: IP address to lookup (IPv4 or IPv6)
required:
- ip
additionalProperties: false
securitySchemes:
bearerAuth:
type: http
scheme: bearer
bearerFormat: JWT
apiKey:
type: apiKey
in: header
name: X-API-Key