{ "opencollection": "1.0.0", "info": { "name": "papi alert-query-proxy auth API", "version": "2.0.0" }, "items": [ { "info": { "name": "auth", "type": "folder" }, "items": [ { "info": { "name": "Obtain Token", "type": "http" }, "http": { "method": "POST", "url": "{{baseUrl}}/api/v3/token/" }, "docs": "Obtain JWT access and refresh tokens.\n\nAccepts either username or email with password for authentication.\nCompatible with Django REST Framework SimpleJWT token endpoint.\nSupports both application/json and application/x-www-form-urlencoded.\n\nArgs:\n request: The incoming HTTP request.\n\nReturns:\n TokenResponse with access and refresh JWT tokens.\n\nRaises:\n HTTPException: 401 if credentials are invalid." }, { "info": { "name": "Refresh Token", "type": "http" }, "http": { "method": "POST", "url": "{{baseUrl}}/api/v3/token/refresh/", "body": { "type": "json", "data": "{}" } }, "docs": "Refresh an access token using a refresh token.\n\nAccepts {\"refresh\": \"\"} in the request body, matching Django SimpleJWT.\n\nArgs:\n body: Request body containing the refresh token.\n\nReturns:\n TokenResponse with new access and refresh tokens.\n\nRaises:\n HTTPException: 401 if refresh token is invalid." }, { "info": { "name": "Verify Token", "type": "http" }, "http": { "method": "POST", "url": "{{baseUrl}}/api/v3/token/verify/", "body": { "type": "json", "data": "{}" } }, "docs": "Verify a JWT token is valid and not expired.\n\nMirrors Django SimpleJWT TokenVerifyView. Returns {} on success.\n\nArgs:\n body: Request body containing the token to verify.\n\nReturns:\n Empty dict on success.\n\nRaises:\n HTTPException: 401 if token is invalid or expired." }, { "info": { "name": "Username Password Login", "type": "http" }, "http": { "method": "POST", "url": "{{baseUrl}}/api/v3/username-password-login", "params": [ { "name": "days", "value": "", "type": "query", "description": "Token lifetime in days" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Authenticate user with username/password and return access token.\n\nThis endpoint is provided for UI login compatibility with Django.\nIt returns an access token with a custom lifetime based on the `days` parameter.\n\nArgs:\n request: Token request containing username/email and password.\n days: Token lifetime in days (default 1, max 30).\n\nReturns:\n UsernamePasswordLoginResponse with access token and lifetime string.\n\nRaises:\n HTTPException: 400 if credentials are invalid." }, { "info": { "name": "Exchange an external token for a PAPI JWT", "type": "http" }, "http": { "method": "POST", "url": "{{baseUrl}}/api/v3/token/exchange/", "body": { "type": "json", "data": "{}" } }, "docs": "Exchange an Auth0 access token for a PAPI JWT.\n\nThis endpoint implements a simplified RFC 8693 token exchange. It\nvalidates the Auth0 token against Auth0's /userinfo endpoint, looks up\nthe corresponding PAPI user by email, and issues a PAPI JWT.\n\nIntended for use by the MCP server after completing an OAuth 2.1 flow\nwith Auth0 — the MCP server receives an Auth0 access token from the\ninteractive login and exchanges it here for a PAPI JWT that can be\nused for API calls." } ] } ], "bundled": true }