TheTVDB · API Governance Rules
TheTVDB API Rules
Spectral linting rules defining API design standards and conventions for TheTVDB.
36 Rules
error 12
warn 20
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
tvdb
Rules
warn
tvdb-info-title-prefix
API title should reference TVDB
$.info.title
warn
tvdb-info-description-required
API info must include a description
$.info
error
tvdb-info-version-required
API info must include a version
$.info
warn
tvdb-openapi-version
Specs must declare OpenAPI 3.0.x
$.openapi
error
tvdb-servers-defined
At least one server must be defined
$
error
tvdb-server-https
All servers must use HTTPS
$.servers[*].url
warn
tvdb-server-base-url
Production server should be api4.thetvdb.com
$.servers[*].url
warn
tvdb-path-snake-or-lowercase
Paths must use lowercase with optional snake_case segments (no camelCase or PascalCase resource names)
$.paths.*~
error
tvdb-path-no-trailing-slash
Paths must not end with a trailing slash
$.paths.*~
error
tvdb-path-no-query-string
Paths must not include query strings (use parameters instead)
$.paths.*~
error
tvdb-operation-id-required
All operations must have an operationId
$.paths[*][get,post,put,patch,delete].operationId
warn
tvdb-operation-id-camel-case
operationId values must use camelCase
$.paths[*][get,post,put,patch,delete].operationId
warn
tvdb-operation-summary-required
All operations must have a summary
$.paths[*][get,post,put,patch,delete]
warn
tvdb-summary-prefix
Operation summaries should begin with 'TheTVDB'
$.paths[*][get,post,put,patch,delete].summary
warn
tvdb-summary-title-case
Operation summaries must start with an uppercase letter (Title Case)
$.paths[*][get,post,put,patch,delete].summary
warn
tvdb-operation-tags-required
All operations must declare at least one tag
$.paths[*][get,post,put,patch,delete]
warn
tvdb-tag-title-case
Operation tag names should use Title Case
$.paths[*][get,post,put,patch,delete].tags[*]
warn
tvdb-parameter-description-required
All parameters should have a description
$.paths[*][get,post,put,patch,delete].parameters[*]
error
tvdb-parameter-schema-required
All parameters must declare a schema with a type
$.paths[*][get,post,put,patch,delete].parameters[*]
hint
tvdb-pagination-page-parameter
Use the 'page' query parameter for paginated list endpoints (snake_case lowercase)
$.paths[*][get].parameters[?(@.in == 'query' && (@.name == 'pageNum' || @.name == 'pagenum'))]
warn
tvdb-request-body-json
Request bodies must use application/json
$.paths[*][post,put,patch].requestBody.content
error
tvdb-response-2xx-required
Every operation must define a successful 2xx response
$.paths[*][get,post,put,patch,delete].responses
warn
tvdb-response-401-defined
Authenticated endpoints should document a 401 Unauthorized response
$.paths[*][get,post,put,patch,delete].responses
warn
tvdb-response-json-content
2xx responses must return application/json
$.paths[*][get,post,put,patch,delete].responses['200','201','202'].content
error
tvdb-response-description-required
All responses must have a description
$.paths[*][get,post,put,patch,delete].responses[*]
hint
tvdb-schema-property-snake-or-camel
Schema property names should be lowercase, snake_case, or camelCase
$.components.schemas[*].properties.*~
hint
tvdb-schema-id-int64
Identifier properties named 'id' should use integer format int64
$.components.schemas[*].properties.id
warn
tvdb-schema-score-numeric
'score' properties must be numeric (used for relative popularity sorting)
$.components.schemas[*].properties.score
error
tvdb-global-security-defined
Global security must be defined (TheTVDB uses JWT bearer)
$
error
tvdb-bearer-auth-scheme
A 'bearerAuth' security scheme must be defined under components.securitySchemes
$.components.securitySchemes
warn
tvdb-bearer-jwt-format
The bearerAuth security scheme must specify type 'http', scheme 'bearer', bearerFormat 'JWT'
$.components.securitySchemes.bearerAuth
warn
tvdb-login-unsecured
The /login endpoint must override global security with [] (no auth required to obtain a token)
$.paths['/login'].post
error
tvdb-get-no-request-body
GET operations must not have a request body
$.paths[*].get
warn
tvdb-delete-no-request-body
DELETE operations should not have a request body
$.paths[*].delete
warn
tvdb-no-empty-descriptions
Descriptions must not be empty
$..description
hint
tvdb-microcks-operation-defined
Operations should define x-microcks-operation for mock server compatibility
$.paths[*][get,post,put,patch,delete]
Spectral Ruleset
Work with this as data
Every ruleset here is available over the APIs.io API and to AI agents over MCP.