{
    "openapi": "3.0.3",
    "info": {
        "title": "ifconfig.ac API",
        "version": "1.0.0",
        "description": "IP, geolocation, ASN, privacy score and leak checks. curl-friendly: every endpoint returns text\/plain by default and JSON via a .json suffix or Accept: application\/json."
    },
    "servers": [
        {
            "url": "https:\/\/ifconfig.ac"
        }
    ],
    "paths": {
        "\/": {
            "get": {
                "summary": "Your IP (text) or full JSON for curl\/jq via Accept: application\/json",
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "text\/plain": {
                                "schema": {
                                    "type": "string"
                                }
                            },
                            "application\/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/ip": {
            "get": {
                "summary": "Your IP address",
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "text\/plain": {
                                "schema": {
                                    "type": "string"
                                }
                            },
                            "application\/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/json": {
            "get": {
                "summary": "All fields as JSON",
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "text\/plain": {
                                "schema": {
                                    "type": "string"
                                }
                            },
                            "application\/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/all": {
            "get": {
                "summary": "All fields (text or .json)",
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "text\/plain": {
                                "schema": {
                                    "type": "string"
                                }
                            },
                            "application\/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/country": {
            "get": {
                "summary": "Country name",
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "text\/plain": {
                                "schema": {
                                    "type": "string"
                                }
                            },
                            "application\/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/city": {
            "get": {
                "summary": "City",
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "text\/plain": {
                                "schema": {
                                    "type": "string"
                                }
                            },
                            "application\/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/asn": {
            "get": {
                "summary": "Autonomous System Number",
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "text\/plain": {
                                "schema": {
                                    "type": "string"
                                }
                            },
                            "application\/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/isp": {
            "get": {
                "summary": "ISP name",
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "text\/plain": {
                                "schema": {
                                    "type": "string"
                                }
                            },
                            "application\/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/tz": {
            "get": {
                "summary": "IANA timezone",
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "text\/plain": {
                                "schema": {
                                    "type": "string"
                                }
                            },
                            "application\/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/connection": {
            "get": {
                "summary": "Connection type: direct\/datacenter\/mobile\/vpn_proxy",
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "text\/plain": {
                                "schema": {
                                    "type": "string"
                                }
                            },
                            "application\/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/score": {
            "get": {
                "summary": "Privacy\/exposure score (server-side network signals)",
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "text\/plain": {
                                "schema": {
                                    "type": "string"
                                }
                            },
                            "application\/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/net": {
            "get": {
                "summary": "Network depth: ASN holder, BGP prefix, RPKI status, rDNS, reputation, abuse contact",
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "text\/plain": {
                                "schema": {
                                    "type": "string"
                                }
                            },
                            "application\/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/notation": {
            "get": {
                "summary": "Your IP in every notation: integer, hex, octal, dotted-hex, IPv6-mapped, reverse-DNS",
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "text\/plain": {
                                "schema": {
                                    "type": "string"
                                }
                            },
                            "application\/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/dnsbl": {
            "get": {
                "summary": "DNSBL blocklist check (IPv4) + forward-confirmed reverse DNS",
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "text\/plain": {
                                "schema": {
                                    "type": "string"
                                }
                            },
                            "application\/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/lookup\/{ip}": {
            "get": {
                "summary": "Geolocate any public IP",
                "parameters": [
                    {
                        "name": "ip",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "text\/plain": {
                                "schema": {
                                    "type": "string"
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/headers": {
            "get": {
                "summary": "Your request headers",
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "text\/plain": {
                                "schema": {
                                    "type": "string"
                                }
                            },
                            "application\/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/tls": {
            "get": {
                "summary": "TLS details",
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "text\/plain": {
                                "schema": {
                                    "type": "string"
                                }
                            },
                            "application\/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/openapi.json": {
            "get": {
                "summary": "This spec",
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "text\/plain": {
                                "schema": {
                                    "type": "string"
                                }
                            },
                            "application\/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
