IPGeolocation.io · API Governance Rules
IPGeolocation.io API Rules
Spectral linting rules defining API design standards and conventions for IPGeolocation.io.
40 Rules
error 18
warn 17
info 5
Authorship not recorded
No authorship marker is recorded for this file. It is not presented as the provider's; it was most likely written by an API Evangelist pass before outputs were stamped.
Rule Categories
bulk
contact
delete
get
info
license
no
openapi
operation
parameter
path
request
response
schema
security
server
servers
tag
tags
Rules
error
info-title-prefix
Info title must start with "IPGeolocation.io".
$.info
error
info-version-required
Info must declare an API version.
$.info
warn
info-description-required
Info must include a description of at least 40 characters.
$.info
error
openapi-version-3
Specs must declare OpenAPI 3.0.x or 3.1.x.
$
error
servers-required
A servers array must be defined.
$
error
server-must-be-https
All server URLs must use HTTPS.
$.servers[*]
warn
server-must-be-ipgeolocation-host
Server URL must be https://api.ipgeolocation.io.
$.servers[*]
error
path-must-be-versioned
All operation paths must begin with /v3/.
$.paths
error
path-no-trailing-slash
Paths must not end with a trailing slash.
$.paths
warn
path-kebab-or-camel
Path segments are kebab-case (preferred) or camelCase. No snake_case, no PascalCase, no spaces.
$.paths
error
operation-summary-required
Every operation must have a summary.
$.paths[*][get,post,put,patch,delete]
warn
operation-description-required
Every operation must have a description.
$.paths[*][get,post,put,patch,delete]
error
operation-operationid-required
Every operation must define an operationId.
$.paths[*][get,post,put,patch,delete]
warn
operation-operationid-camelcase
operationId must be camelCase (e.g. lookupIpGeolocation).
$.paths[*][get,post,put,patch,delete]
error
operation-tags-required
Every operation must declare at least one tag.
$.paths[*][get,post,put,patch,delete]
info
operation-microcks-extension
Operations should declare x-microcks-operation for mock-server use.
$.paths[*][get,post,put,patch,delete]
warn
tags-must-be-defined-globally
A global tags array must exist.
$
warn
tag-title-case
Tag names use Title Case (e.g. "IP Geolocation", "User Agent", "Astronomy"). No kebab-case, no snake_case.
$.tags[*]
warn
tag-description-required
Each global tag must include a description.
$.tags[*]
warn
parameter-description-required
Each parameter must include a description.
$.paths[*][get,post,put,patch,delete].parameters[*]
error
parameter-schema-required
Each parameter must declare a schema with type.
$.paths[*][get,post,put,patch,delete].parameters[*]
warn
parameter-name-camelcase
Parameter names use camelCase (e.g. ip, apiKey, lang).
$.paths[*][get,post,put,patch,delete].parameters[*]
warn
request-body-json-content-type
Request bodies must support application/json.
$.paths[*][post,put,patch].requestBody.content
info
request-body-description-required
Each request body should have a description.
$.paths[*][post,put,patch].requestBody
error
response-success-required
Every operation must define at least one 2xx response.
$.paths[*][get,post,put,patch,delete].responses
warn
response-401-required
All operations must document a 401 unauthorized response.
$.paths[*][get,post,put,patch,delete].responses
info
response-429-recommended
Operations should document a 429 throttling response.
$.paths[*][get,post,put,patch,delete].responses
error
response-description-required
Every response must include a description.
$.paths[*][get,post,put,patch,delete].responses[*]
warn
response-json-content-type
Success responses must offer application/json.
$.paths[*][get,post,put,patch,delete].responses['200','201'].content
warn
schema-property-snake-or-camel
Schema property names use snake_case (preferred) or camelCase across IPGeolocation responses. No PascalCase or kebab-case.
$.components.schemas[*].properties
warn
schema-description-required
Top-level schemas should include a description.
$.components.schemas[*]
error
security-scheme-required
The spec must define at least one security scheme.
$.components.securitySchemes
warn
security-apikey-scheme
Security scheme must be the apiKey query parameter named apiKey.
$.components.securitySchemes.ApiKeyAuth
warn
security-global-required
A global security requirement must be declared.
$
error
get-no-request-body
GET operations must not declare a request body.
$.paths[*].get
error
delete-no-request-body
DELETE operations must not declare a request body.
$.paths[*].delete
error
bulk-must-be-post
Bulk endpoints must use POST.
$.paths[?(@property.match(/-bulk$/i))]
error
no-empty-summary
Operation summaries must be non-empty.
$.paths[*][get,post,put,patch,delete].summary
info
contact-recommended
Info should include a contact block for support routing.
$.info
info
license-recommended
Info should declare a license.
$.info
Spectral Ruleset
Work with this as data
Every ruleset here is available over the APIs.io API and to AI agents over MCP.