API Quality Leaderboard
We analyzed the OpenAPI specs of the world's most popular APIs. Here's how they rank on spec quality, completeness, and developer experience.
| Rank | API | Grade | Score | Endpoints | Schemas | |
|---|---|---|---|---|---|---|
| 1 | Petstore | A |
95
|
19 | 6 | ▶ |
|
19
Endpoints
13
Paths
6
Schemas
95
Score
Completeness
Documentation
Consistency
Best Practices
Issues Found
No info.contact defined
Some endpoints missing description
No info.license defined
Consider adding example values to schemas
No external documentation link
Some response schemas could be more specific
|
||||||
| 2 | Slack | A |
93
|
174 | 48 | ▶ |
|
174
Endpoints
174
Paths
48
Schemas
93
Score
Completeness
Documentation
Consistency
Best Practices
Issues Found
Inconsistent parameter naming (camelCase vs snake_case)
Some endpoints missing operationId
Several schemas lack property descriptions
No rate limit documentation in spec
Consider adding tags for better grouping
Some response codes could be more specific
No deprecation markers on legacy endpoints
|
||||||
| 3 | Stripe | A- |
91
|
587 | 1385 | ▶ |
|
587
Endpoints
414
Paths
1385
Schemas
91
Score
Completeness
Documentation
Consistency
Best Practices
Issues Found
Large spec size may slow down tooling
Some deprecated endpoints lack sunset dates
Inconsistent use of $ref vs inline schemas
Several endpoints missing examples
Webhook schemas not included in main spec
Consider splitting into tagged sub-specs
Some enum values lack descriptions
Version format could follow semver more strictly
Missing x-codeSamples for popular languages
Some nullable fields not marked explicitly
|
||||||
| 4 | Twilio | B+ |
88
|
197 | 148 | ▶ |
|
197
Endpoints
121
Paths
148
Schemas
88
Score
Completeness
Documentation
Consistency
Best Practices
Issues Found
Inconsistent path parameter naming
Some endpoints missing error response schemas
Multiple API versions in single spec
Several schemas use generic "object" type
Missing pagination pattern documentation
Some operationIds are auto-generated and unclear
Consider adding server URL variables
Some descriptions contain HTML markup
No x- rateLimit headers documented
Response examples could be more realistic
Some fields lack format specifiers (phone, email)
Consider adding x- codeSamples
|
||||||
| 5 | GitHub | B |
85
|
1145 | 923 | ▶ |
|
1145
Endpoints
758
Paths
923
Schemas
85
Score
Completeness
Documentation
Consistency
Best Practices
Issues Found
Unresolved $ref in webhook payload schemas
Inconsistent error response formats across endpoints
Many endpoints lack summary or description
Preview headers not documented in spec
Some schemas have circular references
Rate limit response not in spec
Several endpoints missing 4xx response schemas
Consider adding security scheme examples
Pagination schemas could be standardized
Some enum values undocumented
Missing x-github-specific extensions
|
||||||
| 6 | DigitalOcean | C |
75
|
628 | 0 | ▶ |
|
628
Endpoints
427
Paths
0
Schemas
75
Score
Completeness
Documentation
Consistency
Best Practices
Issues Found
No reusable schemas defined (0 schemas)
Multiple endpoints missing required responses
Several $ref pointers are unresolvable
Inconsistent response envelope structure
Many endpoints missing operationId
No pagination pattern documented
Error schemas not standardized
Missing request body schemas on POST endpoints
No versioning strategy documented
Some paths use inconsistent casing
Missing 429 rate limit response
Consider adding examples to all endpoints
Server URLs should use variables
|
||||||
Where does your API rank?
Get your OpenAPI spec quality score in seconds. Free, no signup required.
Check Your APIMethodology
Each API's OpenAPI specification is scored on a 100-point scale across four categories: Completeness (endpoint coverage, schema definitions, response types), Documentation (descriptions, summaries, examples), Consistency (naming conventions, HTTP method usage, parameter styles), and Best Practices (operationIds, versioning, contact info, license). Grades are assigned: A (90-100), B (80-89), C (70-79), D (60-69), F (below 60). Scores are updated monthly based on the latest publicly available spec.