United States Postal Service · API Governance Rules
United States Postal Service — united states postal service rules
Spectral linting rules defining API design standards and conventions for United States Postal Service.
39 Rules
error 13
warn 23
info 3
Generated by API Evangelist
Written by API Evangelist tooling for United States Postal Service's APIs. It is a starting point, not a ruleset United States Postal Service publishes or enforces.
Rule Categories
delete
error
get
info
microcks
no
openapi
operation
parameter
paths
post
query
request
response
schema
security
servers
tags
Rules
error
info-title-required
API title must be present and start with USPS.
$.info.title
warn
info-description-required
API info description must be present and at least 50 characters.
$.info.description
error
info-version-required
API version must be specified.
$.info.version
warn
info-contact-required
API info should include contact information.
$.info.contact
warn
openapi-version
All USPS API specs should use OpenAPI 3.1.0.
$.openapi
error
servers-required
Servers array must be defined.
$.servers
error
servers-https-only
All server URLs must use HTTPS.
$.servers[*].url
warn
servers-description-required
Each server should have a description.
$.servers[*].description
warn
servers-usps-domain
USPS API servers must use apis.usps.com or apis-tem.usps.com domains.
$.servers[*].url
warn
paths-kebab-case
Path segments should use kebab-case.
$.paths[*]~
error
paths-no-trailing-slash
Paths must not end with a trailing slash.
$.paths[*]~
warn
paths-versioned
USPS API paths should include a version segment (e.g., /v3/).
$.paths[*]~
error
operation-summary-required
Every operation must have a summary.
$.paths[*][get,post,put,delete,patch]
warn
operation-summary-title-case
Operation summaries should start with USPS.
$.paths[*][get,post,put,delete,patch].summary
warn
operation-description-required
Every operation must have a description.
$.paths[*][get,post,put,delete,patch]
error
operation-id-required
Every operation must have an operationId.
$.paths[*][get,post,put,delete,patch]
warn
operation-id-camel-case
OperationIds should use camelCase.
$.paths[*][get,post,put,delete,patch].operationId
error
operation-tags-required
Every operation must have at least one tag.
$.paths[*][get,post,put,delete,patch].tags
warn
tags-global-defined
Global tags array should be defined.
$.tags
warn
parameter-description-required
Every parameter must have a description.
$.paths[*][get,post,put,delete,patch].parameters[*]
error
parameter-schema-required
Every parameter must have a schema.
$.paths[*][get,post,put,delete,patch].parameters[*]
warn
request-body-content-json
Request bodies should include application/json content type.
$.paths[*][post,put,patch].requestBody.content
error
response-success-required
Every operation must define at least a 2xx response.
$.paths[*][get,post,put,delete,patch].responses
warn
response-401-required
All authenticated operations should define a 401 response.
$.paths[*][get,post,put,delete,patch].responses
error
response-description-required
Every response must have a description.
$.paths[*][get,post,put,delete,patch].responses[*]
warn
schema-description-required
Top-level schemas should have a description.
$.components.schemas[*]
warn
schema-property-type-required
Schema properties should define a type.
$.components.schemas[*].properties[*]
error
security-schemes-defined
Security schemes must be defined in components.
$.components.securitySchemes
warn
security-bearer-auth
USPS APIs use OAuth 2.0 Bearer Token authentication.
$.components.securitySchemes.bearerAuth
error
get-no-request-body
GET operations must not have a request body.
$.paths[*].get.requestBody
warn
delete-no-request-body
DELETE operations should not have a request body.
$.paths[*].delete.requestBody
warn
post-has-request-body
POST operations creating resources should have a request body.
$.paths[*].post
info
microcks-operation-present
Operations should include x-microcks-operation for mock server compatibility.
$.paths[*][get,post,put,delete,patch]
info
query-params-casing
Query parameters should be camelCase (the dominant convention in this API).
$.paths[*][get,post,put,patch,delete].parameters[?(@.in=='query')]
warn
schema-names-casing
Component schema names should be PascalCase (the dominant convention in this API).
$.components.schemas
info
schema-properties-casing
Schema properties should be camelCase (the dominant convention in this API).
$.components.schemas[*].properties
warn
error-schema-defined
A shared error schema (Error) should be defined for error payloads.
$.components.schemas
warn
operation-documents-400
Operations should document a 400 response (documented on 83% of this API's operations).
$.paths[*][get,post,put,patch,delete].responses
warn
no-empty-descriptions
Descriptions must not be empty strings.
$..description
Spectral Ruleset
Work with this as data
Every ruleset here is available over the APIs.io API and to AI agents over MCP.