{
    "documentation_version": 1,
    "base_url": "https://c7dev.com",
    "instructions_url": "https://c7dev.com/api_instructions",
    "selection": {
        "method": "GET",
        "parameter": "api",
        "required": false,
        "description": "Omit api for the full suite, or use an endpoint name for its instructions only.",
        "example_url": "https://c7dev.com/api_instructions?api=media_api"
    },
    "instructions": [
        "Choose an endpoint by its description, then use its documented HTTP method and parameter location.",
        "URL-encode GET query values. Preserve identifiers such as VAT numbers and registration codes as strings.",
        "For JSON APIs, require HTTP success and result=true before using returned data. Read error_message on failure.",
        "Do not fabricate missing data or treat null as zero or false. Warnings may indicate incomplete or older data.",
        "Do not blindly retry invalid input or access errors. Temporary service failures may be retried with bounded backoff.",
        "Responses prohibit browser caching. Inspect cached, timestamps and X-API-Version when those fields are available."
    ],
    "authentication": {
        "documentation": "Public; no token is required to read these instructions.",
        "restricted_endpoints": "Supply credentials provided by the API operator when access control requires them.",
        "token_locations": [
            "Authorization: Bearer YOUR_ACCESS_TOKEN",
            "X-Access-Token: YOUR_ACCESS_TOKEN",
            "access_token query or form parameter"
        ],
        "domain": "Send domain as a query or form parameter when the client token is restricted to registered domains. Access may also be restricted by IP.",
        "ai_generate": "Requires both access_token and domain in the form body."
    },
    "json_response_envelope": {
        "result": "boolean; request succeeded",
        "error": "boolean; request failed",
        "error_message": "string; empty on success",
        "server_time": "integer; Unix timestamp in seconds"
    },
    "errors": {
        "400": "Missing or invalid input.",
        "403": "Access denied; check token, registered domain and IP permissions.",
        "404": "Unknown API selected for instructions.",
        "405": "Unsupported method for the instructions endpoint.",
        "500": "Processing failed.",
        "503": "Service temporarily unavailable."
    },
    "apis": [
        {
            "name": "companyvat_api",
            "method": "GET",
            "path": "/companyvat_api",
            "description": "VAT number validation with normalized company VAT details where the country makes those details available.",
            "instructions_url": "https://c7dev.com/api_instructions?api=companyvat_api",
            "request": {
                "parameter_location": "query",
                "parameters": {
                    "vat": {
                        "type": "string",
                        "required": true,
                        "description": "VAT number, with or without its country prefix. Preserve leading zeros."
                    },
                    "country": {
                        "type": "string",
                        "required": true,
                        "description": "ISO 3166-1 alpha-2 country code, such as LT or GB."
                    },
                    "vat_number": {
                        "type": "string",
                        "required": false,
                        "description": "Alias for vat."
                    },
                    "country_code": {
                        "type": "string",
                        "required": false,
                        "description": "Alias for country."
                    },
                    "countries": {
                        "type": "string",
                        "required": false,
                        "description": "Set to 1 to list supported countries instead of validating VAT."
                    },
                    "debug": {
                        "type": "string",
                        "required": false,
                        "description": "Set to 1 for request diagnostics; omit for ordinary requests.",
                        "enum": [
                            "0",
                            "1"
                        ]
                    }
                }
            },
            "response": {
                "format": "application/json",
                "response_fields": [
                    "is_valid",
                    "company_vat",
                    "company_name",
                    "company_address",
                    "country_code",
                    "request_time"
                ],
                "headers": {
                    "X-API-Version": "companyvat_api_v17"
                }
            },
            "details": {
                "Supported countries": "AT, BE, BG, CH, CY, CZ, DE, DK, EE, ES, FI, FR, GB, GR, HR, HU, IE, IT, LT, LU, LV, MT, NL, NO, PL, PT, RO, SE, SI, SK, XI",
                "Optional parameters": "vat_number (alias for vat), country_code (alias for country), countries=1 (list supported countries)",
                "VAT input": "Country prefix may be included or omitted; the country parameter must match the VAT country.",
                "Returns": "is_valid, company_vat, company_name, company_address, country_code and request_time"
            },
            "notes": [
                "The countries=1 discovery request does not require vat or country.",
                "The country parameter must match any VAT prefix.",
                "A successful API request can return is_valid=false. Missing company details are different from invalid VAT."
            ],
            "examples": [
                {
                    "method": "GET",
                    "url": "https://c7dev.com/companyvat_api?vat=LT100011555012&country=LT"
                },
                {
                    "method": "GET",
                    "url": "https://c7dev.com/companyvat_api?countries=1"
                }
            ]
        }
    ],
    "result": true,
    "error": false,
    "error_message": "",
    "server_time": 1791673249
}