{ "opencollection": "1.0.0", "info": { "name": "QaaS Backend admin Profile API", "version": "1.0.0" }, "items": [ { "info": { "name": "Profile", "type": "folder" }, "items": [ { "info": { "name": "Get Api Key", "type": "http" }, "http": { "method": "GET", "url": "{{baseUrl}}/api/profile/api-key", "auth": { "type": "bearer", "token": "{{bearerToken}}" } }, "docs": "Get the current user's API key for programmatic access.\n\nReturns the user's API key which can be used with:\n- Qiskit Provider for quantum circuit submission\n- Direct API calls as Bearer token\n- Any programmatic integration\n\nSecurity: Only returns the API key to the authenticated user themselves." }, { "info": { "name": "Regenerate Api Key", "type": "http" }, "http": { "method": "POST", "url": "{{baseUrl}}/api/profile/api-key/regenerate", "body": { "type": "json", "data": "{}" }, "auth": { "type": "bearer", "token": "{{bearerToken}}" } }, "docs": "Rotate the calling user's API key.\n\nBody: ``{\"expires_in\": \"1d\" | \"2w\" | \"1m\" | \"3m\" | \"6m\"}``.\nGenerates a new ``qaas_`` token, clears any prior revocation,\nand stamps ``api_key_expires_at = NOW() + interval``. The old key stops\nauthenticating immediately (the row's value is overwritten)." }, { "info": { "name": "Change Password", "type": "http" }, "http": { "method": "POST", "url": "{{baseUrl}}/api/profile/password", "body": { "type": "json", "data": "{}" }, "auth": { "type": "bearer", "token": "{{bearerToken}}" } }, "docs": "Rotate the calling user's password.\n\nBody: ``{\"current_password\": str, \"new_password\": str}``.\n\nThis is the ONLY protected endpoint that uses\n``get_current_user_allow_password_change`` — every other endpoint\nrejects callers whose JWT/API-key carries ``must_change_password=True``\nwith HTTP 403 ``force_password_change``. The flag is cleared here\nonce the new password is persisted, and a fresh access token is\nreturned in the response so the client can drop the now-stale\ntoken (whose payload still c" }, { "info": { "name": "Update Profile", "type": "http" }, "http": { "method": "PATCH", "url": "{{baseUrl}}/api/profile", "body": { "type": "json", "data": "{}" }, "auth": { "type": "bearer", "token": "{{bearerToken}}" } }, "docs": "Update the calling user's own profile fields.\n\nBody: ``{\"first_name\": str, \"last_name\": str}``.\n\nOnly the name is editable here. Email is the unique login identifier\nand is intentionally NOT mutable through this endpoint (changing it\nwould also require re-verification, which is out of scope).\n``first_name`` must not be blank or whitespace-only; ``last_name`` is\nrequired in the request but may be an empty string.\n\nA fresh access token is returned alongside the updated user so the\nclient can swap " } ] } ], "bundled": true }