Twilio SendGrid Mail API OpenAPI spec score
Octri scored the public spec at https://raw.githubusercontent.com/twilio/sendgrid-oai/main/spec/json/tsg_mail_v3.json for what a code generator can do with it. This is a reading of the document, not a grade of the API.
3 operations · 6 models · 2 tags · OpenAPI 3.1.0
Scored 29 October 2026 · fingerprint 1bf9b256780b… · spec version 1.0.0 · server api.sendgrid.com
Document last changed 29 October 2026.
Where the points went
Every rule, heaviest first, with what it cost this document, how much of the surface it touched, and where. The rule id links to what that rule checks.
| Rule | Weight | Result | Surface | Locations |
|---|---|---|---|---|
| Successful responses declare a schemaresponse-schema | 2.0 | 0.9 lost | 1 of 3 operations | POST /v3/mail/send |
| Shared models live in components and are $ref'dshared-schemas-referenced | 2.0 | Clean | 3 operations clean | Nothing found |
| Generated public names do not collideoperation-id-unique | 2.0 | Clean | 3 operations clean | Nothing found |
| Every path placeholder has a parameterpath-parameters-declared | 1.5 | Clean | 3 operations clean | Nothing found |
| Every operation declares an operationIdoperation-id-present | 1.0 | Clean | 3 operations clean | Nothing found |
| operationIds read as method namesoperation-id-naming | 1.0 | Clean | 3 operations clean | Nothing found |
| Operations carry a summary or descriptionoperation-documented | 1.0 | Clean | 3 operations clean | Nothing found |
| Request bodies are documentedrequest-body-documented | 1.0 | 0.5 lost | 1 of 3 operations | POST /v3/mail/send |
| Failure responses are declarederror-responses | 1.0 | Clean | 3 operations clean | Nothing found |
| Operations are taggedoperation-tagged | 1.0 | Clean | 3 operations clean | Nothing found |
| No duplicate or equivalent pathsduplicate-paths | 1.0 | Clean | 3 paths clean | Nothing found |
| Authentication is describedsecurity-declared | 1.0 | Clean | Declared | Nothing found |
| Parameters explain their purposeparameters-documented | 0.75 | Clean | 3 operations clean | Nothing found |
| A server URL is declaredserver-url | 0.5 | Clean | Declared | Nothing found |
What 8.6 means for an SDK
A strong reading, and the three rules that decide most of it.
A generator has what it needs here: typed methods, named models and doc comments that say something. What is left is polish, and it can wait until after the first release.
Three rules carry six of the 10 points between them. On this document they took 0.93.
−0.9
Successful responses declare a schema
1 of 3 operations
Clean
Shared models live in components and are $ref'd
3 operations clean
Clean
Generated public names do not collide
3 operations clean
What to change first
Every rule that deducted, in the order they cost.
0.9 lost
Successful responses declare a schema
Give the success response a schema, or a $ref to one in components. A 204 needs nothing.
Inside Octri this one has a one-click fix.
0.5 lost
Request bodies are documented
Describe the body, or the fields inside it. Field-level prose is the one that reaches the SDK's arguments.
Inside Octri this one has a one-click fix.
Where to go next
- Score your own spec The same fourteen rules, on any public URL. No account, and the spec is not kept.
- OpenAPI to a TypeScript SDK Published to npm, with the type definitions generated from your spec.
- OpenAPI to an MCP server The same endpoints, as tools an agent can call.
- How SDK Studio shapes a client Naming, hooks and packaging, decided before ten runtimes are built.
The spec at raw.githubusercontent.com is public. Octri keeps the `info` block, the score, and up to five sample finding locations per rule. The document itself is not stored and is not served from here. The audit predicts what an SDK generator can do with the description; it is not a security review, an uptime measurement or a critique of the API’s design. This page is not affiliated with Twilio SendGrid Mail API or Twilio SendGrid Support.