SewerAI · OpenAPI Overlay 1.0.0
API Evangelist identity and security overlay for the SewerAI Enterprise API
6 actions
6 updates
documentation
extends
openapi/_original/sewerai-swagger.json
Generated by API Evangelist
Written by API Evangelist tooling for SewerAI's API. It is a proposal applied on top of the contract, not a document SewerAI publishes.
What the actions change
titledescriptionversiontermsOfServicecontactlicensehostbasePath
Targets 3
$.info
$
$.securityDefinitions
OpenAPI Overlay
overlay: 1.0.0
info:
title: API Evangelist identity and security overlay for the SewerAI Enterprise API
version: 1.0.0
extends: openapi/_original/sewerai-swagger.json
x-generated: '2026-08-27'
x-method: generated
x-source: openapi/_original/sewerai-swagger.json
x-target-format: swagger-2.0
x-rationale: >-
The contract SewerAI publishes at https://api.sewerai.com/swagger.json is a drf-yasg document
whose identity block was never edited off the framework's default template. It calls itself
"Snippets API" with the description "Test description", points termsOfService at
https://www.google.com/policies/terms/, gives contact@snippets.local as the contact email, and
declares BSD as the license — none of which is SewerAI's. It also names
574ea6n6tdopt2qigvs3hjzoha0nhhvj.lambda-url.us-west-2.on.aws as its host, which is the AWS Lambda
function URL behind the API rather than api.sewerai.com, the host the documentation and every
worked example actually use. Finally, its sole securityDefinition is HTTP Basic, the Django REST
framework default, while the documented API authenticates with an `Authorization: X-SAI {key}`
API key or a JWT bearer token.
This overlay records those corrections WITHOUT mutating the harvested original. Everything it
asserts is taken from https://docs.sewerai.com/ and https://www.sewerai.com/; nothing is invented.
Apply with any Overlay 1.0.0 processor against openapi/_original/sewerai-swagger.json.
actions:
- target: $.info
description: >-
Replace the unedited drf-yasg template identity with SewerAI's own, as stated by the SewerAI API
reference (title "SewerAI API v1.0.0") and the SewerAI website.
update:
title: SewerAI API
description: >-
Enterprise REST API for the SewerAI PIONEER platform. Transmit, store and retrieve sewer asset
inspection information — organizations, assets, projects, inspections, NASSCO-coded
observations, videos and exports — and initiate AutoCode AI computer-vision runs to retrieve
automatically coded results. NASSCO PACP, LACP and MACP data shapes throughout.
version: v1.0.0
termsOfService: https://www.sewerai.com/terms
contact:
name: SewerAI API Support
email: info@sewerai.com
url: https://docs.sewerai.com/
license:
name: Proprietary — see the SewerAI Terms & Conditions
url: https://www.sewerai.com/terms
- target: $
description: >-
Correct the host to the documented, publicly callable API host. The original declares the raw
AWS Lambda function URL; https://docs.sewerai.com/#example-scripts sets
BASE_URL = "https://api.sewerai.com/v1".
update:
host: api.sewerai.com
basePath: /
schemes:
- https
- target: $.securityDefinitions
description: >-
Add the two authentication schemes SewerAI actually documents at
https://docs.sewerai.com/#authentication-1. The original declares only HTTP Basic, which is the
framework default and is documented nowhere.
update:
tokenAuth:
type: apiKey
in: header
name: Authorization
description: >-
Token-based authentication with the required prefix "X-SAI". Send
`Authorization: X-SAI {API_KEY}`. Keys are issued by SewerAI on request to info@sewerai.com;
there is no self-serve signup. See authentication/sewerai-authentication.yml.
jwtAuth:
type: apiKey
in: header
name: Authorization
description: >-
JWT bearer authentication. Send `Authorization: Bearer {token}` using a token obtained from
POST /token/ and renewed with POST /token/refresh/. Expressed as an apiKey header scheme
because Swagger 2.0 has no bearer scheme type.
- target: $
description: Apply the documented schemes as the root security requirement.
update:
security:
- tokenAuth: []
- jwtAuth: []
- target: $.info
description: >-
Record the domain standard the contract's own schemas implement, so a reader can see the
NASSCO conformance without reverse-engineering the field names. See
conformance/sewerai-conformance.yml.
update:
x-domain-standard:
id: nassco-pacp
name: NASSCO PACP / MACP / LACP
body: National Association of Sewer Service Companies
claim: NASSCO-Certified Software for PACP LACP MACP import and export
claim_source: https://www.sewerai.com/products/integrations
- target: $.info
description: >-
Record the runtime characteristics an integrator has to discover by probing, because they are
published nowhere. Every value here is a measured absence, not a recommendation.
update:
x-runtime-notes:
pagination: >-
None. List operations return unbounded arrays; the documented `Paginated*List` schema names
resolve to anonymous arrays with no count/next/previous envelope and no limit/offset/page
parameter.
rate_limits: None published; no RateLimit-* or Retry-After headers observed.
idempotency: >-
None. No Idempotency-Key header or replay semantics. POST /v1/inspections/AutoCode/ starts a
billable AI run and is not safe to retry blind.
errors: >-
No 4xx or 5xx response is declared on any of the 476 operations. Live responses use three
different envelopes — {"detail":...}, a field-keyed validation map, and {"message":...}.
See errors/sewerai-problem-types.yml.
request_id: Correlate with the x-amzn-requestid response header; no SewerAI-branded id exists.