REST API v0
Public API for programmatic integrations and client SDK generation. Built with Django Ninja.
GraphQL API
Internal API used by the Next.js frontend. Built with Strawberry GraphQL.
REST API
| Property | Value |
|---|---|
| Base URL | /api/v0/ |
| Framework | Django Ninja |
| OpenAPI schema | /api/v0/openapi.json |
| Interactive docs | /api/v0/docs |
| Authentication | API key (header) |
| Rate limit | 10 requests/second per key |
Go SDK
github.com/owasp/nest-sdkPython SDK
owasp-nest-sdk on PyPITypeScript SDK
@owasp/nest-sdk on npmGraphQL API
| Property | Value |
|---|---|
| Endpoint | /graphql/ |
| Framework | Strawberry GraphQL |
| Playground | /graphql/ (development only) |
| Authentication | Session cookie (frontend) |
| Introspection | Disabled in production |
Authentication
REST API key
REST API requests must include a valid API key. Pass your key using theX-API-Key header:
In
Local and E2e environments, authentication is disabled so you can call the API without a key.GraphQL (frontend)
The GraphQL API uses Django session authentication. The Next.js frontend sends requests with the session cookie established at login. Direct use outside the frontend is possible in development when the GraphiQL playground is available at/graphql/.
SDK compatibility requirements
When contributing to the REST API, follow these rules to avoid breaking SDK generation:- Each endpoint must have a unique
operationIdin the OpenAPI schema. DuplicateoperationIds cause method name conflicts in generated SDKs. - The authentication class in
apps/api/rest/v0/__init__.pymust remain namedApiKey. Theapi_keyparameter name in SDKs is derived from this class name. Do not rename it.
