{ "openapi": "3.0.3", "info": { "title": "Fusio", "description": "Self-Hosted API Management for Builders.", "version": "1" }, "servers": [ { "url": "https://demo.fusio-project.org" } ], "paths": { "/authorization/whoami": { "get": { "tags": [ "authorization" ], "description": "Returns user data of the current authenticated user", "operationId": "authorization.getWhoami", "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Backend_User" } } } }, "4XX": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Common_Message" } } } }, "5XX": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Common_Message" } } } } }, "security": [ { "app": [ "authorization" ] } ] } }, "/authorization/revoke": { "post": { "tags": [ "authorization" ], "description": "Revoke the access token of the current authenticated user", "operationId": "authorization.revoke", "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Common_Message" } } } }, "4XX": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Common_Message" } } } }, "5XX": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Common_Message" } } } } }, "security": [ { "app": [ "authorization" ] } ] } } }, "components": { "schemas": { "Backend_App": { "description": "This object represents an app to access the API on-behalf of a user", "type": "object", "properties": { "id": { "description": "Unique identifier for the object", "type": "integer" }, "userId": { "type": "integer" }, "status": { "description": "Status of the object either 1 = active, 2 = pending, 3 = deactivated or 4 = deleted", "type": "integer" }, "name": { "description": "Unique name of the object", "type": "string" }, "url": { "description": "Url where the app is hosted", "type": "string" }, "parameters": { "description": "Optional URL-encoded parameters of the app i.e. foo=bar&bar=foo", "type": "string" }, "appKey": { "description": "The app key also known as client id which is generated on creation", "type": "string" }, "appSecret": { "description": "The app secret also known as client secret which is generated on creation", "type": "string" }, "metadata": { "$ref": "#/components/schemas/Common_Metadata" }, "date": { "description": "The create date of this object", "type": "string", "format": "date-time" }, "scopes": { "description": "A list of assigned scopes for this app", "type": "array", "items": { "type": "string" } }, "tokens": { "description": "A list of tokens which are assigned to this app", "type": "array", "items": { "$ref": "#/components/schemas/Backend_Token" } } } }, "Backend_Token": { "description": "This object represents a token, this an access token which was requested by a user", "type": "object", "properties": { "id": { "description": "Unique identifier for the object", "type": "integer" }, "status": { "description": "Status of the object either 1 = active or 2 = deleted", "type": "integer" }, "name": { "type": "string" }, "scopes": { "type": "array", "items": { "type": "string" } }, "ip": { "type": "string" }, "expire": { "type": "string", "format": "date-time" }, "date": { "type": "string", "format": "date-time" } } }, "Backend_User": { "description": "This object represents a user", "type": "object", "properties": { "id": { "description": "Unique identifier for the object", "type": "integer" }, "roleId": { "description": "A role which is assigned to the user", "type": "integer" }, "planId": { "description": "A plan which is assigned to the user", "type": "integer" }, "status": { "description": "Status of the object either 1 = active, 2 = disabled or 0 = deleted", "type": "integer" }, "name": { "description": "Unique name of the object", "type": "string" }, "email": { "description": "The email address of the user", "type": "string" }, "points": { "description": "Points assigned to the user", "type": "integer" }, "scopes": { "description": "List of scopes which are assigned to the user", "type": "array", "items": { "type": "string" } }, "apps": { "type": "array", "items": { "$ref": "#/components/schemas/Backend_App" } }, "metadata": { "$ref": "#/components/schemas/Common_Metadata" }, "date": { "description": "The insert date", "type": "string", "format": "date-time" } } }, "Common_Message": { "description": "Common error message", "type": "object", "properties": { "success": { "type": "boolean" }, "message": { "type": "string" }, "id": { "type": "string" } } }, "Common_Metadata": { "type": "object", "additionalProperties": { "type": "string" } } }, "securitySchemes": { "app": { "type": "oauth2", "flows": { "clientCredentials": { "tokenUrl": "https://demo.fusio-project.org/authorization/token", "refreshUrl": "https://demo.fusio-project.org/authorization/token", "scopes": { "authorization": "", "openid": "OpenID scope" } }, "authorizationCode": { "authorizationUrl": "https://demo.fusio-project.org/authorization/authorize", "tokenUrl": "https://demo.fusio-project.org/authorization/token", "refreshUrl": "https://demo.fusio-project.org/authorization/token", "scopes": { "authorization": "", "openid": "OpenID scope" } } } } } } }