{"openapi":"3.0.3","info":{"title":"NIGHTOWL\u00ae API","description":"<p>The <strong>NIGHTOWL\u00ae REST API<\/strong> in v1.5.1 provides programmatic access to the NIGHTOWL ecosystem.<\/p><p style=color:#666><strong>Copyright \u00a9 2026 DGTL.ONE Stuttgart. All Rights Reserved.<\/strong>","termsOfService":"https:\/\/nightowl.app\/terms","contact":{"name":"Support","url":"https:\/\/nightowl.app\/support","email":"hello@dgtl.one"},"version":"1.5.1"},"servers":[{"url":"https:\/\/api.nightowl.app","description":"NIGHTOWL\u00ae API Server (Production)"}],"tags":[{"name":"System","description":"Private and sensitive endpoints to administer the NIGHTOWL\u00ae system and it's engine."},{"name":"Main","description":"Provides general universal endpoints"},{"name":"Login","description":"Provides endpoints for user authentication and credentials reset."},{"name":"Search","description":"Provides endpoints to search for resources (universal)"},{"name":"Notifications","description":"Provides endpoints to manage and send new notifications"},{"name":"Webhooks","description":"Provides endpoints for incoming webhooks from external services"},{"name":"Shops","description":"Provides public endpoints for shop frontends"},{"name":"Organizations","description":"Provides endpoints for managing organizations"},{"name":"Payouts","description":"Provides endpoints to retrieve payout details"},{"name":"Stats","description":"Provides endpoints to retrieve stats to display on the dashboard"},{"name":"Purchases","description":"Provides endpoints to manage purchases"},{"name":"Customers","description":"Provides endpoints to manage and retrieve customers"},{"name":"Events","description":"Provides endpoints to manage and retrieve events"},{"name":"Users","description":"Provides endpoints to manage users"},{"name":"Roles","description":"Provides endpoints to manage and create new roles"},{"name":"Locations","description":"Provides endpoints to manage and find locations"},{"name":"Artists","description":"Provides endpoints to manage and retrieve artists"},{"name":"Genres","description":"Provides endpoints to manage and retrieve genres"},{"name":"GuestPresets","description":"Provides endpoints to manage and retrieve guest presets"},{"name":"Guestlists","description":"Provides endpoints to manage and retrieve guestlists"},{"name":"Guests","description":"Provides endpoints to manage and retrieve guests\/tickets"},{"name":"GuestGroups","description":"Provides endpoints to manage and retrieve guest groups which are created automatically"},{"name":"Tickets","description":"Provides endpoints to retrieve tickets and their information in various formats"},{"name":"Discounts","description":"Provides endpoints to manage and retrieve discounts"},{"name":"Exporter","description":"Provides endpoints to export data in various formats"}],"paths":{"\/v1\/admin\/init.database":{"get":{"summary":"Initialize the database","description":"This is a private administration endpoint that can only be executed using a root-token. Administration functions are critical in nature and should be used with utmost caution.\n\nThis method should only be executed on new servers or staging systems as it performs a complete reset of the database and all its data. All tables will be recreated, and the history will be erased. It is important to note that executing this method will delete all data permanently.\n\nNote: This method is intended for use in development and testing environments only and should not be used in production systems!\n\n<h3>Required role permissions:<\/h3>`$permittedTo('admin', 'create', 'database')`","operationId":"admin.database.create","tags":["System"],"security":[{"TokenAuth":[]}],"responses":{"200":{"description":"Database initialized","content":{"application\/json":{"schema":{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"description":"Database initialized","type":"boolean","example":true,"default":true}}}}}},"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}}},"\/v1\/admin\/create.startdata":{"get":{"summary":"Create start data","description":"This endpoint creates the first organization, a root user and default roles in the system. It is a private administration endpoint that can only be executed using a root token with special access. Administration functions are critical in nature and should be used with utmost caution.\n\n<h3>Required role permissions:<\/h3>`$permittedTo('admin', 'create', 'database.startdata')`","operationId":"admin.database.startdata.create","tags":["System"],"security":[{"TokenAuth":[]}],"responses":{"200":{"description":"Startdata created","content":{"application\/json":{"schema":{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"description":"Startdata created","type":"boolean","example":true,"default":true}}}}}},"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}}},"\/v1\/admin\/create.testdata":{"get":{"summary":"Create testing data","description":"The `create.testdata` endpoint is a private administration function that can only be executed using a root token with specific access. This endpoint is of critical nature and is primarily used for testing purposes during development.\n\nThis endpoints generates lots of test resources in the system. It is used to test the system's performance and to ensure that the system can handle large amounts of data.\n\n<h3>Required role permissions:<\/h3>`$permittedTo('admin', 'create', 'database.testdata')`","operationId":"admin.database.testdata.create","tags":["System"],"security":[{"TokenAuth":[]}],"responses":{"200":{"description":"Testdata created","content":{"application\/json":{"schema":{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"description":"Testdata created","type":"boolean","example":true,"default":true}}}}}},"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}}},"\/v1\/admin\/composer.update":{"get":{"summary":"Composer update and initialize","description":"The `composer.update` function is a critical administration endpoint that can only be executed using a root token with special access. This endpoint is used to update external libraries, generate a new classmap, and perform other related tasks in *NIGHTOWL*.\n\nWhen executed, the function checks for any available updates for external libraries and downloads them if necessary. It also generates a new classmap, which maps the class names to the files they are located in. This ensures that the autoloading mechanism used by the PHP environment works correctly and efficiently.\n\nIt is important to note that this function should only be executed when external libraries are being updated, new libraries are added during development, or new classes are created. Running this function unnecessarily can cause unexpected issues in the development environment.\n\nTo execute this function, a root token with special access is required. This access should only be given to trusted individuals who are responsible for maintaining the development environment.\n\n<h3>Required role permissions:<\/h3>`$permittedTo('admin', 'update', 'composer')`","operationId":"admin.composer.update","tags":["System"],"security":[{"TokenAuth":[]}],"responses":{"200":{"description":"Composer packages updated","content":{"application\/json":{"schema":{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"description":"Composer packages updated","type":"string","example":"Composer Packages Updated"}}}}}},"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}}},"\/v1\/admin\/list.events":{"get":{"summary":"Get all available events","description":"The `list.events` method is an administration function that allows listing all available events through the interface.\n\nEach event follows the pattern `{EventGroup}.{EventRessource}.{EventAction}`. The Event Group is the parent group of functions, and the Event Ressource describes the function within the group. The Event Action follows the CRUD (Create, Read, Update, Delete) principle and represents the action performed on the resource *(Get = Read)*.\n\nEach event also includes a short descriptive comment on the corresponding action. Events are triggered shortly before and after the actual method, and they are capable of stopping individual actions if no permissions are available. Therefore, this listing can also be used to adjust and define permissions granularly for individual subjects such as users, organizations, roles, and events.\n\n<h3>Required role permissions:<\/h3>`$permittedTo('admin', 'get', 'events')`","operationId":"admin.events.get","tags":["System"],"security":[{"TokenAuth":[]}],"responses":{"200":{"description":"A full list of all available events with their descriptions","content":{"application\/json":{"schema":{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"description":"A full list of all available events with their descriptions","additionalProperties":{"description":"The event id","type":"array","items":{"type":"string","description":"The event description"}}}}}}}},"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}}},"\/v1\/admin\/list.permissions":{"get":{"summary":"Get all available permissions","description":"This endpoint lists all the possible permissions within `NIGHTOWL`. It provides a comprehensive array of permissions that can serve as a guide for system administrators to understand the full scope of the available permissions.\n\nOne of the major benefits of using this endpoint is that it can be used as the foundation for creating an unlimited role that provides customers with access to all the features of the system.\n\n<h3>Required role permissions:<\/h3>`$permittedTo('admin', 'get', 'permissions')`","operationId":"admin.permissions.get","tags":["System"],"security":[{"TokenAuth":[]}],"responses":{"200":{"description":"Success response","content":{"application\/json":{"schema":{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"$ref":"#\/components\/schemas\/Permissions"}}}}}},"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}}},"\/v1\/admin\/list.mailing":{"get":{"summary":"Get all mail templates","description":"This private endpoint lists all outgoing email templates with their corresponding, possible placeholders.\n\nIt can serve as a guide for system administrators to understand the full scope of the available emails.\n\n<h3>Required role permissions:<\/h3>`$permittedTo('admin', 'get', 'mailtemplates')`","operationId":"admin.mailtemplates.get","tags":["System"],"security":[{"TokenAuth":[]}],"responses":{"200":{"description":"A full list of all available mail templates with their placeholders","content":{"application\/json":{"schema":{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"description":"A full list of all available mail templates with their placeholders","type":"array","items":{"type":"object","properties":{"template":{"type":"string","description":"The template name"},"placeholders":{"type":"object","description":"The template placeholders","additionalProperties":{"type":"string","description":"The placeholder description"}}}}}}}}}},"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}}},"\/v1\/admin\/mailpreview":{"get":{"summary":"Render an email preview","description":"This endpoint renders an email template with the provided data and returns the rendered email template in TXT and HTML format.\n\nPlease note that to be able to run this endpoint successfully, you need to have some undocumented information about the email template name and the placeholder data.","operationId":"admin.mailpreview.create","tags":["System"],"requestBody":{"description":"Email template and data","required":true,"content":{"application\/json":{"schema":{"required":["template"],"properties":{"template":{"type":"string","description":"The email template name"},"language":{"type":"string","description":"The language to use for the template","minLength":2,"maxLength":2,"default":"de"}}}}}},"responses":{"200":{"description":"Rendered email template","content":{"text\/html":{"schema":{"type":"string","description":"The email template in HTML format"}}}},"400":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Either the template name or the data is invalid or missing","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"renderingError"},"message":{"type":"string","description":"A description of the error","example":"Either the template name or the data is invalid or missing"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}},{"description":"Missing or invalid fields: template","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"inputDataInvalid"},"message":{"type":"string","description":"A description of the error","example":"Missing or invalid fields: template"},"details":{"type":"object","description":"Additional error details (if available)","properties":{"invalid_fields":{"type":"array","description":"The missing or invalid fields","example":["template"],"items":{"type":"string","enum":["template"]}}}}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"renderingError":{"summary":"renderingError","value":{"error":{"code":400,"key":"renderingError","message":"Either the template name or the data is invalid or missing","details":[]},"result":null}},"inputDataInvalid":{"summary":"inputDataInvalid","value":{"error":{"code":400,"key":"inputDataInvalid","message":"Missing or invalid fields: template","details":{"invalid_fields":["template"]}},"result":null}}}}},"description":"&#9702; `renderingError`: Either the template name or the data is invalid or missing<br>&#9702; `inputDataInvalid`: Missing or invalid fields: template"},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}}},"\/v1\/admin\/spotify.connect":{"get":{"summary":"Spotify connect","description":"The `spotify.connect` endpoint is a private administration function that can only be executed using a root token with special access. System functions like this one are considered critical in nature.\n\nIt is used to connect\/reconnect the Spotify API to the system.","operationId":"admin.spotify.reconnect.get","tags":["System"],"responses":{"200":{"description":"Spotify reconnected","content":{"application\/json":{"schema":{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"description":"Spotify reconnected","type":"boolean","example":true,"default":true}}}}}},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}}},"\/v1\/admin\/spotify.callback":{"get":{"summary":"Spotify callback","description":"This endpoint is used to respond to the Spotify API callback.","operationId":"admin.spotify.callback.get","tags":["System"],"responses":{"200":{"description":"Spotify callback","content":{"application\/json":{"schema":{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"description":"Spotify callback","type":"boolean","example":true,"default":true}}}}}},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}}},"\/v1\/admin\/rebuild.searchindex":{"get":{"summary":"Rebuild search index","description":"This endpoint is used to rebuild the search index. It is a private administration function that can only be executed using a root token with special access. System functions like this one are considered critical in nature.\n\nIn particular, this endpoint is used to rebuild the search index after a database reset or when the search index is corrupted and needs updated data.\n\n<h3>Required role permissions:<\/h3>`$permittedTo('admin', 'get', 'rebuild.search.index')`","operationId":"admin.rebuild.search.index.get","tags":["System"],"security":[{"TokenAuth":[]}],"responses":{"200":{"description":"Successfully rebuilt search index","content":{"application\/json":{"schema":{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"description":"Successfully rebuilt search index","type":"boolean","example":true}}}}}},"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}}},"\/v1\/admin\/debug.test":{"get":{"summary":"Debug test","description":"The `debug.test` endpoint is a private administration function that can only be executed using a root token with special access. System functions like this one are considered critical in nature.\n\nThis endpoint serves as a universal testing method that can be used during development to test individual functions. After testing, it should be reset and returns a boolean value without executing any actions.","operationId":"admin.debug.get","tags":["System"],"responses":{"200":{"description":"Any response","content":{"application\/json":{"schema":{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"description":"Any response","type":"string","example":"Any response"}}}}}},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}}},"\/v1":{"get":{"summary":"Get general API information","description":"Use this default root endpoint to get general information about the API and to check if your authentication is working without having to perform a specific action.","operationId":"main.status.get","tags":["Main"],"responses":{"200":{"description":"API general information","content":{"application\/json":{"schema":{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"description":"API general information","properties":{"staging":{"type":"boolean","description":"The current API environment"},"version":{"type":"string","example":"1.0.0","description":"The current API version"},"authenticated":{"type":"boolean","description":"Indicates if the user sent a valid authentication token"},"language":{"type":"string","description":"ISO 639-1 language code of the API","example":"en"},"time":{"type":"string","description":"ISO 8601 formatted date and time on the server","example":"2025-12-24T00:00:00+00:00"},"sysinfo":{"type":"object","description":"System information, only visible to administrators"},"docs":{"type":"object","description":"The Open API documentation URLs","properties":{"json":{"type":"string","description":"The API documentation URL in Open API JSON format","example":"https:\/\/api-staging.nightow-event.app\/v1\/spec3.json"},"yaml":{"type":"string","description":"The API documentation URL in Open API YAML format","example":"https:\/\/api-staging.nightow-event.app\/v1\/spec3.yaml"},"html":{"type":"string","description":"The API documentation URL in HTML format","example":"https:\/\/api-staging.nightow-event.app\/v1\/spec3.html"}}}},"type":"object"}}}}}},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}}},"\/v1\/app\/{platform}":{"get":{"summary":"Download scanner app","description":"This endpoint redirects the user to the download page of the NIGHTOWL\u00ae scanner app for iOS or Android.\n\nhttps:\/\/{{domains.api}}\/v1\/app\/iphone","operationId":"main.app.download.get","tags":["Main"],"parameters":[{"in":"path","name":"platform","schema":{"type":"string","enum":["iphone","android"],"default":"iphone"},"required":true,"description":"The platform to redirect to"}],"responses":{"200":{"description":"AppStore Download","content":{"application\/json":{"schema":{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"description":"AppStore Download","type":"string","example":"AppStore Download"}}}}}},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}}},"\/v1\/support\/{type}\/{platform}":{"get":{"summary":"Support links","description":"This endpoint redirects the user to the support page of NIGHTOWL\u00ae for WhatsApp or Instagram.","operationId":"main.support.links.get","tags":["Main"],"parameters":[{"in":"path","name":"type","schema":{"type":"string","enum":["b2c","b2b"],"default":"b2c"},"required":true,"description":"The customer type"},{"in":"path","name":"platform","schema":{"type":"string","enum":["whatsapp","instagram","facebook"],"default":"whatsapp"},"required":true,"description":"The platform to redirect to"}],"responses":{"200":{"description":"AppStore Download","content":{"application\/json":{"schema":{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"description":"AppStore Download","type":"string","example":"AppStore Download"}}}}}},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}}},"\/v1\/taxrates":{"get":{"summary":"Get available tax rates","description":"This endpoint returns the available tax rates to choose from when creating or updating an event.\n\nThe unique tax rate id is a combination of the country code and the tax rate type like this: `de.standard`.","operationId":"main.taxrates.get","tags":["Main"],"security":[{"TokenAuth":[]}],"responses":{"200":{"description":"Available tax rates","content":{"application\/json":{"schema":{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"description":"Available tax rates","additionalProperties":{"type":"object","description":"Tax rates in a specific country","additionalProperties":{"type":"object","description":"Tax rate version","properties":{"value":{"type":"number","description":"The rate in percent","format":"float","example":19,"minimum":0,"maximum":100},"name":{"type":"string","description":"The human friendly name of the tax rate"}}}}}}}}}},"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}}},"\/v1\/textprocessor":{"post":{"summary":"Process text","description":"This endpoint processes the provided text using AI and returns the processed text.","operationId":"main.textprocessor.create","tags":["Main"],"security":[{"TokenAuth":[]}],"requestBody":{"description":"The text to process","required":true,"content":{"application\/json":{"schema":{"required":["type","text"],"properties":{"type":{"type":"string","description":"The processing model","enum":["grammar","event-title","event-description"]},"text":{"type":"string","description":"The text to process"}}}}}},"responses":{"200":{"description":"The processed text","content":{"application\/json":{"schema":{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"description":"The processed text","type":"string","example":"Lorem ipsum dolor sit amet, consectetur adipiscing elit."}}}}}},"400":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Missing or invalid fields: type, text","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"inputDataInvalid"},"message":{"type":"string","description":"A description of the error","example":"Missing or invalid fields: type, text"},"details":{"type":"object","description":"Additional error details","properties":{"invalid_fields":{"type":"array","description":"The missing or invalid fields","example":["type","text"],"items":{"type":"string","enum":["type","text"]}}}}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"inputDataInvalid":{"summary":"inputDataInvalid","value":{"error":{"code":400,"key":"inputDataInvalid","message":"Missing or invalid fields: type, text","details":{"invalid_fields":["type","text"]}},"result":null}}}}},"description":"&#9702; `inputDataInvalid`: Missing or invalid fields: type, text"},"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}}},"\/v1\/spec3.{format}":{"get":{"summary":"Get the API documentation","description":"This endpoint returns the API documentation in Open API format in version 3.0.0. You can choose between HTML, JSON and YAML format.","operationId":"main.documentation.get","tags":["Main"],"parameters":[{"in":"path","name":"format","schema":{"type":"string","enum":["json","yaml","yml","html"],"default":"json"},"required":true,"description":"The format of the API documentation"}],"responses":{"200":{"description":"Open API documentation","content":{"application\/json":{"schema":{"type":"object","description":"The API documentation in Open API JSON format"},"examples":{"jsonExample":{"summary":"JSON example","externalValue":"https:\/\/api-staging.nightow-event.app\/v1\/spec3.json"}}},"text\/yaml":{"schema":{"type":"string","description":"The API documentation in Open API YAML format"},"examples":{"yamlExample":{"summary":"YAML example","externalValue":"https:\/\/api-staging.nightow-event.app\/v1\/spec3.yaml"}}},"text\/html":{"schema":{"type":"string","description":"The API documentation in HTML format"},"examples":{"htmlExample":{"summary":"HTML example","externalValue":"https:\/\/api-staging.nightow-event.app\/v1\/spec3.html"}}}}},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}}},"\/v1\/login":{"post":{"summary":"Get new authentication tokens","description":"The `login` endpoint is publicly accessible and is used for user authentication. This endpoint returns a JSON object containing a `token` and `expiring` field. The `token` is required for accessing all protected endpoints in the `Authorization` header. The `expiring` field indicates when the token will expire. After expiration, access with the old token will be denied.\n\nAlso note: To prevent abuse and potential security breaches, this method has a rate limit of one request every five seconds.","operationId":"login.token.get","tags":["Login"],"requestBody":{"description":"Login credentials","required":true,"content":{"application\/json":{"schema":{"required":["email","password"],"properties":{"email":{"type":"string","description":"The email address of the user","format":"email"},"password":{"type":"string","description":"The password of the user","format":"password"},"long_session":{"type":"boolean","description":"Whether to create a long session (14 days) or a short session (1 day)","default":false,"nullable":true},"device_id":{"type":"string","description":"The unique device identifier of the user","nullable":true}}}}}},"responses":{"200":{"description":"Successful login","content":{"application\/json":{"schema":{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"description":"Successful login","properties":{"id":{"type":"string","description":"The session identifier","example":"abc123"},"token":{"type":"string","description":"The access token","example":"abcdefghijk1234567890"},"websocket":{"type":"string","description":"The websocket path","example":"wss:\/\/sockets..."},"expiring":{"type":"string","description":"The date and time when the access token expires","example":"2025-12-24T00:00:00+00:00"}},"type":"object"}}}}}},"400":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Email or password was incorrect or user was not found","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"incorrectEmailOrPassword"},"message":{"type":"string","description":"A description of the error","example":"Email or password was incorrect or user was not found"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}},{"description":"A login is not possible because there is no organization to choose from","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"notPartOfAnyOrganization"},"message":{"type":"string","description":"A description of the error","example":"A login is not possible because there is no organization to choose from"},"details":{"type":"object","description":"Additional error details (if available)"}}},"result":{"description":"No result","nullable":true,"default":null}}},{"description":"Missing or invalid fields: email, password","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"inputDataInvalid"},"message":{"type":"string","description":"A description of the error","example":"Missing or invalid fields: email, password"},"details":{"type":"object","description":"Additional error details (if available)","properties":{"invalid_fields":{"type":"array","description":"The missing or invalid fields","example":["email","password"],"items":{"type":"string","enum":["email","password"]}}}}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"incorrectEmailOrPassword":{"summary":"incorrectEmailOrPassword","value":{"error":{"code":400,"key":"incorrectEmailOrPassword","message":"Email or password was incorrect or user was not found","details":[]},"result":null}},"notPartOfAnyOrganization":{"summary":"notPartOfAnyOrganization","value":{"error":{"code":400,"key":"notPartOfAnyOrganization","message":"A login is not possible because there is no organization to choose from","details":[]},"result":null}},"inputDataInvalid":{"summary":"inputDataInvalid","value":{"error":{"code":400,"key":"inputDataInvalid","message":"Missing or invalid fields: email, password","details":{"invalid_fields":["email","password"]}},"result":null}}}}},"description":"&#9702; `incorrectEmailOrPassword`: Email or password was incorrect or user was not found<br>&#9702; `notPartOfAnyOrganization`: A login is not possible because there is no organization to choose from<br>&#9702; `inputDataInvalid`: Missing or invalid fields: email, password"},"429":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Too many failed login attempts. Please try again later","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":429},"key":{"type":"string","description":"Unique error key","example":"tooManyFailedLogins"},"message":{"type":"string","description":"A description of the error","example":"Too many failed login attempts. Please try again later"},"details":{"type":"object","description":"Additional error details","properties":{"reset_in_seconds":{"description":"The number of seconds until the rate limit is reset","example":300,"type":"integer"},"reset_at":{"description":"The unix timestamp when the rate limit is reset","example":1640995200,"type":"integer"}}}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"tooManyFailedLogins":{"summary":"tooManyFailedLogins","value":{"error":{"code":429,"key":"tooManyFailedLogins","message":"Too many failed login attempts. Please try again later","details":{"reset_in_seconds":300,"reset_at":1640995200}},"result":null}}}}},"description":"&#9702; `tooManyFailedLogins`: Too many failed login attempts. Please try again later"},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}},"delete":{"summary":"Invalidate current session (logout)","description":"This endpoint allows users to terminate their current session. When invoked, it invalidates the current session token. After logging out, the user will no longer be able to access any protected endpoints until they log in again.","operationId":"login.token.delete","tags":["Login"],"security":[{"TokenAuth":[]}],"responses":{"200":{"description":"Success response","content":{"application\/json":{"schema":{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"description":"Success response","type":"boolean","example":true,"default":true}}}}}},"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}}},"\/v1\/login\/reset":{"post":{"summary":"Reset Password (request)","description":"The Reset Login Endpoint is a publicly accessible endpoint used for restoring lost access credentials. When invoked, it sends an email to the user containing a special link with a token that grants permission to reset the account password. For security reasons, this endpoint always returns a positive boolean value, indicating that the reset link has been sent, regardless of whether the email address provided is registered in the system.\n\nTo prevent abuse and potential security breaches, this method has a rate limit of one request every five seconds. Additionally, the reset link is only valid for 30 minutes from the time it is sent, after which it expires.\n\nThe email sent can be composed in a desired target language by passing the corresponding language parameter. However, if the language is not supported, the email is always sent in German as a fallback.","operationId":"login.reset.create","tags":["Login"],"requestBody":{"description":"Reset Password body","required":true,"content":{"application\/json":{"schema":{"required":["email"],"properties":{"email":{"type":"string","description":"The email address of the user to reset"},"language":{"type":"string","description":"The language to use for the email","minLength":2,"maxLength":2,"default":"de"}}}}}},"responses":{"200":{"description":"Success response","content":{"application\/json":{"schema":{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"description":"Success response","type":"boolean","example":true,"default":true}}}}}},"400":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Missing or invalid fields: email","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"inputDataInvalid"},"message":{"type":"string","description":"A description of the error","example":"Missing or invalid fields: email"},"details":{"type":"object","description":"Additional error details","properties":{"invalid_fields":{"type":"array","description":"The missing or invalid fields","example":["email"],"items":{"type":"string","enum":["email"]}}}}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"inputDataInvalid":{"summary":"inputDataInvalid","value":{"error":{"code":400,"key":"inputDataInvalid","message":"Missing or invalid fields: email","details":{"invalid_fields":["email"]}},"result":null}}}}},"description":"&#9702; `inputDataInvalid`: Missing or invalid fields: email"},"429":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You have reached the rate limit for this resource","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":429},"key":{"type":"string","description":"Unique error key","example":"rateLimitExceeded"},"message":{"type":"string","description":"A description of the error","example":"You have reached the rate limit for this resource"},"details":{"type":"object","description":"Additional error details","properties":{"reset_in_seconds":{"description":"The remaining time until the rate limit is reset (in seconds)","type":"integer","example":60},"reset_at":{"description":"The unix timestamp when the rate limit is reset","example":1640995200,"type":"integer"}}}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"rateLimitExceeded":{"summary":"rateLimitExceeded","value":{"error":{"code":429,"key":"rateLimitExceeded","message":"You have reached the rate limit for this resource","details":{"reset_in_seconds":60,"reset_at":1640995200}},"result":null}}}}},"description":"&#9702; `rateLimitExceeded`: You have reached the rate limit for this resource"},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}},"patch":{"summary":"Reset Password (confirm)","description":"The Reset Login Confirmation Endpoint is a publicly accessible endpoint that allows users to reset their login information in case they have forgotten their password.\n\nTo use this endpoint, users must have received a unique reset token via email (via the Reset Request Endpoint). They will need to provide this token along with their new password in order to reset their login information.\n\nFor security reasons, the Reset Login Confirmation Endpoint has a rate limit of one request every 5 seconds.","operationId":"login.reset.update","tags":["Login"],"requestBody":{"description":"Reset credentials request","required":true,"content":{"application\/json":{"schema":{"required":["token","new_password"],"properties":{"token":{"type":"string","description":"The reset token received via email"},"new_password":{"type":"string","description":"The new password to set"}}}}}},"responses":{"200":{"description":"Success response","content":{"application\/json":{"schema":{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"description":"Success response","type":"boolean","example":true,"default":true}}}}}},"400":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"The password is not strong enough. A password must be at least 6 characters long and contain at least one uppercase letter, one lowercase letter, one number and one special character.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"passwordTooWeak"},"message":{"type":"string","description":"A description of the error","example":"The password is not strong enough. A password must be at least 6 characters long and contain at least one uppercase letter, one lowercase letter, one number and one special character."},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}},{"description":"Missing or invalid fields: token, new_password","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"inputDataInvalid"},"message":{"type":"string","description":"A description of the error","example":"Missing or invalid fields: token, new_password"},"details":{"type":"object","description":"Additional error details (if available)","properties":{"invalid_fields":{"type":"array","description":"The missing or invalid fields","example":["token","new_password"],"items":{"type":"string","enum":["token","new_password"]}}}}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"passwordTooWeak":{"summary":"passwordTooWeak","value":{"error":{"code":400,"key":"passwordTooWeak","message":"The password is not strong enough. A password must be at least 6 characters long and contain at least one uppercase letter, one lowercase letter, one number and one special character.","details":[]},"result":null}},"inputDataInvalid":{"summary":"inputDataInvalid","value":{"error":{"code":400,"key":"inputDataInvalid","message":"Missing or invalid fields: token, new_password","details":{"invalid_fields":["token","new_password"]}},"result":null}}}}},"description":"&#9702; `passwordTooWeak`: The password is not strong enough. A password must be at least 6 characters long and contain at least one uppercase letter, one lowercase letter, one number and one special character.<br>&#9702; `inputDataInvalid`: Missing or invalid fields: token, new_password"},"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"The reset token is invalid or has expired","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"resetTokenInvalid"},"message":{"type":"string","description":"A description of the error","example":"The reset token is invalid or has expired"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"resetTokenInvalid":{"summary":"resetTokenInvalid","value":{"error":{"code":401,"key":"resetTokenInvalid","message":"The reset token is invalid or has expired","details":[]},"result":null}}}}},"description":"&#9702; `resetTokenInvalid`: The reset token is invalid or has expired"},"429":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You have reached the rate limit for this resource","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":429},"key":{"type":"string","description":"Unique error key","example":"rateLimitExceeded"},"message":{"type":"string","description":"A description of the error","example":"You have reached the rate limit for this resource"},"details":{"type":"object","description":"Additional error details","properties":{"reset_in_seconds":{"description":"The remaining time until the rate limit is reset (in seconds)","type":"integer","example":60},"reset_at":{"description":"The unix timestamp when the rate limit is reset","example":1640995200,"type":"integer"}}}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"rateLimitExceeded":{"summary":"rateLimitExceeded","value":{"error":{"code":429,"key":"rateLimitExceeded","message":"You have reached the rate limit for this resource","details":{"reset_in_seconds":60,"reset_at":1640995200}},"result":null}}}}},"description":"&#9702; `rateLimitExceeded`: You have reached the rate limit for this resource"},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}}},"\/v1\/login\/reset\/{token}":{"get":{"summary":"Validate reset token","description":"Checks if a given reset token is valid and has not expired yet.","operationId":"login.reset.get","tags":["Login"],"parameters":[{"in":"path","name":"token","schema":{"type":"string"},"required":true,"description":"The reset token came from an email"}],"responses":{"200":{"description":"Success response","content":{"application\/json":{"schema":{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"description":"Success response","type":"boolean","example":true,"default":true}}}}}},"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"The reset token is invalid or has expired","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"resetTokenInvalid"},"message":{"type":"string","description":"A description of the error","example":"The reset token is invalid or has expired"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"resetTokenInvalid":{"summary":"resetTokenInvalid","value":{"error":{"code":401,"key":"resetTokenInvalid","message":"The reset token is invalid or has expired","details":[]},"result":null}}}}},"description":"&#9702; `resetTokenInvalid`: The reset token is invalid or has expired"},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}}},"\/v1\/login\/session":{"get":{"summary":"Get current session","description":"Returns general information about the current session which may be used as a \"short cut\" to initialize the UI directly after login.","operationId":"login.session.get","tags":["Login"],"security":[{"TokenAuth":[]}],"responses":{"200":{"description":"Session information","content":{"application\/json":{"schema":{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"description":"Session information","type":"object","properties":{"user":{"type":"object","description":"General user information","properties":{"id":{"description":"Unique User ID","type":"string","minLength":12,"maxLength":12},"first_name":{"description":"First name of the user","type":"string"},"last_name":{"description":"Last name of the user","type":"string"},"email":{"description":"Email address of the user","type":"string","format":"email"},"avatar":{"description":"Avatar file identifier of the user, if any","type":"string","nullable":true},"language":{"description":"Language code ISO 639-1 of the user","type":"string","minLength":2,"maxLength":2,"default":"de"},"organizations":{"description":"One or many organizations that the user is part of and the role of the user in the organization","type":"object","additionalProperties":{"description":"The role of the user in the organization","type":"string","minLength":12,"maxLength":12},"example":{"{{idOfOrganization}}":"{{idOfRole}}","{{otherIdOfOrganization}}":"{{otherIdOfRole}}","...":"..."}}}},"organization":{"type":"string","description":"The current organization id of the user session"},"organizations":{"type":"object","description":"List of organizations the user belongs to","additionalProperties":{"type":"object","properties":{"id":{"description":"Unique Organization ID","type":"string","minLength":12,"maxLength":12},"name":{"description":"Name of the Organization","type":"string","nullable":true},"slug":{"description":"Slug of the Organization","type":"string","nullable":true},"logo":{"description":"Logo file identifier of the organization, if any","type":"string","nullable":true},"favicon":{"description":"Favicon file identifier of the organization, if any","type":"string","nullable":true},"role":{"description":"User's role within the organization","type":"object","properties":{"id":{"description":"Unique Role ID","type":"string","minLength":12,"maxLength":12},"name":{"description":"Name of the Role","type":"string"},"permissions":{"$ref":"#\/components\/schemas\/Permissions"},"is_root":{"description":"Indicates if the role is a NIGHTOWL staff member role","type":"boolean","default":false}}}}}},"notifications":{"type":"object","description":"All notifications for the current user","additionalProperties":{"$ref":"#\/components\/schemas\/Notification"}}}}}}}}},"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}}},"\/v1\/login\/switch-organization":{"patch":{"summary":"Switch organization","description":"Sets the default organization for the current user to a new organization","operationId":"login.organization.update","tags":["Login"],"security":[{"TokenAuth":[]}],"requestBody":{"description":"Target organization id","required":true,"content":{"application\/json":{"schema":{"required":["organization"],"properties":{"organization":{"type":"string","description":"The target organization identifier to switch to"}}}}}},"responses":{"200":{"description":"New session information","content":{"application\/json":{"schema":{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"description":"New session information","properties":{"id":{"type":"string","description":"The session identifier","example":"abc123"},"token":{"type":"string","description":"The access token","example":"abcdefghijk1234567890"},"websocket":{"type":"string","description":"The websocket path","example":"wss:\/\/sockets..."},"expiring":{"type":"string","description":"The date and time when the access token expires","example":"2025-12-24T00:00:00+00:00"}},"type":"object"}}}}}},"400":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"The target organization is already active","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"organizationAlreadyActive"},"message":{"type":"string","description":"A description of the error","example":"The target organization is already active"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}},{"description":"Missing or invalid fields: organization","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"inputDataInvalid"},"message":{"type":"string","description":"A description of the error","example":"Missing or invalid fields: organization"},"details":{"type":"object","description":"Additional error details (if available)","properties":{"invalid_fields":{"type":"array","description":"The missing or invalid fields","example":["organization"],"items":{"type":"string","enum":["organization"]}}}}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"organizationAlreadyActive":{"summary":"organizationAlreadyActive","value":{"error":{"code":400,"key":"organizationAlreadyActive","message":"The target organization is already active","details":[]},"result":null}},"inputDataInvalid":{"summary":"inputDataInvalid","value":{"error":{"code":400,"key":"inputDataInvalid","message":"Missing or invalid fields: organization","details":{"invalid_fields":["organization"]}},"result":null}}}}},"description":"&#9702; `organizationAlreadyActive`: The target organization is already active<br>&#9702; `inputDataInvalid`: Missing or invalid fields: organization"},"404":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"The target organization was not found","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":404},"key":{"type":"string","description":"Unique error key","example":"organizationNotFound"},"message":{"type":"string","description":"A description of the error","example":"The target organization was not found"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"organizationNotFound":{"summary":"organizationNotFound","value":{"error":{"code":404,"key":"organizationNotFound","message":"The target organization was not found","details":[]},"result":null}}}}},"description":"&#9702; `organizationNotFound`: The target organization was not found"},"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}}},"\/v1\/search":{"post":{"summary":"Perform a search","description":"This endpoint allows you to search for resources in multiple indexes.\n\nIf you don't specify any index, it will search in all indexes. If you only search in one index, the output will only contain the object ids or its full content if the `objects` parameter is set to true.","operationId":"search.search.get","tags":["Search"],"security":[{"TokenAuth":[]}],"requestBody":{"description":"The search query","required":true,"content":{"application\/json":{"schema":{"required":["query"],"properties":{"query":{"type":"string","description":"The full search query"},"index":{"type":"array","description":"Search in one or multiple indexes (defaults to all if not set)","items":{"type":"string","enum":["artists","customers","discounts","events","genres","guestgroups","guestlists","guestpresets","guests","locations","organizations","organization_files","payouts","purchases","users","roles"]},"default":["artists","customers","discounts","events","genres","guestgroups","guestlists","guestpresets","guests","locations","organizations","organization_files","payouts","purchases","users","roles"],"example":["artists","customers","discounts","events","genres","guestgroups","guestlists","guestpresets","guests","locations","organizations","organization_files","payouts","purchases","users","roles"]},"objects":{"type":"boolean","description":"Return the full objects instead of only the ids (defaults to false if not set)","default":false,"example":false},"select":{"type":"object","description":"Return only the given fields inlcuding the object id (defaults to all fields if not set)","additionalProperties":{"type":"array","items":{"type":"string"}},"example":{"artists":["name"],"users":["first_name","email"],"discounts":["name","code"]}},"filter":{"type":"string","description":"Filters output by specific fields (comma separated, \"AND\" filter)\n\nSupported operators: `=`, `!=`, `*=`, `>`, `<`, `>=`, `<=`<br><br>Example: `field1=true,field2!=example,...`","example":"field1=true,field2!=example"},"limit":{"type":"integer","description":"Limit the number of results (defaults to 10 if not set, 0 defaults to 1000 results)","default":50,"example":50,"minimum":0,"maximum":100}}}}}},"responses":{"200":{"description":"The search results","content":{"application\/json":{"schema":{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"description":"The search results","type":"array","items":{"type":"object","properties":{"$id":{"description":"The id of the object (if `index` filter is set)","type":"string","nullable":true},"$type":{"description":"The type of the object (if `index` filter is set)","type":"string","nullable":true},"$content":{"description":"The full object content (if `objects` is set to true or `select` is set)","type":"object","nullable":true}}}}}}}}},"400":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"The given index is invalid","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"invalidIndex"},"message":{"type":"string","description":"A description of the error","example":"The given index is invalid"},"details":{"type":"object","description":"Additional error details","properties":{"index":{"description":"The invalid index","type":"string"}}}}},"result":{"description":"No result","nullable":true,"default":null}}},{"description":"Missing or invalid fields: query","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"inputDataInvalid"},"message":{"type":"string","description":"A description of the error","example":"Missing or invalid fields: query"},"details":{"type":"object","description":"Additional error details (if available)","properties":{"invalid_fields":{"type":"array","description":"The missing or invalid fields","example":["query"],"items":{"type":"string","enum":["query"]}}}}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"invalidIndex":{"summary":"invalidIndex","value":{"error":{"code":400,"key":"invalidIndex","message":"The given index is invalid","details":{"index":null}},"result":null}},"inputDataInvalid":{"summary":"inputDataInvalid","value":{"error":{"code":400,"key":"inputDataInvalid","message":"Missing or invalid fields: query","details":{"invalid_fields":["query"]}},"result":null}}}}},"description":"&#9702; `invalidIndex`: The given index is invalid<br>&#9702; `inputDataInvalid`: Missing or invalid fields: query"},"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}}},"\/v1\/notifications":{"get":{"summary":"Get all notifications","description":"This endpoint returns all notifications for the currently authenticated user","operationId":"notifications.all.get","tags":["Notifications"],"security":[{"TokenAuth":[]}],"responses":{"200":{"description":"All notifications","content":{"application\/json":{"schema":{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"description":"All notifications","type":"object","additionalProperties":{"$ref":"#\/components\/schemas\/Notification"}}}}}}},"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}},"post":{"summary":"Create a new notification","description":"This endpoint creates and sends a new notification to one or multiple recipients. Please note that this endpoint is only available to root users.\n\n<h3>Required role permissions:<\/h3>`$permittedTo('notifications', 'create', 'notification')`","operationId":"notifications.notification.create","tags":["Notifications"],"security":[{"TokenAuth":[]}],"requestBody":{"description":"The notification to create","required":true,"content":{"application\/json":{"schema":{"required":["recipients","subject","body"],"properties":{"recipients":{"type":"array","description":"The recipients of the notification","items":{"type":"string","description":"The id of the recipient (Organization ID, User ID or `global` for all users)"}},"subject":{"type":"string","description":"The subject of the notification"},"body":{"type":"string","description":"The body of the notification"},"link":{"type":"string","description":"An optional link to a resource related to the notification","nullable":true},"button":{"type":"string","description":"An optional button text related to the notification's link","nullable":true},"theme":{"type":"string","description":"An optional theme color of the notification","nullable":true,"enum":["white","blue","green","yellow","red"]}}}}}},"responses":{"200":{"description":"Success response","content":{"application\/json":{"schema":{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"description":"Success response","type":"boolean","example":true,"default":true}}}}}},"403":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not authorized to perform this action","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":403},"key":{"type":"string","description":"Unique error key","example":"forbidden"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to perform this action"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"forbidden":{"summary":"forbidden","value":{"error":{"code":403,"key":"forbidden","message":"You are not authorized to perform this action","details":[]},"result":null}}}}},"description":"&#9702; `forbidden`: You are not authorized to perform this action"},"400":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Missing or invalid fields: recipients, subject, body","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"inputDataInvalid"},"message":{"type":"string","description":"A description of the error","example":"Missing or invalid fields: recipients, subject, body"},"details":{"type":"object","description":"Additional error details","properties":{"invalid_fields":{"type":"array","description":"The missing or invalid fields","example":["recipients","subject","body"],"items":{"type":"string","enum":["recipients","subject","body"]}}}}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"inputDataInvalid":{"summary":"inputDataInvalid","value":{"error":{"code":400,"key":"inputDataInvalid","message":"Missing or invalid fields: recipients, subject, body","details":{"invalid_fields":["recipients","subject","body"]}},"result":null}}}}},"description":"&#9702; `inputDataInvalid`: Missing or invalid fields: recipients, subject, body"},"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}},"patch":{"summary":"Mark all notifications as read","description":"This endpoint updates the read status of all notifications","operationId":"notifications.all.update","tags":["Notifications"],"security":[{"TokenAuth":[]}],"responses":{"200":{"description":"Success response","content":{"application\/json":{"schema":{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"description":"Success response","type":"boolean","example":true,"default":true}}}}}},"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}},"delete":{"summary":"Delete all notifications","description":"This endpoint deletes all notifications","operationId":"notifications.all.delete","tags":["Notifications"],"security":[{"TokenAuth":[]}],"responses":{"200":{"description":"Success response","content":{"application\/json":{"schema":{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"description":"Success response","type":"boolean","example":true,"default":true}}}}}},"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}}},"\/v1\/notifications\/{id}":{"patch":{"summary":"Update read status of a notification","description":"This endpoint updates the read status of a notification","operationId":"notifications.notification.update","tags":["Notifications"],"security":[{"TokenAuth":[]}],"parameters":[{"$ref":"#\/components\/parameters\/id"}],"responses":{"200":{"description":"The updated notification","content":{"application\/json":{"schema":{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"$ref":"#\/components\/schemas\/Notification"}}}}}},"404":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"The requested notification does not exist","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":404},"key":{"type":"string","description":"Unique error key","example":"notFound"},"message":{"type":"string","description":"A description of the error","example":"The requested notification does not exist"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"notFound":{"summary":"notFound","value":{"error":{"code":404,"key":"notFound","message":"The requested notification does not exist","details":[]},"result":null}}}}},"description":"&#9702; `notFound`: The requested notification does not exist"},"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}},"delete":{"summary":"Delete a notification by id","description":"This endpoint deletes a notification by id","operationId":"notifications.notification.delete","tags":["Notifications"],"security":[{"TokenAuth":[]}],"parameters":[{"$ref":"#\/components\/parameters\/id"}],"responses":{"200":{"description":"The deleted notification","content":{"application\/json":{"schema":{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"$ref":"#\/components\/schemas\/Notification"}}}}}},"404":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"The requested notification does not exist","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":404},"key":{"type":"string","description":"Unique error key","example":"notFound"},"message":{"type":"string","description":"A description of the error","example":"The requested notification does not exist"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"notFound":{"summary":"notFound","value":{"error":{"code":404,"key":"notFound","message":"The requested notification does not exist","details":[]},"result":null}}}}},"description":"&#9702; `notFound`: The requested notification does not exist"},"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}}},"\/v1\/webhooks\/stripe":{"get":{"summary":"Stripe Webhooks","description":"This endpoint is used to receive incoming webhooks from Stripe. Although the endpoint is public, it is protected by a secret key that is only known to Stripe and the NIGHTOWL\u00ae application server","operationId":"webhooks.stripe.update","tags":["Webhooks"],"responses":{"200":{"description":"Webhook status response","content":{"application\/json":{"schema":{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"description":"Webhook status response","type":"boolean","example":true}}}}}},"400":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An error occurred while processing the request","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"errorOccurred"},"message":{"type":"string","description":"A description of the error","example":"An error occurred while processing the request"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"errorOccurred":{"summary":"errorOccurred","value":{"error":{"code":400,"key":"errorOccurred","message":"An error occurred while processing the request","details":[]},"result":null}}}}},"description":"&#9702; `errorOccurred`: An error occurred while processing the request"},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}}},"\/v1\/webhooks\/stripe\/connect":{"get":{"summary":"Stripe Connect Webhooks","description":"This endpoint is used to receive incoming connect webhooks from Stripe. Although the endpoint is public, it is protected by a secret key that is only known to Stripe and the NIGHTOWL\u00ae application server","operationId":"webhooks.stripe.connect.update","tags":["Webhooks"],"responses":{"200":{"description":"Webhook status response","content":{"application\/json":{"schema":{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"description":"Webhook status response","type":"boolean","example":true}}}}}},"400":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An error occurred while processing the request","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"errorOccurred"},"message":{"type":"string","description":"A description of the error","example":"An error occurred while processing the request"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"errorOccurred":{"summary":"errorOccurred","value":{"error":{"code":400,"key":"errorOccurred","message":"An error occurred while processing the request","details":[]},"result":null}}}}},"description":"&#9702; `errorOccurred`: An error occurred while processing the request"},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}}},"\/v1\/webhooks\/emails":{"post":{"summary":"Email Webhooks","description":"Email webhooks are used to receive incoming webhooks from email services. Although the endpoint is public, it is protected by a secret key that is only known to the NIGHTOWL\u00ae application server","operationId":"webhooks.emails.update","tags":["Webhooks"],"responses":{"200":{"description":"Webhook status response","content":{"application\/json":{"schema":{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"description":"Webhook status response","type":"boolean","example":true}}}}}},"400":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An error occurred while processing the request","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"errorOccurred"},"message":{"type":"string","description":"A description of the error","example":"An error occurred while processing the request"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"errorOccurred":{"summary":"errorOccurred","value":{"error":{"code":400,"key":"errorOccurred","message":"An error occurred while processing the request","details":[]},"result":null}}}}},"description":"&#9702; `errorOccurred`: An error occurred while processing the request"},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}}},"\/v1\/shop\/{slug}":{"get":{"summary":"Get shop information","description":"This endpoint returns information about the shop, such as name, UI settings, events, etc.","operationId":"shops.shop.get","tags":["Shops"],"parameters":[{"in":"path","name":"slug","schema":{"type":"string"},"required":true,"description":"The shop slug"}],"responses":{"200":{"description":"Shop details","content":{"application\/json":{"schema":{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"description":"Shop details","type":"object","example":[]}}}}}},"404":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"The shop was not found or is inactive","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":404},"key":{"type":"string","description":"Unique error key","example":"notFound"},"message":{"type":"string","description":"A description of the error","example":"The shop was not found or is inactive"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"notFound":{"summary":"notFound","value":{"error":{"code":404,"key":"notFound","message":"The shop was not found or is inactive","details":[]},"result":null}}}}},"description":"&#9702; `notFound`: The shop was not found or is inactive"},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}}},"\/v1\/shop\/{slug}\/cart":{"post":{"summary":"Get cart (pre)calculated","description":"This endpoint returns a precalculated cart object to render the cart page. If a discount code is provided, the discount is applied (if valid and applicable). Otherwise it is ignored.\n\nThe maximum quantity of items will automatically be limited to the maximum available quantity if the quantity exceeds the maximum available tickets. The frontend should display a warning message if the returned back quantity values differ from the input quantity values.","operationId":"shops.cart.get","tags":["Shops"],"parameters":[{"in":"path","name":"slug","schema":{"type":"string"},"required":true,"description":"The shop slug"}],"requestBody":{"description":"The cart (input) contents","required":true,"content":{"application\/json":{"schema":{"required":["items"],"properties":{"items":{"type":"array","description":"An array of cart items","items":{"type":"object","properties":{"type":{"description":"The type of the item","type":"string","enum":["ticket"]},"quantity":{"description":"The quantity of the item","type":"integer","minimum":1,"example":1},"content":{"description":"The item content details","type":"object","properties":{"event":{"description":"The id of the event","type":"string"},"option":{"description":"The id of a phase or date (box office, if available)","type":"string"}}}}}},"discount_code":{"type":"string","description":"An optional discount code","nullable":true},"include_insurance":{"type":"boolean","description":"Indicates if the insurance price should be included in the cart","format":"boolean","nullable":true,"default":false}}}}}},"responses":{"200":{"description":"The precalculated cart object","content":{"application\/json":{"schema":{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"description":"The precalculated cart object","$ref":"#\/components\/schemas\/Cart"}}}}}},"400":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"The items are invalid","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"invalidItems"},"message":{"type":"string","description":"A description of the error","example":"The items are invalid"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}},{"description":"The event of an item does not exist","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"eventDoesNotExist"},"message":{"type":"string","description":"A description of the error","example":"The event of an item does not exist"},"details":{"type":"object","description":"Additional error details (if available)"}}},"result":{"description":"No result","nullable":true,"default":null}}},{"description":"The organization of an item does not exist","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"organizationDoesNotExist"},"message":{"type":"string","description":"A description of the error","example":"The organization of an item does not exist"},"details":{"type":"object","description":"Additional error details (if available)"}}},"result":{"description":"No result","nullable":true,"default":null}}},{"description":"The quantity of an item is below the minimum","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"quantityBelowMinimum"},"message":{"type":"string","description":"A description of the error","example":"The quantity of an item is below the minimum"},"details":{"type":"object","description":"Additional error details (if available)"}}},"result":{"description":"No result","nullable":true,"default":null}}},{"description":"The option of an item is sold out or does not exist","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"optionSoldOutOrNotFound"},"message":{"type":"string","description":"A description of the error","example":"The option of an item is sold out or does not exist"},"details":{"type":"object","description":"Additional error details (if available)"}}},"result":{"description":"No result","nullable":true,"default":null}}},{"description":"The quantity of an item exceeds the maximum available tickets","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"quantityExceedsMaximum"},"message":{"type":"string","description":"A description of the error","example":"The quantity of an item exceeds the maximum available tickets"},"details":{"type":"object","description":"Additional error details (if available)"}}},"result":{"description":"No result","nullable":true,"default":null}}},{"description":"Missing or invalid fields: items","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"inputDataInvalid"},"message":{"type":"string","description":"A description of the error","example":"Missing or invalid fields: items"},"details":{"type":"object","description":"Additional error details (if available)","properties":{"invalid_fields":{"type":"array","description":"The missing or invalid fields","example":["items"],"items":{"type":"string","enum":["items"]}}}}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"invalidItems":{"summary":"invalidItems","value":{"error":{"code":400,"key":"invalidItems","message":"The items are invalid","details":[]},"result":null}},"eventDoesNotExist":{"summary":"eventDoesNotExist","value":{"error":{"code":400,"key":"eventDoesNotExist","message":"The event of an item does not exist","details":[]},"result":null}},"organizationDoesNotExist":{"summary":"organizationDoesNotExist","value":{"error":{"code":400,"key":"organizationDoesNotExist","message":"The organization of an item does not exist","details":[]},"result":null}},"quantityBelowMinimum":{"summary":"quantityBelowMinimum","value":{"error":{"code":400,"key":"quantityBelowMinimum","message":"The quantity of an item is below the minimum","details":[]},"result":null}},"optionSoldOutOrNotFound":{"summary":"optionSoldOutOrNotFound","value":{"error":{"code":400,"key":"optionSoldOutOrNotFound","message":"The option of an item is sold out or does not exist","details":[]},"result":null}},"quantityExceedsMaximum":{"summary":"quantityExceedsMaximum","value":{"error":{"code":400,"key":"quantityExceedsMaximum","message":"The quantity of an item exceeds the maximum available tickets","details":[]},"result":null}},"inputDataInvalid":{"summary":"inputDataInvalid","value":{"error":{"code":400,"key":"inputDataInvalid","message":"Missing or invalid fields: items","details":{"invalid_fields":["items"]}},"result":null}}}}},"description":"&#9702; `invalidItems`: The items are invalid<br>&#9702; `eventDoesNotExist`: The event of an item does not exist<br>&#9702; `organizationDoesNotExist`: The organization of an item does not exist<br>&#9702; `quantityBelowMinimum`: The quantity of an item is below the minimum<br>&#9702; `optionSoldOutOrNotFound`: The option of an item is sold out or does not exist<br>&#9702; `quantityExceedsMaximum`: The quantity of an item exceeds the maximum available tickets<br>&#9702; `inputDataInvalid`: Missing or invalid fields: items"},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}}},"\/v1\/shop\/{slug}\/purchase":{"post":{"summary":"Purchase tickets","description":"This publicly accessible endpoint allows users to buy tickets. The endpoint returns a payment URL to redirect the user to and creates a purchase object which is valid for 15 minutes.\n\nThe items inside the cart are reserved for 15 minutes. If the user does not complete the payment within 15 minutes, the items are released and the purchase object is deleted.","operationId":"shops.purchase.create","tags":["Shops"],"parameters":[{"in":"path","name":"slug","schema":{"type":"string"},"required":true,"description":"The shop slug"}],"requestBody":{"description":"Highlight position","required":false,"content":{"application\/json":{"schema":{"required":["first_name","last_name","email","address","items","payment_method"],"properties":{"company":{"type":"string","description":"The company name","nullable":true},"first_name":{"type":"string","description":"The first name"},"last_name":{"type":"string","description":"The last name"},"email":{"type":"string","description":"The email address","format":"email"},"phone":{"type":"string","description":"The phone number","nullable":true},"address":{"type":"object","description":"The address","properties":{"street":{"description":"The street name","type":"string"},"number":{"description":"The street number","type":"string"},"zip":{"description":"The zip code","type":"string"},"city":{"description":"The city","type":"string"},"country":{"description":"The country","type":"string"}}},"items":{"type":"array","description":"An array of cart items","items":{"type":"object","properties":{"type":{"description":"The type of the item","type":"string","enum":["ticket"]},"quantity":{"description":"The quantity of the item","type":"integer","minimum":1,"example":1},"content":{"description":"The item content details","type":"object","properties":{"event":{"description":"The id of the event","type":"string"},"option":{"description":"The id of a phase or date (box office, if available)","type":"string"}}}}}},"payment_method":{"type":"string","description":"The payment method","enum":["card","klarna","paypal","amazon_pay","revolut_pay"]},"discount_code":{"type":"string","description":"An optional discount code","nullable":true},"insurance":{"type":"boolean","description":"Indicates if the ticket insurance should be included in the purchase (if available)","format":"boolean"},"newsletter":{"type":"boolean","description":"Indicates if the buyer wants to receive the newsletter","format":"boolean"},"redirect":{"type":"string","description":"The URL to redirect to after the purchase","nullable":true}}}}}},"responses":{"200":{"description":"Payment link (to redirect to)","content":{"application\/json":{"schema":{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"description":"Payment link (to redirect to)","type":"object","example":[]}}}}}},"404":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"The shop was not found","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":404},"key":{"type":"string","description":"Unique error key","example":"notFound"},"message":{"type":"string","description":"A description of the error","example":"The shop was not found"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"notFound":{"summary":"notFound","value":{"error":{"code":404,"key":"notFound","message":"The shop was not found","details":[]},"result":null}}}}},"description":"&#9702; `notFound`: The shop was not found"},"400":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"The email address is not reachable","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"invalidEmail"},"message":{"type":"string","description":"A description of the error","example":"The email address is not reachable"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}},{"description":"The email address is disposable","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"disposableEmail"},"message":{"type":"string","description":"A description of the error","example":"The email address is disposable"},"details":{"type":"object","description":"Additional error details (if available)"}}},"result":{"description":"No result","nullable":true,"default":null}}},{"description":"The address is invalid","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"invalidAddress"},"message":{"type":"string","description":"A description of the error","example":"The address is invalid"},"details":{"type":"object","description":"Additional error details (if available)"}}},"result":{"description":"No result","nullable":true,"default":null}}},{"description":"The items are invalid","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"invalidItems"},"message":{"type":"string","description":"A description of the error","example":"The items are invalid"},"details":{"type":"object","description":"Additional error details (if available)"}}},"result":{"description":"No result","nullable":true,"default":null}}},{"description":"Missing or invalid fields: first_name, last_name, email, address, items, payment_method","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"inputDataInvalid"},"message":{"type":"string","description":"A description of the error","example":"Missing or invalid fields: first_name, last_name, email, address, items, payment_method"},"details":{"type":"object","description":"Additional error details (if available)","properties":{"invalid_fields":{"type":"array","description":"The missing or invalid fields","example":["first_name","last_name","email","address","items","payment_method"],"items":{"type":"string","enum":["first_name","last_name","email","address","items","payment_method"]}}}}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"invalidEmail":{"summary":"invalidEmail","value":{"error":{"code":400,"key":"invalidEmail","message":"The email address is not reachable","details":[]},"result":null}},"disposableEmail":{"summary":"disposableEmail","value":{"error":{"code":400,"key":"disposableEmail","message":"The email address is disposable","details":[]},"result":null}},"invalidAddress":{"summary":"invalidAddress","value":{"error":{"code":400,"key":"invalidAddress","message":"The address is invalid","details":[]},"result":null}},"invalidItems":{"summary":"invalidItems","value":{"error":{"code":400,"key":"invalidItems","message":"The items are invalid","details":[]},"result":null}},"inputDataInvalid":{"summary":"inputDataInvalid","value":{"error":{"code":400,"key":"inputDataInvalid","message":"Missing or invalid fields: first_name, last_name, email, address, items, payment_method","details":{"invalid_fields":["first_name","last_name","email","address","items","payment_method"]}},"result":null}}}}},"description":"&#9702; `invalidEmail`: The email address is not reachable<br>&#9702; `disposableEmail`: The email address is disposable<br>&#9702; `invalidAddress`: The address is invalid<br>&#9702; `invalidItems`: The items are invalid<br>&#9702; `inputDataInvalid`: Missing or invalid fields: first_name, last_name, email, address, items, payment_method"},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}}},"\/v1\/shop\/{slug}\/purchase\/{purchase_id}\/{status}":{"get":{"summary":"Purchase redirect","description":"This endpoint is used by the payment providers to redirect the user back to the shop\/success page after completing or cancelling the payment.","operationId":"shops.purchase.update","tags":["Shops"],"parameters":[{"in":"path","name":"slug","schema":{"type":"string"},"required":true,"description":"The shop slug"},{"in":"path","name":"purchase_id","schema":{"type":"string"},"required":true,"description":"The purchase id"},{"in":"path","name":"status","schema":{"type":"string","enum":["success","cancel"],"default":"success"},"required":true,"description":"The purchase redirect status"}],"responses":{"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}}},"\/v1\/shop\/{slug}\/purchase\/{purchase_id}":{"get":{"summary":"Get purchase information","description":"This endpoint returns the purchase details for the shop frontend (to display after getting redirected from the payment provider).","operationId":"shops.purchase.get","tags":["Shops"],"parameters":[{"in":"path","name":"slug","schema":{"type":"string"},"required":true,"description":"The shop slug"},{"in":"path","name":"purchase_id","schema":{"type":"string"},"required":true,"description":"The purchase id"}],"responses":{"200":{"description":"The purchase information","content":{"application\/json":{"schema":{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"description":"The purchase information","properties":{"first_name":{"type":"string","description":"First name of the buyer"},"last_name":{"type":"string","description":"Last name of the buyer"},"email":{"type":"string","description":"Email of the buyer"},"status":{"type":"integer","description":"Status of the purchase. -1 = Failed, 0 = Pending, 1 = Waiting Payment Confirmation, 2 = Payment Confirmed, 3 = Refunded","enum":[0,1,2,3]},"cart":{"type":null,"$ref":"#\/components\/schemas\/Cart"},"downloads":{"type":"object","description":"Several download links","properties":{"tickets":{"description":"The download link for the tickets","type":"string","nullable":true},"calendar":{"description":"The download link for the calendar file","type":"string","nullable":true},"invoice":{"description":"The download link for the invoice","type":"string","nullable":true}}}},"type":"object"}}}}}},"404":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"The requested purchase was not found","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":404},"key":{"type":"string","description":"Unique error key","example":"notFound"},"message":{"type":"string","description":"A description of the error","example":"The requested purchase was not found"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"notFound":{"summary":"notFound","value":{"error":{"code":404,"key":"notFound","message":"The requested purchase was not found","details":[]},"result":null}}}}},"description":"&#9702; `notFound`: The requested purchase was not found"},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}}},"\/v1\/organizations":{"get":{"summary":"Get all organizations","description":"This endpoint returns all organizations","operationId":"organizations.all.get","tags":["Organizations"],"security":[{"TokenAuth":[]}],"parameters":[{"$ref":"#\/components\/parameters\/page"},{"$ref":"#\/components\/parameters\/limit"},{"$ref":"#\/components\/parameters\/select"},{"$ref":"#\/components\/parameters\/orderBy"},{"$ref":"#\/components\/parameters\/filterBy"}],"responses":{"200":{"description":"All organizations","content":{"application\/json":{"schema":{"oneOf":[{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"description":"All organizations","type":"object","additionalProperties":{"$ref":"#\/components\/schemas\/Organization"}}},"description":"All organizations"},{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"description":"Paginated result","type":"object","properties":{"objects":{"description":"All organizations","type":"object","additionalProperties":{"$ref":"#\/components\/schemas\/Organization"}},"pagination":{"type":"object","description":"Pagination information","properties":{"page":{"type":"integer","description":"Current page","example":1},"pages":{"type":"integer","description":"Total pages","example":10},"objects":{"type":"integer","description":"Total number of objects","example":100}}}}}},"description":"All organizations (paginated if `limit` is set in query params)"}]}}}},"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}}},"\/v1\/organizations\/{id}\/affiliates":{"get":{"summary":"Get affiliates","description":"This endpoint returns all affiliates of the current organization. Affiliates are third organizations that have a partnership with the current organization or that have been invited to join NIGHTOWL\u00ae with a special invitation code.\n\n<h3>Required role permissions:<\/h3>`$permittedTo('organizations', 'get', 'affiliates')`","operationId":"organizations.affiliates.get","tags":["Organizations"],"security":[{"TokenAuth":[]}],"parameters":[{"$ref":"#\/components\/parameters\/id"},{"$ref":"#\/components\/parameters\/page"},{"$ref":"#\/components\/parameters\/limit"},{"$ref":"#\/components\/parameters\/select"},{"$ref":"#\/components\/parameters\/orderBy"},{"$ref":"#\/components\/parameters\/filterBy"}],"responses":{"200":{"description":"All affiliates (organizations)","content":{"application\/json":{"schema":{"oneOf":[{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"description":"All affiliates (organizations)","type":"object","additionalProperties":{"$ref":"#\/components\/schemas\/Organization"}}},"description":"All affiliates (organizations)"},{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"description":"Paginated result","type":"object","properties":{"objects":{"description":"All affiliates (organizations)","type":"object","additionalProperties":{"$ref":"#\/components\/schemas\/Organization"}},"pagination":{"type":"object","description":"Pagination information","properties":{"page":{"type":"integer","description":"Current page","example":1},"pages":{"type":"integer","description":"Total pages","example":10},"objects":{"type":"integer","description":"Total number of objects","example":100}}}}}},"description":"All affiliates (organizations) (paginated if `limit` is set in query params)"}]}}}},"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}}},"\/v1\/organizations\/{id}":{"get":{"summary":"Get a specific organization by id","description":"This endpoint returns a specific organization by id","operationId":"organizations.organization.get","tags":["Organizations"],"security":[{"TokenAuth":[]}],"parameters":[{"$ref":"#\/components\/parameters\/id"},{"$ref":"#\/components\/parameters\/select"}],"responses":{"200":{"description":"The requested organization","content":{"application\/json":{"schema":{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"$ref":"#\/components\/schemas\/Organization"}}}}}},"404":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Organization was not found","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":404},"key":{"type":"string","description":"Unique error key","example":"notFound"},"message":{"type":"string","description":"A description of the error","example":"Organization was not found"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"notFound":{"summary":"notFound","value":{"error":{"code":404,"key":"notFound","message":"Organization was not found","details":[]},"result":null}}}}},"description":"&#9702; `notFound`: Organization was not found"},"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}},"patch":{"summary":"Update a specific organization by id","description":"This endpoint updates a specific organization by id\n\n<h3>Required role permissions:<\/h3>`$permittedTo('organizations', 'update', 'organization')`","operationId":"organizations.organization.update","tags":["Organizations"],"security":[{"TokenAuth":[]}],"parameters":[{"$ref":"#\/components\/parameters\/id"}],"requestBody":{"description":"The organization information to update","required":true,"content":{"application\/json":{"schema":{"properties":{"slug":{"description":"Unique organization slug","type":"string"},"name":{"description":"Name of the organization","type":"string","nullable":true},"company":{"description":"Name of the company","type":"string"},"email":{"description":"General contact email of the organization","type":"string","format":"email"},"phone":{"description":"Phone number of the organization","type":"string"},"vat_id":{"description":"VAT ID of the company","type":"string"},"bank_account":{"description":"Bank account information","type":"object","properties":{"cardholder":{"type":"string","description":"The cardholder name"},"iban":{"type":"string","description":"The IBAN of the bank account"}}},"colors":{"description":"Specific color settings for the organization","type":"object","properties":{"primaryColor":{"type":"string","description":"The primary color for the shop UI in HEX format (#RRGGBB)","example":"#FF5733","pattern":"^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$"},"buttonTextColor":{"type":"string","description":"The text color for buttons in the shop UI in HEX format (#RRGGBB)","example":"#007ACC","pattern":"^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$"},"backgroundColor":{"type":"string","description":"The background color for the shop UI in HEX format (#RRGGBB)","example":"#EFEFEF","pattern":"^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$"},"copyTextColor":{"type":"string","description":"The text color for copy (text) in the shop UI in HEX format (#RRGGBB)","example":"#333333","pattern":"^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$"},"footerColor":{"type":"string","description":"The color for the footer in the shop UI in HEX format (#RRGGBB)","example":"#444444","pattern":"^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$"},"footerTextColor":{"type":"string","description":"The text color for the footer in the shop UI in HEX format (#RRGGBB)","example":"#FFFFFF","pattern":"^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$"}}},"settings":{"description":"Payout and other settings of the organization. Only NIGHTOWL\u00ae admins can edit these settings.","type":"object","properties":{"payouts":{"description":"Payout settings (can only be set by NIGHTOWL\u00ae admins)","type":"object","properties":{"automatic":{"description":"Automatic payouts enabled? If enabled, NIGHTOWL\u00ae will automatically split the payouts between the organization and the affiliate partner","type":"boolean","default":true,"nullable":true},"schedule":{"description":"Payout schedule (x days after the last event date)","type":"integer","default":0,"nullable":true},"kickbacks":{"description":"Ability to set kickbacks?","type":"boolean","default":false,"nullable":true},"allow_prepayments":{"description":"Allow manual prepayments before the regular payout schedule executes","type":"boolean","default":true,"nullable":true},"reserved_amount_percent":{"description":"Percentage of total sales kept in reserve to cover chargebacks and refunds","type":"number","format":"float","example":25,"nullable":true},"fees":{"description":"NIGHTOWL\u00ae fees to be paid by the organization","type":"object","properties":{"EUR":{"description":"Fees for EUR transactions","type":"object","properties":{"percentual":{"description":"Percentage of fees to be paid by the organization","type":"number","format":"float","example":4.2,"nullable":true},"flat":{"description":"Flat fees to be paid by the organization","type":"number","format":"float","example":0.8,"nullable":true},"kickback":{"description":"Kickback fees to be paid by the organization","type":"number","format":"float","example":4.2,"nullable":true}}}}}}},"affiliate":{"description":"Affiliate information and settings","type":"object","nullable":true,"properties":{"source":{"description":"Organization identifier of the affiliate","type":"string","minLength":12,"maxLength":12},"mode":{"description":"Affiliate mode (partner or standard)","type":"string","enum":["standard","partner"]},"payouts":{"description":"Payout settings for the affiliate source (can be edited by partners)","type":"object","properties":{"automatic":{"description":"Automatic payouts enabled?","type":"boolean","default":true,"nullable":true},"fees":{"description":"Affiliate partner fees to be paid by the organization","type":"object","properties":{"EUR":{"description":"Fees for EUR transactions","type":"object","properties":{"percentual":{"description":"Percentage of fees to be paid by the organization","type":"number","format":"float","example":4.2,"nullable":true},"flat":{"description":"Flat fees to be paid by the organization","type":"number","format":"float","example":0.8,"nullable":true}}}}}}}}},"is_partner":{"description":"Can the organization create partnership affiliate links?","type":"boolean","default":false,"nullable":true},"language":{"description":"The main language of an organization","type":"string","default":"de"}}},"address_token":{"type":"string","description":"A unique address token came from the `\/locations\/find` endpoint"},"sepa_direct_debit":{"type":"boolean","description":"Indicates if the organization wants to use SEPA Direct Debit as a payment method"}}}}}},"responses":{"200":{"description":"The updated organization","content":{"application\/json":{"schema":{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"$ref":"#\/components\/schemas\/Organization"}}}}}},"404":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Organization was not found","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":404},"key":{"type":"string","description":"Unique error key","example":"notFound"},"message":{"type":"string","description":"A description of the error","example":"Organization was not found"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"notFound":{"summary":"notFound","value":{"error":{"code":404,"key":"notFound","message":"Organization was not found","details":[]},"result":null}}}}},"description":"&#9702; `notFound`: Organization was not found"},"400":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"No data was provided","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"noData"},"message":{"type":"string","description":"A description of the error","example":"No data was provided"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}},{"description":"The VAT ID is not valid","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"vatIdNotValid"},"message":{"type":"string","description":"A description of the error","example":"The VAT ID is not valid"},"details":{"type":"object","description":"Additional error details (if available)"}}},"result":{"description":"No result","nullable":true,"default":null}}},{"description":"The slug is not available","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"slugNotAvailable"},"message":{"type":"string","description":"A description of the error","example":"The slug is not available"},"details":{"type":"object","description":"Additional error details (if available)"}}},"result":{"description":"No result","nullable":true,"default":null}}},{"description":"The address token is not valid","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"addressTokenNotValid"},"message":{"type":"string","description":"A description of the error","example":"The address token is not valid"},"details":{"type":"object","description":"Additional error details (if available)"}}},"result":{"description":"No result","nullable":true,"default":null}}},{"description":"The organization address must be in a whitelisted country","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"addressNotValidCountry"},"message":{"type":"string","description":"A description of the error","example":"The organization address must be in a whitelisted country"},"details":{"type":"object","description":"Additional error details (if available)"}}},"result":{"description":"No result","nullable":true,"default":null}}},{"description":"The color settings are not valid","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"colorSettingsNotValid"},"message":{"type":"string","description":"A description of the error","example":"The color settings are not valid"},"details":{"type":"object","description":"Additional error details (if available)"}}},"result":{"description":"No result","nullable":true,"default":null}}},{"description":"The settings are invalid","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"invalidSettings"},"message":{"type":"string","description":"A description of the error","example":"The settings are invalid"},"details":{"type":"object","description":"Additional error details (if available)"}}},"result":{"description":"No result","nullable":true,"default":null}}},{"description":"The bank account is not valid","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"bankAccountNotValid"},"message":{"type":"string","description":"A description of the error","example":"The bank account is not valid"},"details":{"type":"object","description":"Additional error details (if available)"}}},"result":{"description":"No result","nullable":true,"default":null}}},{"description":"Missing or invalid fields: slug, name, company, email, phone, vat_id, bank_account, colors, settings, address_token, sepa_direct_debit","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"inputDataInvalid"},"message":{"type":"string","description":"A description of the error","example":"Missing or invalid fields: slug, name, company, email, phone, vat_id, bank_account, colors, settings, address_token, sepa_direct_debit"},"details":{"type":"object","description":"Additional error details (if available)","properties":{"invalid_fields":{"type":"array","description":"The missing or invalid fields","example":["slug","name","company","email","phone","vat_id","bank_account","colors","settings","address_token","sepa_direct_debit"],"items":{"type":"string","enum":["slug","name","company","email","phone","vat_id","bank_account","colors","settings","address_token","sepa_direct_debit"]}}}}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"noData":{"summary":"noData","value":{"error":{"code":400,"key":"noData","message":"No data was provided","details":[]},"result":null}},"vatIdNotValid":{"summary":"vatIdNotValid","value":{"error":{"code":400,"key":"vatIdNotValid","message":"The VAT ID is not valid","details":[]},"result":null}},"slugNotAvailable":{"summary":"slugNotAvailable","value":{"error":{"code":400,"key":"slugNotAvailable","message":"The slug is not available","details":[]},"result":null}},"addressTokenNotValid":{"summary":"addressTokenNotValid","value":{"error":{"code":400,"key":"addressTokenNotValid","message":"The address token is not valid","details":[]},"result":null}},"addressNotValidCountry":{"summary":"addressNotValidCountry","value":{"error":{"code":400,"key":"addressNotValidCountry","message":"The organization address must be in a whitelisted country","details":[]},"result":null}},"colorSettingsNotValid":{"summary":"colorSettingsNotValid","value":{"error":{"code":400,"key":"colorSettingsNotValid","message":"The color settings are not valid","details":[]},"result":null}},"invalidSettings":{"summary":"invalidSettings","value":{"error":{"code":400,"key":"invalidSettings","message":"The settings are invalid","details":[]},"result":null}},"bankAccountNotValid":{"summary":"bankAccountNotValid","value":{"error":{"code":400,"key":"bankAccountNotValid","message":"The bank account is not valid","details":[]},"result":null}},"inputDataInvalid":{"summary":"inputDataInvalid","value":{"error":{"code":400,"key":"inputDataInvalid","message":"Missing or invalid fields: slug, name, company, email, phone, vat_id, bank_account, colors, settings, address_token, sepa_direct_debit","details":{"invalid_fields":["slug","name","company","email","phone","vat_id","bank_account","colors","settings","address_token","sepa_direct_debit"]}},"result":null}}}}},"description":"&#9702; `noData`: No data was provided<br>&#9702; `vatIdNotValid`: The VAT ID is not valid<br>&#9702; `slugNotAvailable`: The slug is not available<br>&#9702; `addressTokenNotValid`: The address token is not valid<br>&#9702; `addressNotValidCountry`: The organization address must be in a whitelisted country<br>&#9702; `colorSettingsNotValid`: The color settings are not valid<br>&#9702; `invalidSettings`: The settings are invalid<br>&#9702; `bankAccountNotValid`: The bank account is not valid<br>&#9702; `inputDataInvalid`: Missing or invalid fields: slug, name, company, email, phone, vat_id, bank_account, colors, settings, address_token, sepa_direct_debit"},"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}},"delete":{"summary":"Delete a specific organization by id","description":"This endpoint deletes a specific organization by id\n\n<h3>Required role permissions:<\/h3>`$permittedTo('organizations', 'delete', 'organization')`","operationId":"organizations.organization.delete","tags":["Organizations"],"security":[{"TokenAuth":[]}],"parameters":[{"$ref":"#\/components\/parameters\/id"}],"responses":{"200":{"description":"The deleted organization","content":{"application\/json":{"schema":{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"$ref":"#\/components\/schemas\/Organization"}}}}}},"404":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Organization was not found","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":404},"key":{"type":"string","description":"Unique error key","example":"notFound"},"message":{"type":"string","description":"A description of the error","example":"Organization was not found"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"notFound":{"summary":"notFound","value":{"error":{"code":404,"key":"notFound","message":"Organization was not found","details":[]},"result":null}}}}},"description":"&#9702; `notFound`: Organization was not found"},"400":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not allowed to delete this organization (has guests)","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"unauthorizedDeletion"},"message":{"type":"string","description":"A description of the error","example":"You are not allowed to delete this organization (has guests)"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthorizedDeletion":{"summary":"unauthorizedDeletion","value":{"error":{"code":400,"key":"unauthorizedDeletion","message":"You are not allowed to delete this organization (has guests)","details":[]},"result":null}}}}},"description":"&#9702; `unauthorizedDeletion`: You are not allowed to delete this organization (has guests)"},"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}}},"\/v1\/organizations\/current":{"get":{"summary":"Get current organization","description":"This endpoint returns the currently active organization (by session) and acts as a shortcut to the get organization by id endpoint","operationId":"organizations.current.get","tags":["Organizations"],"security":[{"TokenAuth":[]}],"parameters":[{"$ref":"#\/components\/parameters\/select"}],"responses":{"200":{"description":"The current organization","content":{"application\/json":{"schema":{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"$ref":"#\/components\/schemas\/Organization"}}}}}},"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}},"patch":{"summary":"Update current organization","description":"This endpoint updates the current organization (by session) and acts as a shortcut to the update organization by id endpoint\n\n<h3>Required role permissions:<\/h3>`$permittedTo('organizations', 'update', 'current')`","operationId":"organizations.current.update","tags":["Organizations"],"security":[{"TokenAuth":[]}],"requestBody":{"description":"The organization information to update","required":true,"content":{"application\/json":{"schema":{"properties":{"slug":{"description":"Unique organization slug","type":"string"},"name":{"description":"Name of the organization","type":"string","nullable":true},"company":{"description":"Name of the company","type":"string"},"email":{"description":"General contact email of the organization","type":"string","format":"email"},"phone":{"description":"Phone number of the organization","type":"string"},"colors":{"description":"Specific color settings for the organization","type":"object","properties":{"primaryColor":{"type":"string","description":"The primary color for the shop UI in HEX format (#RRGGBB)","example":"#FF5733","pattern":"^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$"},"buttonTextColor":{"type":"string","description":"The text color for buttons in the shop UI in HEX format (#RRGGBB)","example":"#007ACC","pattern":"^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$"},"backgroundColor":{"type":"string","description":"The background color for the shop UI in HEX format (#RRGGBB)","example":"#EFEFEF","pattern":"^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$"},"copyTextColor":{"type":"string","description":"The text color for copy (text) in the shop UI in HEX format (#RRGGBB)","example":"#333333","pattern":"^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$"},"footerColor":{"type":"string","description":"The color for the footer in the shop UI in HEX format (#RRGGBB)","example":"#444444","pattern":"^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$"},"footerTextColor":{"type":"string","description":"The text color for the footer in the shop UI in HEX format (#RRGGBB)","example":"#FFFFFF","pattern":"^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$"}}},"address_token":{"type":"string","description":"A unique address token came from the `\/locations\/find` endpoint"}}}}}},"responses":{"200":{"description":"The updated organization","content":{"application\/json":{"schema":{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"$ref":"#\/components\/schemas\/Organization"}}}}}},"400":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"No data was provided","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"noData"},"message":{"type":"string","description":"A description of the error","example":"No data was provided"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}},{"description":"The slug is not available","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"slugNotAvailable"},"message":{"type":"string","description":"A description of the error","example":"The slug is not available"},"details":{"type":"object","description":"Additional error details (if available)"}}},"result":{"description":"No result","nullable":true,"default":null}}},{"description":"The address token is not valid","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"addressTokenNotValid"},"message":{"type":"string","description":"A description of the error","example":"The address token is not valid"},"details":{"type":"object","description":"Additional error details (if available)"}}},"result":{"description":"No result","nullable":true,"default":null}}},{"description":"The color settings are not valid","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"colorSettingsNotValid"},"message":{"type":"string","description":"A description of the error","example":"The color settings are not valid"},"details":{"type":"object","description":"Additional error details (if available)"}}},"result":{"description":"No result","nullable":true,"default":null}}},{"description":"Missing or invalid fields: slug, name, company, email, phone, colors, address_token","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"inputDataInvalid"},"message":{"type":"string","description":"A description of the error","example":"Missing or invalid fields: slug, name, company, email, phone, colors, address_token"},"details":{"type":"object","description":"Additional error details (if available)","properties":{"invalid_fields":{"type":"array","description":"The missing or invalid fields","example":["slug","name","company","email","phone","colors","address_token"],"items":{"type":"string","enum":["slug","name","company","email","phone","colors","address_token"]}}}}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"noData":{"summary":"noData","value":{"error":{"code":400,"key":"noData","message":"No data was provided","details":[]},"result":null}},"slugNotAvailable":{"summary":"slugNotAvailable","value":{"error":{"code":400,"key":"slugNotAvailable","message":"The slug is not available","details":[]},"result":null}},"addressTokenNotValid":{"summary":"addressTokenNotValid","value":{"error":{"code":400,"key":"addressTokenNotValid","message":"The address token is not valid","details":[]},"result":null}},"colorSettingsNotValid":{"summary":"colorSettingsNotValid","value":{"error":{"code":400,"key":"colorSettingsNotValid","message":"The color settings are not valid","details":[]},"result":null}},"inputDataInvalid":{"summary":"inputDataInvalid","value":{"error":{"code":400,"key":"inputDataInvalid","message":"Missing or invalid fields: slug, name, company, email, phone, colors, address_token","details":{"invalid_fields":["slug","name","company","email","phone","colors","address_token"]}},"result":null}}}}},"description":"&#9702; `noData`: No data was provided<br>&#9702; `slugNotAvailable`: The slug is not available<br>&#9702; `addressTokenNotValid`: The address token is not valid<br>&#9702; `colorSettingsNotValid`: The color settings are not valid<br>&#9702; `inputDataInvalid`: Missing or invalid fields: slug, name, company, email, phone, colors, address_token"},"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}},"delete":{"summary":"Delete current organization","description":"This endpoint deletes the currently active organization (by session) and acts as a shortcut to the delete organization by id endpoint\n\n<h3>Required role permissions:<\/h3>`$permittedTo('organizations', 'delete', 'current')`","operationId":"organizations.current.delete","tags":["Organizations"],"security":[{"TokenAuth":[]}],"responses":{"200":{"description":"The deleted organization","content":{"application\/json":{"schema":{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"$ref":"#\/components\/schemas\/Organization"}}}}}},"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}}},"\/v1\/organizations\/{id}\/affiliate":{"get":{"summary":"Get affiliate partner","description":"This endpoint returs the current affiliate partner of a specific organization by id.","operationId":"organizations.affiliate.get","tags":["Organizations"],"security":[{"TokenAuth":[]}],"parameters":[{"$ref":"#\/components\/parameters\/id"}],"responses":{"200":{"description":"The affiliate partner organization","content":{"application\/json":{"schema":{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"$ref":"#\/components\/schemas\/Organization"}}}}}},"404":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Organization was not found","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":404},"key":{"type":"string","description":"Unique error key","example":"notFound"},"message":{"type":"string","description":"A description of the error","example":"Organization was not found"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"notFound":{"summary":"notFound","value":{"error":{"code":404,"key":"notFound","message":"Organization was not found","details":[]},"result":null}}}}},"description":"&#9702; `notFound`: Organization was not found"},"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}},"patch":{"summary":"Update affiliate settings","description":"This endpoint updates the affiliate settings of a specific organization by id.\n\nOnly affiliate partners and NIGHTOWL\u00ae admins can update affiliate settings.\n\n<h3>Required role permissions:<\/h3>`$permittedTo('organizations', 'update', 'affiliate')`","operationId":"organizations.affiliate.update","tags":["Organizations"],"security":[{"TokenAuth":[]}],"parameters":[{"$ref":"#\/components\/parameters\/id"}],"requestBody":{"description":"The affiliate settings to update","required":true,"content":{"application\/json":{"schema":{"properties":{"settings":{"type":"object","description":"The new affiliate settings","properties":{"automatic":{"description":"Automatic payouts enabled? If enabled, NIGHTOWL\u00ae will automatically split the payouts between the organization and the affiliate partner","type":"boolean","default":true,"nullable":true},"fees":{"description":"Specific fees to be paid by the organization","type":"object","properties":{"EUR":{"description":"Fees for EUR transactions","type":"object","properties":{"percentual":{"description":"Percentage of fees to be paid by the organization","type":"number","format":"float","example":4.2,"nullable":true},"flat":{"description":"Flat fees to be paid by the organization","type":"number","format":"float","example":0.8,"nullable":true}}}}}}}}}}}},"responses":{"200":{"description":"The updated organization (with new affiliate settings)","content":{"application\/json":{"schema":{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"$ref":"#\/components\/schemas\/Organization"}}}}}},"404":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Organization was not found","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":404},"key":{"type":"string","description":"Unique error key","example":"notFound"},"message":{"type":"string","description":"A description of the error","example":"Organization was not found"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"notFound":{"summary":"notFound","value":{"error":{"code":404,"key":"notFound","message":"Organization was not found","details":[]},"result":null}}}}},"description":"&#9702; `notFound`: Organization was not found"},"400":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"The affiliate settings are not valid","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"affiliateSettingsNotValid"},"message":{"type":"string","description":"A description of the error","example":"The affiliate settings are not valid"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}},{"description":"Missing or invalid fields: settings","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"inputDataInvalid"},"message":{"type":"string","description":"A description of the error","example":"Missing or invalid fields: settings"},"details":{"type":"object","description":"Additional error details (if available)","properties":{"invalid_fields":{"type":"array","description":"The missing or invalid fields","example":["settings"],"items":{"type":"string","enum":["settings"]}}}}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"affiliateSettingsNotValid":{"summary":"affiliateSettingsNotValid","value":{"error":{"code":400,"key":"affiliateSettingsNotValid","message":"The affiliate settings are not valid","details":[]},"result":null}},"inputDataInvalid":{"summary":"inputDataInvalid","value":{"error":{"code":400,"key":"inputDataInvalid","message":"Missing or invalid fields: settings","details":{"invalid_fields":["settings"]}},"result":null}}}}},"description":"&#9702; `affiliateSettingsNotValid`: The affiliate settings are not valid<br>&#9702; `inputDataInvalid`: Missing or invalid fields: settings"},"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}}},"\/v1\/organizations\/{id}\/logo":{"post":{"summary":"Upload a new organization logo","description":"This endpoint will update the organization logo of a specific organization by id. It replaces the current logo with the new one.\n\n<h3>Required role permissions:<\/h3>`$permittedTo('organizations', 'update', 'logo')`","operationId":"organizations.logo.update","tags":["Organizations"],"security":[{"TokenAuth":[]}],"parameters":[{"$ref":"#\/components\/parameters\/id"}],"requestBody":{"description":"An image file (any format) under 100 MB","required":true,"content":{"multipart\/form-data":{"schema":{"type":"object","properties":{"image":{"type":"string","format":"binary"}}}}}},"responses":{"200":{"description":"The updated organization (with new logo)","content":{"application\/json":{"schema":{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"$ref":"#\/components\/schemas\/Organization"}}}}}},"404":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Organization was not found","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":404},"key":{"type":"string","description":"Unique error key","example":"notFound"},"message":{"type":"string","description":"A description of the error","example":"Organization was not found"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"notFound":{"summary":"notFound","value":{"error":{"code":404,"key":"notFound","message":"Organization was not found","details":[]},"result":null}}}}},"description":"&#9702; `notFound`: Organization was not found"},"400":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Wrong image format or missing file","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"fileError"},"message":{"type":"string","description":"A description of the error","example":"Wrong image format or missing file"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"fileError":{"summary":"fileError","value":{"error":{"code":400,"key":"fileError","message":"Wrong image format or missing file","details":[]},"result":null}}}}},"description":"&#9702; `fileError`: Wrong image format or missing file"},"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}},"delete":{"summary":"Delete a previously uploaded organization logo","description":"This endpoint deletes a previously uploaded organization logo by the organization id\n\n<h3>Required role permissions:<\/h3>`$permittedTo('organizations', 'delete', 'logo')`","operationId":"organizations.logo.delete","tags":["Organizations"],"security":[{"TokenAuth":[]}],"parameters":[{"$ref":"#\/components\/parameters\/id"}],"responses":{"200":{"description":"The updated organization (without logo)","content":{"application\/json":{"schema":{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"$ref":"#\/components\/schemas\/Organization"}}}}}},"404":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Organization was not found","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":404},"key":{"type":"string","description":"Unique error key","example":"notFound"},"message":{"type":"string","description":"A description of the error","example":"Organization was not found"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"notFound":{"summary":"notFound","value":{"error":{"code":404,"key":"notFound","message":"Organization was not found","details":[]},"result":null}}}}},"description":"&#9702; `notFound`: Organization was not found"},"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}}},"\/v1\/organizations\/{id}\/favicon":{"post":{"summary":"Upload a new organization favicon","description":"This endpoint will update the organization favicon of a specific organization by id. It replaces the current favicon with the new one.\n\n<h3>Required role permissions:<\/h3>`$permittedTo('organizations', 'update', 'favicon')`","operationId":"organizations.favicon.update","tags":["Organizations"],"security":[{"TokenAuth":[]}],"parameters":[{"$ref":"#\/components\/parameters\/id"}],"requestBody":{"description":"An image file (any format) under 100 MB","required":true,"content":{"multipart\/form-data":{"schema":{"type":"object","properties":{"image":{"type":"string","format":"binary"}}}}}},"responses":{"200":{"description":"The updated organization (with new favicon)","content":{"application\/json":{"schema":{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"$ref":"#\/components\/schemas\/Organization"}}}}}},"404":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Organization was not found","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":404},"key":{"type":"string","description":"Unique error key","example":"notFound"},"message":{"type":"string","description":"A description of the error","example":"Organization was not found"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"notFound":{"summary":"notFound","value":{"error":{"code":404,"key":"notFound","message":"Organization was not found","details":[]},"result":null}}}}},"description":"&#9702; `notFound`: Organization was not found"},"400":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Wrong image format or missing file","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"fileError"},"message":{"type":"string","description":"A description of the error","example":"Wrong image format or missing file"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"fileError":{"summary":"fileError","value":{"error":{"code":400,"key":"fileError","message":"Wrong image format or missing file","details":[]},"result":null}}}}},"description":"&#9702; `fileError`: Wrong image format or missing file"},"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}},"delete":{"summary":"Delete a previously uploaded organization favicon","description":"This endpoint deletes a previously uploaded organization favicon by the organization id\n\n<h3>Required role permissions:<\/h3>`$permittedTo('organizations', 'delete', 'favicon')`","operationId":"organizations.favicon.delete","tags":["Organizations"],"security":[{"TokenAuth":[]}],"parameters":[{"$ref":"#\/components\/parameters\/id"}],"responses":{"200":{"description":"The updated organization (without favicon)","content":{"application\/json":{"schema":{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"$ref":"#\/components\/schemas\/Organization"}}}}}},"404":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Organization was not found","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":404},"key":{"type":"string","description":"Unique error key","example":"notFound"},"message":{"type":"string","description":"A description of the error","example":"Organization was not found"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"notFound":{"summary":"notFound","value":{"error":{"code":404,"key":"notFound","message":"Organization was not found","details":[]},"result":null}}}}},"description":"&#9702; `notFound`: Organization was not found"},"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}}},"\/v1\/organizations\/current\/logo":{"post":{"summary":"Upload a new organization logo (current organization)","description":"This endpoint will update the organization logo of the current organization. It replaces the current logo with the new one.\n\n<h3>Required role permissions:<\/h3>`$permittedTo('organizations', 'update', 'current.logo')`","operationId":"organizations.current.logo.update","tags":["Organizations"],"security":[{"TokenAuth":[]}],"requestBody":{"description":"An image file (any format) under 100 MB","required":true,"content":{"multipart\/form-data":{"schema":{"type":"object","properties":{"image":{"type":"string","format":"binary"}}}}}},"responses":{"200":{"description":"The updated organization (with new logo)","content":{"application\/json":{"schema":{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"$ref":"#\/components\/schemas\/Organization"}}}}}},"400":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Wrong image format or missing file","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"fileError"},"message":{"type":"string","description":"A description of the error","example":"Wrong image format or missing file"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"fileError":{"summary":"fileError","value":{"error":{"code":400,"key":"fileError","message":"Wrong image format or missing file","details":[]},"result":null}}}}},"description":"&#9702; `fileError`: Wrong image format or missing file"},"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}},"delete":{"summary":"Delete a previously uploaded organization logo (current organization)","description":"This endpoint deletes a previously uploaded organization logo from the current organization\n\n<h3>Required role permissions:<\/h3>`$permittedTo('organizations', 'delete', 'current.logo')`","operationId":"organizations.current.logo.delete","tags":["Organizations"],"security":[{"TokenAuth":[]}],"responses":{"200":{"description":"The updated organization (without logo)","content":{"application\/json":{"schema":{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"$ref":"#\/components\/schemas\/Organization"}}}}}},"404":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Organization was not found","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":404},"key":{"type":"string","description":"Unique error key","example":"notFound"},"message":{"type":"string","description":"A description of the error","example":"Organization was not found"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"notFound":{"summary":"notFound","value":{"error":{"code":404,"key":"notFound","message":"Organization was not found","details":[]},"result":null}}}}},"description":"&#9702; `notFound`: Organization was not found"},"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}}},"\/v1\/organizations\/current\/favicon":{"post":{"summary":"Upload a new organization favicon (current organization)","description":"This endpoint will update the organization favicon of the current organization. It replaces the current favicon with the new one.\n\n<h3>Required role permissions:<\/h3>`$permittedTo('organizations', 'update', 'current.favicon')`","operationId":"organizations.current.favicon.update","tags":["Organizations"],"security":[{"TokenAuth":[]}],"requestBody":{"description":"An image file (any format) under 100 MB","required":true,"content":{"multipart\/form-data":{"schema":{"type":"object","properties":{"image":{"type":"string","format":"binary"}}}}}},"responses":{"200":{"description":"The updated organization (with new favicon)","content":{"application\/json":{"schema":{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"$ref":"#\/components\/schemas\/Organization"}}}}}},"400":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Wrong image format or missing file","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"fileError"},"message":{"type":"string","description":"A description of the error","example":"Wrong image format or missing file"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"fileError":{"summary":"fileError","value":{"error":{"code":400,"key":"fileError","message":"Wrong image format or missing file","details":[]},"result":null}}}}},"description":"&#9702; `fileError`: Wrong image format or missing file"},"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}},"delete":{"summary":"Delete a previously uploaded organization favicon (current organization)","description":"This endpoint deletes a previously uploaded organization favicon from the current organization\n\n<h3>Required role permissions:<\/h3>`$permittedTo('organizations', 'delete', 'current.favicon')`","operationId":"organizations.current.favicon.delete","tags":["Organizations"],"security":[{"TokenAuth":[]}],"responses":{"200":{"description":"The updated organization (without favicon)","content":{"application\/json":{"schema":{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"$ref":"#\/components\/schemas\/Organization"}}}}}},"404":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Organization was not found","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":404},"key":{"type":"string","description":"Unique error key","example":"notFound"},"message":{"type":"string","description":"A description of the error","example":"Organization was not found"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"notFound":{"summary":"notFound","value":{"error":{"code":404,"key":"notFound","message":"Organization was not found","details":[]},"result":null}}}}},"description":"&#9702; `notFound`: Organization was not found"},"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}}},"\/v1\/organizations\/slug-availability":{"post":{"summary":"Check slug availability","description":"This endpoint checks if an organization slug is available and usable.\n\nA slug must be at least 3 characters long and cannot contain special characters and spaces.","operationId":"organizations.slug.availability.get","tags":["Organizations"],"security":[{"TokenAuth":[]}],"requestBody":{"description":"The slug to check","required":true,"content":{"application\/json":{"schema":{"required":["slug"],"properties":{"slug":{"type":"string","description":"The slug to check"},"organization":{"type":"string","description":"The current organization id to check the slug for"}}}}}},"responses":{"200":{"description":"If true, the slug is available, false otherwise. It returns always true if the slug is the same as the current organization","content":{"application\/json":{"schema":{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"description":"If true, the slug is available, false otherwise. It returns always true if the slug is the same as the current organization","type":"boolean","example":true}}}}}},"400":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Missing or invalid fields: slug","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"inputDataInvalid"},"message":{"type":"string","description":"A description of the error","example":"Missing or invalid fields: slug"},"details":{"type":"object","description":"Additional error details","properties":{"invalid_fields":{"type":"array","description":"The missing or invalid fields","example":["slug"],"items":{"type":"string","enum":["slug"]}}}}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"inputDataInvalid":{"summary":"inputDataInvalid","value":{"error":{"code":400,"key":"inputDataInvalid","message":"Missing or invalid fields: slug","details":{"invalid_fields":["slug"]}},"result":null}}}}},"description":"&#9702; `inputDataInvalid`: Missing or invalid fields: slug"},"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}}},"\/v1\/organizations\/generate-theme":{"post":{"summary":"Generate Theme Colors","description":"This endpoint generates matching theme colors for a specific preselected color","operationId":"organizations.generate.theme.get","tags":["Organizations"],"security":[{"TokenAuth":[]}],"requestBody":{"description":"The initial color value","required":true,"content":{"application\/json":{"schema":{"required":["key","color"],"properties":{"key":{"type":"string","description":"The source color key to generate the theme colors from","enum":["primaryColor","buttonTextColor","backgroundColor","copyTextColor","footerColor","footerTextColor"]},"color":{"type":"string","description":"The slug to check"},"area":{"type":"array","description":"Some other colors that are preferred to be used","items":{"type":"string","description":"Other hex colors"}}}}}}},"responses":{"200":{"description":"Specific color settings for the organization","content":{"application\/json":{"schema":{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"description":"Specific color settings for the organization","type":"object","properties":{"primaryColor":{"type":"string","description":"The primary color in HEX format (#RRGGBB)","example":"#FF5733","pattern":"^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$"},"buttonTextColor":{"type":"string","description":"The text color for buttons in the shop UI in HEX format (#RRGGBB)","example":"#007ACC","pattern":"^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$"},"backgroundColor":{"type":"string","description":"The background color in HEX format (#RRGGBB)","example":"#EFEFEF","pattern":"^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$"},"copyTextColor":{"type":"string","description":"The text color for copy (text) in HEX format (#RRGGBB)","example":"#333333","pattern":"^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$"},"footerColor":{"type":"string","description":"The color for the footer in HEX format (#RRGGBB)","example":"#444444","pattern":"^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$"},"footerTextColor":{"type":"string","description":"The text color for the footer in HEX format (#RRGGBB)","example":"#FFFFFF","pattern":"^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$"}}}}}}}},"400":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"The key is not valid","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"keyNotValid"},"message":{"type":"string","description":"A description of the error","example":"The key is not valid"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}},{"description":"The color is not valid","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"colorNotValid"},"message":{"type":"string","description":"A description of the error","example":"The color is not valid"},"details":{"type":"object","description":"Additional error details (if available)"}}},"result":{"description":"No result","nullable":true,"default":null}}},{"description":"Missing or invalid fields: key, color","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"inputDataInvalid"},"message":{"type":"string","description":"A description of the error","example":"Missing or invalid fields: key, color"},"details":{"type":"object","description":"Additional error details (if available)","properties":{"invalid_fields":{"type":"array","description":"The missing or invalid fields","example":["key","color"],"items":{"type":"string","enum":["key","color"]}}}}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"keyNotValid":{"summary":"keyNotValid","value":{"error":{"code":400,"key":"keyNotValid","message":"The key is not valid","details":[]},"result":null}},"colorNotValid":{"summary":"colorNotValid","value":{"error":{"code":400,"key":"colorNotValid","message":"The color is not valid","details":[]},"result":null}},"inputDataInvalid":{"summary":"inputDataInvalid","value":{"error":{"code":400,"key":"inputDataInvalid","message":"Missing or invalid fields: key, color","details":{"invalid_fields":["key","color"]}},"result":null}}}}},"description":"&#9702; `keyNotValid`: The key is not valid<br>&#9702; `colorNotValid`: The color is not valid<br>&#9702; `inputDataInvalid`: Missing or invalid fields: key, color"},"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}}},"\/v1\/organizations\/{id}\/stripe.connect":{"get":{"summary":"Stripe Connect onboarding","description":"This endpoint starts the Stripe onboarding process for the organization by its id.\n\nVisiting this endpoint redirects the user to the Stripe onboarding page or the backend if the organization is already connected to Stripe.\n\nIf the organization is already connected to Stripe, a `connected` query parameter is set to `\u2713` to the return URL, otherwise this parameter is not set.\n\n<h3>Required role permissions:<\/h3>`$permittedTo('organizations', 'get', 'stripe.onboarding')`","operationId":"organizations.stripe.onboarding.get","tags":["Organizations"],"security":[{"TokenAuth":[]}],"parameters":[{"$ref":"#\/components\/parameters\/id"}],"responses":{"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}}},"\/v1\/organizations\/{id}\/stripe.reconnect":{"get":{"summary":"Edit Stripe account settings","description":"This endpoint returns the a Stripe reconnect link for the currently active organization (by session).\n\nIt allows the user to edit the Stripe account settings.\n\n<h3>Required role permissions:<\/h3>`$permittedTo('organizations', 'get', 'stripe.reconnect')`","operationId":"organizations.stripe.reconnect.get","tags":["Organizations"],"security":[{"TokenAuth":[]}],"parameters":[{"$ref":"#\/components\/parameters\/id"}],"responses":{"403":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"No active Stripe account was found for this organization","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":403},"key":{"type":"string","description":"Unique error key","example":"inactiveStripeAccount"},"message":{"type":"string","description":"A description of the error","example":"No active Stripe account was found for this organization"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"inactiveStripeAccount":{"summary":"inactiveStripeAccount","value":{"error":{"code":403,"key":"inactiveStripeAccount","message":"No active Stripe account was found for this organization","details":[]},"result":null}}}}},"description":"&#9702; `inactiveStripeAccount`: No active Stripe account was found for this organization"},"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}}},"\/v1\/organizations\/{id}\/stripe.dashboard":{"get":{"summary":"Stripe Dashboard login link (direct login)","description":"This endpoint returns the Stripe dashboard login link for the current organization (by session).\n\nIt can be used to redirect the user to the Stripe dashboard without having to enter the Stripe credentials.\n\n<h3>Required role permissions:<\/h3>`$permittedTo('organizations', 'get', 'stripe.dashboard')`","operationId":"organizations.stripe.dashboard.get","tags":["Organizations"],"security":[{"TokenAuth":[]}],"parameters":[{"$ref":"#\/components\/parameters\/id"}],"responses":{"403":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"No active Stripe account was found for this organization","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":403},"key":{"type":"string","description":"Unique error key","example":"inactiveStripeAccount"},"message":{"type":"string","description":"A description of the error","example":"No active Stripe account was found for this organization"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"inactiveStripeAccount":{"summary":"inactiveStripeAccount","value":{"error":{"code":403,"key":"inactiveStripeAccount","message":"No active Stripe account was found for this organization","details":[]},"result":null}}}}},"description":"&#9702; `inactiveStripeAccount`: No active Stripe account was found for this organization"},"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}}},"\/v1\/organizations\/{id}\/files":{"get":{"summary":"Get all files attached to an organization","description":"This endpoint returns all files from a specific organization by id.\n\n<h3>Required role permissions:<\/h3>`$permittedTo('organizations', 'get', 'files')`","operationId":"organizations.files.get","tags":["Organizations"],"security":[{"TokenAuth":[]}],"parameters":[{"$ref":"#\/components\/parameters\/id"},{"$ref":"#\/components\/parameters\/page"},{"$ref":"#\/components\/parameters\/limit"},{"$ref":"#\/components\/parameters\/select"},{"$ref":"#\/components\/parameters\/orderBy"},{"$ref":"#\/components\/parameters\/filterBy"}],"responses":{"200":{"description":"All files of the organization","content":{"application\/json":{"schema":{"oneOf":[{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"description":"All files of the organization","type":"object","additionalProperties":{"$ref":"#\/components\/schemas\/OrganizationFile"}}},"description":"All files of the organization"},{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"description":"Paginated result","type":"object","properties":{"objects":{"description":"All files of the organization","type":"object","additionalProperties":{"$ref":"#\/components\/schemas\/OrganizationFile"}},"pagination":{"type":"object","description":"Pagination information","properties":{"page":{"type":"integer","description":"Current page","example":1},"pages":{"type":"integer","description":"Total pages","example":10},"objects":{"type":"integer","description":"Total number of objects","example":100}}}}}},"description":"All files of the organization (paginated if `limit` is set in query params)"}]}}}},"404":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Target organization was not found","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":404},"key":{"type":"string","description":"Unique error key","example":"notFound"},"message":{"type":"string","description":"A description of the error","example":"Target organization was not found"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"notFound":{"summary":"notFound","value":{"error":{"code":404,"key":"notFound","message":"Target organization was not found","details":[]},"result":null}}}}},"description":"&#9702; `notFound`: Target organization was not found"},"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}},"post":{"summary":"Create a new file for an organization","description":"This endpoint returns all files from a specific organization by id.\n\n<h3>Required role permissions:<\/h3>`$permittedTo('organizations', 'create', 'file')`","operationId":"organizations.file.create","tags":["Organizations"],"security":[{"TokenAuth":[]}],"parameters":[{"$ref":"#\/components\/parameters\/id"}],"requestBody":{"description":"A file (any format) under 100 MB","required":true,"content":{"multipart\/form-data":{"schema":{"type":"object","properties":{"file":{"type":"string","format":"binary"}}}}}},"responses":{"200":{"description":"The created organization file","content":{"application\/json":{"schema":{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"$ref":"#\/components\/schemas\/OrganizationFile"}}}}}},"404":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Target organization was not found","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":404},"key":{"type":"string","description":"Unique error key","example":"notFound"},"message":{"type":"string","description":"A description of the error","example":"Target organization was not found"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"notFound":{"summary":"notFound","value":{"error":{"code":404,"key":"notFound","message":"Target organization was not found","details":[]},"result":null}}}}},"description":"&#9702; `notFound`: Target organization was not found"},"400":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Missing file","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"fileError"},"message":{"type":"string","description":"A description of the error","example":"Missing file"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"fileError":{"summary":"fileError","value":{"error":{"code":400,"key":"fileError","message":"Missing file","details":[]},"result":null}}}}},"description":"&#9702; `fileError`: Missing file"},"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}}},"\/v1\/organizations\/{id}\/files\/{file}":{"get":{"summary":"Get a specific file from an organization","description":"This endpoint returns the file information from a specific organization by id.\n\n<h3>Required role permissions:<\/h3>`$permittedTo('organizations', 'get', 'file')`","operationId":"organizations.file.get","tags":["Organizations"],"security":[{"TokenAuth":[]}],"parameters":[{"$ref":"#\/components\/parameters\/id"},{"in":"path","name":"file","schema":{"type":"string","example":"123456789012"},"required":true,"description":"The uniqe file identifier"},{"$ref":"#\/components\/parameters\/select"}],"responses":{"200":{"description":"The requested organization file","content":{"application\/json":{"schema":{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"$ref":"#\/components\/schemas\/OrganizationFile"}}}}}},"404":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Target organization or file was not found","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":404},"key":{"type":"string","description":"Unique error key","example":"notFound"},"message":{"type":"string","description":"A description of the error","example":"Target organization or file was not found"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"notFound":{"summary":"notFound","value":{"error":{"code":404,"key":"notFound","message":"Target organization or file was not found","details":[]},"result":null}}}}},"description":"&#9702; `notFound`: Target organization or file was not found"},"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}},"patch":{"summary":"Update a specific file from an organization","description":"This endpoint updates a specific file name from an organization by id.\n\n<h3>Required role permissions:<\/h3>`$permittedTo('organizations', 'update', 'file')`","operationId":"organizations.file.update","tags":["Organizations"],"security":[{"TokenAuth":[]}],"parameters":[{"$ref":"#\/components\/parameters\/id"},{"in":"path","name":"file","schema":{"type":"string","example":"123456789012"},"required":true,"description":"The uniqe file identifier"}],"requestBody":{"description":"The new file name","required":false,"content":{"application\/json":{"schema":{"required":["name"],"properties":{"name":{"type":"string","description":"The new file name (without extension)"}}}}}},"responses":{"200":{"description":"The updated organization file","content":{"application\/json":{"schema":{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"$ref":"#\/components\/schemas\/OrganizationFile"}}}}}},"404":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Target organization or file was not found","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":404},"key":{"type":"string","description":"Unique error key","example":"notFound"},"message":{"type":"string","description":"A description of the error","example":"Target organization or file was not found"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"notFound":{"summary":"notFound","value":{"error":{"code":404,"key":"notFound","message":"Target organization or file was not found","details":[]},"result":null}}}}},"description":"&#9702; `notFound`: Target organization or file was not found"},"400":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Missing or invalid fields: name","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"inputDataInvalid"},"message":{"type":"string","description":"A description of the error","example":"Missing or invalid fields: name"},"details":{"type":"object","description":"Additional error details","properties":{"invalid_fields":{"type":"array","description":"The missing or invalid fields","example":["name"],"items":{"type":"string","enum":["name"]}}}}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"inputDataInvalid":{"summary":"inputDataInvalid","value":{"error":{"code":400,"key":"inputDataInvalid","message":"Missing or invalid fields: name","details":{"invalid_fields":["name"]}},"result":null}}}}},"description":"&#9702; `inputDataInvalid`: Missing or invalid fields: name"},"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}},"delete":{"summary":"Delete a specific file from an organization","description":"This endpoint deletes a specific file from an organization by id.\n\n<h3>Required role permissions:<\/h3>`$permittedTo('organizations', 'delete', 'file')`","operationId":"organizations.file.delete","tags":["Organizations"],"security":[{"TokenAuth":[]}],"parameters":[{"$ref":"#\/components\/parameters\/id"},{"in":"path","name":"file","schema":{"type":"string","example":"123456789012"},"required":true,"description":"The uniqe file identifier"}],"responses":{"200":{"description":"The deleted organization file","content":{"application\/json":{"schema":{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"$ref":"#\/components\/schemas\/OrganizationFile"}}}}}},"404":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Target organization or file was not found","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":404},"key":{"type":"string","description":"Unique error key","example":"notFound"},"message":{"type":"string","description":"A description of the error","example":"Target organization or file was not found"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"notFound":{"summary":"notFound","value":{"error":{"code":404,"key":"notFound","message":"Target organization or file was not found","details":[]},"result":null}}}}},"description":"&#9702; `notFound`: Target organization or file was not found"},"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}}},"\/v1\/organizations\/{id}\/files\/{file}\/download":{"get":{"summary":"Download a specific file from an organization","description":"This endpoint downloads a specific file from an organization by id.\n\n<h3>Required role permissions:<\/h3>`$permittedTo('organizations', 'get', 'file.download')`","operationId":"organizations.file.download.get","tags":["Organizations"],"security":[{"TokenAuth":[]}],"parameters":[{"$ref":"#\/components\/parameters\/id"},{"in":"path","name":"file","schema":{"type":"string","example":"123456789012"},"required":true,"description":"The uniqe file identifier"},{"$ref":"#\/components\/parameters\/token"}],"responses":{"200":{"description":"Binary file","content":{"*\/*":{"schema":{"type":"string","format":"binary","description":"Binary file"}}}},"404":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Target organization or file was not found","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":404},"key":{"type":"string","description":"Unique error key","example":"notFound"},"message":{"type":"string","description":"A description of the error","example":"Target organization or file was not found"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"notFound":{"summary":"notFound","value":{"error":{"code":404,"key":"notFound","message":"Target organization or file was not found","details":[]},"result":null}}}}},"description":"&#9702; `notFound`: Target organization or file was not found"},"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}}},"\/v1\/organizations\/{id}.ics":{"get":{"summary":"Subscribe to an organization calendar file","description":"This public endpoint provides a calendar file (ics) with all future event dates of an organization.","operationId":"organizations.calendar.get","tags":["Organizations"],"parameters":[{"$ref":"#\/components\/parameters\/id"}],"responses":{"200":{"description":"Binary calendar file of all event dates","content":{"text\/calendar":{"schema":{"type":"string","format":"binary","description":"A calendar file (ics) with all relevant event dates"}}}},"404":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Organization was not found","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":404},"key":{"type":"string","description":"Unique error key","example":"notFound"},"message":{"type":"string","description":"A description of the error","example":"Organization was not found"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"notFound":{"summary":"notFound","value":{"error":{"code":404,"key":"notFound","message":"Organization was not found","details":[]},"result":null}}}}},"description":"&#9702; `notFound`: Organization was not found"},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}}},"\/v1\/payouts":{"get":{"summary":"Get all payouts","description":"This endpoint returns all payouts (depending on the user's permissions)\n\n<h3>Required role permissions:<\/h3>`$permittedTo('payouts', 'get', 'all')`","operationId":"payouts.all.get","tags":["Payouts"],"security":[{"TokenAuth":[]}],"parameters":[{"$ref":"#\/components\/parameters\/page"},{"$ref":"#\/components\/parameters\/limit"},{"$ref":"#\/components\/parameters\/select"},{"$ref":"#\/components\/parameters\/orderBy"},{"$ref":"#\/components\/parameters\/filterBy"}],"responses":{"200":{"description":"All payouts","content":{"application\/json":{"schema":{"oneOf":[{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"description":"All payouts","type":"object","additionalProperties":{"$ref":"#\/components\/schemas\/Payout"}}},"description":"All payouts"},{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"description":"Paginated result","type":"object","properties":{"objects":{"description":"All payouts","type":"object","additionalProperties":{"$ref":"#\/components\/schemas\/Payout"}},"pagination":{"type":"object","description":"Pagination information","properties":{"page":{"type":"integer","description":"Current page","example":1},"pages":{"type":"integer","description":"Total pages","example":10},"objects":{"type":"integer","description":"Total number of objects","example":100}}}}}},"description":"All payouts (paginated if `limit` is set in query params)"}]}}}},"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}},"post":{"summary":"Create a new payout","description":"This endpoint creates a new payout based on its type. The payout can be transferred immediately to the target organization.\n\nThe payout contents are automatically generated based on the event's payout plan and purchases.\n\n<h3>Required role permissions:<\/h3>`$permittedTo('admin', 'create', 'payout')`","operationId":"admin.payout.create","tags":["Payouts"],"security":[{"TokenAuth":[]}],"requestBody":{"description":"Payout details","required":true,"content":{"application\/json":{"schema":{"required":["organization","event","type"],"properties":{"organization":{"description":"The target organization of the payout","type":"string"},"event":{"description":"The target event of the payout","type":"string"},"amount":{"description":"The amount of the payout","type":"number","format":"float","default":0},"type":{"description":"The payout type","type":"string","enum":["eventpayout","prepayment","affiliate"]},"notes":{"description":"Notes for the payout","type":"string"},"transfer":{"type":"boolean","description":"Transfer money immediately to target organization"}}}}}},"responses":{"200":{"description":"The payout object","content":{"application\/json":{"schema":{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"$ref":"#\/components\/schemas\/Payout"}}}}}},"403":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not allowed to perform this action","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":403},"key":{"type":"string","description":"Unique error key","example":"forbidden"},"message":{"type":"string","description":"A description of the error","example":"You are not allowed to perform this action"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}},{"description":"Target organization is not active and cannot receive payouts","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":403},"key":{"type":"string","description":"Unique error key","example":"targetOrganizationNotActive"},"message":{"type":"string","description":"A description of the error","example":"Target organization is not active and cannot receive payouts"},"details":{"type":"object","description":"Additional error details (if available)"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"forbidden":{"summary":"forbidden","value":{"error":{"code":403,"key":"forbidden","message":"You are not allowed to perform this action","details":[]},"result":null}},"targetOrganizationNotActive":{"summary":"targetOrganizationNotActive","value":{"error":{"code":403,"key":"targetOrganizationNotActive","message":"Target organization is not active and cannot receive payouts","details":[]},"result":null}}}}},"description":"&#9702; `forbidden`: You are not allowed to perform this action<br>&#9702; `targetOrganizationNotActive`: Target organization is not active and cannot receive payouts"},"404":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Target organization was not found","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":404},"key":{"type":"string","description":"Unique error key","example":"targetOrganizationNotFound"},"message":{"type":"string","description":"A description of the error","example":"Target organization was not found"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}},{"description":"The specified event was not found","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":404},"key":{"type":"string","description":"Unique error key","example":"targetEventNotFound"},"message":{"type":"string","description":"A description of the error","example":"The specified event was not found"},"details":{"type":"object","description":"Additional error details (if available)"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"targetOrganizationNotFound":{"summary":"targetOrganizationNotFound","value":{"error":{"code":404,"key":"targetOrganizationNotFound","message":"Target organization was not found","details":[]},"result":null}},"targetEventNotFound":{"summary":"targetEventNotFound","value":{"error":{"code":404,"key":"targetEventNotFound","message":"The specified event was not found","details":[]},"result":null}}}}},"description":"&#9702; `targetOrganizationNotFound`: Target organization was not found<br>&#9702; `targetEventNotFound`: The specified event was not found"},"400":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You must provide an amount > 0 if the payout type is prepayment","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"illegalAmount"},"message":{"type":"string","description":"A description of the error","example":"You must provide an amount > 0 if the payout type is prepayment"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}},{"description":"Please use one of the valid payout types","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"invalidPayoutType"},"message":{"type":"string","description":"A description of the error","example":"Please use one of the valid payout types"},"details":{"type":"object","description":"Additional error details (if available)"}}},"result":{"description":"No result","nullable":true,"default":null}}},{"description":"There are insufficient funds to perform this payout","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"insufficientFunds"},"message":{"type":"string","description":"A description of the error","example":"There are insufficient funds to perform this payout"},"details":{"type":"object","description":"Additional error details (if available)"}}},"result":{"description":"No result","nullable":true,"default":null}}},{"description":"There is already a payout for this event","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"payoutAlreadyPerformed"},"message":{"type":"string","description":"A description of the error","example":"There is already a payout for this event"},"details":{"type":"object","description":"Additional error details (if available)"}}},"result":{"description":"No result","nullable":true,"default":null}}},{"description":"Missing or invalid fields: organization, event, type","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"inputDataInvalid"},"message":{"type":"string","description":"A description of the error","example":"Missing or invalid fields: organization, event, type"},"details":{"type":"object","description":"Additional error details (if available)","properties":{"invalid_fields":{"type":"array","description":"The missing or invalid fields","example":["organization","event","type"],"items":{"type":"string","enum":["organization","event","type"]}}}}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"illegalAmount":{"summary":"illegalAmount","value":{"error":{"code":400,"key":"illegalAmount","message":"You must provide an amount > 0 if the payout type is prepayment","details":[]},"result":null}},"invalidPayoutType":{"summary":"invalidPayoutType","value":{"error":{"code":400,"key":"invalidPayoutType","message":"Please use one of the valid payout types","details":[]},"result":null}},"insufficientFunds":{"summary":"insufficientFunds","value":{"error":{"code":400,"key":"insufficientFunds","message":"There are insufficient funds to perform this payout","details":[]},"result":null}},"payoutAlreadyPerformed":{"summary":"payoutAlreadyPerformed","value":{"error":{"code":400,"key":"payoutAlreadyPerformed","message":"There is already a payout for this event","details":[]},"result":null}},"inputDataInvalid":{"summary":"inputDataInvalid","value":{"error":{"code":400,"key":"inputDataInvalid","message":"Missing or invalid fields: organization, event, type","details":{"invalid_fields":["organization","event","type"]}},"result":null}}}}},"description":"&#9702; `illegalAmount`: You must provide an amount > 0 if the payout type is prepayment<br>&#9702; `invalidPayoutType`: Please use one of the valid payout types<br>&#9702; `insufficientFunds`: There are insufficient funds to perform this payout<br>&#9702; `payoutAlreadyPerformed`: There is already a payout for this event<br>&#9702; `inputDataInvalid`: Missing or invalid fields: organization, event, type"},"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}}},"\/v1\/payouts\/{id}":{"get":{"summary":"Get a specific payout by id","description":"This endpoint returns a specific payout by its unique id\n\n<h3>Required role permissions:<\/h3>`$permittedTo('payouts', 'get', 'payout')`","operationId":"payouts.payout.get","tags":["Payouts"],"security":[{"TokenAuth":[]}],"parameters":[{"$ref":"#\/components\/parameters\/id"},{"$ref":"#\/components\/parameters\/select"}],"responses":{"200":{"description":"The requested payout","content":{"application\/json":{"schema":{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"$ref":"#\/components\/schemas\/Payout"}}}}}},"404":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Payout was not found","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":404},"key":{"type":"string","description":"Unique error key","example":"notFound"},"message":{"type":"string","description":"A description of the error","example":"Payout was not found"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"notFound":{"summary":"notFound","value":{"error":{"code":404,"key":"notFound","message":"Payout was not found","details":[]},"result":null}}}}},"description":"&#9702; `notFound`: Payout was not found"},"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}},"patch":{"summary":"Update a payout by id","description":"This endpoint updates the payout details (notes) by its unique id\n\n<h3>Required role permissions:<\/h3>`$permittedTo('payouts', 'update', 'payout')`","operationId":"payouts.payout.update","tags":["Payouts"],"security":[{"TokenAuth":[]}],"parameters":[{"$ref":"#\/components\/parameters\/id"}],"requestBody":{"description":"Payout details","required":true,"content":{"application\/json":{"schema":{"properties":{"notes":{"description":"Notes for the payout","type":"string"}}}}}},"responses":{"200":{"description":"The updated payout","content":{"application\/json":{"schema":{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"$ref":"#\/components\/schemas\/Payout"}}}}}},"400":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"No data was provided","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"noData"},"message":{"type":"string","description":"A description of the error","example":"No data was provided"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}},{"description":"Missing or invalid fields: notes","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"inputDataInvalid"},"message":{"type":"string","description":"A description of the error","example":"Missing or invalid fields: notes"},"details":{"type":"object","description":"Additional error details (if available)","properties":{"invalid_fields":{"type":"array","description":"The missing or invalid fields","example":["notes"],"items":{"type":"string","enum":["notes"]}}}}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"noData":{"summary":"noData","value":{"error":{"code":400,"key":"noData","message":"No data was provided","details":[]},"result":null}},"inputDataInvalid":{"summary":"inputDataInvalid","value":{"error":{"code":400,"key":"inputDataInvalid","message":"Missing or invalid fields: notes","details":{"invalid_fields":["notes"]}},"result":null}}}}},"description":"&#9702; `noData`: No data was provided<br>&#9702; `inputDataInvalid`: Missing or invalid fields: notes"},"404":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Payout was not found","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":404},"key":{"type":"string","description":"Unique error key","example":"notFound"},"message":{"type":"string","description":"A description of the error","example":"Payout was not found"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"notFound":{"summary":"notFound","value":{"error":{"code":404,"key":"notFound","message":"Payout was not found","details":[]},"result":null}}}}},"description":"&#9702; `notFound`: Payout was not found"},"403":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not allowed to perform this action","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":403},"key":{"type":"string","description":"Unique error key","example":"forbidden"},"message":{"type":"string","description":"A description of the error","example":"You are not allowed to perform this action"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"forbidden":{"summary":"forbidden","value":{"error":{"code":403,"key":"forbidden","message":"You are not allowed to perform this action","details":[]},"result":null}}}}},"description":"&#9702; `forbidden`: You are not allowed to perform this action"},"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}},"delete":{"summary":"Cancel a payout by id","description":"This endpoint cancels a payout by its unique id\n\n<h3>Required role permissions:<\/h3>`$permittedTo('payouts', 'delete', 'payout')`","operationId":"payouts.payout.delete","tags":["Payouts"],"security":[{"TokenAuth":[]}],"parameters":[{"$ref":"#\/components\/parameters\/id"}],"responses":{"200":{"description":"The canceled payout","content":{"application\/json":{"schema":{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"$ref":"#\/components\/schemas\/Payout"}}}}}},"404":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Payout was not found","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":404},"key":{"type":"string","description":"Unique error key","example":"notFound"},"message":{"type":"string","description":"A description of the error","example":"Payout was not found"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"notFound":{"summary":"notFound","value":{"error":{"code":404,"key":"notFound","message":"Payout was not found","details":[]},"result":null}}}}},"description":"&#9702; `notFound`: Payout was not found"},"403":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not allowed to perform this action","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":403},"key":{"type":"string","description":"Unique error key","example":"forbidden"},"message":{"type":"string","description":"A description of the error","example":"You are not allowed to perform this action"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"forbidden":{"summary":"forbidden","value":{"error":{"code":403,"key":"forbidden","message":"You are not allowed to perform this action","details":[]},"result":null}}}}},"description":"&#9702; `forbidden`: You are not allowed to perform this action"},"400":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Payout is already canceled","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"alreadyCanceled"},"message":{"type":"string","description":"A description of the error","example":"Payout is already canceled"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"alreadyCanceled":{"summary":"alreadyCanceled","value":{"error":{"code":400,"key":"alreadyCanceled","message":"Payout is already canceled","details":[]},"result":null}}}}},"description":"&#9702; `alreadyCanceled`: Payout is already canceled"},"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}}},"\/v1\/payouts\/{id}.pdf":{"get":{"summary":"Download credit invoice as a pdf file","description":"This endpoint downloads an credit invoice as a pdf file. If the payout was not found, the endpoint redirects to the backend.\n\n<h3>Required role permissions:<\/h3>`$permittedTo('payouts', 'get', 'invoice')`","operationId":"payouts.invoice.get","tags":["Payouts"],"security":[{"TokenAuth":[]}],"parameters":[{"$ref":"#\/components\/parameters\/id"}],"responses":{"200":{"description":"Credit invoice","content":{"application\/pdf":{"schema":{"type":"string","format":"binary","description":"Credit invoice as a pdf file"}}}},"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}}},"\/v1\/payouts.zip":{"get":{"summary":"Download multiple credit invoices as a zip file","description":"This endpoint downloads multiple credit invoices as a zip file. If the payout ids are invalid or not found, the endpoint redirects to the backend.\n\n<h3>Required role permissions:<\/h3>`$permittedTo('payouts', 'get', 'invoices')`","operationId":"payouts.invoices.get","tags":["Payouts"],"security":[{"TokenAuth":[]}],"parameters":[{"in":"query","name":"ids","schema":{"type":"string"},"required":true,"description":"The individual payout ids the zip file should include\n\nExample: `id1,id2,...`"}],"responses":{"200":{"description":"Credit invoices as zip","content":{"application\/x-zip":{"schema":{"type":"string","format":"binary","description":"Credit invoices as a zip file (bundle)"}}}},"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}}},"\/v1\/stats\/date_ranges":{"post":{"summary":"Get available date ranges","description":"This endpoint returns information about the date ranges for the available purchase data. It provides three ranges:\n\n- requested: The date range provided in the request\n\n- displaying: The actual date range of purchases matching the filters\n\n- available: The absolute min\/max dates of all purchases available","operationId":"stats.date_ranges.get","tags":["Stats"],"security":[{"TokenAuth":[]}],"requestBody":{"description":"Event filters and date range to get available date ranges","required":false,"content":{"application\/json":{"schema":{"properties":{"events":{"type":"array","description":"An array of event ids to get date ranges for","items":{"type":"string","minLength":12,"maxLength":12}},"from_date":{"type":"string","description":"The start date to get date ranges for (UTC)","format":"date"},"to_date":{"type":"string","description":"The end date to get date ranges for (UTC)","format":"date"}}}}}},"responses":{"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Authentication is required to access statistics","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthorized"},"message":{"type":"string","description":"A description of the error","example":"Authentication is required to access statistics"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}},{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details (if available)"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthorized":{"summary":"unauthorized","value":{"error":{"code":401,"key":"unauthorized","message":"Authentication is required to access statistics","details":[]},"result":null}},"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthorized`: Authentication is required to access statistics<br>&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"403":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not allowed to access these statistics for the selected filters","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":403},"key":{"type":"string","description":"Unique error key","example":"forbidden"},"message":{"type":"string","description":"A description of the error","example":"You are not allowed to access these statistics for the selected filters"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"forbidden":{"summary":"forbidden","value":{"error":{"code":403,"key":"forbidden","message":"You are not allowed to access these statistics for the selected filters","details":[]},"result":null}}}}},"description":"&#9702; `forbidden`: You are not allowed to access these statistics for the selected filters"},"400":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Missing or invalid fields: events, from_date, to_date","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"inputDataInvalid"},"message":{"type":"string","description":"A description of the error","example":"Missing or invalid fields: events, from_date, to_date"},"details":{"type":"object","description":"Additional error details","properties":{"invalid_fields":{"type":"array","description":"The missing or invalid fields","example":["events","from_date","to_date"],"items":{"type":"string","enum":["events","from_date","to_date"]}}}}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"inputDataInvalid":{"summary":"inputDataInvalid","value":{"error":{"code":400,"key":"inputDataInvalid","message":"Missing or invalid fields: events, from_date, to_date","details":{"invalid_fields":["events","from_date","to_date"]}},"result":null}}}}},"description":"&#9702; `inputDataInvalid`: Missing or invalid fields: events, from_date, to_date"},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}}},"\/v1\/stats\/purchases\/basic":{"post":{"summary":"Get purchases basic stats","description":"This endpoint returns fundamental purchase statistics including confirmed, canceled, discounted, and insured purchases, along with total revenue, items, tickets, fees, and VAT. All monetary values are converted to the specified target currency, and average values per purchase are calculated for value, items, tickets, discounts, and insurance.\n\n<h3>Required role permissions:<\/h3>`$permittedTo('stats', 'get', 'purchases_basic')`","operationId":"stats.purchases_basic.get","tags":["Stats"],"security":[{"TokenAuth":[]}],"requestBody":{"description":"Event filters and date range to get purchases basic stats","required":false,"content":{"application\/json":{"schema":{"properties":{"events":{"type":"array","description":"An array of event ids to get stats for","items":{"type":"string","minLength":12,"maxLength":12}},"from_date":{"type":"string","description":"The start date to get stats for (UTC)","format":"date"},"to_date":{"type":"string","description":"The end date to get stats for (UTC)","format":"date"},"currency":{"type":"string","description":"The target currency to convert","default":"EUR","example":"EUR"}}}}}},"responses":{"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Authentication is required to access statistics","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthorized"},"message":{"type":"string","description":"A description of the error","example":"Authentication is required to access statistics"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}},{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details (if available)"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthorized":{"summary":"unauthorized","value":{"error":{"code":401,"key":"unauthorized","message":"Authentication is required to access statistics","details":[]},"result":null}},"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthorized`: Authentication is required to access statistics<br>&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"403":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not allowed to access these statistics for the selected filters","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":403},"key":{"type":"string","description":"Unique error key","example":"forbidden"},"message":{"type":"string","description":"A description of the error","example":"You are not allowed to access these statistics for the selected filters"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"forbidden":{"summary":"forbidden","value":{"error":{"code":403,"key":"forbidden","message":"You are not allowed to access these statistics for the selected filters","details":[]},"result":null}}}}},"description":"&#9702; `forbidden`: You are not allowed to access these statistics for the selected filters"},"400":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Missing or invalid fields: events, from_date, to_date, currency","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"inputDataInvalid"},"message":{"type":"string","description":"A description of the error","example":"Missing or invalid fields: events, from_date, to_date, currency"},"details":{"type":"object","description":"Additional error details","properties":{"invalid_fields":{"type":"array","description":"The missing or invalid fields","example":["events","from_date","to_date","currency"],"items":{"type":"string","enum":["events","from_date","to_date","currency"]}}}}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"inputDataInvalid":{"summary":"inputDataInvalid","value":{"error":{"code":400,"key":"inputDataInvalid","message":"Missing or invalid fields: events, from_date, to_date, currency","details":{"invalid_fields":["events","from_date","to_date","currency"]}},"result":null}}}}},"description":"&#9702; `inputDataInvalid`: Missing or invalid fields: events, from_date, to_date, currency"},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}}},"\/v1\/stats\/purchases\/times":{"post":{"summary":"Get purchases times (hourly distribution)","description":"This endpoint shows at which hours of the day purchases are made. It is based on UTC time and returns the sum of purchases for each hour (0-23).\n\n<h3>Required role permissions:<\/h3>`$permittedTo('stats', 'get', 'purchases_times')`","operationId":"stats.purchases_times.get","tags":["Stats"],"security":[{"TokenAuth":[]}],"requestBody":{"description":"Event filters and date range to get purchases times","required":false,"content":{"application\/json":{"schema":{"properties":{"events":{"type":"array","description":"An array of event ids to get stats for","items":{"type":"string","minLength":12,"maxLength":12}},"from_date":{"type":"string","description":"The start date to get stats for (UTC)","format":"date"},"to_date":{"type":"string","description":"The end date to get stats for (UTC)","format":"date"}}}}}},"responses":{"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Authentication is required to access statistics","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthorized"},"message":{"type":"string","description":"A description of the error","example":"Authentication is required to access statistics"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}},{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details (if available)"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthorized":{"summary":"unauthorized","value":{"error":{"code":401,"key":"unauthorized","message":"Authentication is required to access statistics","details":[]},"result":null}},"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthorized`: Authentication is required to access statistics<br>&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"403":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not allowed to access these statistics for the selected filters","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":403},"key":{"type":"string","description":"Unique error key","example":"forbidden"},"message":{"type":"string","description":"A description of the error","example":"You are not allowed to access these statistics for the selected filters"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"forbidden":{"summary":"forbidden","value":{"error":{"code":403,"key":"forbidden","message":"You are not allowed to access these statistics for the selected filters","details":[]},"result":null}}}}},"description":"&#9702; `forbidden`: You are not allowed to access these statistics for the selected filters"},"400":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Missing or invalid fields: events, from_date, to_date","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"inputDataInvalid"},"message":{"type":"string","description":"A description of the error","example":"Missing or invalid fields: events, from_date, to_date"},"details":{"type":"object","description":"Additional error details","properties":{"invalid_fields":{"type":"array","description":"The missing or invalid fields","example":["events","from_date","to_date"],"items":{"type":"string","enum":["events","from_date","to_date"]}}}}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"inputDataInvalid":{"summary":"inputDataInvalid","value":{"error":{"code":400,"key":"inputDataInvalid","message":"Missing or invalid fields: events, from_date, to_date","details":{"invalid_fields":["events","from_date","to_date"]}},"result":null}}}}},"description":"&#9702; `inputDataInvalid`: Missing or invalid fields: events, from_date, to_date"},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}}},"\/v1\/stats\/purchases\/weekdays":{"post":{"summary":"Get purchases weekdays distribution","description":"This endpoint returns the distribution of confirmed purchases across all seven weekdays (Monday through Sunday), showing the total number of purchases made on each day of the week within the specified date range and event filters.\n\n<h3>Required role permissions:<\/h3>`$permittedTo('stats', 'get', 'purchases_weekdays')`","operationId":"stats.purchases_weekdays.get","tags":["Stats"],"security":[{"TokenAuth":[]}],"requestBody":{"description":"Event filters and date range to get purchases weekdays","required":false,"content":{"application\/json":{"schema":{"properties":{"events":{"type":"array","description":"An array of event ids to get stats for","items":{"type":"string","minLength":12,"maxLength":12}},"from_date":{"type":"string","description":"The start date to get stats for (UTC)","format":"date"},"to_date":{"type":"string","description":"The end date to get stats for (UTC)","format":"date"}}}}}},"responses":{"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Authentication is required to access statistics","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthorized"},"message":{"type":"string","description":"A description of the error","example":"Authentication is required to access statistics"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}},{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details (if available)"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthorized":{"summary":"unauthorized","value":{"error":{"code":401,"key":"unauthorized","message":"Authentication is required to access statistics","details":[]},"result":null}},"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthorized`: Authentication is required to access statistics<br>&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"403":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not allowed to access these statistics for the selected filters","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":403},"key":{"type":"string","description":"Unique error key","example":"forbidden"},"message":{"type":"string","description":"A description of the error","example":"You are not allowed to access these statistics for the selected filters"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"forbidden":{"summary":"forbidden","value":{"error":{"code":403,"key":"forbidden","message":"You are not allowed to access these statistics for the selected filters","details":[]},"result":null}}}}},"description":"&#9702; `forbidden`: You are not allowed to access these statistics for the selected filters"},"400":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Missing or invalid fields: events, from_date, to_date","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"inputDataInvalid"},"message":{"type":"string","description":"A description of the error","example":"Missing or invalid fields: events, from_date, to_date"},"details":{"type":"object","description":"Additional error details","properties":{"invalid_fields":{"type":"array","description":"The missing or invalid fields","example":["events","from_date","to_date"],"items":{"type":"string","enum":["events","from_date","to_date"]}}}}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"inputDataInvalid":{"summary":"inputDataInvalid","value":{"error":{"code":400,"key":"inputDataInvalid","message":"Missing or invalid fields: events, from_date, to_date","details":{"invalid_fields":["events","from_date","to_date"]}},"result":null}}}}},"description":"&#9702; `inputDataInvalid`: Missing or invalid fields: events, from_date, to_date"},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}}},"\/v1\/stats\/purchases\/locations":{"post":{"summary":"Get purchases locations (top 100)","description":"This endpoint returns the top 100 locations (city and country combinations) where purchases originated from, sorted by purchase count in descending order. Each location includes the total number of purchases and its percentage share of all purchases within the filtered date range and events.\n\n<h3>Required role permissions:<\/h3>`$permittedTo('stats', 'get', 'purchases_locations')`","operationId":"stats.purchases_locations.get","tags":["Stats"],"security":[{"TokenAuth":[]}],"requestBody":{"description":"Event filters and date range to get purchases locations","required":false,"content":{"application\/json":{"schema":{"properties":{"events":{"type":"array","description":"An array of event ids to get stats for","items":{"type":"string","minLength":12,"maxLength":12}},"from_date":{"type":"string","description":"The start date to get stats for (UTC)","format":"date"},"to_date":{"type":"string","description":"The end date to get stats for (UTC)","format":"date"}}}}}},"responses":{"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Authentication is required to access statistics","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthorized"},"message":{"type":"string","description":"A description of the error","example":"Authentication is required to access statistics"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}},{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details (if available)"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthorized":{"summary":"unauthorized","value":{"error":{"code":401,"key":"unauthorized","message":"Authentication is required to access statistics","details":[]},"result":null}},"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthorized`: Authentication is required to access statistics<br>&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"403":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not allowed to access these statistics for the selected filters","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":403},"key":{"type":"string","description":"Unique error key","example":"forbidden"},"message":{"type":"string","description":"A description of the error","example":"You are not allowed to access these statistics for the selected filters"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"forbidden":{"summary":"forbidden","value":{"error":{"code":403,"key":"forbidden","message":"You are not allowed to access these statistics for the selected filters","details":[]},"result":null}}}}},"description":"&#9702; `forbidden`: You are not allowed to access these statistics for the selected filters"},"400":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Missing or invalid fields: events, from_date, to_date","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"inputDataInvalid"},"message":{"type":"string","description":"A description of the error","example":"Missing or invalid fields: events, from_date, to_date"},"details":{"type":"object","description":"Additional error details","properties":{"invalid_fields":{"type":"array","description":"The missing or invalid fields","example":["events","from_date","to_date"],"items":{"type":"string","enum":["events","from_date","to_date"]}}}}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"inputDataInvalid":{"summary":"inputDataInvalid","value":{"error":{"code":400,"key":"inputDataInvalid","message":"Missing or invalid fields: events, from_date, to_date","details":{"invalid_fields":["events","from_date","to_date"]}},"result":null}}}}},"description":"&#9702; `inputDataInvalid`: Missing or invalid fields: events, from_date, to_date"},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}}},"\/v1\/stats\/purchases\/toplist_events":{"post":{"summary":"Get top events by ticket sales (toplist)","description":"This endpoint returns the top 100 events ranked by total ticket sales. For each event, it provides comprehensive information including event name, dates, categories, total purchases, total tickets sold, total revenue (converted to target currency), and detailed purchase statistics. The data is sourced from ClickHouse purchases_stats_raw and enriched with event details from MariaDB.\n\n<h3>Required role permissions:<\/h3>`$permittedTo('stats', 'get', 'purchases_toplist_events')`","operationId":"stats.purchases_toplist_events.get","tags":["Stats"],"security":[{"TokenAuth":[]}],"requestBody":{"description":"Event filters and date range to get top events by ticket sales","required":false,"content":{"application\/json":{"schema":{"properties":{"events":{"type":"array","description":"An array of event ids to filter for","items":{"type":"string","minLength":12,"maxLength":12}},"from_date":{"type":"string","description":"The start date to get stats for (UTC)","format":"date"},"to_date":{"type":"string","description":"The end date to get stats for (UTC)","format":"date"},"currency":{"type":"string","description":"The target currency to convert","default":"EUR","example":"EUR"}}}}}},"responses":{"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Authentication is required to access statistics","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthorized"},"message":{"type":"string","description":"A description of the error","example":"Authentication is required to access statistics"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}},{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details (if available)"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthorized":{"summary":"unauthorized","value":{"error":{"code":401,"key":"unauthorized","message":"Authentication is required to access statistics","details":[]},"result":null}},"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthorized`: Authentication is required to access statistics<br>&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"403":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not allowed to access these statistics for the selected filters","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":403},"key":{"type":"string","description":"Unique error key","example":"forbidden"},"message":{"type":"string","description":"A description of the error","example":"You are not allowed to access these statistics for the selected filters"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"forbidden":{"summary":"forbidden","value":{"error":{"code":403,"key":"forbidden","message":"You are not allowed to access these statistics for the selected filters","details":[]},"result":null}}}}},"description":"&#9702; `forbidden`: You are not allowed to access these statistics for the selected filters"},"400":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Missing or invalid fields: events, from_date, to_date, currency","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"inputDataInvalid"},"message":{"type":"string","description":"A description of the error","example":"Missing or invalid fields: events, from_date, to_date, currency"},"details":{"type":"object","description":"Additional error details","properties":{"invalid_fields":{"type":"array","description":"The missing or invalid fields","example":["events","from_date","to_date","currency"],"items":{"type":"string","enum":["events","from_date","to_date","currency"]}}}}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"inputDataInvalid":{"summary":"inputDataInvalid","value":{"error":{"code":400,"key":"inputDataInvalid","message":"Missing or invalid fields: events, from_date, to_date, currency","details":{"invalid_fields":["events","from_date","to_date","currency"]}},"result":null}}}}},"description":"&#9702; `inputDataInvalid`: Missing or invalid fields: events, from_date, to_date, currency"},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}}},"\/v1\/stats\/purchases\/payment_methods":{"post":{"summary":"Get purchases payment methods (toplist)","description":"This endpoint returns a ranked list of all payment methods used for purchases, showing the total number of purchases and total revenue per payment method. All revenue values are converted to the specified target currency and aggregated across different source currencies, sorted by purchase count in descending order.\n\n<h3>Required role permissions:<\/h3>`$permittedTo('stats', 'get', 'purchases_payment_methods')`","operationId":"stats.purchases_payment_methods.get","tags":["Stats"],"security":[{"TokenAuth":[]}],"requestBody":{"description":"Event filters and date range to get purchases payment methods","required":false,"content":{"application\/json":{"schema":{"properties":{"events":{"type":"array","description":"An array of event ids to get stats for","items":{"type":"string","minLength":12,"maxLength":12}},"from_date":{"type":"string","description":"The start date to get stats for (UTC)","format":"date"},"to_date":{"type":"string","description":"The end date to get stats for (UTC)","format":"date"},"currency":{"type":"string","description":"The target currency to convert","default":"EUR","example":"EUR"}}}}}},"responses":{"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Authentication is required to access statistics","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthorized"},"message":{"type":"string","description":"A description of the error","example":"Authentication is required to access statistics"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}},{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details (if available)"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthorized":{"summary":"unauthorized","value":{"error":{"code":401,"key":"unauthorized","message":"Authentication is required to access statistics","details":[]},"result":null}},"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthorized`: Authentication is required to access statistics<br>&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"403":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not allowed to access these statistics for the selected filters","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":403},"key":{"type":"string","description":"Unique error key","example":"forbidden"},"message":{"type":"string","description":"A description of the error","example":"You are not allowed to access these statistics for the selected filters"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"forbidden":{"summary":"forbidden","value":{"error":{"code":403,"key":"forbidden","message":"You are not allowed to access these statistics for the selected filters","details":[]},"result":null}}}}},"description":"&#9702; `forbidden`: You are not allowed to access these statistics for the selected filters"},"400":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Missing or invalid fields: events, from_date, to_date, currency","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"inputDataInvalid"},"message":{"type":"string","description":"A description of the error","example":"Missing or invalid fields: events, from_date, to_date, currency"},"details":{"type":"object","description":"Additional error details","properties":{"invalid_fields":{"type":"array","description":"The missing or invalid fields","example":["events","from_date","to_date","currency"],"items":{"type":"string","enum":["events","from_date","to_date","currency"]}}}}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"inputDataInvalid":{"summary":"inputDataInvalid","value":{"error":{"code":400,"key":"inputDataInvalid","message":"Missing or invalid fields: events, from_date, to_date, currency","details":{"invalid_fields":["events","from_date","to_date","currency"]}},"result":null}}}}},"description":"&#9702; `inputDataInvalid`: Missing or invalid fields: events, from_date, to_date, currency"},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}}},"\/v1\/stats\/tickets\/basic":{"post":{"summary":"Get tickets basic stats","description":"This endpoint returns essential ticket statistics including the number of redeemed, redeemable, canceled, and reserved tickets for the filtered events and date range. It also calculates the average ticket price across all non-canceled and non-reserved tickets, with automatic conversion to the specified target currency.\n\n<h3>Required role permissions:<\/h3>`$permittedTo('stats', 'get', 'tickets_basic')`","operationId":"stats.tickets_basic.get","tags":["Stats"],"security":[{"TokenAuth":[]}],"requestBody":{"description":"Event filters and date range to get tickets basic stats","required":false,"content":{"application\/json":{"schema":{"properties":{"events":{"type":"array","description":"An array of event ids to get stats for","items":{"type":"string","minLength":12,"maxLength":12}},"from_date":{"type":"string","description":"The start date to get stats for (UTC)","format":"date"},"to_date":{"type":"string","description":"The end date to get stats for (UTC)","format":"date"},"currency":{"type":"string","description":"The target currency to convert","default":"EUR","example":"EUR"}}}}}},"responses":{"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Authentication is required to access statistics","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthorized"},"message":{"type":"string","description":"A description of the error","example":"Authentication is required to access statistics"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}},{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details (if available)"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthorized":{"summary":"unauthorized","value":{"error":{"code":401,"key":"unauthorized","message":"Authentication is required to access statistics","details":[]},"result":null}},"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthorized`: Authentication is required to access statistics<br>&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"403":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not allowed to access these statistics for the selected filters","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":403},"key":{"type":"string","description":"Unique error key","example":"forbidden"},"message":{"type":"string","description":"A description of the error","example":"You are not allowed to access these statistics for the selected filters"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"forbidden":{"summary":"forbidden","value":{"error":{"code":403,"key":"forbidden","message":"You are not allowed to access these statistics for the selected filters","details":[]},"result":null}}}}},"description":"&#9702; `forbidden`: You are not allowed to access these statistics for the selected filters"},"400":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Missing or invalid fields: events, from_date, to_date, currency","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"inputDataInvalid"},"message":{"type":"string","description":"A description of the error","example":"Missing or invalid fields: events, from_date, to_date, currency"},"details":{"type":"object","description":"Additional error details","properties":{"invalid_fields":{"type":"array","description":"The missing or invalid fields","example":["events","from_date","to_date","currency"],"items":{"type":"string","enum":["events","from_date","to_date","currency"]}}}}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"inputDataInvalid":{"summary":"inputDataInvalid","value":{"error":{"code":400,"key":"inputDataInvalid","message":"Missing or invalid fields: events, from_date, to_date, currency","details":{"invalid_fields":["events","from_date","to_date","currency"]}},"result":null}}}}},"description":"&#9702; `inputDataInvalid`: Missing or invalid fields: events, from_date, to_date, currency"},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}}},"\/v1\/stats\/tickets\/redeemed_times":{"post":{"summary":"Get tickets redeemed times (hourly distribution)","description":"This endpoint shows at which hours of the day tickets were redeemed (scanned). It is based on UTC time and returns the sum of redeemed tickets for each hour (0-23) within the specified date range and event filters.\n\n<h3>Required role permissions:<\/h3>`$permittedTo('stats', 'get', 'tickets_redeemed_times')`","operationId":"stats.tickets_redeemed_times.get","tags":["Stats"],"security":[{"TokenAuth":[]}],"requestBody":{"description":"Event filters and date range to get tickets redeemed times","required":false,"content":{"application\/json":{"schema":{"properties":{"events":{"type":"array","description":"An array of event ids to get stats for","items":{"type":"string","minLength":12,"maxLength":12}},"from_date":{"type":"string","description":"The start date to get stats for (UTC)","format":"date"},"to_date":{"type":"string","description":"The end date to get stats for (UTC)","format":"date"}}}}}},"responses":{"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Authentication is required to access statistics","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthorized"},"message":{"type":"string","description":"A description of the error","example":"Authentication is required to access statistics"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}},{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details (if available)"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthorized":{"summary":"unauthorized","value":{"error":{"code":401,"key":"unauthorized","message":"Authentication is required to access statistics","details":[]},"result":null}},"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthorized`: Authentication is required to access statistics<br>&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"403":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not allowed to access these statistics for the selected filters","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":403},"key":{"type":"string","description":"Unique error key","example":"forbidden"},"message":{"type":"string","description":"A description of the error","example":"You are not allowed to access these statistics for the selected filters"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"forbidden":{"summary":"forbidden","value":{"error":{"code":403,"key":"forbidden","message":"You are not allowed to access these statistics for the selected filters","details":[]},"result":null}}}}},"description":"&#9702; `forbidden`: You are not allowed to access these statistics for the selected filters"},"400":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Missing or invalid fields: events, from_date, to_date","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"inputDataInvalid"},"message":{"type":"string","description":"A description of the error","example":"Missing or invalid fields: events, from_date, to_date"},"details":{"type":"object","description":"Additional error details","properties":{"invalid_fields":{"type":"array","description":"The missing or invalid fields","example":["events","from_date","to_date"],"items":{"type":"string","enum":["events","from_date","to_date"]}}}}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"inputDataInvalid":{"summary":"inputDataInvalid","value":{"error":{"code":400,"key":"inputDataInvalid","message":"Missing or invalid fields: events, from_date, to_date","details":{"invalid_fields":["events","from_date","to_date"]}},"result":null}}}}},"description":"&#9702; `inputDataInvalid`: Missing or invalid fields: events, from_date, to_date"},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}}},"\/v1\/stats\/tickets\/toplist_scanners":{"post":{"summary":"Get top scanners (ticket redeemers)","description":"This endpoint returns a ranked list of the top 100 users who scanned the most tickets during the specified date range and for the filtered events. Each entry includes the scanner's user ID, name, email, and total number of tickets scanned, sorted by scan count in descending order.\n\n<h3>Required role permissions:<\/h3>`$permittedTo('stats', 'get', 'tickets_scanners')`","operationId":"stats.tickets_scanners.get","tags":["Stats"],"security":[{"TokenAuth":[]}],"requestBody":{"description":"Event filters and date range to get top scanners","required":false,"content":{"application\/json":{"schema":{"properties":{"events":{"type":"array","description":"An array of event ids to get stats for","items":{"type":"string","minLength":12,"maxLength":12}},"from_date":{"type":"string","description":"The start date to get stats for (UTC)","format":"date"},"to_date":{"type":"string","description":"The end date to get stats for (UTC)","format":"date"}}}}}},"responses":{"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Authentication is required to access statistics","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthorized"},"message":{"type":"string","description":"A description of the error","example":"Authentication is required to access statistics"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}},{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details (if available)"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthorized":{"summary":"unauthorized","value":{"error":{"code":401,"key":"unauthorized","message":"Authentication is required to access statistics","details":[]},"result":null}},"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthorized`: Authentication is required to access statistics<br>&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"403":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not allowed to access these statistics for the selected filters","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":403},"key":{"type":"string","description":"Unique error key","example":"forbidden"},"message":{"type":"string","description":"A description of the error","example":"You are not allowed to access these statistics for the selected filters"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"forbidden":{"summary":"forbidden","value":{"error":{"code":403,"key":"forbidden","message":"You are not allowed to access these statistics for the selected filters","details":[]},"result":null}}}}},"description":"&#9702; `forbidden`: You are not allowed to access these statistics for the selected filters"},"400":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Missing or invalid fields: events, from_date, to_date","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"inputDataInvalid"},"message":{"type":"string","description":"A description of the error","example":"Missing or invalid fields: events, from_date, to_date"},"details":{"type":"object","description":"Additional error details","properties":{"invalid_fields":{"type":"array","description":"The missing or invalid fields","example":["events","from_date","to_date"],"items":{"type":"string","enum":["events","from_date","to_date"]}}}}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"inputDataInvalid":{"summary":"inputDataInvalid","value":{"error":{"code":400,"key":"inputDataInvalid","message":"Missing or invalid fields: events, from_date, to_date","details":{"invalid_fields":["events","from_date","to_date"]}},"result":null}}}}},"description":"&#9702; `inputDataInvalid`: Missing or invalid fields: events, from_date, to_date"},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}}},"\/v1\/stats\/customers\/basic":{"post":{"summary":"Get customers basic stats","description":"This endpoint returns comprehensive customer statistics including total and recurring customer counts with percentage, newsletter subscribers, gender distribution, average purchase-time weather conditions (temperature and perceived temperature), and average travel metrics (distance in meters and travel time in seconds) to the event location.\n\n<h3>Required role permissions:<\/h3>`$permittedTo('stats', 'get', 'customers_basic')`","operationId":"stats.customers_basic.get","tags":["Stats"],"security":[{"TokenAuth":[]}],"requestBody":{"description":"Event filters and date range to get customers basic stats","required":false,"content":{"application\/json":{"schema":{"properties":{"events":{"type":"array","description":"An array of event ids to get stats for","items":{"type":"string","minLength":12,"maxLength":12}},"from_date":{"type":"string","description":"The start date to get stats for (UTC)","format":"date"},"to_date":{"type":"string","description":"The end date to get stats for (UTC)","format":"date"}}}}}},"responses":{"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Authentication is required to access statistics","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthorized"},"message":{"type":"string","description":"A description of the error","example":"Authentication is required to access statistics"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}},{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details (if available)"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthorized":{"summary":"unauthorized","value":{"error":{"code":401,"key":"unauthorized","message":"Authentication is required to access statistics","details":[]},"result":null}},"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthorized`: Authentication is required to access statistics<br>&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"403":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not allowed to access these statistics for the selected filters","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":403},"key":{"type":"string","description":"Unique error key","example":"forbidden"},"message":{"type":"string","description":"A description of the error","example":"You are not allowed to access these statistics for the selected filters"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"forbidden":{"summary":"forbidden","value":{"error":{"code":403,"key":"forbidden","message":"You are not allowed to access these statistics for the selected filters","details":[]},"result":null}}}}},"description":"&#9702; `forbidden`: You are not allowed to access these statistics for the selected filters"},"400":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Missing or invalid fields: events, from_date, to_date","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"inputDataInvalid"},"message":{"type":"string","description":"A description of the error","example":"Missing or invalid fields: events, from_date, to_date"},"details":{"type":"object","description":"Additional error details","properties":{"invalid_fields":{"type":"array","description":"The missing or invalid fields","example":["events","from_date","to_date"],"items":{"type":"string","enum":["events","from_date","to_date"]}}}}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"inputDataInvalid":{"summary":"inputDataInvalid","value":{"error":{"code":400,"key":"inputDataInvalid","message":"Missing or invalid fields: events, from_date, to_date","details":{"invalid_fields":["events","from_date","to_date"]}},"result":null}}}}},"description":"&#9702; `inputDataInvalid`: Missing or invalid fields: events, from_date, to_date"},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}}},"\/v1\/stats\/purchases\/toplist_discounts":{"post":{"summary":"Get top discounts","description":"This endpoint returns a ranked list of the top 100 discount codes based on usage, showing total purchases using each discount, total discount value, and average discount value per purchase. All monetary values are converted to the specified target currency for accurate cross-currency comparison.\n\n<h3>Required role permissions:<\/h3>`$permittedTo('stats', 'get', 'purchases_toplist_discounts')`","operationId":"stats.purchases_toplist_discounts.get","tags":["Stats"],"security":[{"TokenAuth":[]}],"requestBody":{"description":"Event filters and date range to get top discounts","required":false,"content":{"application\/json":{"schema":{"properties":{"events":{"type":"array","description":"An array of event ids to get stats for","items":{"type":"string","minLength":12,"maxLength":12}},"from_date":{"type":"string","description":"The start date to get stats for (UTC)","format":"date"},"to_date":{"type":"string","description":"The end date to get stats for (UTC)","format":"date"},"currency":{"type":"string","description":"The target currency to convert","default":"EUR","example":"EUR"}}}}}},"responses":{"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Authentication is required to access statistics","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthorized"},"message":{"type":"string","description":"A description of the error","example":"Authentication is required to access statistics"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}},{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details (if available)"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthorized":{"summary":"unauthorized","value":{"error":{"code":401,"key":"unauthorized","message":"Authentication is required to access statistics","details":[]},"result":null}},"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthorized`: Authentication is required to access statistics<br>&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"403":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not allowed to access these statistics for the selected filters","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":403},"key":{"type":"string","description":"Unique error key","example":"forbidden"},"message":{"type":"string","description":"A description of the error","example":"You are not allowed to access these statistics for the selected filters"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"forbidden":{"summary":"forbidden","value":{"error":{"code":403,"key":"forbidden","message":"You are not allowed to access these statistics for the selected filters","details":[]},"result":null}}}}},"description":"&#9702; `forbidden`: You are not allowed to access these statistics for the selected filters"},"400":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Missing or invalid fields: events, from_date, to_date, currency","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"inputDataInvalid"},"message":{"type":"string","description":"A description of the error","example":"Missing or invalid fields: events, from_date, to_date, currency"},"details":{"type":"object","description":"Additional error details","properties":{"invalid_fields":{"type":"array","description":"The missing or invalid fields","example":["events","from_date","to_date","currency"],"items":{"type":"string","enum":["events","from_date","to_date","currency"]}}}}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"inputDataInvalid":{"summary":"inputDataInvalid","value":{"error":{"code":400,"key":"inputDataInvalid","message":"Missing or invalid fields: events, from_date, to_date, currency","details":{"invalid_fields":["events","from_date","to_date","currency"]}},"result":null}}}}},"description":"&#9702; `inputDataInvalid`: Missing or invalid fields: events, from_date, to_date, currency"},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}}},"\/v1\/stats\/events\/basic":{"post":{"summary":"Get events basic stats","description":"This endpoint returns fundamental event statistics including the count of events with purchases, total events in the specified date range, total purchasable ticket capacity, occupancy percentage (sold tickets vs. capacity), and average attendance rate (redeemed tickets vs. sold tickets) across all filtered events.\n\n<h3>Required role permissions:<\/h3>`$permittedTo('stats', 'get', 'events_basic')`","operationId":"stats.events_basic.get","tags":["Stats"],"security":[{"TokenAuth":[]}],"requestBody":{"description":"Event filters and date range to get events basic stats","required":false,"content":{"application\/json":{"schema":{"properties":{"events":{"type":"array","description":"An array of event ids to get stats for","items":{"type":"string","minLength":12,"maxLength":12}},"from_date":{"type":"string","description":"The start date to get stats for (UTC)","format":"date"},"to_date":{"type":"string","description":"The end date to get stats for (UTC)","format":"date"}}}}}},"responses":{"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Authentication is required to access statistics","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthorized"},"message":{"type":"string","description":"A description of the error","example":"Authentication is required to access statistics"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}},{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details (if available)"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthorized":{"summary":"unauthorized","value":{"error":{"code":401,"key":"unauthorized","message":"Authentication is required to access statistics","details":[]},"result":null}},"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthorized`: Authentication is required to access statistics<br>&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"403":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not allowed to access these statistics for the selected filters","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":403},"key":{"type":"string","description":"Unique error key","example":"forbidden"},"message":{"type":"string","description":"A description of the error","example":"You are not allowed to access these statistics for the selected filters"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"forbidden":{"summary":"forbidden","value":{"error":{"code":403,"key":"forbidden","message":"You are not allowed to access these statistics for the selected filters","details":[]},"result":null}}}}},"description":"&#9702; `forbidden`: You are not allowed to access these statistics for the selected filters"},"400":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Missing or invalid fields: events, from_date, to_date","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"inputDataInvalid"},"message":{"type":"string","description":"A description of the error","example":"Missing or invalid fields: events, from_date, to_date"},"details":{"type":"object","description":"Additional error details","properties":{"invalid_fields":{"type":"array","description":"The missing or invalid fields","example":["events","from_date","to_date"],"items":{"type":"string","enum":["events","from_date","to_date"]}}}}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"inputDataInvalid":{"summary":"inputDataInvalid","value":{"error":{"code":400,"key":"inputDataInvalid","message":"Missing or invalid fields: events, from_date, to_date","details":{"invalid_fields":["events","from_date","to_date"]}},"result":null}}}}},"description":"&#9702; `inputDataInvalid`: Missing or invalid fields: events, from_date, to_date"},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}}},"\/v1\/stats\/purchases\/series\/daily":{"post":{"summary":"Get purchases daily series","description":"This endpoint returns a time-series dataset with daily purchase statistics including confirmed, refunded, discounted, and insured purchase counts, along with total value, items, tickets, insurance value, and various fees for each day. Missing days within the date range are filled with zero values to ensure a continuous timeline from the start to end date.\n\n<h3>Required role permissions:<\/h3>`$permittedTo('stats', 'get', 'purchases_series_daily')`","operationId":"stats.purchases_series_daily.get","tags":["Stats"],"security":[{"TokenAuth":[]}],"requestBody":{"description":"Event filters and date range to get purchases daily series","required":false,"content":{"application\/json":{"schema":{"properties":{"events":{"type":"array","description":"An array of event ids to get stats for","items":{"type":"string","minLength":12,"maxLength":12}},"from_date":{"type":"string","description":"The start date to get stats for (UTC)","format":"date"},"to_date":{"type":"string","description":"The end date to get stats for (UTC)","format":"date"}}}}}},"responses":{"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Authentication is required to access statistics","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthorized"},"message":{"type":"string","description":"A description of the error","example":"Authentication is required to access statistics"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}},{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details (if available)"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthorized":{"summary":"unauthorized","value":{"error":{"code":401,"key":"unauthorized","message":"Authentication is required to access statistics","details":[]},"result":null}},"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthorized`: Authentication is required to access statistics<br>&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"403":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not allowed to access these statistics for the selected filters","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":403},"key":{"type":"string","description":"Unique error key","example":"forbidden"},"message":{"type":"string","description":"A description of the error","example":"You are not allowed to access these statistics for the selected filters"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"forbidden":{"summary":"forbidden","value":{"error":{"code":403,"key":"forbidden","message":"You are not allowed to access these statistics for the selected filters","details":[]},"result":null}}}}},"description":"&#9702; `forbidden`: You are not allowed to access these statistics for the selected filters"},"400":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Missing or invalid fields: events, from_date, to_date","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"inputDataInvalid"},"message":{"type":"string","description":"A description of the error","example":"Missing or invalid fields: events, from_date, to_date"},"details":{"type":"object","description":"Additional error details","properties":{"invalid_fields":{"type":"array","description":"The missing or invalid fields","example":["events","from_date","to_date"],"items":{"type":"string","enum":["events","from_date","to_date"]}}}}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"inputDataInvalid":{"summary":"inputDataInvalid","value":{"error":{"code":400,"key":"inputDataInvalid","message":"Missing or invalid fields: events, from_date, to_date","details":{"invalid_fields":["events","from_date","to_date"]}},"result":null}}}}},"description":"&#9702; `inputDataInvalid`: Missing or invalid fields: events, from_date, to_date"},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}}},"\/v1\/stats\/purchases\/series\/monthly":{"post":{"summary":"Get purchases monthly series","description":"This endpoint returns aggregated purchase statistics grouped by month and year, covering the entire available data range from the earliest to the latest month. Each month includes totals for confirmed, refunded, discounted, and insured purchases, along with revenue, items, tickets, insurance value, and fees, structured by year and month for easy charting and trend analysis.\n\n<h3>Required role permissions:<\/h3>`$permittedTo('stats', 'get', 'purchases_series_monthly')`","operationId":"stats.purchases_series_monthly.get","tags":["Stats"],"security":[{"TokenAuth":[]}],"requestBody":{"description":"Event filters to get purchases monthly series","required":false,"content":{"application\/json":{"schema":{"properties":{"events":{"type":"array","description":"An array of event ids to get stats for","items":{"type":"string","minLength":12,"maxLength":12}}}}}}},"responses":{"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Authentication is required to access statistics","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthorized"},"message":{"type":"string","description":"A description of the error","example":"Authentication is required to access statistics"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}},{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details (if available)"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthorized":{"summary":"unauthorized","value":{"error":{"code":401,"key":"unauthorized","message":"Authentication is required to access statistics","details":[]},"result":null}},"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthorized`: Authentication is required to access statistics<br>&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"403":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not allowed to access these statistics for the selected filters","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":403},"key":{"type":"string","description":"Unique error key","example":"forbidden"},"message":{"type":"string","description":"A description of the error","example":"You are not allowed to access these statistics for the selected filters"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"forbidden":{"summary":"forbidden","value":{"error":{"code":403,"key":"forbidden","message":"You are not allowed to access these statistics for the selected filters","details":[]},"result":null}}}}},"description":"&#9702; `forbidden`: You are not allowed to access these statistics for the selected filters"},"400":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Missing or invalid fields: events","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"inputDataInvalid"},"message":{"type":"string","description":"A description of the error","example":"Missing or invalid fields: events"},"details":{"type":"object","description":"Additional error details","properties":{"invalid_fields":{"type":"array","description":"The missing or invalid fields","example":["events"],"items":{"type":"string","enum":["events"]}}}}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"inputDataInvalid":{"summary":"inputDataInvalid","value":{"error":{"code":400,"key":"inputDataInvalid","message":"Missing or invalid fields: events","details":{"invalid_fields":["events"]}},"result":null}}}}},"description":"&#9702; `inputDataInvalid`: Missing or invalid fields: events"},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}}},"\/v1\/stats\/shop\/daily_series":{"post":{"summary":"Get shop daily series","description":"This endpoint returns daily shop analytics data including page views and unique visitors for each day within the specified date range. Missing days are filled with zero values to provide a continuous timeline, enabling accurate visualization of shop traffic trends over time.\n\n<h3>Required role permissions:<\/h3>`$permittedTo('stats', 'get', 'shop_daily_series')`","operationId":"stats.shop_daily_series.get","tags":["Stats"],"security":[{"TokenAuth":[]}],"requestBody":{"description":"Event filters and date range to get shop daily series","required":false,"content":{"application\/json":{"schema":{"properties":{"events":{"type":"array","description":"An array of event ids to get stats for","items":{"type":"string","minLength":12,"maxLength":12}},"from_date":{"type":"string","description":"The start date to get stats for (UTC)","format":"date"},"to_date":{"type":"string","description":"The end date to get stats for (UTC)","format":"date"}}}}}},"responses":{"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Authentication is required to access statistics","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthorized"},"message":{"type":"string","description":"A description of the error","example":"Authentication is required to access statistics"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}},{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details (if available)"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthorized":{"summary":"unauthorized","value":{"error":{"code":401,"key":"unauthorized","message":"Authentication is required to access statistics","details":[]},"result":null}},"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthorized`: Authentication is required to access statistics<br>&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"403":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not allowed to access these statistics for the selected filters","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":403},"key":{"type":"string","description":"Unique error key","example":"forbidden"},"message":{"type":"string","description":"A description of the error","example":"You are not allowed to access these statistics for the selected filters"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"forbidden":{"summary":"forbidden","value":{"error":{"code":403,"key":"forbidden","message":"You are not allowed to access these statistics for the selected filters","details":[]},"result":null}}}}},"description":"&#9702; `forbidden`: You are not allowed to access these statistics for the selected filters"},"400":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Missing or invalid fields: events, from_date, to_date","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"inputDataInvalid"},"message":{"type":"string","description":"A description of the error","example":"Missing or invalid fields: events, from_date, to_date"},"details":{"type":"object","description":"Additional error details","properties":{"invalid_fields":{"type":"array","description":"The missing or invalid fields","example":["events","from_date","to_date"],"items":{"type":"string","enum":["events","from_date","to_date"]}}}}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"inputDataInvalid":{"summary":"inputDataInvalid","value":{"error":{"code":400,"key":"inputDataInvalid","message":"Missing or invalid fields: events, from_date, to_date","details":{"invalid_fields":["events","from_date","to_date"]}},"result":null}}}}},"description":"&#9702; `inputDataInvalid`: Missing or invalid fields: events, from_date, to_date"},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}}},"\/v1\/stats\/shop\/monthly_series":{"post":{"summary":"Get shop monthly series","description":"This endpoint returns aggregated shop analytics data grouped by month and year, covering all available months from the earliest to the latest data. Each entry includes total page views and unique visitors per month, structured by year and month abbreviation for easy trend analysis and long-term performance comparison.\n\n<h3>Required role permissions:<\/h3>`$permittedTo('stats', 'get', 'shop_monthly_series')`","operationId":"stats.shop_monthly_series.get","tags":["Stats"],"security":[{"TokenAuth":[]}],"requestBody":{"description":"Event filters and date range to get shop monthly series","required":false,"content":{"application\/json":{"schema":{"properties":{"events":{"type":"array","description":"An array of event ids to get stats for","items":{"type":"string","minLength":12,"maxLength":12}}}}}}},"responses":{"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Authentication is required to access statistics","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthorized"},"message":{"type":"string","description":"A description of the error","example":"Authentication is required to access statistics"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}},{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details (if available)"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthorized":{"summary":"unauthorized","value":{"error":{"code":401,"key":"unauthorized","message":"Authentication is required to access statistics","details":[]},"result":null}},"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthorized`: Authentication is required to access statistics<br>&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"403":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not allowed to access these statistics for the selected filters","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":403},"key":{"type":"string","description":"Unique error key","example":"forbidden"},"message":{"type":"string","description":"A description of the error","example":"You are not allowed to access these statistics for the selected filters"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"forbidden":{"summary":"forbidden","value":{"error":{"code":403,"key":"forbidden","message":"You are not allowed to access these statistics for the selected filters","details":[]},"result":null}}}}},"description":"&#9702; `forbidden`: You are not allowed to access these statistics for the selected filters"},"400":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Missing or invalid fields: events","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"inputDataInvalid"},"message":{"type":"string","description":"A description of the error","example":"Missing or invalid fields: events"},"details":{"type":"object","description":"Additional error details","properties":{"invalid_fields":{"type":"array","description":"The missing or invalid fields","example":["events"],"items":{"type":"string","enum":["events"]}}}}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"inputDataInvalid":{"summary":"inputDataInvalid","value":{"error":{"code":400,"key":"inputDataInvalid","message":"Missing or invalid fields: events","details":{"invalid_fields":["events"]}},"result":null}}}}},"description":"&#9702; `inputDataInvalid`: Missing or invalid fields: events"},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}}},"\/v1\/stats\/shop\/basic":{"post":{"summary":"Get shop basic stats","description":"This endpoint returns core shop analytics metrics including total page views, unique visitors, converted customers (who completed a purchase), median time to conversion in seconds, median session duration in seconds, and the average number of page views per visitor calculated for the specified date range and event filters.\n\n<h3>Required role permissions:<\/h3>`$permittedTo('stats', 'get', 'shop_basic')`","operationId":"stats.shop_basic.get","tags":["Stats"],"security":[{"TokenAuth":[]}],"requestBody":{"description":"Event filters and date range to get shop basic stats","required":false,"content":{"application\/json":{"schema":{"properties":{"events":{"type":"array","description":"An array of event ids to get stats for","items":{"type":"string","minLength":12,"maxLength":12}},"from_date":{"type":"string","description":"The start date to get stats for (UTC)","format":"date"},"to_date":{"type":"string","description":"The end date to get stats for (UTC)","format":"date"}}}}}},"responses":{"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Authentication is required to access statistics","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthorized"},"message":{"type":"string","description":"A description of the error","example":"Authentication is required to access statistics"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}},{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details (if available)"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthorized":{"summary":"unauthorized","value":{"error":{"code":401,"key":"unauthorized","message":"Authentication is required to access statistics","details":[]},"result":null}},"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthorized`: Authentication is required to access statistics<br>&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"403":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not allowed to access these statistics for the selected filters","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":403},"key":{"type":"string","description":"Unique error key","example":"forbidden"},"message":{"type":"string","description":"A description of the error","example":"You are not allowed to access these statistics for the selected filters"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"forbidden":{"summary":"forbidden","value":{"error":{"code":403,"key":"forbidden","message":"You are not allowed to access these statistics for the selected filters","details":[]},"result":null}}}}},"description":"&#9702; `forbidden`: You are not allowed to access these statistics for the selected filters"},"400":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Missing or invalid fields: events, from_date, to_date","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"inputDataInvalid"},"message":{"type":"string","description":"A description of the error","example":"Missing or invalid fields: events, from_date, to_date"},"details":{"type":"object","description":"Additional error details","properties":{"invalid_fields":{"type":"array","description":"The missing or invalid fields","example":["events","from_date","to_date"],"items":{"type":"string","enum":["events","from_date","to_date"]}}}}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"inputDataInvalid":{"summary":"inputDataInvalid","value":{"error":{"code":400,"key":"inputDataInvalid","message":"Missing or invalid fields: events, from_date, to_date","details":{"invalid_fields":["events","from_date","to_date"]}},"result":null}}}}},"description":"&#9702; `inputDataInvalid`: Missing or invalid fields: events, from_date, to_date"},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}}},"\/v1\/stats\/shop\/language_mismatch":{"post":{"summary":"Get shop language mismatch percentage","description":"This endpoint calculates the percentage of shop visitors whose browser's preferred language did not match the language of the page they viewed, indicating potential localization issues. The calculation is based on comparing visitor language preferences with the actual page language served during their session and returns both the mismatch percentage and total unique visitors.\n\n<h3>Required role permissions:<\/h3>`$permittedTo('stats', 'get', 'shop_language_mismatch')`","operationId":"stats.shop_language_mismatch.get","tags":["Stats"],"security":[{"TokenAuth":[]}],"requestBody":{"description":"Event filters and date range to get shop language mismatch percentage","required":false,"content":{"application\/json":{"schema":{"properties":{"events":{"type":"array","description":"An array of event ids to get stats for","items":{"type":"string","minLength":12,"maxLength":12}},"from_date":{"type":"string","description":"The start date to get stats for (UTC)","format":"date"},"to_date":{"type":"string","description":"The end date to get stats for (UTC)","format":"date"}}}}}},"responses":{"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Authentication is required to access statistics","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthorized"},"message":{"type":"string","description":"A description of the error","example":"Authentication is required to access statistics"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}},{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details (if available)"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthorized":{"summary":"unauthorized","value":{"error":{"code":401,"key":"unauthorized","message":"Authentication is required to access statistics","details":[]},"result":null}},"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthorized`: Authentication is required to access statistics<br>&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"403":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not allowed to access these statistics for the selected filters","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":403},"key":{"type":"string","description":"Unique error key","example":"forbidden"},"message":{"type":"string","description":"A description of the error","example":"You are not allowed to access these statistics for the selected filters"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"forbidden":{"summary":"forbidden","value":{"error":{"code":403,"key":"forbidden","message":"You are not allowed to access these statistics for the selected filters","details":[]},"result":null}}}}},"description":"&#9702; `forbidden`: You are not allowed to access these statistics for the selected filters"},"400":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Missing or invalid fields: events, from_date, to_date","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"inputDataInvalid"},"message":{"type":"string","description":"A description of the error","example":"Missing or invalid fields: events, from_date, to_date"},"details":{"type":"object","description":"Additional error details","properties":{"invalid_fields":{"type":"array","description":"The missing or invalid fields","example":["events","from_date","to_date"],"items":{"type":"string","enum":["events","from_date","to_date"]}}}}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"inputDataInvalid":{"summary":"inputDataInvalid","value":{"error":{"code":400,"key":"inputDataInvalid","message":"Missing or invalid fields: events, from_date, to_date","details":{"invalid_fields":["events","from_date","to_date"]}},"result":null}}}}},"description":"&#9702; `inputDataInvalid`: Missing or invalid fields: events, from_date, to_date"},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}}},"\/v1\/stats\/shop\/bounce_rate":{"post":{"summary":"Get shop bounce rate statistics","description":"This endpoint calculates the shop's bounce rate as a percentage, representing the proportion of visitor sessions where only a single page was viewed before leaving, and also reports the total number of unique visitor sessions considered. The calculation excludes bot traffic and is based on page view events grouped by visitor and day within the specified date range and event filters.\n\n<h3>Required role permissions:<\/h3>`$permittedTo('stats', 'get', 'shop_bounce_rate')`","operationId":"stats.shop_bounce_rate.get","tags":["Stats"],"security":[{"TokenAuth":[]}],"requestBody":{"description":"Event filters and date range to get shop bounce rate percentage","required":false,"content":{"application\/json":{"schema":{"properties":{"events":{"type":"array","description":"An array of event ids to get stats for","items":{"type":"string","minLength":12,"maxLength":12}},"from_date":{"type":"string","description":"The start date to get stats for (UTC)","format":"date"},"to_date":{"type":"string","description":"The end date to get stats for (UTC)","format":"date"}}}}}},"responses":{"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Authentication is required to access statistics","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthorized"},"message":{"type":"string","description":"A description of the error","example":"Authentication is required to access statistics"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}},{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details (if available)"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthorized":{"summary":"unauthorized","value":{"error":{"code":401,"key":"unauthorized","message":"Authentication is required to access statistics","details":[]},"result":null}},"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthorized`: Authentication is required to access statistics<br>&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"403":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not allowed to access these statistics for the selected filters","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":403},"key":{"type":"string","description":"Unique error key","example":"forbidden"},"message":{"type":"string","description":"A description of the error","example":"You are not allowed to access these statistics for the selected filters"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"forbidden":{"summary":"forbidden","value":{"error":{"code":403,"key":"forbidden","message":"You are not allowed to access these statistics for the selected filters","details":[]},"result":null}}}}},"description":"&#9702; `forbidden`: You are not allowed to access these statistics for the selected filters"},"400":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Missing or invalid fields: events, from_date, to_date","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"inputDataInvalid"},"message":{"type":"string","description":"A description of the error","example":"Missing or invalid fields: events, from_date, to_date"},"details":{"type":"object","description":"Additional error details","properties":{"invalid_fields":{"type":"array","description":"The missing or invalid fields","example":["events","from_date","to_date"],"items":{"type":"string","enum":["events","from_date","to_date"]}}}}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"inputDataInvalid":{"summary":"inputDataInvalid","value":{"error":{"code":400,"key":"inputDataInvalid","message":"Missing or invalid fields: events, from_date, to_date","details":{"invalid_fields":["events","from_date","to_date"]}},"result":null}}}}},"description":"&#9702; `inputDataInvalid`: Missing or invalid fields: events, from_date, to_date"},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}}},"\/v1\/stats\/shop\/referrer_types":{"post":{"summary":"Get shop referrer types","description":"This endpoint returns a breakdown of traffic sources categorized by referrer type including direct traffic, search engines, social media, email campaigns, paid ads, display advertising, and other sources. Each category includes the total unique visitor count and its percentage share of overall traffic for the specified date range and event filters.\n\n<h3>Required role permissions:<\/h3>`$permittedTo('stats', 'get', 'shop_referrer_types')`","operationId":"stats.shop_referrer_types.get","tags":["Stats"],"security":[{"TokenAuth":[]}],"requestBody":{"description":"Event filters and date range to get shop referrer types","required":false,"content":{"application\/json":{"schema":{"properties":{"events":{"type":"array","description":"An array of event ids to get stats for","items":{"type":"string","minLength":12,"maxLength":12}},"from_date":{"type":"string","description":"The start date to get stats for (UTC)","format":"date"},"to_date":{"type":"string","description":"The end date to get stats for (UTC)","format":"date"}}}}}},"responses":{"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Authentication is required to access statistics","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthorized"},"message":{"type":"string","description":"A description of the error","example":"Authentication is required to access statistics"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}},{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details (if available)"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthorized":{"summary":"unauthorized","value":{"error":{"code":401,"key":"unauthorized","message":"Authentication is required to access statistics","details":[]},"result":null}},"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthorized`: Authentication is required to access statistics<br>&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"403":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not allowed to access these statistics for the selected filters","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":403},"key":{"type":"string","description":"Unique error key","example":"forbidden"},"message":{"type":"string","description":"A description of the error","example":"You are not allowed to access these statistics for the selected filters"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"forbidden":{"summary":"forbidden","value":{"error":{"code":403,"key":"forbidden","message":"You are not allowed to access these statistics for the selected filters","details":[]},"result":null}}}}},"description":"&#9702; `forbidden`: You are not allowed to access these statistics for the selected filters"},"400":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Missing or invalid fields: events, from_date, to_date","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"inputDataInvalid"},"message":{"type":"string","description":"A description of the error","example":"Missing or invalid fields: events, from_date, to_date"},"details":{"type":"object","description":"Additional error details","properties":{"invalid_fields":{"type":"array","description":"The missing or invalid fields","example":["events","from_date","to_date"],"items":{"type":"string","enum":["events","from_date","to_date"]}}}}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"inputDataInvalid":{"summary":"inputDataInvalid","value":{"error":{"code":400,"key":"inputDataInvalid","message":"Missing or invalid fields: events, from_date, to_date","details":{"invalid_fields":["events","from_date","to_date"]}},"result":null}}}}},"description":"&#9702; `inputDataInvalid`: Missing or invalid fields: events, from_date, to_date"},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}}},"\/v1\/stats\/shop\/toplist_referrers":{"post":{"summary":"Get shop toplist referrers","description":"This endpoint returns the top 50 referring sources (domains or URLs) that directed traffic to the shop, ranked by unique visitors. Each entry includes the referrer URL, unique visitor count, total page views from that referrer, and its percentage share of all referral traffic within the specified date range and event filters.\n\n<h3>Required role permissions:<\/h3>`$permittedTo('stats', 'get', 'shop_toplist_referrers')`","operationId":"stats.shop_toplist_referrers.get","tags":["Stats"],"security":[{"TokenAuth":[]}],"requestBody":{"description":"Event filters and date range to get shop toplist referrers","required":false,"content":{"application\/json":{"schema":{"properties":{"events":{"type":"array","description":"An array of event ids to get stats for","items":{"type":"string","minLength":12,"maxLength":12}},"from_date":{"type":"string","description":"The start date to get stats for (UTC)","format":"date"},"to_date":{"type":"string","description":"The end date to get stats for (UTC)","format":"date"}}}}}},"responses":{"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Authentication is required to access statistics","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthorized"},"message":{"type":"string","description":"A description of the error","example":"Authentication is required to access statistics"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}},{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details (if available)"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthorized":{"summary":"unauthorized","value":{"error":{"code":401,"key":"unauthorized","message":"Authentication is required to access statistics","details":[]},"result":null}},"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthorized`: Authentication is required to access statistics<br>&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"403":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not allowed to access these statistics for the selected filters","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":403},"key":{"type":"string","description":"Unique error key","example":"forbidden"},"message":{"type":"string","description":"A description of the error","example":"You are not allowed to access these statistics for the selected filters"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"forbidden":{"summary":"forbidden","value":{"error":{"code":403,"key":"forbidden","message":"You are not allowed to access these statistics for the selected filters","details":[]},"result":null}}}}},"description":"&#9702; `forbidden`: You are not allowed to access these statistics for the selected filters"},"400":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Missing or invalid fields: events, from_date, to_date","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"inputDataInvalid"},"message":{"type":"string","description":"A description of the error","example":"Missing or invalid fields: events, from_date, to_date"},"details":{"type":"object","description":"Additional error details","properties":{"invalid_fields":{"type":"array","description":"The missing or invalid fields","example":["events","from_date","to_date"],"items":{"type":"string","enum":["events","from_date","to_date"]}}}}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"inputDataInvalid":{"summary":"inputDataInvalid","value":{"error":{"code":400,"key":"inputDataInvalid","message":"Missing or invalid fields: events, from_date, to_date","details":{"invalid_fields":["events","from_date","to_date"]}},"result":null}}}}},"description":"&#9702; `inputDataInvalid`: Missing or invalid fields: events, from_date, to_date"},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}}},"\/v1\/stats\/shop\/toplist_devices":{"post":{"summary":"Get shop toplist devices","description":"This endpoint returns the top 10 device and operating system combinations used by shop visitors, ranked by unique visitor count. Each entry includes device type (mobile, desktop, tablet), operating system name, unique visitors, total page views, and percentage share of all device traffic for the specified date range and event filters.\n\n<h3>Required role permissions:<\/h3>`$permittedTo('stats', 'get', 'shop_toplist_devices')`","operationId":"stats.shop_toplist_devices.get","tags":["Stats"],"security":[{"TokenAuth":[]}],"requestBody":{"description":"Event filters and date range to get shop toplist devices","required":false,"content":{"application\/json":{"schema":{"properties":{"events":{"type":"array","description":"An array of event ids to get stats for","items":{"type":"string","minLength":12,"maxLength":12}},"from_date":{"type":"string","description":"The start date to get stats for (UTC)","format":"date"},"to_date":{"type":"string","description":"The end date to get stats for (UTC)","format":"date"}}}}}},"responses":{"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Authentication is required to access statistics","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthorized"},"message":{"type":"string","description":"A description of the error","example":"Authentication is required to access statistics"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}},{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details (if available)"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthorized":{"summary":"unauthorized","value":{"error":{"code":401,"key":"unauthorized","message":"Authentication is required to access statistics","details":[]},"result":null}},"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthorized`: Authentication is required to access statistics<br>&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"403":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not allowed to access these statistics for the selected filters","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":403},"key":{"type":"string","description":"Unique error key","example":"forbidden"},"message":{"type":"string","description":"A description of the error","example":"You are not allowed to access these statistics for the selected filters"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"forbidden":{"summary":"forbidden","value":{"error":{"code":403,"key":"forbidden","message":"You are not allowed to access these statistics for the selected filters","details":[]},"result":null}}}}},"description":"&#9702; `forbidden`: You are not allowed to access these statistics for the selected filters"},"400":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Missing or invalid fields: events, from_date, to_date","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"inputDataInvalid"},"message":{"type":"string","description":"A description of the error","example":"Missing or invalid fields: events, from_date, to_date"},"details":{"type":"object","description":"Additional error details","properties":{"invalid_fields":{"type":"array","description":"The missing or invalid fields","example":["events","from_date","to_date"],"items":{"type":"string","enum":["events","from_date","to_date"]}}}}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"inputDataInvalid":{"summary":"inputDataInvalid","value":{"error":{"code":400,"key":"inputDataInvalid","message":"Missing or invalid fields: events, from_date, to_date","details":{"invalid_fields":["events","from_date","to_date"]}},"result":null}}}}},"description":"&#9702; `inputDataInvalid`: Missing or invalid fields: events, from_date, to_date"},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}}},"\/v1\/stats\/shop\/toplist_locations":{"post":{"summary":"Get shop toplist locations","description":"This endpoint returns the top 100 geographic locations (city and country combinations) of shop visitors, ranked by unique visitor count. Each entry includes city name, country, region, latitude, longitude, unique visitor count, total page views, and percentage share of all visitor locations within the specified date range and event filters.\n\n<h3>Required role permissions:<\/h3>`$permittedTo('stats', 'get', 'shop_toplist_locations')`","operationId":"stats.shop_toplist_locations.get","tags":["Stats"],"security":[{"TokenAuth":[]}],"requestBody":{"description":"Event filters and date range to get shop toplist locations","required":false,"content":{"application\/json":{"schema":{"properties":{"events":{"type":"array","description":"An array of event ids to get stats for","items":{"type":"string","minLength":12,"maxLength":12}},"from_date":{"type":"string","description":"The start date to get stats for (UTC)","format":"date"},"to_date":{"type":"string","description":"The end date to get stats for (UTC)","format":"date"}}}}}},"responses":{"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Authentication is required to access statistics","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthorized"},"message":{"type":"string","description":"A description of the error","example":"Authentication is required to access statistics"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}},{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details (if available)"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthorized":{"summary":"unauthorized","value":{"error":{"code":401,"key":"unauthorized","message":"Authentication is required to access statistics","details":[]},"result":null}},"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthorized`: Authentication is required to access statistics<br>&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"403":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not allowed to access these statistics for the selected filters","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":403},"key":{"type":"string","description":"Unique error key","example":"forbidden"},"message":{"type":"string","description":"A description of the error","example":"You are not allowed to access these statistics for the selected filters"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"forbidden":{"summary":"forbidden","value":{"error":{"code":403,"key":"forbidden","message":"You are not allowed to access these statistics for the selected filters","details":[]},"result":null}}}}},"description":"&#9702; `forbidden`: You are not allowed to access these statistics for the selected filters"},"400":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Missing or invalid fields: events, from_date, to_date","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"inputDataInvalid"},"message":{"type":"string","description":"A description of the error","example":"Missing or invalid fields: events, from_date, to_date"},"details":{"type":"object","description":"Additional error details","properties":{"invalid_fields":{"type":"array","description":"The missing or invalid fields","example":["events","from_date","to_date"],"items":{"type":"string","enum":["events","from_date","to_date"]}}}}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"inputDataInvalid":{"summary":"inputDataInvalid","value":{"error":{"code":400,"key":"inputDataInvalid","message":"Missing or invalid fields: events, from_date, to_date","details":{"invalid_fields":["events","from_date","to_date"]}},"result":null}}}}},"description":"&#9702; `inputDataInvalid`: Missing or invalid fields: events, from_date, to_date"},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}}},"\/v1\/stats\/shop\/toplist_languages":{"post":{"summary":"Get shop toplist languages","description":"This endpoint returns the top 10 visitor language preferences (browser languages) detected in the shop, ranked by unique visitor count. Each entry includes the language code, unique visitors speaking that language, total page views, and percentage share of all language preferences within the specified date range and event filters.\n\n<h3>Required role permissions:<\/h3>`$permittedTo('stats', 'get', 'shop_toplist_languages')`","operationId":"stats.shop_toplist_languages.get","tags":["Stats"],"security":[{"TokenAuth":[]}],"requestBody":{"description":"Event filters and date range to get shop toplist languages","required":false,"content":{"application\/json":{"schema":{"properties":{"events":{"type":"array","description":"An array of event ids to get stats for","items":{"type":"string","minLength":12,"maxLength":12}},"from_date":{"type":"string","description":"The start date to get stats for (UTC)","format":"date"},"to_date":{"type":"string","description":"The end date to get stats for (UTC)","format":"date"}}}}}},"responses":{"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Authentication is required to access statistics","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthorized"},"message":{"type":"string","description":"A description of the error","example":"Authentication is required to access statistics"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}},{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details (if available)"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthorized":{"summary":"unauthorized","value":{"error":{"code":401,"key":"unauthorized","message":"Authentication is required to access statistics","details":[]},"result":null}},"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthorized`: Authentication is required to access statistics<br>&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"403":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not allowed to access these statistics for the selected filters","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":403},"key":{"type":"string","description":"Unique error key","example":"forbidden"},"message":{"type":"string","description":"A description of the error","example":"You are not allowed to access these statistics for the selected filters"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"forbidden":{"summary":"forbidden","value":{"error":{"code":403,"key":"forbidden","message":"You are not allowed to access these statistics for the selected filters","details":[]},"result":null}}}}},"description":"&#9702; `forbidden`: You are not allowed to access these statistics for the selected filters"},"400":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Missing or invalid fields: events, from_date, to_date","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"inputDataInvalid"},"message":{"type":"string","description":"A description of the error","example":"Missing or invalid fields: events, from_date, to_date"},"details":{"type":"object","description":"Additional error details","properties":{"invalid_fields":{"type":"array","description":"The missing or invalid fields","example":["events","from_date","to_date"],"items":{"type":"string","enum":["events","from_date","to_date"]}}}}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"inputDataInvalid":{"summary":"inputDataInvalid","value":{"error":{"code":400,"key":"inputDataInvalid","message":"Missing or invalid fields: events, from_date, to_date","details":{"invalid_fields":["events","from_date","to_date"]}},"result":null}}}}},"description":"&#9702; `inputDataInvalid`: Missing or invalid fields: events, from_date, to_date"},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}}},"\/v1\/stats\/shop\/toplist_languages_mismatched":{"post":{"summary":"Get shop toplist languages mismatched","description":"This endpoint returns the top 10 visitor language preferences that did not match the page language shown to them, indicating potential localization issues. Each entry includes the visitor's preferred language, unique visitor count with mismatches, page views, and percentage share of all mismatched language scenarios within the specified date range and event filters.\n\n<h3>Required role permissions:<\/h3>`$permittedTo('stats', 'get', 'shop_toplist_languages_mismatched')`","operationId":"stats.shop_toplist_languages_mismatched.get","tags":["Stats"],"security":[{"TokenAuth":[]}],"requestBody":{"description":"Event filters and date range to get shop toplist languages mismatched","required":false,"content":{"application\/json":{"schema":{"properties":{"events":{"type":"array","description":"An array of event ids to get stats for","items":{"type":"string","minLength":12,"maxLength":12}},"from_date":{"type":"string","description":"The start date to get stats for (UTC)","format":"date"},"to_date":{"type":"string","description":"The end date to get stats for (UTC)","format":"date"}}}}}},"responses":{"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Authentication is required to access statistics","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthorized"},"message":{"type":"string","description":"A description of the error","example":"Authentication is required to access statistics"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}},{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details (if available)"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthorized":{"summary":"unauthorized","value":{"error":{"code":401,"key":"unauthorized","message":"Authentication is required to access statistics","details":[]},"result":null}},"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthorized`: Authentication is required to access statistics<br>&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"403":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not allowed to access these statistics for the selected filters","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":403},"key":{"type":"string","description":"Unique error key","example":"forbidden"},"message":{"type":"string","description":"A description of the error","example":"You are not allowed to access these statistics for the selected filters"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"forbidden":{"summary":"forbidden","value":{"error":{"code":403,"key":"forbidden","message":"You are not allowed to access these statistics for the selected filters","details":[]},"result":null}}}}},"description":"&#9702; `forbidden`: You are not allowed to access these statistics for the selected filters"},"400":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Missing or invalid fields: events, from_date, to_date","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"inputDataInvalid"},"message":{"type":"string","description":"A description of the error","example":"Missing or invalid fields: events, from_date, to_date"},"details":{"type":"object","description":"Additional error details","properties":{"invalid_fields":{"type":"array","description":"The missing or invalid fields","example":["events","from_date","to_date"],"items":{"type":"string","enum":["events","from_date","to_date"]}}}}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"inputDataInvalid":{"summary":"inputDataInvalid","value":{"error":{"code":400,"key":"inputDataInvalid","message":"Missing or invalid fields: events, from_date, to_date","details":{"invalid_fields":["events","from_date","to_date"]}},"result":null}}}}},"description":"&#9702; `inputDataInvalid`: Missing or invalid fields: events, from_date, to_date"},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}}},"\/v1\/stats\/shop\/toplist_bots":{"post":{"summary":"Get shop toplist bots","description":"This endpoint returns the top 10 bot or crawler agents that accessed the shop, ranked by page view count. Each entry includes the bot name, total page views generated by that bot, and its percentage share of all bot traffic within the specified date range and event filters, useful for understanding automated traffic patterns.\n\n<h3>Required role permissions:<\/h3>`$permittedTo('stats', 'get', 'shop_toplist_bots')`","operationId":"stats.shop_toplist_bots.get","tags":["Stats"],"security":[{"TokenAuth":[]}],"requestBody":{"description":"Event filters and date range to get shop toplist bots","required":false,"content":{"application\/json":{"schema":{"properties":{"events":{"type":"array","description":"An array of event ids to get stats for","items":{"type":"string","minLength":12,"maxLength":12}},"from_date":{"type":"string","description":"The start date to get stats for (UTC)","format":"date"},"to_date":{"type":"string","description":"The end date to get stats for (UTC)","format":"date"}}}}}},"responses":{"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Authentication is required to access statistics","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthorized"},"message":{"type":"string","description":"A description of the error","example":"Authentication is required to access statistics"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}},{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details (if available)"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthorized":{"summary":"unauthorized","value":{"error":{"code":401,"key":"unauthorized","message":"Authentication is required to access statistics","details":[]},"result":null}},"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthorized`: Authentication is required to access statistics<br>&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"403":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not allowed to access these statistics for the selected filters","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":403},"key":{"type":"string","description":"Unique error key","example":"forbidden"},"message":{"type":"string","description":"A description of the error","example":"You are not allowed to access these statistics for the selected filters"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"forbidden":{"summary":"forbidden","value":{"error":{"code":403,"key":"forbidden","message":"You are not allowed to access these statistics for the selected filters","details":[]},"result":null}}}}},"description":"&#9702; `forbidden`: You are not allowed to access these statistics for the selected filters"},"400":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Missing or invalid fields: events, from_date, to_date","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"inputDataInvalid"},"message":{"type":"string","description":"A description of the error","example":"Missing or invalid fields: events, from_date, to_date"},"details":{"type":"object","description":"Additional error details","properties":{"invalid_fields":{"type":"array","description":"The missing or invalid fields","example":["events","from_date","to_date"],"items":{"type":"string","enum":["events","from_date","to_date"]}}}}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"inputDataInvalid":{"summary":"inputDataInvalid","value":{"error":{"code":400,"key":"inputDataInvalid","message":"Missing or invalid fields: events, from_date, to_date","details":{"invalid_fields":["events","from_date","to_date"]}},"result":null}}}}},"description":"&#9702; `inputDataInvalid`: Missing or invalid fields: events, from_date, to_date"},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}}},"\/v1\/stats\/shop\/toplist_asns":{"post":{"summary":"Get shop toplist ASNs","description":"This endpoint returns the top 10 Autonomous System Numbers (ASNs) representing the internet service providers or networks used by shop visitors, ranked by unique visitor count. Each entry includes the ASN identifier, unique visitors from that network, total page views, and percentage share of all ASN traffic within the specified date range and event filters.\n\n<h3>Required role permissions:<\/h3>`$permittedTo('stats', 'get', 'shop_toplist_asns')`","operationId":"stats.shop_toplist_asns.get","tags":["Stats"],"security":[{"TokenAuth":[]}],"requestBody":{"description":"Event filters and date range to get shop toplist ASNs","required":false,"content":{"application\/json":{"schema":{"properties":{"events":{"type":"array","description":"An array of event ids to get stats for","items":{"type":"string","minLength":12,"maxLength":12}},"from_date":{"type":"string","description":"The start date to get stats for (UTC)","format":"date"},"to_date":{"type":"string","description":"The end date to get stats for (UTC)","format":"date"}}}}}},"responses":{"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Authentication is required to access statistics","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthorized"},"message":{"type":"string","description":"A description of the error","example":"Authentication is required to access statistics"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}},{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details (if available)"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthorized":{"summary":"unauthorized","value":{"error":{"code":401,"key":"unauthorized","message":"Authentication is required to access statistics","details":[]},"result":null}},"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthorized`: Authentication is required to access statistics<br>&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"403":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not allowed to access these statistics for the selected filters","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":403},"key":{"type":"string","description":"Unique error key","example":"forbidden"},"message":{"type":"string","description":"A description of the error","example":"You are not allowed to access these statistics for the selected filters"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"forbidden":{"summary":"forbidden","value":{"error":{"code":403,"key":"forbidden","message":"You are not allowed to access these statistics for the selected filters","details":[]},"result":null}}}}},"description":"&#9702; `forbidden`: You are not allowed to access these statistics for the selected filters"},"400":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Missing or invalid fields: events, from_date, to_date","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"inputDataInvalid"},"message":{"type":"string","description":"A description of the error","example":"Missing or invalid fields: events, from_date, to_date"},"details":{"type":"object","description":"Additional error details","properties":{"invalid_fields":{"type":"array","description":"The missing or invalid fields","example":["events","from_date","to_date"],"items":{"type":"string","enum":["events","from_date","to_date"]}}}}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"inputDataInvalid":{"summary":"inputDataInvalid","value":{"error":{"code":400,"key":"inputDataInvalid","message":"Missing or invalid fields: events, from_date, to_date","details":{"invalid_fields":["events","from_date","to_date"]}},"result":null}}}}},"description":"&#9702; `inputDataInvalid`: Missing or invalid fields: events, from_date, to_date"},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}}},"\/v1\/stats\/shop\/behavior_funnel":{"post":{"summary":"Get shop behavior funnel","description":"This endpoint returns visitor behavior patterns grouped by page type (e.g., homepage, event page, checkout, purchase), showing the progression through the shop. Each page type includes unique visitors, total page views, and a percentage relative to the maximum page type, creating a funnel visualization of visitor navigation paths through the purchase journey.\n\n<h3>Required role permissions:<\/h3>`$permittedTo('stats', 'get', 'shop_behavior_funnel')`","operationId":"stats.shop_behavior_funnel.get","tags":["Stats"],"security":[{"TokenAuth":[]}],"requestBody":{"description":"Event filters and date range to get shop behavior funnel","required":false,"content":{"application\/json":{"schema":{"properties":{"events":{"type":"array","description":"An array of event ids to get stats for","items":{"type":"string","minLength":12,"maxLength":12}},"from_date":{"type":"string","description":"The start date to get stats for (UTC)","format":"date"},"to_date":{"type":"string","description":"The end date to get stats for (UTC)","format":"date"}}}}}},"responses":{"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Authentication is required to access statistics","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthorized"},"message":{"type":"string","description":"A description of the error","example":"Authentication is required to access statistics"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}},{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details (if available)"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthorized":{"summary":"unauthorized","value":{"error":{"code":401,"key":"unauthorized","message":"Authentication is required to access statistics","details":[]},"result":null}},"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthorized`: Authentication is required to access statistics<br>&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"403":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not allowed to access these statistics for the selected filters","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":403},"key":{"type":"string","description":"Unique error key","example":"forbidden"},"message":{"type":"string","description":"A description of the error","example":"You are not allowed to access these statistics for the selected filters"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"forbidden":{"summary":"forbidden","value":{"error":{"code":403,"key":"forbidden","message":"You are not allowed to access these statistics for the selected filters","details":[]},"result":null}}}}},"description":"&#9702; `forbidden`: You are not allowed to access these statistics for the selected filters"},"400":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Missing or invalid fields: events, from_date, to_date","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"inputDataInvalid"},"message":{"type":"string","description":"A description of the error","example":"Missing or invalid fields: events, from_date, to_date"},"details":{"type":"object","description":"Additional error details","properties":{"invalid_fields":{"type":"array","description":"The missing or invalid fields","example":["events","from_date","to_date"],"items":{"type":"string","enum":["events","from_date","to_date"]}}}}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"inputDataInvalid":{"summary":"inputDataInvalid","value":{"error":{"code":400,"key":"inputDataInvalid","message":"Missing or invalid fields: events, from_date, to_date","details":{"invalid_fields":["events","from_date","to_date"]}},"result":null}}}}},"description":"&#9702; `inputDataInvalid`: Missing or invalid fields: events, from_date, to_date"},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}}},"\/v1\/stats\/shop\/toplist_event_pages":{"post":{"summary":"Get shop toplist event pages","description":"This endpoint returns the top 10 most viewed event detail pages in the shop, ranked by unique visitor count. Each entry includes the event ID, event name, event dates (first and last), unique visitors, total page views, and percentage share of all event page traffic within the specified date range and event filters, useful for identifying the most popular events.\n\n<h3>Required role permissions:<\/h3>`$permittedTo('stats', 'get', 'shop_toplist_event_pages')`","operationId":"stats.shop_toplist_event_pages.get","tags":["Stats"],"security":[{"TokenAuth":[]}],"requestBody":{"description":"Event filters and date range to get shop toplist event pages","required":false,"content":{"application\/json":{"schema":{"properties":{"events":{"type":"array","description":"An array of event ids to get stats for","items":{"type":"string","minLength":12,"maxLength":12}},"from_date":{"type":"string","description":"The start date to get stats for (UTC)","format":"date"},"to_date":{"type":"string","description":"The end date to get stats for (UTC)","format":"date"}}}}}},"responses":{"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Authentication is required to access statistics","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthorized"},"message":{"type":"string","description":"A description of the error","example":"Authentication is required to access statistics"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}},{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details (if available)"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthorized":{"summary":"unauthorized","value":{"error":{"code":401,"key":"unauthorized","message":"Authentication is required to access statistics","details":[]},"result":null}},"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthorized`: Authentication is required to access statistics<br>&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"403":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not allowed to access these statistics for the selected filters","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":403},"key":{"type":"string","description":"Unique error key","example":"forbidden"},"message":{"type":"string","description":"A description of the error","example":"You are not allowed to access these statistics for the selected filters"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"forbidden":{"summary":"forbidden","value":{"error":{"code":403,"key":"forbidden","message":"You are not allowed to access these statistics for the selected filters","details":[]},"result":null}}}}},"description":"&#9702; `forbidden`: You are not allowed to access these statistics for the selected filters"},"400":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Missing or invalid fields: events, from_date, to_date","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"inputDataInvalid"},"message":{"type":"string","description":"A description of the error","example":"Missing or invalid fields: events, from_date, to_date"},"details":{"type":"object","description":"Additional error details","properties":{"invalid_fields":{"type":"array","description":"The missing or invalid fields","example":["events","from_date","to_date"],"items":{"type":"string","enum":["events","from_date","to_date"]}}}}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"inputDataInvalid":{"summary":"inputDataInvalid","value":{"error":{"code":400,"key":"inputDataInvalid","message":"Missing or invalid fields: events, from_date, to_date","details":{"invalid_fields":["events","from_date","to_date"]}},"result":null}}}}},"description":"&#9702; `inputDataInvalid`: Missing or invalid fields: events, from_date, to_date"},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}}},"\/v1\/stats\/shop\/realtime_visitors":{"post":{"summary":"Get realtime visitors (shop)","description":"This endpoint returns the current number of active visitors on the shop in real-time, along with a breakdown of their device types (mobile, desktop, tablet) and operating systems. It provides insights into live traffic patterns and user engagement on the shop at the moment of the request.\n\n<h3>Required role permissions:<\/h3>`$permittedTo('stats', 'get', 'shop_realtime_visitors')`","operationId":"stats.shop_realtime_visitors.get","tags":["Stats"],"security":[{"TokenAuth":[]}],"requestBody":{"description":"Event filters and date range to get shop realtime visitors","required":false,"content":{"application\/json":{"schema":{"properties":{"events":{"type":"array","description":"An array of event ids to get stats for","items":{"type":"string","minLength":12,"maxLength":12}},"from_date":{"type":"string","description":"The start date to get stats for (UTC)","format":"date"},"to_date":{"type":"string","description":"The end date to get stats for (UTC)","format":"date"}}}}}},"responses":{"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Authentication is required to access statistics","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthorized"},"message":{"type":"string","description":"A description of the error","example":"Authentication is required to access statistics"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}},{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details (if available)"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthorized":{"summary":"unauthorized","value":{"error":{"code":401,"key":"unauthorized","message":"Authentication is required to access statistics","details":[]},"result":null}},"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthorized`: Authentication is required to access statistics<br>&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"403":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not allowed to access these statistics for the selected filters","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":403},"key":{"type":"string","description":"Unique error key","example":"forbidden"},"message":{"type":"string","description":"A description of the error","example":"You are not allowed to access these statistics for the selected filters"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"forbidden":{"summary":"forbidden","value":{"error":{"code":403,"key":"forbidden","message":"You are not allowed to access these statistics for the selected filters","details":[]},"result":null}}}}},"description":"&#9702; `forbidden`: You are not allowed to access these statistics for the selected filters"},"400":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Missing or invalid fields: events, from_date, to_date","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"inputDataInvalid"},"message":{"type":"string","description":"A description of the error","example":"Missing or invalid fields: events, from_date, to_date"},"details":{"type":"object","description":"Additional error details","properties":{"invalid_fields":{"type":"array","description":"The missing or invalid fields","example":["events","from_date","to_date"],"items":{"type":"string","enum":["events","from_date","to_date"]}}}}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"inputDataInvalid":{"summary":"inputDataInvalid","value":{"error":{"code":400,"key":"inputDataInvalid","message":"Missing or invalid fields: events, from_date, to_date","details":{"invalid_fields":["events","from_date","to_date"]}},"result":null}}}}},"description":"&#9702; `inputDataInvalid`: Missing or invalid fields: events, from_date, to_date"},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}}},"\/v1\/purchases":{"get":{"summary":"Get all purchases","description":"This endpoint returns all purchases (depending on the user's permissions)\n\n<h3>Required role permissions:<\/h3>`$permittedTo('purchases', 'get', 'all')`","operationId":"purchases.all.get","tags":["Purchases"],"security":[{"TokenAuth":[]}],"parameters":[{"$ref":"#\/components\/parameters\/page"},{"$ref":"#\/components\/parameters\/limit"},{"$ref":"#\/components\/parameters\/select"},{"$ref":"#\/components\/parameters\/orderBy"},{"$ref":"#\/components\/parameters\/filterBy"}],"responses":{"200":{"description":"All purchases","content":{"application\/json":{"schema":{"oneOf":[{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"description":"All purchases","type":"object","additionalProperties":{"$ref":"#\/components\/schemas\/Purchase"}}},"description":"All purchases"},{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"description":"Paginated result","type":"object","properties":{"objects":{"description":"All purchases","type":"object","additionalProperties":{"$ref":"#\/components\/schemas\/Purchase"}},"pagination":{"type":"object","description":"Pagination information","properties":{"page":{"type":"integer","description":"Current page","example":1},"pages":{"type":"integer","description":"Total pages","example":10},"objects":{"type":"integer","description":"Total number of objects","example":100}}}}}},"description":"All purchases (paginated if `limit` is set in query params)"}]}}}},"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}}},"\/v1\/purchases\/{id}":{"get":{"summary":"Get a specific purchase by id","description":"This endpoint returns a specific purchase by its unique id\n\n<h3>Required role permissions:<\/h3>`$permittedTo('purchases', 'get', 'purchase')`","operationId":"purchases.purchase.get","tags":["Purchases"],"security":[{"TokenAuth":[]}],"parameters":[{"$ref":"#\/components\/parameters\/id"},{"$ref":"#\/components\/parameters\/select"}],"responses":{"200":{"description":"The requested purchase","content":{"application\/json":{"schema":{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"$ref":"#\/components\/schemas\/Purchase"}}}}}},"404":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Purchase was not found","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":404},"key":{"type":"string","description":"Unique error key","example":"notFound"},"message":{"type":"string","description":"A description of the error","example":"Purchase was not found"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"notFound":{"summary":"notFound","value":{"error":{"code":404,"key":"notFound","message":"Purchase was not found","details":[]},"result":null}}}}},"description":"&#9702; `notFound`: Purchase was not found"},"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}},"patch":{"summary":"Update a purchase by id","description":"This endpoint updates a purchase by its unique id\n\n<h3>Required role permissions:<\/h3>`$permittedTo('purchases', 'update', 'purchase')`","operationId":"purchases.purchase.update","tags":["Purchases"],"security":[{"TokenAuth":[]}],"parameters":[{"$ref":"#\/components\/parameters\/id"}],"requestBody":{"description":"Purchase details","required":true,"content":{"application\/json":{"schema":{"properties":{"company":{"description":"Company name of the buyer","type":"string"},"first_name":{"description":"First name of the buyer","type":"string"},"last_name":{"description":"Last name of the buyer","type":"string"},"email":{"description":"Email of the buyer","type":"string","format":"email"},"phone":{"description":"Phone number of the buyer","type":"string"},"address":{"$ref":"#\/components\/schemas\/Address"},"edit_tickets":{"type":"boolean","description":"Also edit the tickets of the purchase","default":false}}}}}},"responses":{"200":{"description":"The updated purchase","content":{"application\/json":{"schema":{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"$ref":"#\/components\/schemas\/Purchase"}}}}}},"400":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"No data was provided","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"noData"},"message":{"type":"string","description":"A description of the error","example":"No data was provided"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}},{"description":"Missing or invalid fields: company, first_name, last_name, email, phone, address, edit_tickets","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"inputDataInvalid"},"message":{"type":"string","description":"A description of the error","example":"Missing or invalid fields: company, first_name, last_name, email, phone, address, edit_tickets"},"details":{"type":"object","description":"Additional error details (if available)","properties":{"invalid_fields":{"type":"array","description":"The missing or invalid fields","example":["company","first_name","last_name","email","phone","address","edit_tickets"],"items":{"type":"string","enum":["company","first_name","last_name","email","phone","address","edit_tickets"]}}}}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"noData":{"summary":"noData","value":{"error":{"code":400,"key":"noData","message":"No data was provided","details":[]},"result":null}},"inputDataInvalid":{"summary":"inputDataInvalid","value":{"error":{"code":400,"key":"inputDataInvalid","message":"Missing or invalid fields: company, first_name, last_name, email, phone, address, edit_tickets","details":{"invalid_fields":["company","first_name","last_name","email","phone","address","edit_tickets"]}},"result":null}}}}},"description":"&#9702; `noData`: No data was provided<br>&#9702; `inputDataInvalid`: Missing or invalid fields: company, first_name, last_name, email, phone, address, edit_tickets"},"404":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Purchase was not found","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":404},"key":{"type":"string","description":"Unique error key","example":"notFound"},"message":{"type":"string","description":"A description of the error","example":"Purchase was not found"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"notFound":{"summary":"notFound","value":{"error":{"code":404,"key":"notFound","message":"Purchase was not found","details":[]},"result":null}}}}},"description":"&#9702; `notFound`: Purchase was not found"},"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}}},"\/v1\/purchases\/{id}\/refund":{"patch":{"summary":"Refund a purchase","description":"This endpoint refunds a purchase and invalidates all tickets\n\n<h3>Required role permissions:<\/h3>`$permittedTo('purchases', 'create', 'refund')`","operationId":"purchases.refund.create","tags":["Purchases"],"security":[{"TokenAuth":[]}],"parameters":[{"$ref":"#\/components\/parameters\/id"}],"requestBody":{"description":"Refund information","required":true,"content":{"application\/json":{"schema":{"required":["reason","notes"],"properties":{"reason":{"type":"string","description":"Reason for the refund","enum":["duplicate","fraudulent","requested_by_customer"]},"notes":{"type":"string","description":"Notes for the refund"}}}}}},"responses":{"200":{"description":"The refunded purchase","content":{"application\/json":{"schema":{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"$ref":"#\/components\/schemas\/Purchase"}}}}}},"404":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Purchase was not found","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":404},"key":{"type":"string","description":"Unique error key","example":"notFound"},"message":{"type":"string","description":"A description of the error","example":"Purchase was not found"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"notFound":{"summary":"notFound","value":{"error":{"code":404,"key":"notFound","message":"Purchase was not found","details":[]},"result":null}}}}},"description":"&#9702; `notFound`: Purchase was not found"},"400":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"The purchase could not be refunded due to an internal error with the payment provider","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"refundError"},"message":{"type":"string","description":"A description of the error","example":"The purchase could not be refunded due to an internal error with the payment provider"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}},{"description":"The purchase is already refunded","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"alreadyRefunded"},"message":{"type":"string","description":"A description of the error","example":"The purchase is already refunded"},"details":{"type":"object","description":"Additional error details (if available)"}}},"result":{"description":"No result","nullable":true,"default":null}}},{"description":"The purchase is not refundable","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"nothingToRefund"},"message":{"type":"string","description":"A description of the error","example":"The purchase is not refundable"},"details":{"type":"object","description":"Additional error details (if available)"}}},"result":{"description":"No result","nullable":true,"default":null}}},{"description":"The refund could not be processed because at least one assigned event is already paid out","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"eventPayoutAlreadyCarriedOut"},"message":{"type":"string","description":"A description of the error","example":"The refund could not be processed because at least one assigned event is already paid out"},"details":{"type":"object","description":"Additional error details (if available)"}}},"result":{"description":"No result","nullable":true,"default":null}}},{"description":"Missing or invalid fields: reason, notes","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"inputDataInvalid"},"message":{"type":"string","description":"A description of the error","example":"Missing or invalid fields: reason, notes"},"details":{"type":"object","description":"Additional error details (if available)","properties":{"invalid_fields":{"type":"array","description":"The missing or invalid fields","example":["reason","notes"],"items":{"type":"string","enum":["reason","notes"]}}}}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"refundError":{"summary":"refundError","value":{"error":{"code":400,"key":"refundError","message":"The purchase could not be refunded due to an internal error with the payment provider","details":[]},"result":null}},"alreadyRefunded":{"summary":"alreadyRefunded","value":{"error":{"code":400,"key":"alreadyRefunded","message":"The purchase is already refunded","details":[]},"result":null}},"nothingToRefund":{"summary":"nothingToRefund","value":{"error":{"code":400,"key":"nothingToRefund","message":"The purchase is not refundable","details":[]},"result":null}},"eventPayoutAlreadyCarriedOut":{"summary":"eventPayoutAlreadyCarriedOut","value":{"error":{"code":400,"key":"eventPayoutAlreadyCarriedOut","message":"The refund could not be processed because at least one assigned event is already paid out","details":[]},"result":null}},"inputDataInvalid":{"summary":"inputDataInvalid","value":{"error":{"code":400,"key":"inputDataInvalid","message":"Missing or invalid fields: reason, notes","details":{"invalid_fields":["reason","notes"]}},"result":null}}}}},"description":"&#9702; `refundError`: The purchase could not be refunded due to an internal error with the payment provider<br>&#9702; `alreadyRefunded`: The purchase is already refunded<br>&#9702; `nothingToRefund`: The purchase is not refundable<br>&#9702; `eventPayoutAlreadyCarriedOut`: The refund could not be processed because at least one assigned event is already paid out<br>&#9702; `inputDataInvalid`: Missing or invalid fields: reason, notes"},"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}}},"\/v1\/purchases\/{id}.pdf":{"get":{"summary":"Download invoice as a pdf file","description":"This public endpoint downloads an invoice as a pdf file. If the purchase was not found, the endpoint redirects to the homepage.","operationId":"purchases.invoice.get","tags":["Purchases"],"parameters":[{"$ref":"#\/components\/parameters\/id"}],"responses":{"200":{"description":"Purchase invoice","content":{"application\/pdf":{"schema":{"type":"string","format":"binary","description":"Invoice as a pdf file"}}}},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}}},"\/v1\/purchases\/{id}\/send.invoice":{"post":{"summary":"Resend invoice to a specific guest group","description":"This endpoint resends invoices and tickets to multiple guests via email\n\n<h3>Required role permissions:<\/h3>`$permittedTo('purchases', 'create', 'send.invoice')`","operationId":"purchases.send.invoice.create","tags":["Purchases"],"security":[{"TokenAuth":[]}],"parameters":[{"$ref":"#\/components\/parameters\/id"}],"responses":{"200":{"description":"Indicates if the invoice was sent successfully","content":{"application\/json":{"schema":{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"description":"Indicates if the invoice was sent successfully","type":"boolean","example":true,"default":true}}}}}},"404":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Purchase was not found","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":404},"key":{"type":"string","description":"Unique error key","example":"notFound"},"message":{"type":"string","description":"A description of the error","example":"Purchase was not found"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"notFound":{"summary":"notFound","value":{"error":{"code":404,"key":"notFound","message":"Purchase was not found","details":[]},"result":null}}}}},"description":"&#9702; `notFound`: Purchase was not found"},"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}}},"\/v1\/customers":{"get":{"summary":"Get all customers","description":"This endpoint returns all customers\n\n<h3>Required role permissions:<\/h3>`$permittedTo('customers', 'get', 'all')`","operationId":"customers.all.get","tags":["Customers"],"security":[{"TokenAuth":[]}],"parameters":[{"$ref":"#\/components\/parameters\/page"},{"$ref":"#\/components\/parameters\/limit"},{"$ref":"#\/components\/parameters\/select"},{"$ref":"#\/components\/parameters\/orderBy"},{"$ref":"#\/components\/parameters\/filterBy"}],"responses":{"200":{"description":"All customers","content":{"application\/json":{"schema":{"oneOf":[{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"description":"All customers","type":"object","additionalProperties":{"$ref":"#\/components\/schemas\/Customer"}}},"description":"All customers"},{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"description":"Paginated result","type":"object","properties":{"objects":{"description":"All customers","type":"object","additionalProperties":{"$ref":"#\/components\/schemas\/Customer"}},"pagination":{"type":"object","description":"Pagination information","properties":{"page":{"type":"integer","description":"Current page","example":1},"pages":{"type":"integer","description":"Total pages","example":10},"objects":{"type":"integer","description":"Total number of objects","example":100}}}}}},"description":"All customers (paginated if `limit` is set in query params)"}]}}}},"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}}},"\/v1\/customers\/{id}":{"get":{"summary":"Get a specific customer by id","description":"This endpoint returns a specific customer by id\n\n<h3>Required role permissions:<\/h3>`$permittedTo('customers', 'get', 'customer')`","operationId":"customers.customer.get","tags":["Customers"],"security":[{"TokenAuth":[]}],"parameters":[{"$ref":"#\/components\/parameters\/id"},{"$ref":"#\/components\/parameters\/select"}],"responses":{"200":{"description":"The requested customer","content":{"application\/json":{"schema":{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"$ref":"#\/components\/schemas\/Customer"}}}}}},"404":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Customer was not found","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":404},"key":{"type":"string","description":"Unique error key","example":"notFound"},"message":{"type":"string","description":"A description of the error","example":"Customer was not found"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"notFound":{"summary":"notFound","value":{"error":{"code":404,"key":"notFound","message":"Customer was not found","details":[]},"result":null}}}}},"description":"&#9702; `notFound`: Customer was not found"},"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}}},"\/v1\/customers\/{id}\/insights":{"post":{"summary":"Get customer insights","description":"This endpoint returns insights for a specific customer\n\n<h3>Required role permissions:<\/h3>`$permittedTo('customers', 'get', 'insights')`","operationId":"customers.insights.get","tags":["Customers"],"security":[{"TokenAuth":[]}],"parameters":[{"$ref":"#\/components\/parameters\/id"}],"requestBody":{"description":"Insights filters","required":false,"content":{"application\/json":{"schema":{"properties":{"currency":{"type":"string","description":"The target currency to convert","default":"EUR","example":"EUR"}}}}}},"responses":{"200":{"description":"The requested customer","content":{"application\/json":{"schema":{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"$ref":"#\/components\/schemas\/Customer"}}}}}},"404":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Customer was not found","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":404},"key":{"type":"string","description":"Unique error key","example":"notFound"},"message":{"type":"string","description":"A description of the error","example":"Customer was not found"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"notFound":{"summary":"notFound","value":{"error":{"code":404,"key":"notFound","message":"Customer was not found","details":[]},"result":null}}}}},"description":"&#9702; `notFound`: Customer was not found"},"400":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Missing or invalid fields: currency","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"inputDataInvalid"},"message":{"type":"string","description":"A description of the error","example":"Missing or invalid fields: currency"},"details":{"type":"object","description":"Additional error details","properties":{"invalid_fields":{"type":"array","description":"The missing or invalid fields","example":["currency"],"items":{"type":"string","enum":["currency"]}}}}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"inputDataInvalid":{"summary":"inputDataInvalid","value":{"error":{"code":400,"key":"inputDataInvalid","message":"Missing or invalid fields: currency","details":{"invalid_fields":["currency"]}},"result":null}}}}},"description":"&#9702; `inputDataInvalid`: Missing or invalid fields: currency"},"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}}},"\/v1\/events":{"get":{"summary":"Get all events","description":"This endpoint returns all events (depending on the user's permissions).\n\nThe events are sorted intelligently.\n\n<h3>Required role permissions:<\/h3>`$permittedTo('events', 'get', 'all')`","operationId":"events.all.get","tags":["Events"],"security":[{"TokenAuth":[]}],"parameters":[{"$ref":"#\/components\/parameters\/page"},{"$ref":"#\/components\/parameters\/limit"},{"$ref":"#\/components\/parameters\/select"},{"$ref":"#\/components\/parameters\/orderBy"},{"$ref":"#\/components\/parameters\/filterBy"}],"responses":{"200":{"description":"All events","content":{"application\/json":{"schema":{"oneOf":[{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"description":"All events","type":"object","additionalProperties":{"$ref":"#\/components\/schemas\/Event"}}},"description":"All events"},{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"description":"Paginated result","type":"object","properties":{"objects":{"description":"All events","type":"object","additionalProperties":{"$ref":"#\/components\/schemas\/Event"}},"pagination":{"type":"object","description":"Pagination information","properties":{"page":{"type":"integer","description":"Current page","example":1},"pages":{"type":"integer","description":"Total pages","example":10},"objects":{"type":"integer","description":"Total number of objects","example":100}}}}}},"description":"All events (paginated if `limit` is set in query params)"}]}}}},"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}},"post":{"summary":"Create a new event","description":"This endpoint creates a new empty event. The event details can be filled with data later on via the update endpoint\n\n<h3>Required role permissions:<\/h3>`$permittedTo('events', 'create', 'event')`","operationId":"events.event.create","tags":["Events"],"security":[{"TokenAuth":[]}],"requestBody":{"description":"Event owner","required":false,"content":{"application\/json":{"schema":{"properties":{"organization":{"type":"string","description":"A unique organization identifier that owns the event (for root access only)"}}}}}},"responses":{"200":{"description":"The created event","content":{"application\/json":{"schema":{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"$ref":"#\/components\/schemas\/Event"}}}}}},"404":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Organization was not found","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":404},"key":{"type":"string","description":"Unique error key","example":"invalidOrganization"},"message":{"type":"string","description":"A description of the error","example":"Organization was not found"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"invalidOrganization":{"summary":"invalidOrganization","value":{"error":{"code":404,"key":"invalidOrganization","message":"Organization was not found","details":[]},"result":null}}}}},"description":"&#9702; `invalidOrganization`: Organization was not found"},"400":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Missing or invalid fields: organization","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"inputDataInvalid"},"message":{"type":"string","description":"A description of the error","example":"Missing or invalid fields: organization"},"details":{"type":"object","description":"Additional error details","properties":{"invalid_fields":{"type":"array","description":"The missing or invalid fields","example":["organization"],"items":{"type":"string","enum":["organization"]}}}}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"inputDataInvalid":{"summary":"inputDataInvalid","value":{"error":{"code":400,"key":"inputDataInvalid","message":"Missing or invalid fields: organization","details":{"invalid_fields":["organization"]}},"result":null}}}}},"description":"&#9702; `inputDataInvalid`: Missing or invalid fields: organization"},"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}}},"\/v1\/events\/stats":{"get":{"summary":"Get all event sales stats","description":"This endpoint returns general stats for all events inside an organization (sales volume and sold tickets)\n\n<h3>Required role permissions:<\/h3>`$permittedTo('events', 'get', 'stats')`","operationId":"events.stats.get","tags":["Events"],"security":[{"TokenAuth":[]}],"responses":{"200":{"description":"All general event stats mapped by event id","content":{"application\/json":{"schema":{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"description":"All general event stats mapped by event id","type":"object","additionalProperties":{"type":"object","properties":{"tickets":{"description":"The total amount of sold tickets","type":"integer","example":100},"volume":{"description":"The total sales volume","type":"number","format":"float","example":1000}}}}}}}}},"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}}},"\/v1\/events\/highlights":{"get":{"summary":"Get all highlights","description":"This endpoint returns all highlighted events","operationId":"events.highlights.get","tags":["Events"],"security":[{"TokenAuth":[]}],"parameters":[{"$ref":"#\/components\/parameters\/select"},{"$ref":"#\/components\/parameters\/orderBy"}],"responses":{"200":{"description":"All highlighted events","content":{"application\/json":{"schema":{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"description":"All highlighted events","type":"object","additionalProperties":{"$ref":"#\/components\/schemas\/Event"}}}}}}},"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}}},"\/v1\/events\/{id}":{"get":{"summary":"Get a specific event by id","description":"This endpoint returns a specific event by its unique id\n\n<h3>Required role permissions:<\/h3>`$permittedTo('events', 'get', 'event')`","operationId":"events.event.get","tags":["Events"],"security":[{"TokenAuth":[]}],"parameters":[{"$ref":"#\/components\/parameters\/id"},{"$ref":"#\/components\/parameters\/select"}],"responses":{"200":{"description":"The requested event","content":{"application\/json":{"schema":{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"$ref":"#\/components\/schemas\/Event"}}}}}},"404":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Event was not found","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":404},"key":{"type":"string","description":"Unique error key","example":"notFound"},"message":{"type":"string","description":"A description of the error","example":"Event was not found"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"notFound":{"summary":"notFound","value":{"error":{"code":404,"key":"notFound","message":"Event was not found","details":[]},"result":null}}}}},"description":"&#9702; `notFound`: Event was not found"},"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}},"patch":{"summary":"Update an event by id","description":"This endpoint updates an event by its id.\n\n`Note: All dates must be provided in UTC timezone.`\n\n<h3>Required role permissions:<\/h3>`$permittedTo('events', 'update', 'event')`","operationId":"events.event.update","tags":["Events"],"security":[{"TokenAuth":[]}],"parameters":[{"$ref":"#\/components\/parameters\/id"}],"requestBody":{"description":"Event details","required":true,"content":{"application\/json":{"schema":{"properties":{"name":{"description":"Name of the event","type":"string","nullable":true},"description":{"description":"Description of the event","type":"string","nullable":true},"location":{"description":"Identifier for the location","type":"string"},"location_notes":{"description":"Relevant information about the location","type":"string","nullable":true,"example":"Entrance at the back of the building"},"min_age":{"description":"Minimum age restriction settings for the event","type":"object","properties":{"value":{"description":"The minimum age for the event","type":"integer","minimum":0,"maximum":100,"example":18},"show":{"description":"Show the minimum age on the shop frontend","type":"boolean","default":false}}},"tax_id":{"description":"Identifier for the tax rate","type":"string"},"include_fees":{"description":"Indicates if the fees are included in the price or listed separately","type":"boolean","default":false},"fees":{"description":"NIGHTOWL\u00ae fees to be paid by the organization (automatically set)","type":"object","properties":{"EUR":{"description":"Fees for EUR transactions","type":"object","properties":{"percentual":{"description":"Percentage of fees to be paid by the organization","type":"number","format":"float","example":4.2,"nullable":true},"flat":{"description":"Flat fees to be paid by the organization","type":"number","format":"float","example":0.8,"nullable":true},"kickback":{"description":"Kickback fees to be paid by the organization","type":"number","format":"float","example":4.2,"nullable":true}}}}},"fees_affiliate":{"description":"Affiliate partner fees to be paid by the organization (automatically set)","type":"object","properties":{"EUR":{"description":"Fees for EUR transactions","type":"object","properties":{"percentual":{"description":"Percentage of fees to be paid by the organization","type":"number","format":"float","example":4.2,"nullable":true},"flat":{"description":"Flat fees to be paid by the organization","type":"number","format":"float","example":0.8,"nullable":true}}}}},"currency":{"description":"Price currency of the event","type":"string","enum":["EUR"],"default":"EUR"},"dates":{"description":"Dates for the event","type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"Unique date ID (automatically generated)"},"from_date":{"type":"string","format":"date-time","description":"ISO 8601 date"},"to_date":{"type":"string","format":"date-time","description":"ISO 8601 date"},"box_office":{"type":"object","properties":{"active":{"type":"boolean","description":"Indicates if the box office is active","example":true,"default":false},"description":{"type":"string","description":"Description of the box office","example":"Standard ticket"},"description_small":{"type":"string","description":"Small description of the box office","example":"3 drinks included"},"from_date":{"type":"string","format":"date-time","description":"ISO 8601 date (display date)"},"to_date":{"type":"string","format":"date-time","description":"ISO 8601 date"},"price":{"type":"number","description":"Price of a ticket","example":10},"tickets":{"type":"integer","description":"Number of tickets available for the box office","example":500,"minimum":1}}},"stages":{"type":"array","description":"Stages of the event date","items":{"type":"object","properties":{"name":{"type":"string","description":"Stage name"},"artists":{"type":"array","description":"Artists of the stage","items":{"type":"string"}},"artists_support":{"type":"array","description":"Support artists of the stage","items":{"type":"string"}},"genres":{"type":"array","description":"Genres of the stage","items":{"type":"string"}}}}}}}},"categories":{"description":"Ticket categories for the event","type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"Unique ticket category ID (automatically generated)"},"name":{"type":"string","description":"Name of the ticket category","example":"Standard"},"description":{"type":"string","description":"Description of the ticket phase","example":"Standard ticket"},"description_small":{"type":"string","description":"Small description of the ticket phase","example":"3 drinks included"},"group_tickets":{"type":"boolean","description":"Indicates if the tickets are group tickets","example":true,"default":false},"group_size":{"type":"integer","description":"Number of tickets per purchase (group tickets)","example":5,"minimum":1},"tickets":{"type":"integer","description":"Total number of tickets for the ticket category","example":500,"minimum":1},"personalized_tickets":{"type":"boolean","description":"Indicates if the tickets are personalized","example":true,"default":false},"dates":{"description":"Valid for the specified dates","type":"array","items":{"type":"string","description":"One or multiple date IDs"}},"phases":{"description":"Ticket phases of the ticket category","type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"Unique phase ID (automatically generated)"},"name":{"type":"string","description":"Name of the ticket phase (prefix)","example":"Standard"},"from_date":{"type":"string","format":"date-time","description":"ISO 8601 date of the first date of the ticket category"},"to_date":{"type":"string","format":"date-time","description":"ISO 8601 date of the last date of the ticket category"},"price":{"type":"number","description":"Price of the ticket phase","example":10},"tickets":{"type":"integer","description":"Number of tickets available for the ticket phase","example":500,"minimum":1},"transfer_tickets":{"type":"boolean","description":"Transfer remaining tickets to the next ticket phase","example":true,"default":false},"skip_phase":{"type":"boolean","description":"Skip to the next ticket phase if the current one is sold out","example":true,"default":false}}}}}}},"show_soldout":{"description":"Show soldout tickets\/phases in shop frontend","type":"boolean","default":false},"draft":{"description":"Indicates if the event is in draft mode","type":"boolean","default":true},"meta":{"description":"Additional key value meta information about the event, following no specific schema","type":"object"},"organization":{"type":"string","description":"A unique organization identifier that owns the event (for root access only)"}}}}}},"responses":{"200":{"description":"The updated event","content":{"application\/json":{"schema":{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"$ref":"#\/components\/schemas\/Event"}}}}}},"400":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"No data was provided","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"noData"},"message":{"type":"string","description":"A description of the error","example":"No data was provided"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}},{"description":"Dates are invalid","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"invalidDates"},"message":{"type":"string","description":"A description of the error","example":"Dates are invalid"},"details":{"type":"object","description":"Additional error details (if available)"}}},"result":{"description":"No result","nullable":true,"default":null}}},{"description":"Categories are invalid","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"invalidCategories"},"message":{"type":"string","description":"A description of the error","example":"Categories are invalid"},"details":{"type":"object","description":"Additional error details (if available)"}}},"result":{"description":"No result","nullable":true,"default":null}}},{"description":"Fee settings are invalid","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"invalidFees"},"message":{"type":"string","description":"A description of the error","example":"Fee settings are invalid"},"details":{"type":"object","description":"Additional error details (if available)"}}},"result":{"description":"No result","nullable":true,"default":null}}},{"description":"Event is canceled and cannot be updated","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"updateOnCanceledEvent"},"message":{"type":"string","description":"A description of the error","example":"Event is canceled and cannot be updated"},"details":{"type":"object","description":"Additional error details (if available)"}}},"result":{"description":"No result","nullable":true,"default":null}}},{"description":"Currency is invalid","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"invalidCurrency"},"message":{"type":"string","description":"A description of the error","example":"Currency is invalid"},"details":{"type":"object","description":"Additional error details (if available)","properties":{"allowed":{"description":"List of allowed currencies","type":"array","items":{"type":"string"},"example":["EUR","USD"]}}}}},"result":{"description":"No result","nullable":true,"default":null}}},{"description":"Missing or invalid fields: name, description, location, location_notes, min_age, tax_id, include_fees, fees, fees_affiliate, currency, dates, categories, show_soldout, draft, meta, organization","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"inputDataInvalid"},"message":{"type":"string","description":"A description of the error","example":"Missing or invalid fields: name, description, location, location_notes, min_age, tax_id, include_fees, fees, fees_affiliate, currency, dates, categories, show_soldout, draft, meta, organization"},"details":{"type":"object","description":"Additional error details (if available)","properties":{"invalid_fields":{"type":"array","description":"The missing or invalid fields","example":["name","description","location","location_notes","min_age","tax_id","include_fees","fees","fees_affiliate","currency","dates","categories","show_soldout","draft","meta","organization"],"items":{"type":"string","enum":["name","description","location","location_notes","min_age","tax_id","include_fees","fees","fees_affiliate","currency","dates","categories","show_soldout","draft","meta","organization"]}}}}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"noData":{"summary":"noData","value":{"error":{"code":400,"key":"noData","message":"No data was provided","details":[]},"result":null}},"invalidDates":{"summary":"invalidDates","value":{"error":{"code":400,"key":"invalidDates","message":"Dates are invalid","details":[]},"result":null}},"invalidCategories":{"summary":"invalidCategories","value":{"error":{"code":400,"key":"invalidCategories","message":"Categories are invalid","details":[]},"result":null}},"invalidFees":{"summary":"invalidFees","value":{"error":{"code":400,"key":"invalidFees","message":"Fee settings are invalid","details":[]},"result":null}},"updateOnCanceledEvent":{"summary":"updateOnCanceledEvent","value":{"error":{"code":400,"key":"updateOnCanceledEvent","message":"Event is canceled and cannot be updated","details":[]},"result":null}},"invalidCurrency":{"summary":"invalidCurrency","value":{"error":{"code":400,"key":"invalidCurrency","message":"Currency is invalid","details":{"allowed":["EUR","USD"]}},"result":null}},"inputDataInvalid":{"summary":"inputDataInvalid","value":{"error":{"code":400,"key":"inputDataInvalid","message":"Missing or invalid fields: name, description, location, location_notes, min_age, tax_id, include_fees, fees, fees_affiliate, currency, dates, categories, show_soldout, draft, meta, organization","details":{"invalid_fields":["name","description","location","location_notes","min_age","tax_id","include_fees","fees","fees_affiliate","currency","dates","categories","show_soldout","draft","meta","organization"]}},"result":null}}}}},"description":"&#9702; `noData`: No data was provided<br>&#9702; `invalidDates`: Dates are invalid<br>&#9702; `invalidCategories`: Categories are invalid<br>&#9702; `invalidFees`: Fee settings are invalid<br>&#9702; `updateOnCanceledEvent`: Event is canceled and cannot be updated<br>&#9702; `invalidCurrency`: Currency is invalid<br>&#9702; `inputDataInvalid`: Missing or invalid fields: name, description, location, location_notes, min_age, tax_id, include_fees, fees, fees_affiliate, currency, dates, categories, show_soldout, draft, meta, organization"},"404":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Event was not found","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":404},"key":{"type":"string","description":"Unique error key","example":"notFound"},"message":{"type":"string","description":"A description of the error","example":"Event was not found"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}},{"description":"Organization was not found","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":404},"key":{"type":"string","description":"Unique error key","example":"invalidOrganization"},"message":{"type":"string","description":"A description of the error","example":"Organization was not found"},"details":{"type":"object","description":"Additional error details (if available)"}}},"result":{"description":"No result","nullable":true,"default":null}}},{"description":"Location was not found","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":404},"key":{"type":"string","description":"Unique error key","example":"invalidLocation"},"message":{"type":"string","description":"A description of the error","example":"Location was not found"},"details":{"type":"object","description":"Additional error details (if available)"}}},"result":{"description":"No result","nullable":true,"default":null}}},{"description":"Tax identifier was not found or is invalid","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":404},"key":{"type":"string","description":"Unique error key","example":"invalidTaxId"},"message":{"type":"string","description":"A description of the error","example":"Tax identifier was not found or is invalid"},"details":{"type":"object","description":"Additional error details (if available)"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"notFound":{"summary":"notFound","value":{"error":{"code":404,"key":"notFound","message":"Event was not found","details":[]},"result":null}},"invalidOrganization":{"summary":"invalidOrganization","value":{"error":{"code":404,"key":"invalidOrganization","message":"Organization was not found","details":[]},"result":null}},"invalidLocation":{"summary":"invalidLocation","value":{"error":{"code":404,"key":"invalidLocation","message":"Location was not found","details":[]},"result":null}},"invalidTaxId":{"summary":"invalidTaxId","value":{"error":{"code":404,"key":"invalidTaxId","message":"Tax identifier was not found or is invalid","details":[]},"result":null}}}}},"description":"&#9702; `notFound`: Event was not found<br>&#9702; `invalidOrganization`: Organization was not found<br>&#9702; `invalidLocation`: Location was not found<br>&#9702; `invalidTaxId`: Tax identifier was not found or is invalid"},"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}},"delete":{"summary":"Delete an event by id","description":"This endpoint deletes an event by its id\n\n<h3>Required role permissions:<\/h3>`$permittedTo('events', 'delete', 'event')`","operationId":"events.event.delete","tags":["Events"],"security":[{"TokenAuth":[]}],"parameters":[{"$ref":"#\/components\/parameters\/id"}],"responses":{"200":{"description":"The deleted event","content":{"application\/json":{"schema":{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"$ref":"#\/components\/schemas\/Event"}}}}}},"404":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Event was not found","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":404},"key":{"type":"string","description":"Unique error key","example":"notFound"},"message":{"type":"string","description":"A description of the error","example":"Event was not found"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"notFound":{"summary":"notFound","value":{"error":{"code":404,"key":"notFound","message":"Event was not found","details":[]},"result":null}}}}},"description":"&#9702; `notFound`: Event was not found"},"403":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not allowed to delete an event that already has guests","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":403},"key":{"type":"string","description":"Unique error key","example":"forbidden"},"message":{"type":"string","description":"A description of the error","example":"You are not allowed to delete an event that already has guests"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"forbidden":{"summary":"forbidden","value":{"error":{"code":403,"key":"forbidden","message":"You are not allowed to delete an event that already has guests","details":[]},"result":null}}}}},"description":"&#9702; `forbidden`: You are not allowed to delete an event that already has guests"},"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}}},"\/v1\/events\/{id}\/stats":{"get":{"summary":"Get a specific event stats by id","description":"This endpoint returns specific event purchase stats by its unique id\n\n<h3>Required role permissions:<\/h3>`$permittedTo('events', 'get', 'event.stats')`","operationId":"events.event.stats.get","tags":["Events"],"security":[{"TokenAuth":[]}],"parameters":[{"$ref":"#\/components\/parameters\/id"},{"$ref":"#\/components\/parameters\/select"}],"responses":{"200":{"description":"The requested stats","content":{"application\/json":{"schema":{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"description":"The requested stats","properties":{"categories":{"type":"object","description":"The amount of tickets sold per category","additionalProperties":{"type":"integer","example":100}},"phases":{"type":"object","description":"The amount of tickets sold per phase","additionalProperties":{"type":"integer","example":100}},"dates":{"type":"object","description":"The amount of tickets sold per date","additionalProperties":{"type":"integer","example":100}}},"type":"object"}}}}}},"404":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Event was not found","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":404},"key":{"type":"string","description":"Unique error key","example":"notFound"},"message":{"type":"string","description":"A description of the error","example":"Event was not found"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"notFound":{"summary":"notFound","value":{"error":{"code":404,"key":"notFound","message":"Event was not found","details":[]},"result":null}}}}},"description":"&#9702; `notFound`: Event was not found"},"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}}},"\/v1\/events\/{id}\/copy":{"post":{"summary":"Copy an existing event","description":"This endpoint creates a copy of an existing event with a new ID. The copy will have reset fees, affiliate fees, and payout plan.\n\n<h3>Required role permissions:<\/h3>`$permittedTo('events', 'create', 'copy')`","operationId":"events.copy.create","tags":["Events"],"security":[{"TokenAuth":[]}],"parameters":[{"$ref":"#\/components\/parameters\/id"}],"responses":{"200":{"description":"The copied event","content":{"application\/json":{"schema":{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"$ref":"#\/components\/schemas\/Event"}}}}}},"404":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Event was not found","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":404},"key":{"type":"string","description":"Unique error key","example":"notFound"},"message":{"type":"string","description":"A description of the error","example":"Event was not found"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"notFound":{"summary":"notFound","value":{"error":{"code":404,"key":"notFound","message":"Event was not found","details":[]},"result":null}}}}},"description":"&#9702; `notFound`: Event was not found"},"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}}},"\/v1\/events\/{id}\/banner":{"post":{"summary":"Upload a new event banner","description":"This endpoint will update the banner of an event by id. Since the banner is required, there is no option to remove a previously uploaded banner.\n\nTo replace a banner, a new banner must be uploaded.\n\n<h3>Required role permissions:<\/h3>`$permittedTo('events', 'update', 'banner')`","operationId":"events.banner.update","tags":["Events"],"security":[{"TokenAuth":[]}],"parameters":[{"$ref":"#\/components\/parameters\/id"}],"requestBody":{"description":"An image file (any format) under 100 MB","required":true,"content":{"multipart\/form-data":{"schema":{"type":"object","properties":{"image":{"type":"string","format":"binary"}}}}}},"responses":{"200":{"description":"The updated event (with new logo)","content":{"application\/json":{"schema":{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"$ref":"#\/components\/schemas\/Event"}}}}}},"404":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Event was not found","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":404},"key":{"type":"string","description":"Unique error key","example":"notFound"},"message":{"type":"string","description":"A description of the error","example":"Event was not found"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"notFound":{"summary":"notFound","value":{"error":{"code":404,"key":"notFound","message":"Event was not found","details":[]},"result":null}}}}},"description":"&#9702; `notFound`: Event was not found"},"400":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Wrong image format or missing file","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"fileError"},"message":{"type":"string","description":"A description of the error","example":"Wrong image format or missing file"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"fileError":{"summary":"fileError","value":{"error":{"code":400,"key":"fileError","message":"Wrong image format or missing file","details":[]},"result":null}}}}},"description":"&#9702; `fileError`: Wrong image format or missing file"},"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}}},"\/v1\/events\/{id}\/publish":{"put":{"summary":"Publish an event by id","description":"This endpoint publishes an event by its id. If no publish date is provided, the event will be published immediately.\n\n`Note: All dates must be provided in UTC timezone.`\n\n<h3>Required role permissions:<\/h3>`$permittedTo('events', 'update', 'publish')`","operationId":"events.publish.update","tags":["Events"],"security":[{"TokenAuth":[]}],"parameters":[{"$ref":"#\/components\/parameters\/id"}],"requestBody":{"description":"Publish date details","required":false,"content":{"application\/json":{"schema":{"properties":{"publish_date":{"description":"ISO 8601 date of the publish date (if planned for the future)","type":"string","format":"date-time"}}}}}},"responses":{"200":{"description":"The published event","content":{"application\/json":{"schema":{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"$ref":"#\/components\/schemas\/Event"}}}}}},"404":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Event was not found","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":404},"key":{"type":"string","description":"Unique error key","example":"notFound"},"message":{"type":"string","description":"A description of the error","example":"Event was not found"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"notFound":{"summary":"notFound","value":{"error":{"code":404,"key":"notFound","message":"Event was not found","details":[]},"result":null}}}}},"description":"&#9702; `notFound`: Event was not found"},"400":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Publish date is invalid","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"invalidPublishDate"},"message":{"type":"string","description":"A description of the error","example":"Publish date is invalid"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}},{"description":"Event could not be published because some required details are missing","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"invalidEventDetails"},"message":{"type":"string","description":"A description of the error","example":"Event could not be published because some required details are missing"},"details":{"type":"object","description":"Additional error details (if available)"}}},"result":{"description":"No result","nullable":true,"default":null}}},{"description":"Missing or invalid fields: publish_date","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"inputDataInvalid"},"message":{"type":"string","description":"A description of the error","example":"Missing or invalid fields: publish_date"},"details":{"type":"object","description":"Additional error details (if available)","properties":{"invalid_fields":{"type":"array","description":"The missing or invalid fields","example":["publish_date"],"items":{"type":"string","enum":["publish_date"]}}}}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"invalidPublishDate":{"summary":"invalidPublishDate","value":{"error":{"code":400,"key":"invalidPublishDate","message":"Publish date is invalid","details":[]},"result":null}},"invalidEventDetails":{"summary":"invalidEventDetails","value":{"error":{"code":400,"key":"invalidEventDetails","message":"Event could not be published because some required details are missing","details":[]},"result":null}},"inputDataInvalid":{"summary":"inputDataInvalid","value":{"error":{"code":400,"key":"inputDataInvalid","message":"Missing or invalid fields: publish_date","details":{"invalid_fields":["publish_date"]}},"result":null}}}}},"description":"&#9702; `invalidPublishDate`: Publish date is invalid<br>&#9702; `invalidEventDetails`: Event could not be published because some required details are missing<br>&#9702; `inputDataInvalid`: Missing or invalid fields: publish_date"},"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}}},"\/v1\/events\/{id}\/highlight":{"put":{"summary":"Highlight an event by id","description":"This endpoint highlights an event by its id. If no highlight position is set, the event will be highlighted at first position\n\n<h3>Required role permissions:<\/h3>`$permittedTo('events', 'update', 'highlight')`","operationId":"events.highlight.update","tags":["Events"],"security":[{"TokenAuth":[]}],"parameters":[{"$ref":"#\/components\/parameters\/id"}],"requestBody":{"description":"Highlight position","required":false,"content":{"application\/json":{"schema":{"properties":{"position":{"type":"integer","description":"The position where the event should be highlighted (0-2)","default":0}}}}}},"responses":{"200":{"description":"The highlighted event","content":{"application\/json":{"schema":{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"$ref":"#\/components\/schemas\/Event"}}}}}},"404":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Event was not found","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":404},"key":{"type":"string","description":"Unique error key","example":"notFound"},"message":{"type":"string","description":"A description of the error","example":"Event was not found"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"notFound":{"summary":"notFound","value":{"error":{"code":404,"key":"notFound","message":"Event was not found","details":[]},"result":null}}}}},"description":"&#9702; `notFound`: Event was not found"},"400":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Event is not active","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"invalidEvent"},"message":{"type":"string","description":"A description of the error","example":"Event is not active"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}},{"description":"You can only highlight up to 3 events","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"tooManyHighlightedEvents"},"message":{"type":"string","description":"A description of the error","example":"You can only highlight up to 3 events"},"details":{"type":"object","description":"Additional error details (if available)"}}},"result":{"description":"No result","nullable":true,"default":null}}},{"description":"Missing or invalid fields: position","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"inputDataInvalid"},"message":{"type":"string","description":"A description of the error","example":"Missing or invalid fields: position"},"details":{"type":"object","description":"Additional error details (if available)","properties":{"invalid_fields":{"type":"array","description":"The missing or invalid fields","example":["position"],"items":{"type":"string","enum":["position"]}}}}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"invalidEvent":{"summary":"invalidEvent","value":{"error":{"code":400,"key":"invalidEvent","message":"Event is not active","details":[]},"result":null}},"tooManyHighlightedEvents":{"summary":"tooManyHighlightedEvents","value":{"error":{"code":400,"key":"tooManyHighlightedEvents","message":"You can only highlight up to 3 events","details":[]},"result":null}},"inputDataInvalid":{"summary":"inputDataInvalid","value":{"error":{"code":400,"key":"inputDataInvalid","message":"Missing or invalid fields: position","details":{"invalid_fields":["position"]}},"result":null}}}}},"description":"&#9702; `invalidEvent`: Event is not active<br>&#9702; `tooManyHighlightedEvents`: You can only highlight up to 3 events<br>&#9702; `inputDataInvalid`: Missing or invalid fields: position"},"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}},"delete":{"summary":"Unhighlight an event by id","description":"This endpoint removes an event from the highlighted events by its id\n\n<h3>Required role permissions:<\/h3>`$permittedTo('events', 'delete', 'highlight')`","operationId":"events.highlight.delete","tags":["Events"],"security":[{"TokenAuth":[]}],"parameters":[{"$ref":"#\/components\/parameters\/id"}],"responses":{"200":{"description":"The unhighlighted event","content":{"application\/json":{"schema":{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"$ref":"#\/components\/schemas\/Event"}}}}}},"404":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Event was not found","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":404},"key":{"type":"string","description":"Unique error key","example":"notFound"},"message":{"type":"string","description":"A description of the error","example":"Event was not found"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"notFound":{"summary":"notFound","value":{"error":{"code":404,"key":"notFound","message":"Event was not found","details":[]},"result":null}}}}},"description":"&#9702; `notFound`: Event was not found"},"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}}},"\/v1\/events\/{id}\/cancel":{"patch":{"summary":"Cancel an event by id","description":"This endpoint cancels an event by its id. All tickets will be refunded and guests will be notified.\n\nThe event itself will not be deleted, but marked as inactive.\n\n<h3>Required role permissions:<\/h3>`$permittedTo('events', 'update', 'cancel')`","operationId":"events.cancel.update","tags":["Events"],"security":[{"TokenAuth":[]}],"parameters":[{"$ref":"#\/components\/parameters\/id"}],"requestBody":{"description":"Refund information","required":true,"content":{"application\/json":{"schema":{"required":["reason","notes"],"properties":{"reason":{"type":"string","description":"Reason for the refund","enum":["duplicate","fraudulent","requested_by_customer"]},"notes":{"type":"string","description":"Notes for the refund"}}}}}},"responses":{"200":{"description":"The canceled event","content":{"application\/json":{"schema":{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"$ref":"#\/components\/schemas\/Event"}}}}}},"404":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Event was not found","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":404},"key":{"type":"string","description":"Unique error key","example":"notFound"},"message":{"type":"string","description":"A description of the error","example":"Event was not found"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"notFound":{"summary":"notFound","value":{"error":{"code":404,"key":"notFound","message":"Event was not found","details":[]},"result":null}}}}},"description":"&#9702; `notFound`: Event was not found"},"400":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not allowed to cancel an event that already has prepayments or is in the past","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"forbidden"},"message":{"type":"string","description":"A description of the error","example":"You are not allowed to cancel an event that already has prepayments or is in the past"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}},{"description":"Missing or invalid fields: reason, notes","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"inputDataInvalid"},"message":{"type":"string","description":"A description of the error","example":"Missing or invalid fields: reason, notes"},"details":{"type":"object","description":"Additional error details (if available)","properties":{"invalid_fields":{"type":"array","description":"The missing or invalid fields","example":["reason","notes"],"items":{"type":"string","enum":["reason","notes"]}}}}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"forbidden":{"summary":"forbidden","value":{"error":{"code":400,"key":"forbidden","message":"You are not allowed to cancel an event that already has prepayments or is in the past","details":[]},"result":null}},"inputDataInvalid":{"summary":"inputDataInvalid","value":{"error":{"code":400,"key":"inputDataInvalid","message":"Missing or invalid fields: reason, notes","details":{"invalid_fields":["reason","notes"]}},"result":null}}}}},"description":"&#9702; `forbidden`: You are not allowed to cancel an event that already has prepayments or is in the past<br>&#9702; `inputDataInvalid`: Missing or invalid fields: reason, notes"},"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}}},"\/v1\/events\/{id}\/payoutable":{"get":{"summary":"Get payoutable values","description":"This endpoint returns the payoutable values for a specific event\n\n<h3>Required role permissions:<\/h3>`$permittedTo('events', 'get', 'payoutable')`","operationId":"events.payoutable.get","tags":["Events"],"security":[{"TokenAuth":[]}],"parameters":[{"$ref":"#\/components\/parameters\/id"}],"responses":{"200":{"description":"The payoutable values for the event","content":{"application\/json":{"schema":{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"description":"The payoutable values for the event","properties":{"currency":{"type":"string","description":"The currency of the event","example":"EUR","enum":["EUR"]},"total":{"type":"number","description":"The total amount of the event (minus fees and insurances)","example":100,"format":"float"},"reserved":{"type":"number","description":"The reserved amount (25% of total)","example":25,"format":"float"},"prepaid":{"type":"number","description":"The already prepaid amount","example":50,"format":"float"},"available":{"type":"number","description":"The available amount for payout (total - reserved - prepaid)","example":25,"format":"float"}},"type":"object"}}}}}},"404":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Event was not found","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":404},"key":{"type":"string","description":"Unique error key","example":"notFound"},"message":{"type":"string","description":"A description of the error","example":"Event was not found"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"notFound":{"summary":"notFound","value":{"error":{"code":404,"key":"notFound","message":"Event was not found","details":[]},"result":null}}}}},"description":"&#9702; `notFound`: Event was not found"},"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}}},"\/v1\/events\/{id}\/payout":{"post":{"summary":"Create a prepayment payout","description":"This endpoint creates a prepayment payout for an event\n\n<h3>Required role permissions:<\/h3>`$permittedTo('events', 'create', 'payout')`","operationId":"events.payout.create","tags":["Events"],"security":[{"TokenAuth":[]}],"parameters":[{"$ref":"#\/components\/parameters\/id"}],"requestBody":{"description":"The payout amount (max. available amount)","required":false,"content":{"application\/json":{"schema":{"properties":{"amount":{"type":"number","description":"The amount to be paid out (must be less than or equal to the available amount)","example":"25.00","format":"float"}}}}}},"responses":{"200":{"description":"The payout object","content":{"application\/json":{"schema":{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"$ref":"#\/components\/schemas\/Payout"}}}}}},"404":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Event was not found","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":404},"key":{"type":"string","description":"Unique error key","example":"notFound"},"message":{"type":"string","description":"A description of the error","example":"Event was not found"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"notFound":{"summary":"notFound","value":{"error":{"code":404,"key":"notFound","message":"Event was not found","details":[]},"result":null}}}}},"description":"&#9702; `notFound`: Event was not found"},"400":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"The amount must be greater than 0 and less than or equal to the available amount","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"invalidAmount"},"message":{"type":"string","description":"A description of the error","example":"The amount must be greater than 0 and less than or equal to the available amount"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}},{"description":"You are not allowed to create a payout for an event that is already fully paid out or canceled","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"eventNotPayoutable"},"message":{"type":"string","description":"A description of the error","example":"You are not allowed to create a payout for an event that is already fully paid out or canceled"},"details":{"type":"object","description":"Additional error details (if available)"}}},"result":{"description":"No result","nullable":true,"default":null}}},{"description":"You are not allowed to create a payout for an event of an inactive organization","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"organizationNotPayoutable"},"message":{"type":"string","description":"A description of the error","example":"You are not allowed to create a payout for an event of an inactive organization"},"details":{"type":"object","description":"Additional error details (if available)"}}},"result":{"description":"No result","nullable":true,"default":null}}},{"description":"Missing or invalid fields: amount","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"inputDataInvalid"},"message":{"type":"string","description":"A description of the error","example":"Missing or invalid fields: amount"},"details":{"type":"object","description":"Additional error details (if available)","properties":{"invalid_fields":{"type":"array","description":"The missing or invalid fields","example":["amount"],"items":{"type":"string","enum":["amount"]}}}}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"invalidAmount":{"summary":"invalidAmount","value":{"error":{"code":400,"key":"invalidAmount","message":"The amount must be greater than 0 and less than or equal to the available amount","details":[]},"result":null}},"eventNotPayoutable":{"summary":"eventNotPayoutable","value":{"error":{"code":400,"key":"eventNotPayoutable","message":"You are not allowed to create a payout for an event that is already fully paid out or canceled","details":[]},"result":null}},"organizationNotPayoutable":{"summary":"organizationNotPayoutable","value":{"error":{"code":400,"key":"organizationNotPayoutable","message":"You are not allowed to create a payout for an event of an inactive organization","details":[]},"result":null}},"inputDataInvalid":{"summary":"inputDataInvalid","value":{"error":{"code":400,"key":"inputDataInvalid","message":"Missing or invalid fields: amount","details":{"invalid_fields":["amount"]}},"result":null}}}}},"description":"&#9702; `invalidAmount`: The amount must be greater than 0 and less than or equal to the available amount<br>&#9702; `eventNotPayoutable`: You are not allowed to create a payout for an event that is already fully paid out or canceled<br>&#9702; `organizationNotPayoutable`: You are not allowed to create a payout for an event of an inactive organization<br>&#9702; `inputDataInvalid`: Missing or invalid fields: amount"},"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}}},"\/v1\/users":{"get":{"summary":"Get all users","description":"This method returns all users from all organizations or the current organization (depending on the access level)\n\n<h3>Required role permissions:<\/h3>`$permittedTo('users', 'get', 'all')`","operationId":"users.all.get","tags":["Users"],"security":[{"TokenAuth":[]}],"parameters":[{"$ref":"#\/components\/parameters\/page"},{"$ref":"#\/components\/parameters\/limit"},{"$ref":"#\/components\/parameters\/select"},{"$ref":"#\/components\/parameters\/orderBy"},{"$ref":"#\/components\/parameters\/filterBy"}],"responses":{"200":{"description":"All users","content":{"application\/json":{"schema":{"oneOf":[{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"description":"All users","type":"object","additionalProperties":{"$ref":"#\/components\/schemas\/User"}}},"description":"All users"},{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"description":"Paginated result","type":"object","properties":{"objects":{"description":"All users","type":"object","additionalProperties":{"$ref":"#\/components\/schemas\/User"}},"pagination":{"type":"object","description":"Pagination information","properties":{"page":{"type":"integer","description":"Current page","example":1},"pages":{"type":"integer","description":"Total pages","example":10},"objects":{"type":"integer","description":"Total number of objects","example":100}}}}}},"description":"All users (paginated if `limit` is set in query params)"}]}}}},"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}},"post":{"summary":"Register a new user","description":"This method creates a new user and a new organization","operationId":"users.create.create","tags":["Users"],"requestBody":{"description":"The user information to create","required":true,"content":{"application\/json":{"schema":{"required":["first_name","last_name","email","password"],"properties":{"email":{"description":"Email of the user","type":"string","format":"email"},"password":{"description":"Password of the user","type":"string","nullable":true,"format":"password"},"first_name":{"description":"First name of the user","type":"string"},"last_name":{"description":"Last name of the user","type":"string"},"language":{"description":"Language code ISO 639-1 of the user","type":"string","minLength":2,"maxLength":2,"default":"de"},"newsletter":{"description":"Indicates if the user subscribed to the newsletter","type":"boolean","default":false},"affiliate_id":{"type":"string","description":"The affiliate source","nullable":true},"device_id":{"type":"string","description":"The unique device identifier of the user","nullable":true}}}}}},"responses":{"200":{"description":"The created user","content":{"application\/json":{"schema":{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"$ref":"#\/components\/schemas\/User"}}}}}},"400":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Disposable email addresses cannot be used","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"disposableEmail"},"message":{"type":"string","description":"A description of the error","example":"Disposable email addresses cannot be used"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}},{"description":"The email address is not reachable","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"invalidEmail"},"message":{"type":"string","description":"A description of the error","example":"The email address is not reachable"},"details":{"type":"object","description":"Additional error details (if available)"}}},"result":{"description":"No result","nullable":true,"default":null}}},{"description":"This email address is already used. Please use another one","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"emailAlreadyUsed"},"message":{"type":"string","description":"A description of the error","example":"This email address is already used. Please use another one"},"details":{"type":"object","description":"Additional error details (if available)"}}},"result":{"description":"No result","nullable":true,"default":null}}},{"description":"The password is not strong enough. A password must be at least 6 characters long and contain at least one uppercase letter, one lowercase letter, one number and one special character.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"passwordTooWeak"},"message":{"type":"string","description":"A description of the error","example":"The password is not strong enough. A password must be at least 6 characters long and contain at least one uppercase letter, one lowercase letter, one number and one special character."},"details":{"type":"object","description":"Additional error details (if available)"}}},"result":{"description":"No result","nullable":true,"default":null}}},{"description":"Missing or invalid fields: first_name, last_name, email, password","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"inputDataInvalid"},"message":{"type":"string","description":"A description of the error","example":"Missing or invalid fields: first_name, last_name, email, password"},"details":{"type":"object","description":"Additional error details (if available)","properties":{"invalid_fields":{"type":"array","description":"The missing or invalid fields","example":["first_name","last_name","email","password"],"items":{"type":"string","enum":["first_name","last_name","email","password"]}}}}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"disposableEmail":{"summary":"disposableEmail","value":{"error":{"code":400,"key":"disposableEmail","message":"Disposable email addresses cannot be used","details":[]},"result":null}},"invalidEmail":{"summary":"invalidEmail","value":{"error":{"code":400,"key":"invalidEmail","message":"The email address is not reachable","details":[]},"result":null}},"emailAlreadyUsed":{"summary":"emailAlreadyUsed","value":{"error":{"code":400,"key":"emailAlreadyUsed","message":"This email address is already used. Please use another one","details":[]},"result":null}},"passwordTooWeak":{"summary":"passwordTooWeak","value":{"error":{"code":400,"key":"passwordTooWeak","message":"The password is not strong enough. A password must be at least 6 characters long and contain at least one uppercase letter, one lowercase letter, one number and one special character.","details":[]},"result":null}},"inputDataInvalid":{"summary":"inputDataInvalid","value":{"error":{"code":400,"key":"inputDataInvalid","message":"Missing or invalid fields: first_name, last_name, email, password","details":{"invalid_fields":["first_name","last_name","email","password"]}},"result":null}}}}},"description":"&#9702; `disposableEmail`: Disposable email addresses cannot be used<br>&#9702; `invalidEmail`: The email address is not reachable<br>&#9702; `emailAlreadyUsed`: This email address is already used. Please use another one<br>&#9702; `passwordTooWeak`: The password is not strong enough. A password must be at least 6 characters long and contain at least one uppercase letter, one lowercase letter, one number and one special character.<br>&#9702; `inputDataInvalid`: Missing or invalid fields: first_name, last_name, email, password"},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}}},"\/v1\/users\/{id}":{"get":{"summary":"Get a specific user by id","description":"This method returns a specific user by id\n\n<h3>Required role permissions:<\/h3>`$permittedTo('users', 'get', 'user')`","operationId":"users.user.get","tags":["Users"],"security":[{"TokenAuth":[]}],"parameters":[{"$ref":"#\/components\/parameters\/id"},{"$ref":"#\/components\/parameters\/select"},{"$ref":"#\/components\/parameters\/orderBy"}],"responses":{"200":{"description":"The requested user","content":{"application\/json":{"schema":{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"$ref":"#\/components\/schemas\/User"}}}}}},"404":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"User was not found","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":404},"key":{"type":"string","description":"Unique error key","example":"notFound"},"message":{"type":"string","description":"A description of the error","example":"User was not found"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"notFound":{"summary":"notFound","value":{"error":{"code":404,"key":"notFound","message":"User was not found","details":[]},"result":null}}}}},"description":"&#9702; `notFound`: User was not found"},"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}},"patch":{"summary":"Update a specific user by id","description":"This endpoint will update a specific user by id.\n\n<h3>Required role permissions:<\/h3>`$permittedTo('users', 'update', 'user')`","operationId":"users.user.update","tags":["Users"],"security":[{"TokenAuth":[]}],"parameters":[{"$ref":"#\/components\/parameters\/id"}],"requestBody":{"description":"The user information to update","required":true,"content":{"application\/json":{"schema":{"properties":{"organizations":{"description":"One or many organizations that the user is part of and the role of the user in the organization","type":"object","additionalProperties":{"description":"The role of the user in the organization","type":"string","minLength":12,"maxLength":12},"example":{"{{idOfOrganization}}":"{{idOfRole}}","{{otherIdOfOrganization}}":"{{otherIdOfRole}}","...":"..."}},"email":{"description":"Email of the user","type":"string","format":"email"},"password":{"description":"Password of the user","type":"string","nullable":true,"format":"password"},"first_name":{"description":"First name of the user","type":"string"},"last_name":{"description":"Last name of the user","type":"string"},"language":{"description":"Language code ISO 639-1 of the user","type":"string","minLength":2,"maxLength":2,"default":"de"}}}}}},"responses":{"200":{"description":"The updated user","content":{"application\/json":{"schema":{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"$ref":"#\/components\/schemas\/User"}}}}}},"404":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"User was not found","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":404},"key":{"type":"string","description":"Unique error key","example":"notFound"},"message":{"type":"string","description":"A description of the error","example":"User was not found"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"notFound":{"summary":"notFound","value":{"error":{"code":404,"key":"notFound","message":"User was not found","details":[]},"result":null}}}}},"description":"&#9702; `notFound`: User was not found"},"403":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not allowed to update your own role","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":403},"key":{"type":"string","description":"Unique error key","example":"cannotUpdateOwnRole"},"message":{"type":"string","description":"A description of the error","example":"You are not allowed to update your own role"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}},{"description":"You are not allowed to update this user","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":403},"key":{"type":"string","description":"Unique error key","example":"noPermission"},"message":{"type":"string","description":"A description of the error","example":"You are not allowed to update this user"},"details":{"type":"object","description":"Additional error details (if available)"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"cannotUpdateOwnRole":{"summary":"cannotUpdateOwnRole","value":{"error":{"code":403,"key":"cannotUpdateOwnRole","message":"You are not allowed to update your own role","details":[]},"result":null}},"noPermission":{"summary":"noPermission","value":{"error":{"code":403,"key":"noPermission","message":"You are not allowed to update this user","details":[]},"result":null}}}}},"description":"&#9702; `cannotUpdateOwnRole`: You are not allowed to update your own role<br>&#9702; `noPermission`: You are not allowed to update this user"},"400":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"The organization or role is invalid","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"invalidOrganizationOrRole"},"message":{"type":"string","description":"A description of the error","example":"The organization or role is invalid"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}},{"description":"This email address is already used. Please use another one","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"emailAlreadyUsed"},"message":{"type":"string","description":"A description of the error","example":"This email address is already used. Please use another one"},"details":{"type":"object","description":"Additional error details (if available)"}}},"result":{"description":"No result","nullable":true,"default":null}}},{"description":"Disposable email addresses cannot be used","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"disposableEmail"},"message":{"type":"string","description":"A description of the error","example":"Disposable email addresses cannot be used"},"details":{"type":"object","description":"Additional error details (if available)"}}},"result":{"description":"No result","nullable":true,"default":null}}},{"description":"The email address is not reachable","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"invalidEmail"},"message":{"type":"string","description":"A description of the error","example":"The email address is not reachable"},"details":{"type":"object","description":"Additional error details (if available)"}}},"result":{"description":"No result","nullable":true,"default":null}}},{"description":"The password is not strong enough. A password must be at least 6 characters long and contain at least one uppercase letter, one lowercase letter, one number and one special character.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"passwordTooWeak"},"message":{"type":"string","description":"A description of the error","example":"The password is not strong enough. A password must be at least 6 characters long and contain at least one uppercase letter, one lowercase letter, one number and one special character."},"details":{"type":"object","description":"Additional error details (if available)"}}},"result":{"description":"No result","nullable":true,"default":null}}},{"description":"No data was provided","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"noData"},"message":{"type":"string","description":"A description of the error","example":"No data was provided"},"details":{"type":"object","description":"Additional error details (if available)"}}},"result":{"description":"No result","nullable":true,"default":null}}},{"description":"Missing or invalid fields: organizations, email, password, first_name, last_name, language","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"inputDataInvalid"},"message":{"type":"string","description":"A description of the error","example":"Missing or invalid fields: organizations, email, password, first_name, last_name, language"},"details":{"type":"object","description":"Additional error details (if available)","properties":{"invalid_fields":{"type":"array","description":"The missing or invalid fields","example":["organizations","email","password","first_name","last_name","language"],"items":{"type":"string","enum":["organizations","email","password","first_name","last_name","language"]}}}}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"invalidOrganizationOrRole":{"summary":"invalidOrganizationOrRole","value":{"error":{"code":400,"key":"invalidOrganizationOrRole","message":"The organization or role is invalid","details":[]},"result":null}},"emailAlreadyUsed":{"summary":"emailAlreadyUsed","value":{"error":{"code":400,"key":"emailAlreadyUsed","message":"This email address is already used. Please use another one","details":[]},"result":null}},"disposableEmail":{"summary":"disposableEmail","value":{"error":{"code":400,"key":"disposableEmail","message":"Disposable email addresses cannot be used","details":[]},"result":null}},"invalidEmail":{"summary":"invalidEmail","value":{"error":{"code":400,"key":"invalidEmail","message":"The email address is not reachable","details":[]},"result":null}},"passwordTooWeak":{"summary":"passwordTooWeak","value":{"error":{"code":400,"key":"passwordTooWeak","message":"The password is not strong enough. A password must be at least 6 characters long and contain at least one uppercase letter, one lowercase letter, one number and one special character.","details":[]},"result":null}},"noData":{"summary":"noData","value":{"error":{"code":400,"key":"noData","message":"No data was provided","details":[]},"result":null}},"inputDataInvalid":{"summary":"inputDataInvalid","value":{"error":{"code":400,"key":"inputDataInvalid","message":"Missing or invalid fields: organizations, email, password, first_name, last_name, language","details":{"invalid_fields":["organizations","email","password","first_name","last_name","language"]}},"result":null}}}}},"description":"&#9702; `invalidOrganizationOrRole`: The organization or role is invalid<br>&#9702; `emailAlreadyUsed`: This email address is already used. Please use another one<br>&#9702; `disposableEmail`: Disposable email addresses cannot be used<br>&#9702; `invalidEmail`: The email address is not reachable<br>&#9702; `passwordTooWeak`: The password is not strong enough. A password must be at least 6 characters long and contain at least one uppercase letter, one lowercase letter, one number and one special character.<br>&#9702; `noData`: No data was provided<br>&#9702; `inputDataInvalid`: Missing or invalid fields: organizations, email, password, first_name, last_name, language"},"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}},"delete":{"summary":"Delete a user","description":"This endpoints deletes a user from the current organization. If the user is part of multiple organizations, the user will only be removed from the current organization.\n\n<h3>Required role permissions:<\/h3>`$permittedTo('users', 'delete', 'user')`","operationId":"users.user.delete","tags":["Users"],"security":[{"TokenAuth":[]}],"parameters":[{"$ref":"#\/components\/parameters\/id"}],"responses":{"200":{"description":"The deleted user","content":{"application\/json":{"schema":{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"$ref":"#\/components\/schemas\/User"}}}}}},"404":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"User was not found","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":404},"key":{"type":"string","description":"Unique error key","example":"notFound"},"message":{"type":"string","description":"A description of the error","example":"User was not found"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"notFound":{"summary":"notFound","value":{"error":{"code":404,"key":"notFound","message":"User was not found","details":[]},"result":null}}}}},"description":"&#9702; `notFound`: User was not found"},"403":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not allowed to delete this user","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":403},"key":{"type":"string","description":"Unique error key","example":"noPermission"},"message":{"type":"string","description":"A description of the error","example":"You are not allowed to delete this user"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"noPermission":{"summary":"noPermission","value":{"error":{"code":403,"key":"noPermission","message":"You are not allowed to delete this user","details":[]},"result":null}}}}},"description":"&#9702; `noPermission`: You are not allowed to delete this user"},"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}}},"\/v1\/users\/activation_token\/{token}":{"get":{"summary":"Validate activation token","description":"This method validates an activation token and returns several information about the token","operationId":"users.activation_token.get","tags":["Users"],"parameters":[{"in":"path","name":"token","schema":{"type":"string"},"required":true,"description":"The activation token came from an email"}],"responses":{"200":{"description":"The requested token information","content":{"application\/json":{"schema":{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"description":"The requested token information","properties":{"mode":{"type":"integer","description":"The mode of the token. 0 = Normal registration, 1 = Invitation: Needs additional information and password","enum":[0,1]},"user":{"type":"object","description":"The user information","$ref":"#\/components\/schemas\/User"},"organization":{"type":"string","description":"The organization name (if user was invited)","nullable":true}},"type":"object"}}}}}},"404":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"The token is invalid or has expired","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":404},"key":{"type":"string","description":"Unique error key","example":"notFound"},"message":{"type":"string","description":"A description of the error","example":"The token is invalid or has expired"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"notFound":{"summary":"notFound","value":{"error":{"code":404,"key":"notFound","message":"The token is invalid or has expired","details":[]},"result":null}}}}},"description":"&#9702; `notFound`: The token is invalid or has expired"},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}}},"\/v1\/users\/activate":{"patch":{"summary":"Activate a user by an activation token","description":"This endpoint activates a user using the activation token that was sent to the user via email. If the user was created by an invitation, this endpoint will also require a password and the first and last name.","operationId":"users.create.update","tags":["Users"],"requestBody":{"description":"Activation token","required":true,"content":{"application\/json":{"schema":{"required":["token"],"properties":{"token":{"type":"string","description":"The token that was sent to the user via email","example":"abcdefghijk1234567890"},"first_name":{"type":"string","description":"The first name of the user (if required \/ activation token came from an invitation)","format":"string"},"last_name":{"type":"string","description":"The last name of the user (if required \/ activation token came from an invitation)"},"password":{"type":"string","description":"The password of the user (if required \/ activation token came from an invitation)","format":"password"},"newsletter":{"type":"boolean","description":"Indicates if the user wants to receive the newsletter","format":"boolean"}}}}}},"responses":{"200":{"description":"The activated user","content":{"application\/json":{"schema":{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"$ref":"#\/components\/schemas\/User"}}}}}},"403":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Please provide a password and the first and last name","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":403},"key":{"type":"string","description":"Unique error key","example":"additionalInformationRequired"},"message":{"type":"string","description":"A description of the error","example":"Please provide a password and the first and last name"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"additionalInformationRequired":{"summary":"additionalInformationRequired","value":{"error":{"code":403,"key":"additionalInformationRequired","message":"Please provide a password and the first and last name","details":[]},"result":null}}}}},"description":"&#9702; `additionalInformationRequired`: Please provide a password and the first and last name"},"400":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"The password is not strong enough. A password must be at least 6 characters long and contain at least one uppercase letter, one lowercase letter, one number and one special character.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"passwordTooWeak"},"message":{"type":"string","description":"A description of the error","example":"The password is not strong enough. A password must be at least 6 characters long and contain at least one uppercase letter, one lowercase letter, one number and one special character."},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}},{"description":"The token is invalid or has expired","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"invalidToken"},"message":{"type":"string","description":"A description of the error","example":"The token is invalid or has expired"},"details":{"type":"object","description":"Additional error details (if available)"}}},"result":{"description":"No result","nullable":true,"default":null}}},{"description":"Missing or invalid fields: token","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"inputDataInvalid"},"message":{"type":"string","description":"A description of the error","example":"Missing or invalid fields: token"},"details":{"type":"object","description":"Additional error details (if available)","properties":{"invalid_fields":{"type":"array","description":"The missing or invalid fields","example":["token"],"items":{"type":"string","enum":["token"]}}}}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"passwordTooWeak":{"summary":"passwordTooWeak","value":{"error":{"code":400,"key":"passwordTooWeak","message":"The password is not strong enough. A password must be at least 6 characters long and contain at least one uppercase letter, one lowercase letter, one number and one special character.","details":[]},"result":null}},"invalidToken":{"summary":"invalidToken","value":{"error":{"code":400,"key":"invalidToken","message":"The token is invalid or has expired","details":[]},"result":null}},"inputDataInvalid":{"summary":"inputDataInvalid","value":{"error":{"code":400,"key":"inputDataInvalid","message":"Missing or invalid fields: token","details":{"invalid_fields":["token"]}},"result":null}}}}},"description":"&#9702; `passwordTooWeak`: The password is not strong enough. A password must be at least 6 characters long and contain at least one uppercase letter, one lowercase letter, one number and one special character.<br>&#9702; `invalidToken`: The token is invalid or has expired<br>&#9702; `inputDataInvalid`: Missing or invalid fields: token"},"404":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"User was not found","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":404},"key":{"type":"string","description":"Unique error key","example":"notFound"},"message":{"type":"string","description":"A description of the error","example":"User was not found"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"notFound":{"summary":"notFound","value":{"error":{"code":404,"key":"notFound","message":"User was not found","details":[]},"result":null}}}}},"description":"&#9702; `notFound`: User was not found"},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}}},"\/v1\/users\/find":{"post":{"summary":"Find a user by email","description":"This method returns a specific user by email, if found.\n\nPlease note that this endpoint is not meant to be used to search for users. For that, use the ``\/search`` endpoint.","operationId":"users.find.get","tags":["Users"],"security":[{"TokenAuth":[]}],"requestBody":{"description":"Email address of the specific user to find","required":true,"content":{"application\/json":{"schema":{"required":["email"],"properties":{"email":{"type":"string","description":"The email address of the user to find","format":"email"}}}}}},"responses":{"200":{"description":"The requested user information if found","content":{"application\/json":{"schema":{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"description":"The requested user information if found","properties":{"id":{"type":"string","description":"Unique User ID","minLength":12,"maxLength":12},"first_name":{"type":"string","description":"First name of the user"},"last_name":{"type":"string","description":"Last name of the user"},"avatar":{"type":"string","description":"Avatar file identifier of the user, if any","nullable":true}},"type":"object"}}}}}},"404":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"User was not found","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":404},"key":{"type":"string","description":"Unique error key","example":"notFound"},"message":{"type":"string","description":"A description of the error","example":"User was not found"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"notFound":{"summary":"notFound","value":{"error":{"code":404,"key":"notFound","message":"User was not found","details":[]},"result":null}}}}},"description":"&#9702; `notFound`: User was not found"},"400":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Missing or invalid fields: email","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"inputDataInvalid"},"message":{"type":"string","description":"A description of the error","example":"Missing or invalid fields: email"},"details":{"type":"object","description":"Additional error details","properties":{"invalid_fields":{"type":"array","description":"The missing or invalid fields","example":["email"],"items":{"type":"string","enum":["email"]}}}}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"inputDataInvalid":{"summary":"inputDataInvalid","value":{"error":{"code":400,"key":"inputDataInvalid","message":"Missing or invalid fields: email","details":{"invalid_fields":["email"]}},"result":null}}}}},"description":"&#9702; `inputDataInvalid`: Missing or invalid fields: email"},"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}}},"\/v1\/users\/invite":{"post":{"summary":"Invite a user or staff member","description":"This endpoint invites a user to an organization or as a NIGHTOWL\u00ae staff member. The user will get an invitation email with a link to accept the invitation and the terms of service if the user is not already registered.\n\n<h3>Required role permissions:<\/h3>`$permittedTo('users', 'create', 'invite')`","operationId":"users.invite.create","tags":["Users"],"security":[{"TokenAuth":[]}],"requestBody":{"description":"General user information","required":true,"content":{"application\/json":{"schema":{"required":["email","first_name","last_name"],"properties":{"email":{"type":"string","description":"The email address of the user to invite","format":"email"},"first_name":{"type":"string","description":"The first name of the user","format":"string"},"last_name":{"type":"string","description":"The last name of the user"},"organizations":{"type":"object","description":"One or many organizations that the user should be part of and the role of the user. This property is only required if the user is not invited as a NIGHTOWL\u00ae staff member","additionalProperties":{"description":"The role of the user in the organization","type":"string","minLength":12,"maxLength":12},"example":{"{{idOfOrganization}}":"{{idOfRole}}","{{otherIdOfOrganization}}":"{{otherIdOfRole}}","...":"..."}},"language":{"type":"string","description":"Language code ISO 639-1 of the user","minLength":2,"maxLength":2,"default":"de"}}}}}},"responses":{"200":{"description":"The invited user","content":{"application\/json":{"schema":{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"$ref":"#\/components\/schemas\/User"}}}}}},"400":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"The email address is not reachable","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"invalidEmail"},"message":{"type":"string","description":"A description of the error","example":"The email address is not reachable"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}},{"description":"Disposable email addresses cannot be used","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"disposableEmail"},"message":{"type":"string","description":"A description of the error","example":"Disposable email addresses cannot be used"},"details":{"type":"object","description":"Additional error details (if available)"}}},"result":{"description":"No result","nullable":true,"default":null}}},{"description":"You must specify at least one organization or set the user as NIGHTOWL\u00ae staff member","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"noUserRoleSpecified"},"message":{"type":"string","description":"A description of the error","example":"You must specify at least one organization or set the user as NIGHTOWL\u00ae staff member"},"details":{"type":"object","description":"Additional error details (if available)"}}},"result":{"description":"No result","nullable":true,"default":null}}},{"description":"The organization or role is invalid or the user is already part of the organization","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"invalidOrganizationOrRole"},"message":{"type":"string","description":"A description of the error","example":"The organization or role is invalid or the user is already part of the organization"},"details":{"type":"object","description":"Additional error details (if available)"}}},"result":{"description":"No result","nullable":true,"default":null}}},{"description":"Missing or invalid fields: email, first_name, last_name","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"inputDataInvalid"},"message":{"type":"string","description":"A description of the error","example":"Missing or invalid fields: email, first_name, last_name"},"details":{"type":"object","description":"Additional error details (if available)","properties":{"invalid_fields":{"type":"array","description":"The missing or invalid fields","example":["email","first_name","last_name"],"items":{"type":"string","enum":["email","first_name","last_name"]}}}}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"invalidEmail":{"summary":"invalidEmail","value":{"error":{"code":400,"key":"invalidEmail","message":"The email address is not reachable","details":[]},"result":null}},"disposableEmail":{"summary":"disposableEmail","value":{"error":{"code":400,"key":"disposableEmail","message":"Disposable email addresses cannot be used","details":[]},"result":null}},"noUserRoleSpecified":{"summary":"noUserRoleSpecified","value":{"error":{"code":400,"key":"noUserRoleSpecified","message":"You must specify at least one organization or set the user as NIGHTOWL\u00ae staff member","details":[]},"result":null}},"invalidOrganizationOrRole":{"summary":"invalidOrganizationOrRole","value":{"error":{"code":400,"key":"invalidOrganizationOrRole","message":"The organization or role is invalid or the user is already part of the organization","details":[]},"result":null}},"inputDataInvalid":{"summary":"inputDataInvalid","value":{"error":{"code":400,"key":"inputDataInvalid","message":"Missing or invalid fields: email, first_name, last_name","details":{"invalid_fields":["email","first_name","last_name"]}},"result":null}}}}},"description":"&#9702; `invalidEmail`: The email address is not reachable<br>&#9702; `disposableEmail`: Disposable email addresses cannot be used<br>&#9702; `noUserRoleSpecified`: You must specify at least one organization or set the user as NIGHTOWL\u00ae staff member<br>&#9702; `invalidOrganizationOrRole`: The organization or role is invalid or the user is already part of the organization<br>&#9702; `inputDataInvalid`: Missing or invalid fields: email, first_name, last_name"},"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}}},"\/v1\/users\/me":{"get":{"summary":"Get the current logged in user and its information","description":"This endpoint returns the current logged in user and its information (if authenticated)","operationId":"users.me.get","tags":["Users"],"security":[{"TokenAuth":[]}],"parameters":[{"$ref":"#\/components\/parameters\/select"}],"responses":{"200":{"description":"The current logged in user","content":{"application\/json":{"schema":{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"$ref":"#\/components\/schemas\/User"}}}}}},"403":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You cannot access this resource","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":403},"key":{"type":"string","description":"Unique error key","example":"noPermission"},"message":{"type":"string","description":"A description of the error","example":"You cannot access this resource"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"noPermission":{"summary":"noPermission","value":{"error":{"code":403,"key":"noPermission","message":"You cannot access this resource","details":[]},"result":null}}}}},"description":"&#9702; `noPermission`: You cannot access this resource"},"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}},"patch":{"summary":"Update current user inforamation","description":"This endpoint updates the current user information (if authenticated)","operationId":"users.me.update","tags":["Users"],"security":[{"TokenAuth":[]}],"requestBody":{"description":"The user information to update","required":true,"content":{"application\/json":{"schema":{"properties":{"email":{"description":"Email of the user","type":"string","format":"email"},"password":{"description":"Password of the user","type":"string","nullable":true,"format":"password"},"first_name":{"description":"First name of the user","type":"string"},"last_name":{"description":"Last name of the user","type":"string"},"avatar":{"$ref":"#\/components\/schemas\/ImageObject","nullable":true},"language":{"description":"Language code ISO 639-1 of the user","type":"string","minLength":2,"maxLength":2,"default":"de"}}}}}},"responses":{"200":{"description":"The updated user","content":{"application\/json":{"schema":{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"$ref":"#\/components\/schemas\/User"}}}}}},"404":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"User was not found","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":404},"key":{"type":"string","description":"Unique error key","example":"notFound"},"message":{"type":"string","description":"A description of the error","example":"User was not found"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"notFound":{"summary":"notFound","value":{"error":{"code":404,"key":"notFound","message":"User was not found","details":[]},"result":null}}}}},"description":"&#9702; `notFound`: User was not found"},"403":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not allowed to update your own role","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":403},"key":{"type":"string","description":"Unique error key","example":"cannotUpdateOwnRole"},"message":{"type":"string","description":"A description of the error","example":"You are not allowed to update your own role"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}},{"description":"You are not allowed to update this user","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":403},"key":{"type":"string","description":"Unique error key","example":"noPermission"},"message":{"type":"string","description":"A description of the error","example":"You are not allowed to update this user"},"details":{"type":"object","description":"Additional error details (if available)"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"cannotUpdateOwnRole":{"summary":"cannotUpdateOwnRole","value":{"error":{"code":403,"key":"cannotUpdateOwnRole","message":"You are not allowed to update your own role","details":[]},"result":null}},"noPermission":{"summary":"noPermission","value":{"error":{"code":403,"key":"noPermission","message":"You are not allowed to update this user","details":[]},"result":null}}}}},"description":"&#9702; `cannotUpdateOwnRole`: You are not allowed to update your own role<br>&#9702; `noPermission`: You are not allowed to update this user"},"400":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"The organization or role is invalid","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"invalidOrganizationOrRole"},"message":{"type":"string","description":"A description of the error","example":"The organization or role is invalid"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}},{"description":"Disposable email addresses cannot be used","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"disposableEmail"},"message":{"type":"string","description":"A description of the error","example":"Disposable email addresses cannot be used"},"details":{"type":"object","description":"Additional error details (if available)"}}},"result":{"description":"No result","nullable":true,"default":null}}},{"description":"Names must be at least 2 characters long (both first and last name)","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"invalidName"},"message":{"type":"string","description":"A description of the error","example":"Names must be at least 2 characters long (both first and last name)"},"details":{"type":"object","description":"Additional error details (if available)"}}},"result":{"description":"No result","nullable":true,"default":null}}},{"description":"The password is not strong enough. A password must be at least 6 characters long and contain at least one uppercase letter, one lowercase letter, one number and one special character.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"passwordTooWeak"},"message":{"type":"string","description":"A description of the error","example":"The password is not strong enough. A password must be at least 6 characters long and contain at least one uppercase letter, one lowercase letter, one number and one special character."},"details":{"type":"object","description":"Additional error details (if available)"}}},"result":{"description":"No result","nullable":true,"default":null}}},{"description":"No data was provided","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"noData"},"message":{"type":"string","description":"A description of the error","example":"No data was provided"},"details":{"type":"object","description":"Additional error details (if available)"}}},"result":{"description":"No result","nullable":true,"default":null}}},{"description":"Missing or invalid fields: email, password, first_name, last_name, avatar, language","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"inputDataInvalid"},"message":{"type":"string","description":"A description of the error","example":"Missing or invalid fields: email, password, first_name, last_name, avatar, language"},"details":{"type":"object","description":"Additional error details (if available)","properties":{"invalid_fields":{"type":"array","description":"The missing or invalid fields","example":["email","password","first_name","last_name","avatar","language"],"items":{"type":"string","enum":["email","password","first_name","last_name","avatar","language"]}}}}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"invalidOrganizationOrRole":{"summary":"invalidOrganizationOrRole","value":{"error":{"code":400,"key":"invalidOrganizationOrRole","message":"The organization or role is invalid","details":[]},"result":null}},"disposableEmail":{"summary":"disposableEmail","value":{"error":{"code":400,"key":"disposableEmail","message":"Disposable email addresses cannot be used","details":[]},"result":null}},"invalidName":{"summary":"invalidName","value":{"error":{"code":400,"key":"invalidName","message":"Names must be at least 2 characters long (both first and last name)","details":[]},"result":null}},"passwordTooWeak":{"summary":"passwordTooWeak","value":{"error":{"code":400,"key":"passwordTooWeak","message":"The password is not strong enough. A password must be at least 6 characters long and contain at least one uppercase letter, one lowercase letter, one number and one special character.","details":[]},"result":null}},"noData":{"summary":"noData","value":{"error":{"code":400,"key":"noData","message":"No data was provided","details":[]},"result":null}},"inputDataInvalid":{"summary":"inputDataInvalid","value":{"error":{"code":400,"key":"inputDataInvalid","message":"Missing or invalid fields: email, password, first_name, last_name, avatar, language","details":{"invalid_fields":["email","password","first_name","last_name","avatar","language"]}},"result":null}}}}},"description":"&#9702; `invalidOrganizationOrRole`: The organization or role is invalid<br>&#9702; `disposableEmail`: Disposable email addresses cannot be used<br>&#9702; `invalidName`: Names must be at least 2 characters long (both first and last name)<br>&#9702; `passwordTooWeak`: The password is not strong enough. A password must be at least 6 characters long and contain at least one uppercase letter, one lowercase letter, one number and one special character.<br>&#9702; `noData`: No data was provided<br>&#9702; `inputDataInvalid`: Missing or invalid fields: email, password, first_name, last_name, avatar, language"},"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}},"delete":{"summary":"Delete current user","description":"This endpoint deletes the current logged in user (if authenticated)","operationId":"users.me.delete","tags":["Users"],"security":[{"TokenAuth":[]}],"responses":{"200":{"description":"The deleted user","content":{"application\/json":{"schema":{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"$ref":"#\/components\/schemas\/User"}}}}}},"404":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"User was not found","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":404},"key":{"type":"string","description":"Unique error key","example":"notFound"},"message":{"type":"string","description":"A description of the error","example":"User was not found"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"notFound":{"summary":"notFound","value":{"error":{"code":404,"key":"notFound","message":"User was not found","details":[]},"result":null}}}}},"description":"&#9702; `notFound`: User was not found"},"403":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not allowed to delete this user","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":403},"key":{"type":"string","description":"Unique error key","example":"noPermission"},"message":{"type":"string","description":"A description of the error","example":"You are not allowed to delete this user"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"noPermission":{"summary":"noPermission","value":{"error":{"code":403,"key":"noPermission","message":"You are not allowed to delete this user","details":[]},"result":null}}}}},"description":"&#9702; `noPermission`: You are not allowed to delete this user"},"400":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You cannot delete the last user in an organization","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"deleteLastUser"},"message":{"type":"string","description":"A description of the error","example":"You cannot delete the last user in an organization"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}},{"description":"You cannot delete the last active admin in an organization","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"deleteLastAdmin"},"message":{"type":"string","description":"A description of the error","example":"You cannot delete the last active admin in an organization"},"details":{"type":"object","description":"Additional error details (if available)"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"deleteLastUser":{"summary":"deleteLastUser","value":{"error":{"code":400,"key":"deleteLastUser","message":"You cannot delete the last user in an organization","details":[]},"result":null}},"deleteLastAdmin":{"summary":"deleteLastAdmin","value":{"error":{"code":400,"key":"deleteLastAdmin","message":"You cannot delete the last active admin in an organization","details":[]},"result":null}}}}},"description":"&#9702; `deleteLastUser`: You cannot delete the last user in an organization<br>&#9702; `deleteLastAdmin`: You cannot delete the last active admin in an organization"},"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}}},"\/v1\/users\/me\/avatar":{"post":{"summary":"Upload a new avatar for the current user","description":"This endpoint will update the profile image of the currently logged in user. It replaces the current avatar with the new one.","operationId":"users.me.avatar.update","tags":["Users"],"security":[{"TokenAuth":[]}],"requestBody":{"description":"An image file (any format) under 100 MB","required":true,"content":{"multipart\/form-data":{"schema":{"type":"object","properties":{"image":{"type":"string","format":"binary"}}}}}},"responses":{"200":{"description":"The updated user (with new avatar)","content":{"application\/json":{"schema":{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"$ref":"#\/components\/schemas\/User"}}}}}},"400":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Wrong image format or missing file","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"fileError"},"message":{"type":"string","description":"A description of the error","example":"Wrong image format or missing file"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"fileError":{"summary":"fileError","value":{"error":{"code":400,"key":"fileError","message":"Wrong image format or missing file","details":[]},"result":null}}}}},"description":"&#9702; `fileError`: Wrong image format or missing file"},"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}},"delete":{"summary":"Delete a current user's avatar","description":"This endpoint deletes an avatar of the currently logged in user.","operationId":"users.me.avatar.delete","tags":["Users"],"security":[{"TokenAuth":[]}],"responses":{"200":{"description":"The updated user (without avatar)","content":{"application\/json":{"schema":{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"$ref":"#\/components\/schemas\/User"}}}}}},"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}}},"\/v1\/users\/{id}\/avatar":{"post":{"summary":"Upload a new avatar for a user","description":"This endpoint will update the profile image of a specific user by id. It replaces the current avatar with the new one.\n\n<h3>Required role permissions:<\/h3>`$permittedTo('users', 'update', 'avatar')`","operationId":"users.avatar.update","tags":["Users"],"security":[{"TokenAuth":[]}],"parameters":[{"$ref":"#\/components\/parameters\/id"}],"requestBody":{"description":"An image file (any format) under 100 MB","required":true,"content":{"multipart\/form-data":{"schema":{"type":"object","properties":{"image":{"type":"string","format":"binary"}}}}}},"responses":{"200":{"description":"The updated user (with new avatar)","content":{"application\/json":{"schema":{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"$ref":"#\/components\/schemas\/User"}}}}}},"404":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"User was not found","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":404},"key":{"type":"string","description":"Unique error key","example":"notFound"},"message":{"type":"string","description":"A description of the error","example":"User was not found"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"notFound":{"summary":"notFound","value":{"error":{"code":404,"key":"notFound","message":"User was not found","details":[]},"result":null}}}}},"description":"&#9702; `notFound`: User was not found"},"400":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Wrong image format or missing file","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"fileError"},"message":{"type":"string","description":"A description of the error","example":"Wrong image format or missing file"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"fileError":{"summary":"fileError","value":{"error":{"code":400,"key":"fileError","message":"Wrong image format or missing file","details":[]},"result":null}}}}},"description":"&#9702; `fileError`: Wrong image format or missing file"},"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}},"delete":{"summary":"Delete a user's avatar","description":"This endpoint deletes an avatar of a specific user by id.\n\n<h3>Required role permissions:<\/h3>`$permittedTo('users', 'delete', 'avatar')`","operationId":"users.avatar.delete","tags":["Users"],"security":[{"TokenAuth":[]}],"parameters":[{"$ref":"#\/components\/parameters\/id"}],"responses":{"200":{"description":"The updated user (without avatar)","content":{"application\/json":{"schema":{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"$ref":"#\/components\/schemas\/User"}}}}}},"404":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"User was not found","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":404},"key":{"type":"string","description":"Unique error key","example":"notFound"},"message":{"type":"string","description":"A description of the error","example":"User was not found"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"notFound":{"summary":"notFound","value":{"error":{"code":404,"key":"notFound","message":"User was not found","details":[]},"result":null}}}}},"description":"&#9702; `notFound`: User was not found"},"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}}},"\/v1\/users\/api_token":{"post":{"summary":"Obtain an API token\/key","description":"Use this method to obtain an API token\/key with the permissions of the logged in user for the current organization.\n\nIf no expiration date is set, the api token will be valid for 1 year.\n\n<h3>Required role permissions:<\/h3>`$permittedTo('users', 'get', 'apikey')`","operationId":"users.apikey.get","tags":["Users"],"security":[{"TokenAuth":[]}],"requestBody":{"description":"API key settings","required":true,"content":{"application\/json":{"schema":{"properties":{"expiration_date":{"type":"string","description":"An expiration date for the API key (ISO 8601 format)","format":"date-time","example":"2025-12-31T23:59:59+00:00"}}}}}},"responses":{"200":{"description":"API key & expiration date","content":{"application\/json":{"schema":{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"description":"API key & expiration date","properties":{"api_token":{"type":"string","description":"The requested API key","example":"abcdefghijk1234567890"},"expiring":{"type":"string","description":"The date and time when the api key expires","example":"2025-12-31T23:59:59+00:00"}},"type":"object"}}}}}},"404":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"User was not found","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":404},"key":{"type":"string","description":"Unique error key","example":"notFound"},"message":{"type":"string","description":"A description of the error","example":"User was not found"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"notFound":{"summary":"notFound","value":{"error":{"code":404,"key":"notFound","message":"User was not found","details":[]},"result":null}}}}},"description":"&#9702; `notFound`: User was not found"},"400":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Missing or invalid fields: expiration_date","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"inputDataInvalid"},"message":{"type":"string","description":"A description of the error","example":"Missing or invalid fields: expiration_date"},"details":{"type":"object","description":"Additional error details","properties":{"invalid_fields":{"type":"array","description":"The missing or invalid fields","example":["expiration_date"],"items":{"type":"string","enum":["expiration_date"]}}}}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"inputDataInvalid":{"summary":"inputDataInvalid","value":{"error":{"code":400,"key":"inputDataInvalid","message":"Missing or invalid fields: expiration_date","details":{"invalid_fields":["expiration_date"]}},"result":null}}}}},"description":"&#9702; `inputDataInvalid`: Missing or invalid fields: expiration_date"},"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}}},"\/v1\/roles":{"get":{"summary":"Get all roles","description":"This endpoint returns all roles","operationId":"roles.all.get","tags":["Roles"],"security":[{"TokenAuth":[]}],"parameters":[{"$ref":"#\/components\/parameters\/page"},{"$ref":"#\/components\/parameters\/limit"},{"$ref":"#\/components\/parameters\/select"},{"$ref":"#\/components\/parameters\/orderBy"},{"$ref":"#\/components\/parameters\/filterBy"}],"responses":{"200":{"description":"All roles","content":{"application\/json":{"schema":{"oneOf":[{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"description":"All roles","type":"object","additionalProperties":{"$ref":"#\/components\/schemas\/Role"}}},"description":"All roles"},{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"description":"Paginated result","type":"object","properties":{"objects":{"description":"All roles","type":"object","additionalProperties":{"$ref":"#\/components\/schemas\/Role"}},"pagination":{"type":"object","description":"Pagination information","properties":{"page":{"type":"integer","description":"Current page","example":1},"pages":{"type":"integer","description":"Total pages","example":10},"objects":{"type":"integer","description":"Total number of objects","example":100}}}}}},"description":"All roles (paginated if `limit` is set in query params)"}]}}}},"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}},"post":{"summary":"Create a new role","description":"This endpoint creates a new role\n\n<h3>Required role permissions:<\/h3>`$permittedTo('roles', 'create', 'role')`","operationId":"roles.role.create","tags":["Roles"],"security":[{"TokenAuth":[]}],"requestBody":{"description":"The role information to create","required":true,"content":{"application\/json":{"schema":{"required":["name","permissions"],"properties":{"name":{"description":"Name of the Role","type":"string"},"organization":{"description":"If set, this role is an organization related role","type":"string"},"is_root":{"description":"Indicates if the role is a NIGHTOWL\u00ae staff member role","type":"boolean","default":false},"permissions":{"$ref":"#\/components\/schemas\/Permissions"}}}}}},"responses":{"200":{"description":"The created role","content":{"application\/json":{"schema":{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"$ref":"#\/components\/schemas\/Role"}}}}}},"403":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not allowed to create a root role","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":403},"key":{"type":"string","description":"Unique error key","example":"forbidden"},"message":{"type":"string","description":"A description of the error","example":"You are not allowed to create a root role"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"forbidden":{"summary":"forbidden","value":{"error":{"code":403,"key":"forbidden","message":"You are not allowed to create a root role","details":[]},"result":null}}}}},"description":"&#9702; `forbidden`: You are not allowed to create a root role"},"400":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"The specified permissions are invalid","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"invalidPermissions"},"message":{"type":"string","description":"A description of the error","example":"The specified permissions are invalid"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}},{"description":"Missing or invalid fields: name, permissions","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"inputDataInvalid"},"message":{"type":"string","description":"A description of the error","example":"Missing or invalid fields: name, permissions"},"details":{"type":"object","description":"Additional error details (if available)","properties":{"invalid_fields":{"type":"array","description":"The missing or invalid fields","example":["name","permissions"],"items":{"type":"string","enum":["name","permissions"]}}}}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"invalidPermissions":{"summary":"invalidPermissions","value":{"error":{"code":400,"key":"invalidPermissions","message":"The specified permissions are invalid","details":[]},"result":null}},"inputDataInvalid":{"summary":"inputDataInvalid","value":{"error":{"code":400,"key":"inputDataInvalid","message":"Missing or invalid fields: name, permissions","details":{"invalid_fields":["name","permissions"]}},"result":null}}}}},"description":"&#9702; `invalidPermissions`: The specified permissions are invalid<br>&#9702; `inputDataInvalid`: Missing or invalid fields: name, permissions"},"404":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"The specified organization was not found","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":404},"key":{"type":"string","description":"Unique error key","example":"organizationNotFound"},"message":{"type":"string","description":"A description of the error","example":"The specified organization was not found"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"organizationNotFound":{"summary":"organizationNotFound","value":{"error":{"code":404,"key":"organizationNotFound","message":"The specified organization was not found","details":[]},"result":null}}}}},"description":"&#9702; `organizationNotFound`: The specified organization was not found"},"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}}},"\/v1\/roles\/{id}":{"get":{"summary":"Get a specific role by id","description":"This endpoint returns a specific role by id\n\n<h3>Required role permissions:<\/h3>`$permittedTo('roles', 'get', 'role')`","operationId":"roles.role.get","tags":["Roles"],"security":[{"TokenAuth":[]}],"parameters":[{"$ref":"#\/components\/parameters\/id"},{"$ref":"#\/components\/parameters\/select"}],"responses":{"200":{"description":"The requested role","content":{"application\/json":{"schema":{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"$ref":"#\/components\/schemas\/Role"}}}}}},"404":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Role was not found","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":404},"key":{"type":"string","description":"Unique error key","example":"notFound"},"message":{"type":"string","description":"A description of the error","example":"Role was not found"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"notFound":{"summary":"notFound","value":{"error":{"code":404,"key":"notFound","message":"Role was not found","details":[]},"result":null}}}}},"description":"&#9702; `notFound`: Role was not found"},"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}},"patch":{"summary":"Update a specific role by id","description":"This endpoint updates a specific role by id\n\n<h3>Required role permissions:<\/h3>`$permittedTo('roles', 'update', 'role')`","operationId":"roles.role.update","tags":["Roles"],"security":[{"TokenAuth":[]}],"parameters":[{"$ref":"#\/components\/parameters\/id"}],"requestBody":{"description":"The role information to update","required":true,"content":{"application\/json":{"schema":{"properties":{"name":{"description":"Name of the Role","type":"string"},"organization":{"description":"If set, this role is an organization related role","type":"string"},"is_root":{"description":"Indicates if the role is a NIGHTOWL\u00ae staff member role","type":"boolean","default":false},"permissions":{"$ref":"#\/components\/schemas\/Permissions"}}}}}},"responses":{"200":{"description":"The updated role","content":{"application\/json":{"schema":{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"$ref":"#\/components\/schemas\/Role"}}}}}},"404":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Role was not found","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":404},"key":{"type":"string","description":"Unique error key","example":"notFound"},"message":{"type":"string","description":"A description of the error","example":"Role was not found"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}},{"description":"The specified organization was not found","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":404},"key":{"type":"string","description":"Unique error key","example":"organizationNotFound"},"message":{"type":"string","description":"A description of the error","example":"The specified organization was not found"},"details":{"type":"object","description":"Additional error details (if available)"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"notFound":{"summary":"notFound","value":{"error":{"code":404,"key":"notFound","message":"Role was not found","details":[]},"result":null}},"organizationNotFound":{"summary":"organizationNotFound","value":{"error":{"code":404,"key":"organizationNotFound","message":"The specified organization was not found","details":[]},"result":null}}}}},"description":"&#9702; `notFound`: Role was not found<br>&#9702; `organizationNotFound`: The specified organization was not found"},"400":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"No data was provided","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"noData"},"message":{"type":"string","description":"A description of the error","example":"No data was provided"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}},{"description":"The specified permissions are invalid","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"invalidPermissions"},"message":{"type":"string","description":"A description of the error","example":"The specified permissions are invalid"},"details":{"type":"object","description":"Additional error details (if available)"}}},"result":{"description":"No result","nullable":true,"default":null}}},{"description":"Missing or invalid fields: name, organization, is_root, permissions","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"inputDataInvalid"},"message":{"type":"string","description":"A description of the error","example":"Missing or invalid fields: name, organization, is_root, permissions"},"details":{"type":"object","description":"Additional error details (if available)","properties":{"invalid_fields":{"type":"array","description":"The missing or invalid fields","example":["name","organization","is_root","permissions"],"items":{"type":"string","enum":["name","organization","is_root","permissions"]}}}}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"noData":{"summary":"noData","value":{"error":{"code":400,"key":"noData","message":"No data was provided","details":[]},"result":null}},"invalidPermissions":{"summary":"invalidPermissions","value":{"error":{"code":400,"key":"invalidPermissions","message":"The specified permissions are invalid","details":[]},"result":null}},"inputDataInvalid":{"summary":"inputDataInvalid","value":{"error":{"code":400,"key":"inputDataInvalid","message":"Missing or invalid fields: name, organization, is_root, permissions","details":{"invalid_fields":["name","organization","is_root","permissions"]}},"result":null}}}}},"description":"&#9702; `noData`: No data was provided<br>&#9702; `invalidPermissions`: The specified permissions are invalid<br>&#9702; `inputDataInvalid`: Missing or invalid fields: name, organization, is_root, permissions"},"403":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not allowed to set this role as a root role","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":403},"key":{"type":"string","description":"Unique error key","example":"forbidden"},"message":{"type":"string","description":"A description of the error","example":"You are not allowed to set this role as a root role"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"forbidden":{"summary":"forbidden","value":{"error":{"code":403,"key":"forbidden","message":"You are not allowed to set this role as a root role","details":[]},"result":null}}}}},"description":"&#9702; `forbidden`: You are not allowed to set this role as a root role"},"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}},"delete":{"summary":"Delete a specific role by id","description":"This endpoint deletes a role by id\n\n<h3>Required role permissions:<\/h3>`$permittedTo('roles', 'delete', 'role')`","operationId":"roles.role.delete","tags":["Roles"],"security":[{"TokenAuth":[]}],"parameters":[{"$ref":"#\/components\/parameters\/id"}],"responses":{"200":{"description":"The deleted role","content":{"application\/json":{"schema":{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"$ref":"#\/components\/schemas\/Role"}}}}}},"404":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Role was not found","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":404},"key":{"type":"string","description":"Unique error key","example":"notFound"},"message":{"type":"string","description":"A description of the error","example":"Role was not found"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"notFound":{"summary":"notFound","value":{"error":{"code":404,"key":"notFound","message":"Role was not found","details":[]},"result":null}}}}},"description":"&#9702; `notFound`: Role was not found"},"403":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You cannot delete a role that is currently in use","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":403},"key":{"type":"string","description":"Unique error key","example":"forbidden"},"message":{"type":"string","description":"A description of the error","example":"You cannot delete a role that is currently in use"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"forbidden":{"summary":"forbidden","value":{"error":{"code":403,"key":"forbidden","message":"You cannot delete a role that is currently in use","details":[]},"result":null}}}}},"description":"&#9702; `forbidden`: You cannot delete a role that is currently in use"},"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}}},"\/v1\/locations":{"get":{"summary":"Get all locations","description":"This endpoint returns all locations that are currently registered","operationId":"locations.all.get","tags":["Locations"],"security":[{"TokenAuth":[]}],"parameters":[{"$ref":"#\/components\/parameters\/page"},{"$ref":"#\/components\/parameters\/limit"},{"$ref":"#\/components\/parameters\/select"},{"$ref":"#\/components\/parameters\/orderBy"},{"$ref":"#\/components\/parameters\/filterBy"}],"responses":{"200":{"description":"All locations","content":{"application\/json":{"schema":{"oneOf":[{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"description":"All locations","type":"object","additionalProperties":{"$ref":"#\/components\/schemas\/Location"}}},"description":"All locations"},{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"description":"Paginated result","type":"object","properties":{"objects":{"description":"All locations","type":"object","additionalProperties":{"$ref":"#\/components\/schemas\/Location"}},"pagination":{"type":"object","description":"Pagination information","properties":{"page":{"type":"integer","description":"Current page","example":1},"pages":{"type":"integer","description":"Total pages","example":10},"objects":{"type":"integer","description":"Total number of objects","example":100}}}}}},"description":"All locations (paginated if `limit` is set in query params)"}]}}}},"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}},"post":{"summary":"Create a new location","description":"This endpoint is utilized to create a fresh location. You must provide a unique place token that you can get from the `find` endpoint in order to create a location","operationId":"locations.location.create","tags":["Locations"],"security":[{"TokenAuth":[]}],"requestBody":{"description":"Location details","required":true,"content":{"application\/json":{"schema":{"required":["token","name"],"properties":{"token":{"type":"string","description":"The unique place identifier token came from the `find` endpoint"},"name":{"description":"Name of the location","type":"string","nullable":true},"phone":{"description":"A phone number for the location","type":"string","nullable":true}}}}}},"responses":{"200":{"description":"The created location","content":{"application\/json":{"schema":{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"$ref":"#\/components\/schemas\/Location"}}}}}},"404":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"The provided location identifier was not found","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":404},"key":{"type":"string","description":"Unique error key","example":"invalidLocationId"},"message":{"type":"string","description":"A description of the error","example":"The provided location identifier was not found"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"invalidLocationId":{"summary":"invalidLocationId","value":{"error":{"code":404,"key":"invalidLocationId","message":"The provided location identifier was not found","details":[]},"result":null}}}}},"description":"&#9702; `invalidLocationId`: The provided location identifier was not found"},"400":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"The phone number is invalid. It must be in international format (e.g. +4971123456789)","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"phoneNumberInvalid"},"message":{"type":"string","description":"A description of the error","example":"The phone number is invalid. It must be in international format (e.g. +4971123456789)"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}},{"description":"Missing or invalid fields: token, name","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"inputDataInvalid"},"message":{"type":"string","description":"A description of the error","example":"Missing or invalid fields: token, name"},"details":{"type":"object","description":"Additional error details (if available)","properties":{"invalid_fields":{"type":"array","description":"The missing or invalid fields","example":["token","name"],"items":{"type":"string","enum":["token","name"]}}}}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"phoneNumberInvalid":{"summary":"phoneNumberInvalid","value":{"error":{"code":400,"key":"phoneNumberInvalid","message":"The phone number is invalid. It must be in international format (e.g. +4971123456789)","details":[]},"result":null}},"inputDataInvalid":{"summary":"inputDataInvalid","value":{"error":{"code":400,"key":"inputDataInvalid","message":"Missing or invalid fields: token, name","details":{"invalid_fields":["token","name"]}},"result":null}}}}},"description":"&#9702; `phoneNumberInvalid`: The phone number is invalid. It must be in international format (e.g. +4971123456789)<br>&#9702; `inputDataInvalid`: Missing or invalid fields: token, name"},"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}}},"\/v1\/locations\/find":{"post":{"summary":"Find an address","description":"This method returns an address object and its unique place id that can be used to create a location.\n\nPlease note that this endpoint is not meant to be used to find locations that are already in NIGHTOWL. For that, use the ``\/search`` endpoint.","operationId":"locations.find.get","tags":["Locations"],"security":[{"TokenAuth":[]}],"requestBody":{"description":"The full address","required":true,"content":{"application\/json":{"schema":{"required":["address"],"properties":{"address":{"type":"string","description":"The full address"}}}}}},"responses":{"200":{"description":"The requested address (if found)","content":{"application\/json":{"schema":{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"description":"The requested address (if found)","$ref":"#\/components\/schemas\/Address"}}}}}},"404":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Location was not found or is invalid","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":404},"key":{"type":"string","description":"Unique error key","example":"notFound"},"message":{"type":"string","description":"A description of the error","example":"Location was not found or is invalid"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"notFound":{"summary":"notFound","value":{"error":{"code":404,"key":"notFound","message":"Location was not found or is invalid","details":[]},"result":null}}}}},"description":"&#9702; `notFound`: Location was not found or is invalid"},"400":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Missing or invalid fields: address","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"inputDataInvalid"},"message":{"type":"string","description":"A description of the error","example":"Missing or invalid fields: address"},"details":{"type":"object","description":"Additional error details","properties":{"invalid_fields":{"type":"array","description":"The missing or invalid fields","example":["address"],"items":{"type":"string","enum":["address"]}}}}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"inputDataInvalid":{"summary":"inputDataInvalid","value":{"error":{"code":400,"key":"inputDataInvalid","message":"Missing or invalid fields: address","details":{"invalid_fields":["address"]}},"result":null}}}}},"description":"&#9702; `inputDataInvalid`: Missing or invalid fields: address"},"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}}},"\/v1\/locations\/{id}":{"get":{"summary":"Get a specific location by id","description":"This endpoint returns a specific location by its unique id","operationId":"locations.location.get","tags":["Locations"],"security":[{"TokenAuth":[]}],"parameters":[{"$ref":"#\/components\/parameters\/id"},{"$ref":"#\/components\/parameters\/select"}],"responses":{"200":{"description":"The requested location","content":{"application\/json":{"schema":{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"$ref":"#\/components\/schemas\/Location"}}}}}},"404":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Location was not found","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":404},"key":{"type":"string","description":"Unique error key","example":"notFound"},"message":{"type":"string","description":"A description of the error","example":"Location was not found"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"notFound":{"summary":"notFound","value":{"error":{"code":404,"key":"notFound","message":"Location was not found","details":[]},"result":null}}}}},"description":"&#9702; `notFound`: Location was not found"},"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}},"patch":{"summary":"Update a specific location by id","description":"This endpoint updates a specific location by id\n\n<h3>Required role permissions:<\/h3>`$permittedTo('locations', 'update', 'location')`","operationId":"locations.location.update","tags":["Locations"],"security":[{"TokenAuth":[]}],"parameters":[{"$ref":"#\/components\/parameters\/id"}],"requestBody":{"description":"Location details","required":true,"content":{"application\/json":{"schema":{"properties":{"token":{"type":"string","description":"The unique place identifier token came from the `find` endpoint"},"name":{"description":"Name of the location","type":"string","nullable":true},"phone":{"description":"A phone number for the location","type":"string","nullable":true}}}}}},"responses":{"200":{"description":"The updated location","content":{"application\/json":{"schema":{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"$ref":"#\/components\/schemas\/Location"}}}}}},"403":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not allowed to perform this action","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":403},"key":{"type":"string","description":"Unique error key","example":"forbidden"},"message":{"type":"string","description":"A description of the error","example":"You are not allowed to perform this action"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"forbidden":{"summary":"forbidden","value":{"error":{"code":403,"key":"forbidden","message":"You are not allowed to perform this action","details":[]},"result":null}}}}},"description":"&#9702; `forbidden`: You are not allowed to perform this action"},"404":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Location was not found","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":404},"key":{"type":"string","description":"Unique error key","example":"notFound"},"message":{"type":"string","description":"A description of the error","example":"Location was not found"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}},{"description":"The provided location identifier was not found","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":404},"key":{"type":"string","description":"Unique error key","example":"invalidLocationId"},"message":{"type":"string","description":"A description of the error","example":"The provided location identifier was not found"},"details":{"type":"object","description":"Additional error details (if available)"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"notFound":{"summary":"notFound","value":{"error":{"code":404,"key":"notFound","message":"Location was not found","details":[]},"result":null}},"invalidLocationId":{"summary":"invalidLocationId","value":{"error":{"code":404,"key":"invalidLocationId","message":"The provided location identifier was not found","details":[]},"result":null}}}}},"description":"&#9702; `notFound`: Location was not found<br>&#9702; `invalidLocationId`: The provided location identifier was not found"},"400":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"The phone number is invalid. It must be in international format (e.g. +4971123456789)","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"phoneNumberInvalid"},"message":{"type":"string","description":"A description of the error","example":"The phone number is invalid. It must be in international format (e.g. +4971123456789)"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}},{"description":"No data was provided","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"noData"},"message":{"type":"string","description":"A description of the error","example":"No data was provided"},"details":{"type":"object","description":"Additional error details (if available)"}}},"result":{"description":"No result","nullable":true,"default":null}}},{"description":"Missing or invalid fields: token, name, phone","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"inputDataInvalid"},"message":{"type":"string","description":"A description of the error","example":"Missing or invalid fields: token, name, phone"},"details":{"type":"object","description":"Additional error details (if available)","properties":{"invalid_fields":{"type":"array","description":"The missing or invalid fields","example":["token","name","phone"],"items":{"type":"string","enum":["token","name","phone"]}}}}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"phoneNumberInvalid":{"summary":"phoneNumberInvalid","value":{"error":{"code":400,"key":"phoneNumberInvalid","message":"The phone number is invalid. It must be in international format (e.g. +4971123456789)","details":[]},"result":null}},"noData":{"summary":"noData","value":{"error":{"code":400,"key":"noData","message":"No data was provided","details":[]},"result":null}},"inputDataInvalid":{"summary":"inputDataInvalid","value":{"error":{"code":400,"key":"inputDataInvalid","message":"Missing or invalid fields: token, name, phone","details":{"invalid_fields":["token","name","phone"]}},"result":null}}}}},"description":"&#9702; `phoneNumberInvalid`: The phone number is invalid. It must be in international format (e.g. +4971123456789)<br>&#9702; `noData`: No data was provided<br>&#9702; `inputDataInvalid`: Missing or invalid fields: token, name, phone"},"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}},"delete":{"summary":"Delete a location","description":"This endpoint deletes a location by its unique id if it is unused\n\n<h3>Required role permissions:<\/h3>`$permittedTo('locations', 'delete', 'location')`","operationId":"locations.location.delete","tags":["Locations"],"security":[{"TokenAuth":[]}],"parameters":[{"$ref":"#\/components\/parameters\/id"}],"responses":{"200":{"description":"The deleted location","content":{"application\/json":{"schema":{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"$ref":"#\/components\/schemas\/Location"}}}}}},"403":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not allowed to perform this action","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":403},"key":{"type":"string","description":"Unique error key","example":"forbidden"},"message":{"type":"string","description":"A description of the error","example":"You are not allowed to perform this action"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"forbidden":{"summary":"forbidden","value":{"error":{"code":403,"key":"forbidden","message":"You are not allowed to perform this action","details":[]},"result":null}}}}},"description":"&#9702; `forbidden`: You are not allowed to perform this action"},"404":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Location was not found","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":404},"key":{"type":"string","description":"Unique error key","example":"notFound"},"message":{"type":"string","description":"A description of the error","example":"Location was not found"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"notFound":{"summary":"notFound","value":{"error":{"code":404,"key":"notFound","message":"Location was not found","details":[]},"result":null}}}}},"description":"&#9702; `notFound`: Location was not found"},"400":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not allowed to delete this location (in use)","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"unauthorizedDeletion"},"message":{"type":"string","description":"A description of the error","example":"You are not allowed to delete this location (in use)"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthorizedDeletion":{"summary":"unauthorizedDeletion","value":{"error":{"code":400,"key":"unauthorizedDeletion","message":"You are not allowed to delete this location (in use)","details":[]},"result":null}}}}},"description":"&#9702; `unauthorizedDeletion`: You are not allowed to delete this location (in use)"},"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}}},"\/v1\/locations\/{id}\/logo":{"post":{"summary":"Upload a new location logo","description":"This endpoint will update the location logo of a specific location by id. It replaces the current logo with the new one.","operationId":"locations.logo.update","tags":["Locations"],"security":[{"TokenAuth":[]}],"parameters":[{"$ref":"#\/components\/parameters\/id"}],"requestBody":{"description":"An image file (any format) under 100 MB","required":true,"content":{"multipart\/form-data":{"schema":{"type":"object","properties":{"image":{"type":"string","format":"binary"}}}}}},"responses":{"200":{"description":"The updated location (with new logo)","content":{"application\/json":{"schema":{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"$ref":"#\/components\/schemas\/Location"}}}}}},"404":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Location was not found","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":404},"key":{"type":"string","description":"Unique error key","example":"notFound"},"message":{"type":"string","description":"A description of the error","example":"Location was not found"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"notFound":{"summary":"notFound","value":{"error":{"code":404,"key":"notFound","message":"Location was not found","details":[]},"result":null}}}}},"description":"&#9702; `notFound`: Location was not found"},"403":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not allowed to perform this action","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":403},"key":{"type":"string","description":"Unique error key","example":"forbidden"},"message":{"type":"string","description":"A description of the error","example":"You are not allowed to perform this action"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"forbidden":{"summary":"forbidden","value":{"error":{"code":403,"key":"forbidden","message":"You are not allowed to perform this action","details":[]},"result":null}}}}},"description":"&#9702; `forbidden`: You are not allowed to perform this action"},"400":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Wrong image format or missing file","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"fileError"},"message":{"type":"string","description":"A description of the error","example":"Wrong image format or missing file"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"fileError":{"summary":"fileError","value":{"error":{"code":400,"key":"fileError","message":"Wrong image format or missing file","details":[]},"result":null}}}}},"description":"&#9702; `fileError`: Wrong image format or missing file"},"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}},"delete":{"summary":"Delete a previously uploaded location logo","description":"This endpoint deletes a previously uploaded location logo by the location id","operationId":"locations.logo.delete","tags":["Locations"],"security":[{"TokenAuth":[]}],"parameters":[{"$ref":"#\/components\/parameters\/id"}],"responses":{"200":{"description":"The updated location (without logo)","content":{"application\/json":{"schema":{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"$ref":"#\/components\/schemas\/Location"}}}}}},"404":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Location was not found","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":404},"key":{"type":"string","description":"Unique error key","example":"notFound"},"message":{"type":"string","description":"A description of the error","example":"Location was not found"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"notFound":{"summary":"notFound","value":{"error":{"code":404,"key":"notFound","message":"Location was not found","details":[]},"result":null}}}}},"description":"&#9702; `notFound`: Location was not found"},"403":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not allowed to perform this action","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":403},"key":{"type":"string","description":"Unique error key","example":"forbidden"},"message":{"type":"string","description":"A description of the error","example":"You are not allowed to perform this action"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"forbidden":{"summary":"forbidden","value":{"error":{"code":403,"key":"forbidden","message":"You are not allowed to perform this action","details":[]},"result":null}}}}},"description":"&#9702; `forbidden`: You are not allowed to perform this action"},"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}}},"\/v1\/locations\/hotspot":{"get":{"summary":"Get Hotspot","description":"This endpoint returns a hotspot location based on the current session organization to be used in the map.\n\nFallback is the NIGHTOWL HQ location or the IP location if available.","operationId":"locations.hotspot.get","tags":["Locations"],"security":[{"TokenAuth":[]}],"responses":{"200":{"description":"The current hotspot","content":{"application\/json":{"schema":{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"description":"The current hotspot","properties":{"target":{"type":"string","description":"The hotspot target, describing the source of the hotspot location","example":"nightowl","enum":["nightowl","organization","ip"]},"latitude":{"type":"string","description":"The hotspot latitude","example":"48.802490"},"longitude":{"type":"string","description":"The hotspot longitude","example":"9.073410"}},"type":"object"}}}}}},"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}}},"\/v1\/artists":{"get":{"summary":"Get all artists","description":"This endpoint returns all artists","operationId":"artists.all.get","tags":["Artists"],"security":[{"TokenAuth":[]}],"parameters":[{"$ref":"#\/components\/parameters\/page"},{"$ref":"#\/components\/parameters\/limit"},{"$ref":"#\/components\/parameters\/select"},{"$ref":"#\/components\/parameters\/orderBy"},{"$ref":"#\/components\/parameters\/filterBy"}],"responses":{"200":{"description":"All artists","content":{"application\/json":{"schema":{"oneOf":[{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"description":"All artists","type":"object","additionalProperties":{"$ref":"#\/components\/schemas\/Artist"}}},"description":"All artists"},{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"description":"Paginated result","type":"object","properties":{"objects":{"description":"All artists","type":"object","additionalProperties":{"$ref":"#\/components\/schemas\/Artist"}},"pagination":{"type":"object","description":"Pagination information","properties":{"page":{"type":"integer","description":"Current page","example":1},"pages":{"type":"integer","description":"Total pages","example":10},"objects":{"type":"integer","description":"Total number of objects","example":100}}}}}},"description":"All artists (paginated if `limit` is set in query params)"}]}}}},"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}},"post":{"summary":"Create an artist","description":"This endpoint creates an artist with the given information. You can optionally provide an avatar image url that came from the ``\/artists\/find`` endpoint.\n\nTo upload an avatar image, use the ``\/artists\/{artist_id}\/avatar`` endpoint after creating the artist.","operationId":"artists.artist.create","tags":["Artists"],"security":[{"TokenAuth":[]}],"requestBody":{"description":"Artist information","required":true,"content":{"application\/json":{"schema":{"required":["name"],"properties":{"name":{"description":"Name of the artist","type":"string","nullable":true},"genres":{"description":"Related genre ids","type":"array","items":{"type":"string","maxLength":6},"example":["{{idOfFirstGenre}}","{{idOfSecondGenre}}","{{idOfThirdGenre}}"]},"links":{"description":"External related links to the artist","type":"array","items":{"type":"object","properties":{"type":{"type":"string","description":"The type of the link (e.g. Apple Music, Spotify, Deezer)","enum":["apple_music","amazon_music","deezer","facebook","google_play","instagram","other","pandora","soundcloud","spotify","tidal","website","x","youtube"]},"value":{"type":"string","description":"The URL of the link","format":"uri"}}},"example":[{"type":"spotify","value":"https:\/\/open.spotify.com\/artist\/12345"},{"type":"apple_music","value":"https:\/\/music.apple.com\/artist\/xyz"},{"type":"website","value":"https:\/\/www.artistwebsite.com"}]},"avatar_url":{"type":"string","description":"An url to an avatar image of the artist"}}}}}},"responses":{"200":{"description":"The created artist","content":{"application\/json":{"schema":{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"$ref":"#\/components\/schemas\/Artist"}}}}}},"400":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"One or more of the given genre ids are invalid","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"invalidGenreID"},"message":{"type":"string","description":"A description of the error","example":"One or more of the given genre ids are invalid"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}},{"description":"One or more of the given links (or their types) are invalid","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"invalidLinksList"},"message":{"type":"string","description":"A description of the error","example":"One or more of the given links (or their types) are invalid"},"details":{"type":"object","description":"Additional error details (if available)"}}},"result":{"description":"No result","nullable":true,"default":null}}},{"description":"Missing or invalid fields: name","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"inputDataInvalid"},"message":{"type":"string","description":"A description of the error","example":"Missing or invalid fields: name"},"details":{"type":"object","description":"Additional error details (if available)","properties":{"invalid_fields":{"type":"array","description":"The missing or invalid fields","example":["name"],"items":{"type":"string","enum":["name"]}}}}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"invalidGenreID":{"summary":"invalidGenreID","value":{"error":{"code":400,"key":"invalidGenreID","message":"One or more of the given genre ids are invalid","details":[]},"result":null}},"invalidLinksList":{"summary":"invalidLinksList","value":{"error":{"code":400,"key":"invalidLinksList","message":"One or more of the given links (or their types) are invalid","details":[]},"result":null}},"inputDataInvalid":{"summary":"inputDataInvalid","value":{"error":{"code":400,"key":"inputDataInvalid","message":"Missing or invalid fields: name","details":{"invalid_fields":["name"]}},"result":null}}}}},"description":"&#9702; `invalidGenreID`: One or more of the given genre ids are invalid<br>&#9702; `invalidLinksList`: One or more of the given links (or their types) are invalid<br>&#9702; `inputDataInvalid`: Missing or invalid fields: name"},"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}}},"\/v1\/artists\/find":{"post":{"summary":"Find an artist by name","description":"This endpoint finds an artist that matches the given name. It is used to find artists that are not yet in NIGHTOWL\u00ae and to give a preset for the user to choose from.\n\nPlease note that this endpoint is not meant to be used to find artists that are already in NIGHTOWL\u00ae. For that, use the ``\/search`` endpoint.","operationId":"artists.find.get","tags":["Artists"],"security":[{"TokenAuth":[]}],"requestBody":{"description":"The full artist name","required":true,"content":{"application\/json":{"schema":{"required":["name"],"properties":{"name":{"type":"string","description":"The full artist name"}}}}}},"responses":{"200":{"description":"The requested artist information if found","content":{"application\/json":{"schema":{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"description":"The requested artist information if found","type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"The full artist name"},"avatar_url":{"type":"string","description":"A profile picture URL of the artist","nullable":true},"links":{"type":"array","description":"External related links to the artist","items":{"type":"object","properties":{"type":{"type":"string","description":"The type of the link (e.g., Spotify, Deezer, Apple Music)","enum":["apple_music","amazon_music","deezer","facebook","google_play","instagram","other","pandora","soundcloud","spotify","tidal","website","x","youtube"]},"value":{"type":"string","description":"The URL of the link","format":"uri"}}},"example":[{"type":"apple_music","value":"https:\/\/music.apple.com\/artist\/xyz"},{"type":"spotify","value":"https:\/\/open.spotify.com\/artist\/12345"},{"type":"deezer","value":"https:\/\/www.deezer.com\/artist\/12345"}]}}}}}}}}},"404":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Your query did not return any results","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":404},"key":{"type":"string","description":"Unique error key","example":"notFound"},"message":{"type":"string","description":"A description of the error","example":"Your query did not return any results"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"notFound":{"summary":"notFound","value":{"error":{"code":404,"key":"notFound","message":"Your query did not return any results","details":[]},"result":null}}}}},"description":"&#9702; `notFound`: Your query did not return any results"},"400":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Missing or invalid fields: name","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"inputDataInvalid"},"message":{"type":"string","description":"A description of the error","example":"Missing or invalid fields: name"},"details":{"type":"object","description":"Additional error details","properties":{"invalid_fields":{"type":"array","description":"The missing or invalid fields","example":["name"],"items":{"type":"string","enum":["name"]}}}}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"inputDataInvalid":{"summary":"inputDataInvalid","value":{"error":{"code":400,"key":"inputDataInvalid","message":"Missing or invalid fields: name","details":{"invalid_fields":["name"]}},"result":null}}}}},"description":"&#9702; `inputDataInvalid`: Missing or invalid fields: name"},"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}}},"\/v1\/artists\/{id}":{"get":{"summary":"Get an artist by id","description":"This endpoint returns an artist by id","operationId":"artists.artist.get","tags":["Artists"],"security":[{"TokenAuth":[]}],"parameters":[{"$ref":"#\/components\/parameters\/id"},{"$ref":"#\/components\/parameters\/select"}],"responses":{"200":{"description":"The requested artist","content":{"application\/json":{"schema":{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"$ref":"#\/components\/schemas\/Artist"}}}}}},"404":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Artist was not found","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":404},"key":{"type":"string","description":"Unique error key","example":"notFound"},"message":{"type":"string","description":"A description of the error","example":"Artist was not found"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"notFound":{"summary":"notFound","value":{"error":{"code":404,"key":"notFound","message":"Artist was not found","details":[]},"result":null}}}}},"description":"&#9702; `notFound`: Artist was not found"},"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}},"patch":{"summary":"Update a specific artist by id","description":"This endpoint updates a specific artist by id\n\n<h3>Required role permissions:<\/h3>`$permittedTo('artists', 'update', 'artist')`","operationId":"artists.artist.update","tags":["Artists"],"security":[{"TokenAuth":[]}],"parameters":[{"$ref":"#\/components\/parameters\/id"}],"requestBody":{"description":"Artist information","required":true,"content":{"application\/json":{"schema":{"properties":{"name":{"description":"Name of the artist","type":"string","nullable":true},"genres":{"description":"Related genre ids","type":"array","items":{"type":"string","maxLength":6},"example":["{{idOfFirstGenre}}","{{idOfSecondGenre}}","{{idOfThirdGenre}}"]},"links":{"description":"External related links to the artist","type":"array","items":{"type":"object","properties":{"type":{"type":"string","description":"The type of the link (e.g. Apple Music, Spotify, Deezer)","enum":["apple_music","amazon_music","deezer","facebook","google_play","instagram","other","pandora","soundcloud","spotify","tidal","website","x","youtube"]},"value":{"type":"string","description":"The URL of the link","format":"uri"}}},"example":[{"type":"spotify","value":"https:\/\/open.spotify.com\/artist\/12345"},{"type":"apple_music","value":"https:\/\/music.apple.com\/artist\/xyz"},{"type":"website","value":"https:\/\/www.artistwebsite.com"}]},"avatar_url":{"type":"string","description":"An url to an avatar image of the artist"}}}}}},"responses":{"200":{"description":"The updated artist","content":{"application\/json":{"schema":{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"$ref":"#\/components\/schemas\/Artist"}}}}}},"403":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not allowed to perform this action","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":403},"key":{"type":"string","description":"Unique error key","example":"forbidden"},"message":{"type":"string","description":"A description of the error","example":"You are not allowed to perform this action"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"forbidden":{"summary":"forbidden","value":{"error":{"code":403,"key":"forbidden","message":"You are not allowed to perform this action","details":[]},"result":null}}}}},"description":"&#9702; `forbidden`: You are not allowed to perform this action"},"404":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Location was not found","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":404},"key":{"type":"string","description":"Unique error key","example":"notFound"},"message":{"type":"string","description":"A description of the error","example":"Location was not found"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"notFound":{"summary":"notFound","value":{"error":{"code":404,"key":"notFound","message":"Location was not found","details":[]},"result":null}}}}},"description":"&#9702; `notFound`: Location was not found"},"400":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"One or more of the given genre ids are invalid","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"invalidGenreID"},"message":{"type":"string","description":"A description of the error","example":"One or more of the given genre ids are invalid"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}},{"description":"One or more of the given links (or their types) are invalid","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"invalidLinksList"},"message":{"type":"string","description":"A description of the error","example":"One or more of the given links (or their types) are invalid"},"details":{"type":"object","description":"Additional error details (if available)"}}},"result":{"description":"No result","nullable":true,"default":null}}},{"description":"No data was provided","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"noData"},"message":{"type":"string","description":"A description of the error","example":"No data was provided"},"details":{"type":"object","description":"Additional error details (if available)"}}},"result":{"description":"No result","nullable":true,"default":null}}},{"description":"Missing or invalid fields: name, genres, links, avatar_url","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"inputDataInvalid"},"message":{"type":"string","description":"A description of the error","example":"Missing or invalid fields: name, genres, links, avatar_url"},"details":{"type":"object","description":"Additional error details (if available)","properties":{"invalid_fields":{"type":"array","description":"The missing or invalid fields","example":["name","genres","links","avatar_url"],"items":{"type":"string","enum":["name","genres","links","avatar_url"]}}}}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"invalidGenreID":{"summary":"invalidGenreID","value":{"error":{"code":400,"key":"invalidGenreID","message":"One or more of the given genre ids are invalid","details":[]},"result":null}},"invalidLinksList":{"summary":"invalidLinksList","value":{"error":{"code":400,"key":"invalidLinksList","message":"One or more of the given links (or their types) are invalid","details":[]},"result":null}},"noData":{"summary":"noData","value":{"error":{"code":400,"key":"noData","message":"No data was provided","details":[]},"result":null}},"inputDataInvalid":{"summary":"inputDataInvalid","value":{"error":{"code":400,"key":"inputDataInvalid","message":"Missing or invalid fields: name, genres, links, avatar_url","details":{"invalid_fields":["name","genres","links","avatar_url"]}},"result":null}}}}},"description":"&#9702; `invalidGenreID`: One or more of the given genre ids are invalid<br>&#9702; `invalidLinksList`: One or more of the given links (or their types) are invalid<br>&#9702; `noData`: No data was provided<br>&#9702; `inputDataInvalid`: Missing or invalid fields: name, genres, links, avatar_url"},"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}},"delete":{"summary":"Delete an artist","description":"This endpoint deletes an artist by its unique id if the artist is not in use\n\n<h3>Required role permissions:<\/h3>`$permittedTo('artists', 'delete', 'artist')`","operationId":"artists.artist.delete","tags":["Artists"],"security":[{"TokenAuth":[]}],"parameters":[{"$ref":"#\/components\/parameters\/id"}],"responses":{"200":{"description":"The deleted artist","content":{"application\/json":{"schema":{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"$ref":"#\/components\/schemas\/Artist"}}}}}},"403":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not allowed to perform this action","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":403},"key":{"type":"string","description":"Unique error key","example":"forbidden"},"message":{"type":"string","description":"A description of the error","example":"You are not allowed to perform this action"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"forbidden":{"summary":"forbidden","value":{"error":{"code":403,"key":"forbidden","message":"You are not allowed to perform this action","details":[]},"result":null}}}}},"description":"&#9702; `forbidden`: You are not allowed to perform this action"},"404":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Location was not found","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":404},"key":{"type":"string","description":"Unique error key","example":"notFound"},"message":{"type":"string","description":"A description of the error","example":"Location was not found"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"notFound":{"summary":"notFound","value":{"error":{"code":404,"key":"notFound","message":"Location was not found","details":[]},"result":null}}}}},"description":"&#9702; `notFound`: Location was not found"},"400":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not allowed to delete this artist (in use)","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"unauthorizedDeletion"},"message":{"type":"string","description":"A description of the error","example":"You are not allowed to delete this artist (in use)"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthorizedDeletion":{"summary":"unauthorizedDeletion","value":{"error":{"code":400,"key":"unauthorizedDeletion","message":"You are not allowed to delete this artist (in use)","details":[]},"result":null}}}}},"description":"&#9702; `unauthorizedDeletion`: You are not allowed to delete this artist (in use)"},"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}}},"\/v1\/artists\/{id}\/avatar":{"post":{"summary":"Upload a new artist avatar","description":"This endpoint will update the artist avatar of a specific artist by id. It replaces the current avatar with the new one.","operationId":"artists.avatar.update","tags":["Artists"],"security":[{"TokenAuth":[]}],"parameters":[{"$ref":"#\/components\/parameters\/id"}],"requestBody":{"description":"An image file (any format) under 100 MB","required":true,"content":{"multipart\/form-data":{"schema":{"type":"object","properties":{"image":{"type":"string","format":"binary"}}}}}},"responses":{"200":{"description":"The updated artist (with new avatar)","content":{"application\/json":{"schema":{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"$ref":"#\/components\/schemas\/Artist"}}}}}},"404":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Artist was not found","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":404},"key":{"type":"string","description":"Unique error key","example":"notFound"},"message":{"type":"string","description":"A description of the error","example":"Artist was not found"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"notFound":{"summary":"notFound","value":{"error":{"code":404,"key":"notFound","message":"Artist was not found","details":[]},"result":null}}}}},"description":"&#9702; `notFound`: Artist was not found"},"403":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not allowed to perform this action","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":403},"key":{"type":"string","description":"Unique error key","example":"forbidden"},"message":{"type":"string","description":"A description of the error","example":"You are not allowed to perform this action"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"forbidden":{"summary":"forbidden","value":{"error":{"code":403,"key":"forbidden","message":"You are not allowed to perform this action","details":[]},"result":null}}}}},"description":"&#9702; `forbidden`: You are not allowed to perform this action"},"400":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Wrong image format or missing file","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"fileError"},"message":{"type":"string","description":"A description of the error","example":"Wrong image format or missing file"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"fileError":{"summary":"fileError","value":{"error":{"code":400,"key":"fileError","message":"Wrong image format or missing file","details":[]},"result":null}}}}},"description":"&#9702; `fileError`: Wrong image format or missing file"},"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}},"delete":{"summary":"Delete a previously uploaded artist avatar","description":"This endpoint deletes a previously uploaded artist avatar by the artist id\n\n<h3>Required role permissions:<\/h3>`$permittedTo('artists', 'delete', 'avatar')`","operationId":"artists.avatar.delete","tags":["Artists"],"security":[{"TokenAuth":[]}],"parameters":[{"$ref":"#\/components\/parameters\/id"}],"responses":{"200":{"description":"The updated artist (without avatar)","content":{"application\/json":{"schema":{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"$ref":"#\/components\/schemas\/Artist"}}}}}},"404":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Artist was not found","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":404},"key":{"type":"string","description":"Unique error key","example":"notFound"},"message":{"type":"string","description":"A description of the error","example":"Artist was not found"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"notFound":{"summary":"notFound","value":{"error":{"code":404,"key":"notFound","message":"Artist was not found","details":[]},"result":null}}}}},"description":"&#9702; `notFound`: Artist was not found"},"403":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not allowed to perform this action","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":403},"key":{"type":"string","description":"Unique error key","example":"forbidden"},"message":{"type":"string","description":"A description of the error","example":"You are not allowed to perform this action"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"forbidden":{"summary":"forbidden","value":{"error":{"code":403,"key":"forbidden","message":"You are not allowed to perform this action","details":[]},"result":null}}}}},"description":"&#9702; `forbidden`: You are not allowed to perform this action"},"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}}},"\/v1\/genres":{"get":{"summary":"Get all genres","description":"This endpoint returns all genres","operationId":"genres.all.get","tags":["Genres"],"security":[{"TokenAuth":[]}],"parameters":[{"$ref":"#\/components\/parameters\/page"},{"$ref":"#\/components\/parameters\/limit"},{"$ref":"#\/components\/parameters\/select"},{"$ref":"#\/components\/parameters\/orderBy"},{"$ref":"#\/components\/parameters\/filterBy"}],"responses":{"200":{"description":"All genres","content":{"application\/json":{"schema":{"oneOf":[{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"description":"All genres","type":"object","additionalProperties":{"$ref":"#\/components\/schemas\/Genre"}}},"description":"All genres"},{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"description":"Paginated result","type":"object","properties":{"objects":{"description":"All genres","type":"object","additionalProperties":{"$ref":"#\/components\/schemas\/Genre"}},"pagination":{"type":"object","description":"Pagination information","properties":{"page":{"type":"integer","description":"Current page","example":1},"pages":{"type":"integer","description":"Total pages","example":10},"objects":{"type":"integer","description":"Total number of objects","example":100}}}}}},"description":"All genres (paginated if `limit` is set in query params)"}]}}}},"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}},"post":{"summary":"Create a new genre","description":"This endpoint creates a new genre (only available for root users)","operationId":"genres.genre.create","tags":["Genres"],"security":[{"TokenAuth":[]}],"requestBody":{"description":"Genre details","required":true,"content":{"application\/json":{"schema":{"required":["name"],"properties":{"name":{"description":"Name of the genre","type":"string","nullable":true}}}}}},"responses":{"200":{"description":"The created genre","content":{"application\/json":{"schema":{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"$ref":"#\/components\/schemas\/Genre"}}}}}},"403":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not allowed to perform this action","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":403},"key":{"type":"string","description":"Unique error key","example":"forbidden"},"message":{"type":"string","description":"A description of the error","example":"You are not allowed to perform this action"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"forbidden":{"summary":"forbidden","value":{"error":{"code":403,"key":"forbidden","message":"You are not allowed to perform this action","details":[]},"result":null}}}}},"description":"&#9702; `forbidden`: You are not allowed to perform this action"},"400":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Missing or invalid fields: name","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"inputDataInvalid"},"message":{"type":"string","description":"A description of the error","example":"Missing or invalid fields: name"},"details":{"type":"object","description":"Additional error details","properties":{"invalid_fields":{"type":"array","description":"The missing or invalid fields","example":["name"],"items":{"type":"string","enum":["name"]}}}}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"inputDataInvalid":{"summary":"inputDataInvalid","value":{"error":{"code":400,"key":"inputDataInvalid","message":"Missing or invalid fields: name","details":{"invalid_fields":["name"]}},"result":null}}}}},"description":"&#9702; `inputDataInvalid`: Missing or invalid fields: name"},"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}}},"\/v1\/genres\/{id}":{"get":{"summary":"Get a specific genre by id","description":"This endpoint returns a specific genre by id","operationId":"genres.genre.get","tags":["Genres"],"security":[{"TokenAuth":[]}],"parameters":[{"$ref":"#\/components\/parameters\/id"},{"$ref":"#\/components\/parameters\/select"}],"responses":{"200":{"description":"The requested genre","content":{"application\/json":{"schema":{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"$ref":"#\/components\/schemas\/Genre"}}}}}},"404":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Genre was not found","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":404},"key":{"type":"string","description":"Unique error key","example":"notFound"},"message":{"type":"string","description":"A description of the error","example":"Genre was not found"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"notFound":{"summary":"notFound","value":{"error":{"code":404,"key":"notFound","message":"Genre was not found","details":[]},"result":null}}}}},"description":"&#9702; `notFound`: Genre was not found"},"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}},"patch":{"summary":"Update a genre by id","description":"This endpoint updates a genre by id\n\n<h3>Required role permissions:<\/h3>`$permittedTo('genres', 'update', 'genre')`","operationId":"genres.genre.update","tags":["Genres"],"security":[{"TokenAuth":[]}],"parameters":[{"$ref":"#\/components\/parameters\/id"}],"requestBody":{"description":"Genre details","required":true,"content":{"application\/json":{"schema":{"properties":{"name":{"description":"Name of the genre","type":"string","nullable":true}}}}}},"responses":{"200":{"description":"The updated genre","content":{"application\/json":{"schema":{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"$ref":"#\/components\/schemas\/Genre"}}}}}},"404":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Genre was not found","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":404},"key":{"type":"string","description":"Unique error key","example":"notFound"},"message":{"type":"string","description":"A description of the error","example":"Genre was not found"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"notFound":{"summary":"notFound","value":{"error":{"code":404,"key":"notFound","message":"Genre was not found","details":[]},"result":null}}}}},"description":"&#9702; `notFound`: Genre was not found"},"403":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not allowed to perform this action","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":403},"key":{"type":"string","description":"Unique error key","example":"forbidden"},"message":{"type":"string","description":"A description of the error","example":"You are not allowed to perform this action"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"forbidden":{"summary":"forbidden","value":{"error":{"code":403,"key":"forbidden","message":"You are not allowed to perform this action","details":[]},"result":null}}}}},"description":"&#9702; `forbidden`: You are not allowed to perform this action"},"400":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Missing or invalid fields: name","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"inputDataInvalid"},"message":{"type":"string","description":"A description of the error","example":"Missing or invalid fields: name"},"details":{"type":"object","description":"Additional error details","properties":{"invalid_fields":{"type":"array","description":"The missing or invalid fields","example":["name"],"items":{"type":"string","enum":["name"]}}}}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"inputDataInvalid":{"summary":"inputDataInvalid","value":{"error":{"code":400,"key":"inputDataInvalid","message":"Missing or invalid fields: name","details":{"invalid_fields":["name"]}},"result":null}}}}},"description":"&#9702; `inputDataInvalid`: Missing or invalid fields: name"},"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}},"delete":{"summary":"Delete a specific genre by id","description":"This endpoint deletes a specific genre by id\n\n<h3>Required role permissions:<\/h3>`$permittedTo('genres', 'delete', 'genre')`","operationId":"genres.genre.delete","tags":["Genres"],"security":[{"TokenAuth":[]}],"parameters":[{"$ref":"#\/components\/parameters\/id"}],"responses":{"200":{"description":"The deleted genre","content":{"application\/json":{"schema":{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"$ref":"#\/components\/schemas\/Genre"}}}}}},"404":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Genre was not found","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":404},"key":{"type":"string","description":"Unique error key","example":"notFound"},"message":{"type":"string","description":"A description of the error","example":"Genre was not found"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"notFound":{"summary":"notFound","value":{"error":{"code":404,"key":"notFound","message":"Genre was not found","details":[]},"result":null}}}}},"description":"&#9702; `notFound`: Genre was not found"},"403":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not allowed to perform this action","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":403},"key":{"type":"string","description":"Unique error key","example":"forbidden"},"message":{"type":"string","description":"A description of the error","example":"You are not allowed to perform this action"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"forbidden":{"summary":"forbidden","value":{"error":{"code":403,"key":"forbidden","message":"You are not allowed to perform this action","details":[]},"result":null}}}}},"description":"&#9702; `forbidden`: You are not allowed to perform this action"},"400":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not allowed to delete this genre (in use)","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"unauthorizedDeletion"},"message":{"type":"string","description":"A description of the error","example":"You are not allowed to delete this genre (in use)"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthorizedDeletion":{"summary":"unauthorizedDeletion","value":{"error":{"code":400,"key":"unauthorizedDeletion","message":"You are not allowed to delete this genre (in use)","details":[]},"result":null}}}}},"description":"&#9702; `unauthorizedDeletion`: You are not allowed to delete this genre (in use)"},"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}}},"\/v1\/genres\/{id}\/logo":{"post":{"summary":"Upload a new genre logo","description":"This endpoint will update the logo of a genre by id\n\n<h3>Required role permissions:<\/h3>`$permittedTo('genres', 'update', 'logo')`","operationId":"genres.logo.update","tags":["Genres"],"security":[{"TokenAuth":[]}],"parameters":[{"$ref":"#\/components\/parameters\/id"}],"requestBody":{"description":"An image file (any format) under 100 MB","required":true,"content":{"multipart\/form-data":{"schema":{"type":"object","properties":{"image":{"type":"string","format":"binary"}}}}}},"responses":{"200":{"description":"The updated genre (with new logo)","content":{"application\/json":{"schema":{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"$ref":"#\/components\/schemas\/Genre"}}}}}},"404":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Genre was not found","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":404},"key":{"type":"string","description":"Unique error key","example":"notFound"},"message":{"type":"string","description":"A description of the error","example":"Genre was not found"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"notFound":{"summary":"notFound","value":{"error":{"code":404,"key":"notFound","message":"Genre was not found","details":[]},"result":null}}}}},"description":"&#9702; `notFound`: Genre was not found"},"403":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not allowed to perform this action","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":403},"key":{"type":"string","description":"Unique error key","example":"forbidden"},"message":{"type":"string","description":"A description of the error","example":"You are not allowed to perform this action"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"forbidden":{"summary":"forbidden","value":{"error":{"code":403,"key":"forbidden","message":"You are not allowed to perform this action","details":[]},"result":null}}}}},"description":"&#9702; `forbidden`: You are not allowed to perform this action"},"400":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Wrong image format or missing file","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"fileError"},"message":{"type":"string","description":"A description of the error","example":"Wrong image format or missing file"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"fileError":{"summary":"fileError","value":{"error":{"code":400,"key":"fileError","message":"Wrong image format or missing file","details":[]},"result":null}}}}},"description":"&#9702; `fileError`: Wrong image format or missing file"},"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}},"delete":{"summary":"Delete a previously uploaded genre logo","description":"This endpoint deletes a previously uploaded genre logo by the genre id\n\n<h3>Required role permissions:<\/h3>`$permittedTo('genres', 'delete', 'logo')`","operationId":"genres.logo.delete","tags":["Genres"],"security":[{"TokenAuth":[]}],"parameters":[{"$ref":"#\/components\/parameters\/id"}],"responses":{"200":{"description":"The updated genre (without logo)","content":{"application\/json":{"schema":{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"$ref":"#\/components\/schemas\/Genre"}}}}}},"404":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Genre was not found","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":404},"key":{"type":"string","description":"Unique error key","example":"notFound"},"message":{"type":"string","description":"A description of the error","example":"Genre was not found"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"notFound":{"summary":"notFound","value":{"error":{"code":404,"key":"notFound","message":"Genre was not found","details":[]},"result":null}}}}},"description":"&#9702; `notFound`: Genre was not found"},"403":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not allowed to perform this action","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":403},"key":{"type":"string","description":"Unique error key","example":"forbidden"},"message":{"type":"string","description":"A description of the error","example":"You are not allowed to perform this action"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"forbidden":{"summary":"forbidden","value":{"error":{"code":403,"key":"forbidden","message":"You are not allowed to perform this action","details":[]},"result":null}}}}},"description":"&#9702; `forbidden`: You are not allowed to perform this action"},"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}}},"\/v1\/guestpresets":{"get":{"summary":"Get all guest presets","description":"This endpoint returns all guest presets (depending on the user's permissions)\n\n<h3>Required role permissions:<\/h3>`$permittedTo('guestpresets', 'get', 'all')`","operationId":"guestpresets.all.get","tags":["GuestPresets"],"security":[{"TokenAuth":[]}],"parameters":[{"$ref":"#\/components\/parameters\/page"},{"$ref":"#\/components\/parameters\/limit"},{"$ref":"#\/components\/parameters\/select"},{"$ref":"#\/components\/parameters\/orderBy"},{"$ref":"#\/components\/parameters\/filterBy"}],"responses":{"200":{"description":"All guest presets","content":{"application\/json":{"schema":{"oneOf":[{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"description":"All guest presets","type":"object","additionalProperties":{"$ref":"#\/components\/schemas\/GuestPreset"}}},"description":"All guest presets"},{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"description":"Paginated result","type":"object","properties":{"objects":{"description":"All guest presets","type":"object","additionalProperties":{"$ref":"#\/components\/schemas\/GuestPreset"}},"pagination":{"type":"object","description":"Pagination information","properties":{"page":{"type":"integer","description":"Current page","example":1},"pages":{"type":"integer","description":"Total pages","example":10},"objects":{"type":"integer","description":"Total number of objects","example":100}}}}}},"description":"All guest presets (paginated if `limit` is set in query params)"}]}}}},"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}},"post":{"summary":"Create a new guest preset","description":"This endpoint is creates a new guest preset\n\n<h3>Required role permissions:<\/h3>`$permittedTo('guestpresets', 'create', 'guestpreset')`","operationId":"guestpresets.guestpreset.create","tags":["GuestPresets"],"security":[{"TokenAuth":[]}],"requestBody":{"description":"Guest preset details","required":true,"content":{"application\/json":{"schema":{"required":["name"],"properties":{"name":{"description":"Name of the guest preset","type":"string"},"description":{"description":"Description of the guest preset","type":"string"},"guests":{"description":"Guests of the guest preset","type":"array","items":{"type":"object","properties":{"first_name":{"description":"First name of the guest","type":"string"},"last_name":{"description":"Last name of the guest","type":"string"},"email":{"description":"Email of the guest","type":"string"}}}},"organization":{"type":"string","description":"A unique organization identifier that owns the guest preset (for root access only)"}}}}}},"responses":{"200":{"description":"The created guest preset","content":{"application\/json":{"schema":{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"$ref":"#\/components\/schemas\/GuestPreset"}}}}}},"404":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Organization was not found","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":404},"key":{"type":"string","description":"Unique error key","example":"invalidOrganization"},"message":{"type":"string","description":"A description of the error","example":"Organization was not found"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"invalidOrganization":{"summary":"invalidOrganization","value":{"error":{"code":404,"key":"invalidOrganization","message":"Organization was not found","details":[]},"result":null}}}}},"description":"&#9702; `invalidOrganization`: Organization was not found"},"400":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Invalid guests structure","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"invalidGuestsStructure"},"message":{"type":"string","description":"A description of the error","example":"Invalid guests structure"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}},{"description":"Missing or invalid fields: name","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"inputDataInvalid"},"message":{"type":"string","description":"A description of the error","example":"Missing or invalid fields: name"},"details":{"type":"object","description":"Additional error details (if available)","properties":{"invalid_fields":{"type":"array","description":"The missing or invalid fields","example":["name"],"items":{"type":"string","enum":["name"]}}}}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"invalidGuestsStructure":{"summary":"invalidGuestsStructure","value":{"error":{"code":400,"key":"invalidGuestsStructure","message":"Invalid guests structure","details":[]},"result":null}},"inputDataInvalid":{"summary":"inputDataInvalid","value":{"error":{"code":400,"key":"inputDataInvalid","message":"Missing or invalid fields: name","details":{"invalid_fields":["name"]}},"result":null}}}}},"description":"&#9702; `invalidGuestsStructure`: Invalid guests structure<br>&#9702; `inputDataInvalid`: Missing or invalid fields: name"},"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}}},"\/v1\/guestpresets\/{id}":{"get":{"summary":"Get a specific guest preset by id","description":"This endpoint returns a specific guest preset by its unique id\n\n<h3>Required role permissions:<\/h3>`$permittedTo('guestpresets', 'get', 'guestpreset')`","operationId":"guestpresets.guestpreset.get","tags":["GuestPresets"],"security":[{"TokenAuth":[]}],"parameters":[{"$ref":"#\/components\/parameters\/id"},{"$ref":"#\/components\/parameters\/select"}],"responses":{"200":{"description":"The requested guest preset","content":{"application\/json":{"schema":{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"$ref":"#\/components\/schemas\/GuestPreset"}}}}}},"404":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Guest preset was not found","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":404},"key":{"type":"string","description":"Unique error key","example":"notFound"},"message":{"type":"string","description":"A description of the error","example":"Guest preset was not found"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"notFound":{"summary":"notFound","value":{"error":{"code":404,"key":"notFound","message":"Guest preset was not found","details":[]},"result":null}}}}},"description":"&#9702; `notFound`: Guest preset was not found"},"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}},"patch":{"summary":"Update a guest preset by id","description":"This endpoint updates a guest preset by its unique id\n\n<h3>Required role permissions:<\/h3>`$permittedTo('guestpresets', 'update', 'guestpreset')`","operationId":"guestpresets.guestpreset.update","tags":["GuestPresets"],"security":[{"TokenAuth":[]}],"parameters":[{"$ref":"#\/components\/parameters\/id"}],"requestBody":{"description":"Guest preset details","required":true,"content":{"application\/json":{"schema":{"properties":{"name":{"description":"Name of the guest preset","type":"string"},"description":{"description":"Description of the guest preset","type":"string"},"guests":{"description":"Guests of the guest preset","type":"array","items":{"type":"object","properties":{"first_name":{"description":"First name of the guest","type":"string"},"last_name":{"description":"Last name of the guest","type":"string"},"email":{"description":"Email of the guest","type":"string"}}}},"organization":{"type":"string","description":"A unique organization identifier that owns the guest preset (for root access only)"}}}}}},"responses":{"200":{"description":"The updated guest preset","content":{"application\/json":{"schema":{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"$ref":"#\/components\/schemas\/GuestPreset"}}}}}},"400":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"No data was provided","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"noData"},"message":{"type":"string","description":"A description of the error","example":"No data was provided"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}},{"description":"Invalid guests structure","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"invalidGuestsStructure"},"message":{"type":"string","description":"A description of the error","example":"Invalid guests structure"},"details":{"type":"object","description":"Additional error details (if available)"}}},"result":{"description":"No result","nullable":true,"default":null}}},{"description":"Missing or invalid fields: name, description, guests, organization","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"inputDataInvalid"},"message":{"type":"string","description":"A description of the error","example":"Missing or invalid fields: name, description, guests, organization"},"details":{"type":"object","description":"Additional error details (if available)","properties":{"invalid_fields":{"type":"array","description":"The missing or invalid fields","example":["name","description","guests","organization"],"items":{"type":"string","enum":["name","description","guests","organization"]}}}}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"noData":{"summary":"noData","value":{"error":{"code":400,"key":"noData","message":"No data was provided","details":[]},"result":null}},"invalidGuestsStructure":{"summary":"invalidGuestsStructure","value":{"error":{"code":400,"key":"invalidGuestsStructure","message":"Invalid guests structure","details":[]},"result":null}},"inputDataInvalid":{"summary":"inputDataInvalid","value":{"error":{"code":400,"key":"inputDataInvalid","message":"Missing or invalid fields: name, description, guests, organization","details":{"invalid_fields":["name","description","guests","organization"]}},"result":null}}}}},"description":"&#9702; `noData`: No data was provided<br>&#9702; `invalidGuestsStructure`: Invalid guests structure<br>&#9702; `inputDataInvalid`: Missing or invalid fields: name, description, guests, organization"},"404":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Guest preset was not found","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":404},"key":{"type":"string","description":"Unique error key","example":"notFound"},"message":{"type":"string","description":"A description of the error","example":"Guest preset was not found"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}},{"description":"Organization was not found","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":404},"key":{"type":"string","description":"Unique error key","example":"invalidOrganization"},"message":{"type":"string","description":"A description of the error","example":"Organization was not found"},"details":{"type":"object","description":"Additional error details (if available)"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"notFound":{"summary":"notFound","value":{"error":{"code":404,"key":"notFound","message":"Guest preset was not found","details":[]},"result":null}},"invalidOrganization":{"summary":"invalidOrganization","value":{"error":{"code":404,"key":"invalidOrganization","message":"Organization was not found","details":[]},"result":null}}}}},"description":"&#9702; `notFound`: Guest preset was not found<br>&#9702; `invalidOrganization`: Organization was not found"},"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}},"delete":{"summary":"Delete a guest preset by id","description":"This endpoint deletes a guest preset by its unique id\n\n<h3>Required role permissions:<\/h3>`$permittedTo('guestpresets', 'delete', 'guestpreset')`","operationId":"guestpresets.guestpreset.delete","tags":["GuestPresets"],"security":[{"TokenAuth":[]}],"parameters":[{"$ref":"#\/components\/parameters\/id"}],"responses":{"200":{"description":"The deleted guest preset","content":{"application\/json":{"schema":{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"$ref":"#\/components\/schemas\/GuestPreset"}}}}}},"404":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Guestlist was not found","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":404},"key":{"type":"string","description":"Unique error key","example":"notFound"},"message":{"type":"string","description":"A description of the error","example":"Guestlist was not found"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"notFound":{"summary":"notFound","value":{"error":{"code":404,"key":"notFound","message":"Guestlist was not found","details":[]},"result":null}}}}},"description":"&#9702; `notFound`: Guestlist was not found"},"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}}},"\/v1\/guestpresets\/prepare_import":{"post":{"summary":"Prepare an import","description":"Analyze a CSV import to find the right data columns and return the prepared data as JSON","operationId":"guestpresets.prepare.import.get","tags":["GuestPresets"],"security":[{"TokenAuth":[]}],"requestBody":{"description":"Import data","required":true,"content":{"application\/json":{"schema":{"required":["csv"],"properties":{"csv":{"type":"string","description":"A CSV string to analyze and prepare"}}}}}},"responses":{"200":{"description":"Object containing the analyzed import data","content":{"application\/json":{"schema":{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"description":"Object containing the analyzed import data","type":"array","items":{"type":"object","properties":{"first_name":{"type":"string","description":"The first name"},"last_name":{"type":"string","description":"The last name"},"email":{"type":"string","description":"The email address"}}}}}}}}},"400":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"The import data is invalid or could not be analyzed","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"invalid"},"message":{"type":"string","description":"A description of the error","example":"The import data is invalid or could not be analyzed"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}},{"description":"Missing or invalid fields: csv","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"inputDataInvalid"},"message":{"type":"string","description":"A description of the error","example":"Missing or invalid fields: csv"},"details":{"type":"object","description":"Additional error details (if available)","properties":{"invalid_fields":{"type":"array","description":"The missing or invalid fields","example":["csv"],"items":{"type":"string","enum":["csv"]}}}}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"invalid":{"summary":"invalid","value":{"error":{"code":400,"key":"invalid","message":"The import data is invalid or could not be analyzed","details":[]},"result":null}},"inputDataInvalid":{"summary":"inputDataInvalid","value":{"error":{"code":400,"key":"inputDataInvalid","message":"Missing or invalid fields: csv","details":{"invalid_fields":["csv"]}},"result":null}}}}},"description":"&#9702; `invalid`: The import data is invalid or could not be analyzed<br>&#9702; `inputDataInvalid`: Missing or invalid fields: csv"},"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}}},"\/v1\/guestlists":{"get":{"summary":"Get all guestlists","description":"This endpoint returns all guestlists (depending on the user's permissions)\n\nTo filter out event related guestlists, use the `filterBy` parameter with `event=null`\n\n<h3>Required role permissions:<\/h3>`$permittedTo('guestlists', 'get', 'all')`","operationId":"guestlists.all.get","tags":["Guestlists"],"security":[{"TokenAuth":[]}],"parameters":[{"$ref":"#\/components\/parameters\/page"},{"$ref":"#\/components\/parameters\/limit"},{"$ref":"#\/components\/parameters\/select"},{"$ref":"#\/components\/parameters\/orderBy"},{"$ref":"#\/components\/parameters\/filterBy"}],"responses":{"200":{"description":"All guestlists","content":{"application\/json":{"schema":{"oneOf":[{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"description":"All guestlists","type":"object","additionalProperties":{"$ref":"#\/components\/schemas\/Guestlist"}}},"description":"All guestlists"},{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"description":"Paginated result","type":"object","properties":{"objects":{"description":"All guestlists","type":"object","additionalProperties":{"$ref":"#\/components\/schemas\/Guestlist"}},"pagination":{"type":"object","description":"Pagination information","properties":{"page":{"type":"integer","description":"Current page","example":1},"pages":{"type":"integer","description":"Total pages","example":10},"objects":{"type":"integer","description":"Total number of objects","example":100}}}}}},"description":"All guestlists (paginated if `limit` is set in query params)"}]}}}},"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}},"post":{"summary":"Create a new guestlist","description":"This endpoint is creates a new guestlist\n\n<h3>Required role permissions:<\/h3>`$permittedTo('guestlists', 'create', 'guestlist')`","operationId":"guestlists.guestlist.create","tags":["Guestlists"],"security":[{"TokenAuth":[]}],"requestBody":{"description":"Guestlist details","required":true,"content":{"application\/json":{"schema":{"required":["name","description","description_small"],"properties":{"event":{"description":"If the guestlist is related to an event, this is the event ID","type":"string"},"name":{"description":"Name of the guestlist","type":"string"},"description":{"description":"Description of the guestlist","type":"string"},"description_small":{"description":"Small description of the guestlist","type":"string"},"organization":{"type":"string","description":"A unique organization identifier that owns the guestlist (for root access only)"}}}}}},"responses":{"200":{"description":"The created guestlist","content":{"application\/json":{"schema":{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"$ref":"#\/components\/schemas\/Guestlist"}}}}}},"404":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Organization was not found","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":404},"key":{"type":"string","description":"Unique error key","example":"invalidOrganization"},"message":{"type":"string","description":"A description of the error","example":"Organization was not found"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}},{"description":"Related event was not found","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":404},"key":{"type":"string","description":"Unique error key","example":"invalidEvent"},"message":{"type":"string","description":"A description of the error","example":"Related event was not found"},"details":{"type":"object","description":"Additional error details (if available)"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"invalidOrganization":{"summary":"invalidOrganization","value":{"error":{"code":404,"key":"invalidOrganization","message":"Organization was not found","details":[]},"result":null}},"invalidEvent":{"summary":"invalidEvent","value":{"error":{"code":404,"key":"invalidEvent","message":"Related event was not found","details":[]},"result":null}}}}},"description":"&#9702; `invalidOrganization`: Organization was not found<br>&#9702; `invalidEvent`: Related event was not found"},"400":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Missing or invalid fields: name, description, description_small","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"inputDataInvalid"},"message":{"type":"string","description":"A description of the error","example":"Missing or invalid fields: name, description, description_small"},"details":{"type":"object","description":"Additional error details","properties":{"invalid_fields":{"type":"array","description":"The missing or invalid fields","example":["name","description","description_small"],"items":{"type":"string","enum":["name","description","description_small"]}}}}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"inputDataInvalid":{"summary":"inputDataInvalid","value":{"error":{"code":400,"key":"inputDataInvalid","message":"Missing or invalid fields: name, description, description_small","details":{"invalid_fields":["name","description","description_small"]}},"result":null}}}}},"description":"&#9702; `inputDataInvalid`: Missing or invalid fields: name, description, description_small"},"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}}},"\/v1\/guestlists\/{id}":{"get":{"summary":"Get a specific guestlist by id","description":"This endpoint returns a specific guestlist by its unique id\n\n<h3>Required role permissions:<\/h3>`$permittedTo('guestlists', 'get', 'guestlist')`","operationId":"guestlists.guestlist.get","tags":["Guestlists"],"security":[{"TokenAuth":[]}],"parameters":[{"$ref":"#\/components\/parameters\/id"},{"$ref":"#\/components\/parameters\/select"}],"responses":{"200":{"description":"The requested guestlist","content":{"application\/json":{"schema":{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"$ref":"#\/components\/schemas\/Guestlist"}}}}}},"404":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Guestlist was not found","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":404},"key":{"type":"string","description":"Unique error key","example":"notFound"},"message":{"type":"string","description":"A description of the error","example":"Guestlist was not found"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"notFound":{"summary":"notFound","value":{"error":{"code":404,"key":"notFound","message":"Guestlist was not found","details":[]},"result":null}}}}},"description":"&#9702; `notFound`: Guestlist was not found"},"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}},"patch":{"summary":"Update a guestlist by id","description":"This endpoint updates a guestlist by its unique id\n\n<h3>Required role permissions:<\/h3>`$permittedTo('guestlists', 'update', 'guestlist')`","operationId":"guestlists.guestlist.update","tags":["Guestlists"],"security":[{"TokenAuth":[]}],"parameters":[{"$ref":"#\/components\/parameters\/id"}],"requestBody":{"description":"Guestlist details","required":true,"content":{"application\/json":{"schema":{"properties":{"event":{"description":"If the guestlist is related to an event, this is the event ID","type":"string"},"name":{"description":"Name of the guestlist","type":"string"},"description":{"description":"Description of the guestlist","type":"string"},"description_small":{"description":"Small description of the guestlist","type":"string"},"organization":{"type":"string","description":"A unique organization identifier that owns the guestlist (for root access only)"}}}}}},"responses":{"200":{"description":"The updated guestlist","content":{"application\/json":{"schema":{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"$ref":"#\/components\/schemas\/Guestlist"}}}}}},"400":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"No data was provided","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"noData"},"message":{"type":"string","description":"A description of the error","example":"No data was provided"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}},{"description":"Missing or invalid fields: event, name, description, description_small, organization","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"inputDataInvalid"},"message":{"type":"string","description":"A description of the error","example":"Missing or invalid fields: event, name, description, description_small, organization"},"details":{"type":"object","description":"Additional error details (if available)","properties":{"invalid_fields":{"type":"array","description":"The missing or invalid fields","example":["event","name","description","description_small","organization"],"items":{"type":"string","enum":["event","name","description","description_small","organization"]}}}}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"noData":{"summary":"noData","value":{"error":{"code":400,"key":"noData","message":"No data was provided","details":[]},"result":null}},"inputDataInvalid":{"summary":"inputDataInvalid","value":{"error":{"code":400,"key":"inputDataInvalid","message":"Missing or invalid fields: event, name, description, description_small, organization","details":{"invalid_fields":["event","name","description","description_small","organization"]}},"result":null}}}}},"description":"&#9702; `noData`: No data was provided<br>&#9702; `inputDataInvalid`: Missing or invalid fields: event, name, description, description_small, organization"},"404":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Guestlist was not found","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":404},"key":{"type":"string","description":"Unique error key","example":"notFound"},"message":{"type":"string","description":"A description of the error","example":"Guestlist was not found"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}},{"description":"Organization was not found","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":404},"key":{"type":"string","description":"Unique error key","example":"invalidOrganization"},"message":{"type":"string","description":"A description of the error","example":"Organization was not found"},"details":{"type":"object","description":"Additional error details (if available)"}}},"result":{"description":"No result","nullable":true,"default":null}}},{"description":"Related event was not found","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":404},"key":{"type":"string","description":"Unique error key","example":"invalidEvent"},"message":{"type":"string","description":"A description of the error","example":"Related event was not found"},"details":{"type":"object","description":"Additional error details (if available)"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"notFound":{"summary":"notFound","value":{"error":{"code":404,"key":"notFound","message":"Guestlist was not found","details":[]},"result":null}},"invalidOrganization":{"summary":"invalidOrganization","value":{"error":{"code":404,"key":"invalidOrganization","message":"Organization was not found","details":[]},"result":null}},"invalidEvent":{"summary":"invalidEvent","value":{"error":{"code":404,"key":"invalidEvent","message":"Related event was not found","details":[]},"result":null}}}}},"description":"&#9702; `notFound`: Guestlist was not found<br>&#9702; `invalidOrganization`: Organization was not found<br>&#9702; `invalidEvent`: Related event was not found"},"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}},"delete":{"summary":"Delete a guestlist by id","description":"This endpoint deletes a guestlist by its unique id. If the guestlist is used in tickets, the ticket category will be removed.\n\n<h3>Required role permissions:<\/h3>`$permittedTo('guestlists', 'delete', 'guestlist')`","operationId":"guestlists.guestlist.delete","tags":["Guestlists"],"security":[{"TokenAuth":[]}],"parameters":[{"$ref":"#\/components\/parameters\/id"}],"responses":{"200":{"description":"The deleted guestlist","content":{"application\/json":{"schema":{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"$ref":"#\/components\/schemas\/Guestlist"}}}}}},"404":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Guestlist was not found","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":404},"key":{"type":"string","description":"Unique error key","example":"notFound"},"message":{"type":"string","description":"A description of the error","example":"Guestlist was not found"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"notFound":{"summary":"notFound","value":{"error":{"code":404,"key":"notFound","message":"Guestlist was not found","details":[]},"result":null}}}}},"description":"&#9702; `notFound`: Guestlist was not found"},"400":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Guestlist is in use","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"guestlistInUse"},"message":{"type":"string","description":"A description of the error","example":"Guestlist is in use"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"guestlistInUse":{"summary":"guestlistInUse","value":{"error":{"code":400,"key":"guestlistInUse","message":"Guestlist is in use","details":[]},"result":null}}}}},"description":"&#9702; `guestlistInUse`: Guestlist is in use"},"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}}},"\/v1\/guests":{"get":{"summary":"Get all guests\/tickets","description":"This endpoint returns all guests\/tickets (depending on the user's permissions)\n\n<h3>Required role permissions:<\/h3>`$permittedTo('guests', 'get', 'all')`","operationId":"guests.all.get","tags":["Guests"],"security":[{"TokenAuth":[]}],"parameters":[{"$ref":"#\/components\/parameters\/page"},{"$ref":"#\/components\/parameters\/limit"},{"$ref":"#\/components\/parameters\/select"},{"$ref":"#\/components\/parameters\/orderBy"},{"$ref":"#\/components\/parameters\/filterBy"}],"responses":{"200":{"description":"All guests","content":{"application\/json":{"schema":{"oneOf":[{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"description":"All guests","type":"object","additionalProperties":{"$ref":"#\/components\/schemas\/Guest"}}},"description":"All guests"},{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"description":"Paginated result","type":"object","properties":{"objects":{"description":"All guests","type":"object","additionalProperties":{"$ref":"#\/components\/schemas\/Guest"}},"pagination":{"type":"object","description":"Pagination information","properties":{"page":{"type":"integer","description":"Current page","example":1},"pages":{"type":"integer","description":"Total pages","example":10},"objects":{"type":"integer","description":"Total number of objects","example":100}}}}}},"description":"All guests (paginated if `limit` is set in query params)"}]}}}},"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}},"post":{"summary":"Create a new guest","description":"This endpoint creates a new guest for a specific event and sends tickets via email (if an email is set)\n\n<h3>Required role permissions:<\/h3>`$permittedTo('guests', 'create', 'guest')`","operationId":"guests.guest.create","tags":["Guests"],"security":[{"TokenAuth":[]}],"requestBody":{"description":"Guest details","required":true,"content":{"application\/json":{"schema":{"required":["event","categories","date","first_name","last_name"],"properties":{"group":{"description":"A unique identifier for the guest group","type":"string"},"first_name":{"description":"First name of the guest","type":"string"},"last_name":{"description":"Last name of the guest","type":"string"},"email":{"description":"Email of the guest","type":"string","format":"email"},"event":{"description":"The event the guest is for","type":"string"},"purchase":{"description":"The purchase identifier of the guest. If empty the guest is a guestlist guest (manually added)","type":"string","nullable":true},"phase":{"description":"The purchase phase id of the guest","type":"string","nullable":true},"categories":{"description":"The id of the ticket category or guestlist category (comma separated if multiple)","type":"string"},"date":{"description":"The date id of the ticket","type":"string"},"reserved":{"description":"Indicates if the guest ticket is reserved","type":"boolean","default":true},"dates":{"type":"array","description":"Multiple dates, if more than one ticket should be created","items":{"type":"string"}},"tickets":{"type":"number","description":"Number of tickets to create","default":1,"minimum":1},"send_tickets":{"type":"boolean","description":"Send tickets via email (if an email is set)","default":false}}}}}},"responses":{"200":{"description":"The created guest. If multiple tickets were created, the first guest of the group is returned.","content":{"application\/json":{"schema":{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"$ref":"#\/components\/schemas\/Guest"}}}}}},"404":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Purchase was not found","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":404},"key":{"type":"string","description":"Unique error key","example":"invalidPurchase"},"message":{"type":"string","description":"A description of the error","example":"Purchase was not found"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}},{"description":"Event was not found","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":404},"key":{"type":"string","description":"Unique error key","example":"invalidEvent"},"message":{"type":"string","description":"A description of the error","example":"Event was not found"},"details":{"type":"object","description":"Additional error details (if available)"}}},"result":{"description":"No result","nullable":true,"default":null}}},{"description":"Date or dates was not found or are invalid","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":404},"key":{"type":"string","description":"Unique error key","example":"invalidDate"},"message":{"type":"string","description":"A description of the error","example":"Date or dates was not found or are invalid"},"details":{"type":"object","description":"Additional error details (if available)"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"invalidPurchase":{"summary":"invalidPurchase","value":{"error":{"code":404,"key":"invalidPurchase","message":"Purchase was not found","details":[]},"result":null}},"invalidEvent":{"summary":"invalidEvent","value":{"error":{"code":404,"key":"invalidEvent","message":"Event was not found","details":[]},"result":null}},"invalidDate":{"summary":"invalidDate","value":{"error":{"code":404,"key":"invalidDate","message":"Date or dates was not found or are invalid","details":[]},"result":null}}}}},"description":"&#9702; `invalidPurchase`: Purchase was not found<br>&#9702; `invalidEvent`: Event was not found<br>&#9702; `invalidDate`: Date or dates was not found or are invalid"},"400":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Missing or invalid fields: event, categories, date, first_name, last_name","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"inputDataInvalid"},"message":{"type":"string","description":"A description of the error","example":"Missing or invalid fields: event, categories, date, first_name, last_name"},"details":{"type":"object","description":"Additional error details","properties":{"invalid_fields":{"type":"array","description":"The missing or invalid fields","example":["event","categories","date","first_name","last_name"],"items":{"type":"string","enum":["event","categories","date","first_name","last_name"]}}}}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"inputDataInvalid":{"summary":"inputDataInvalid","value":{"error":{"code":400,"key":"inputDataInvalid","message":"Missing or invalid fields: event, categories, date, first_name, last_name","details":{"invalid_fields":["event","categories","date","first_name","last_name"]}},"result":null}}}}},"description":"&#9702; `inputDataInvalid`: Missing or invalid fields: event, categories, date, first_name, last_name"},"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}}},"\/v1\/guests\/{id}":{"get":{"summary":"Get a specific guest by id","description":"This endpoint returns a specific guest by its unique id\n\n<h3>Required role permissions:<\/h3>`$permittedTo('guests', 'get', 'guest')`","operationId":"guests.guest.get","tags":["Guests"],"security":[{"TokenAuth":[]}],"parameters":[{"$ref":"#\/components\/parameters\/id"},{"$ref":"#\/components\/parameters\/select"}],"responses":{"200":{"description":"The requested guest","content":{"application\/json":{"schema":{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"$ref":"#\/components\/schemas\/Guest"}}}}}},"404":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Guest was not found","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":404},"key":{"type":"string","description":"Unique error key","example":"notFound"},"message":{"type":"string","description":"A description of the error","example":"Guest was not found"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"notFound":{"summary":"notFound","value":{"error":{"code":404,"key":"notFound","message":"Guest was not found","details":[]},"result":null}}}}},"description":"&#9702; `notFound`: Guest was not found"},"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}},"patch":{"summary":"Update a guest by id","description":"This endpoint updates a guest by its unique id\n\n<h3>Required role permissions:<\/h3>`$permittedTo('guests', 'update', 'guest')`","operationId":"guests.guest.update","tags":["Guests"],"security":[{"TokenAuth":[]}],"parameters":[{"$ref":"#\/components\/parameters\/id"}],"requestBody":{"description":"Guest details","required":true,"content":{"application\/json":{"schema":{"properties":{"first_name":{"description":"First name of the guest","type":"string"},"last_name":{"description":"Last name of the guest","type":"string"},"email":{"description":"Email of the guest","type":"string","format":"email"},"categories":{"description":"The id of the ticket category or guestlist category (comma separated if multiple)","type":"string"},"reserved":{"description":"Indicates if the guest ticket is reserved","type":"boolean","default":true},"canceled":{"description":"Indicates if the guest ticket was canceled","type":"boolean","default":false},"resend":{"type":"boolean","description":"Update and resend tickets via email (if an email is set)","default":false}}}}}},"responses":{"200":{"description":"The updated guest","content":{"application\/json":{"schema":{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"$ref":"#\/components\/schemas\/Guest"}}}}}},"400":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"No data was provided","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"noData"},"message":{"type":"string","description":"A description of the error","example":"No data was provided"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}},{"description":"Missing or invalid fields: first_name, last_name, email, categories, reserved, canceled, resend","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"inputDataInvalid"},"message":{"type":"string","description":"A description of the error","example":"Missing or invalid fields: first_name, last_name, email, categories, reserved, canceled, resend"},"details":{"type":"object","description":"Additional error details (if available)","properties":{"invalid_fields":{"type":"array","description":"The missing or invalid fields","example":["first_name","last_name","email","categories","reserved","canceled","resend"],"items":{"type":"string","enum":["first_name","last_name","email","categories","reserved","canceled","resend"]}}}}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"noData":{"summary":"noData","value":{"error":{"code":400,"key":"noData","message":"No data was provided","details":[]},"result":null}},"inputDataInvalid":{"summary":"inputDataInvalid","value":{"error":{"code":400,"key":"inputDataInvalid","message":"Missing or invalid fields: first_name, last_name, email, categories, reserved, canceled, resend","details":{"invalid_fields":["first_name","last_name","email","categories","reserved","canceled","resend"]}},"result":null}}}}},"description":"&#9702; `noData`: No data was provided<br>&#9702; `inputDataInvalid`: Missing or invalid fields: first_name, last_name, email, categories, reserved, canceled, resend"},"404":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Guest was not found","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":404},"key":{"type":"string","description":"Unique error key","example":"notFound"},"message":{"type":"string","description":"A description of the error","example":"Guest was not found"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"notFound":{"summary":"notFound","value":{"error":{"code":404,"key":"notFound","message":"Guest was not found","details":[]},"result":null}}}}},"description":"&#9702; `notFound`: Guest was not found"},"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}},"delete":{"summary":"Delete a guest by id","description":"This endpoint deletes a guest by its unique id\n\n<h3>Required role permissions:<\/h3>`$permittedTo('guests', 'delete', 'guest')`","operationId":"guests.guest.delete","tags":["Guests"],"security":[{"TokenAuth":[]}],"parameters":[{"$ref":"#\/components\/parameters\/id"}],"responses":{"200":{"description":"The deleted guest","content":{"application\/json":{"schema":{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"$ref":"#\/components\/schemas\/Guest"}}}}}},"404":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Guest was not found","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":404},"key":{"type":"string","description":"Unique error key","example":"notFound"},"message":{"type":"string","description":"A description of the error","example":"Guest was not found"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"notFound":{"summary":"notFound","value":{"error":{"code":404,"key":"notFound","message":"Guest was not found","details":[]},"result":null}}}}},"description":"&#9702; `notFound`: Guest was not found"},"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}}},"\/v1\/guests\/import":{"post":{"summary":"Import multiple guests","description":"This endpoint can be used to import multiple guests at once\n\n<h3>Required role permissions:<\/h3>`$permittedTo('guests', 'create', 'import')`","operationId":"guests.import.create","tags":["Guests"],"security":[{"TokenAuth":[]}],"requestBody":{"description":"Guests to import","required":true,"content":{"application\/json":{"schema":{"properties":{"event":{"type":"string","description":"Event Id"},"dates":{"type":"array","description":"Dates to import guests to","items":{"type":"string"}},"list":{"type":"array","description":"Guests to import","items":{"type":"object","properties":{"first_name":{"description":"First name of the guest","type":"string"},"last_name":{"description":"Last name of the guest","type":"string"},"email":{"description":"Email of the guest","type":"string"},"category":{"description":"Categories of the guest","type":"string"},"tickets":{"description":"Number of tickets to create","type":"number","default":1,"minimum":1}}}}}}}}},"responses":{"200":{"description":"Always true if list was imported successfully","content":{"application\/json":{"schema":{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"description":"Always true if list was imported successfully","type":"boolean","example":true,"default":true}}}}}},"404":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Event was not found","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":404},"key":{"type":"string","description":"Unique error key","example":"invalidEvent"},"message":{"type":"string","description":"A description of the error","example":"Event was not found"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}},{"description":"Date or dates was not found or are invalid","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":404},"key":{"type":"string","description":"Unique error key","example":"invalidDate"},"message":{"type":"string","description":"A description of the error","example":"Date or dates was not found or are invalid"},"details":{"type":"object","description":"Additional error details (if available)"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"invalidEvent":{"summary":"invalidEvent","value":{"error":{"code":404,"key":"invalidEvent","message":"Event was not found","details":[]},"result":null}},"invalidDate":{"summary":"invalidDate","value":{"error":{"code":404,"key":"invalidDate","message":"Date or dates was not found or are invalid","details":[]},"result":null}}}}},"description":"&#9702; `invalidEvent`: Event was not found<br>&#9702; `invalidDate`: Date or dates was not found or are invalid"},"400":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Invalid data provided","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"invalidData"},"message":{"type":"string","description":"A description of the error","example":"Invalid data provided"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}},{"description":"Missing or invalid fields: event, dates, list","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"inputDataInvalid"},"message":{"type":"string","description":"A description of the error","example":"Missing or invalid fields: event, dates, list"},"details":{"type":"object","description":"Additional error details (if available)","properties":{"invalid_fields":{"type":"array","description":"The missing or invalid fields","example":["event","dates","list"],"items":{"type":"string","enum":["event","dates","list"]}}}}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"invalidData":{"summary":"invalidData","value":{"error":{"code":400,"key":"invalidData","message":"Invalid data provided","details":[]},"result":null}},"inputDataInvalid":{"summary":"inputDataInvalid","value":{"error":{"code":400,"key":"inputDataInvalid","message":"Missing or invalid fields: event, dates, list","details":{"invalid_fields":["event","dates","list"]}},"result":null}}}}},"description":"&#9702; `invalidData`: Invalid data provided<br>&#9702; `inputDataInvalid`: Missing or invalid fields: event, dates, list"},"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}}},"\/v1\/guests\/{id}\/send.ticket":{"post":{"summary":"Resend a ticket to a specific guest","description":"This endpoint resends a specific ticket to the guest via email\n\n<h3>Required role permissions:<\/h3>`$permittedTo('guests', 'create', 'send.ticket')`","operationId":"guests.send.ticket.create","tags":["Guests"],"security":[{"TokenAuth":[]}],"parameters":[{"$ref":"#\/components\/parameters\/id"}],"responses":{"200":{"description":"Indicates if the ticket was sent successfully","content":{"application\/json":{"schema":{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"description":"Indicates if the ticket was sent successfully","type":"boolean","example":true,"default":true}}}}}},"404":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Guest was not found","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":404},"key":{"type":"string","description":"Unique error key","example":"notFound"},"message":{"type":"string","description":"A description of the error","example":"Guest was not found"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"notFound":{"summary":"notFound","value":{"error":{"code":404,"key":"notFound","message":"Guest was not found","details":[]},"result":null}}}}},"description":"&#9702; `notFound`: Guest was not found"},"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}}},"\/v1\/guests\/{id}\/send.tickets":{"post":{"summary":"Resend tickets to a specific guest group","description":"This endpoint resends tickets to multiple guests via email\n\n<h3>Required role permissions:<\/h3>`$permittedTo('guests', 'create', 'send.tickets')`","operationId":"guests.send.tickets.create","tags":["Guests"],"security":[{"TokenAuth":[]}],"parameters":[{"in":"path","name":"id","schema":{"type":"string"},"required":true,"description":"The unique guest, group or purchase id"}],"responses":{"200":{"description":"Indicates if the tickets were sent successfully","content":{"application\/json":{"schema":{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"description":"Indicates if the tickets were sent successfully","type":"boolean","example":true,"default":true}}}}}},"404":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"No guests were found","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":404},"key":{"type":"string","description":"Unique error key","example":"notFound"},"message":{"type":"string","description":"A description of the error","example":"No guests were found"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"notFound":{"summary":"notFound","value":{"error":{"code":404,"key":"notFound","message":"No guests were found","details":[]},"result":null}}}}},"description":"&#9702; `notFound`: No guests were found"},"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}}},"\/v1\/guestgroups":{"get":{"summary":"Get all guest groups","description":"This endpoint returns all guest groups (depending on the user's permissions).\n\nTo create a new guest group, use the `\/guests` endpoint.\n\n<h3>Required role permissions:<\/h3>`$permittedTo('guestgroups', 'get', 'all')`","operationId":"guestgroups.all.get","tags":["GuestGroups"],"security":[{"TokenAuth":[]}],"parameters":[{"$ref":"#\/components\/parameters\/page"},{"$ref":"#\/components\/parameters\/limit"},{"$ref":"#\/components\/parameters\/select"},{"$ref":"#\/components\/parameters\/orderBy"},{"$ref":"#\/components\/parameters\/filterBy"}],"responses":{"200":{"description":"All guest groups","content":{"application\/json":{"schema":{"oneOf":[{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"description":"All guest groups","type":"object","additionalProperties":{"$ref":"#\/components\/schemas\/GuestGroup"}}},"description":"All guest groups"},{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"description":"Paginated result","type":"object","properties":{"objects":{"description":"All guest groups","type":"object","additionalProperties":{"$ref":"#\/components\/schemas\/GuestGroup"}},"pagination":{"type":"object","description":"Pagination information","properties":{"page":{"type":"integer","description":"Current page","example":1},"pages":{"type":"integer","description":"Total pages","example":10},"objects":{"type":"integer","description":"Total number of objects","example":100}}}}}},"description":"All guest groups (paginated if `limit` is set in query params)"}]}}}},"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}}},"\/v1\/guestgroups\/{id}":{"get":{"summary":"Get a specific guest group by id","description":"This endpoint returns a specific guest group by its unique id\n\n<h3>Required role permissions:<\/h3>`$permittedTo('guestgroups', 'get', 'guestgroup')`","operationId":"guestgroups.guestgroup.get","tags":["GuestGroups"],"security":[{"TokenAuth":[]}],"parameters":[{"$ref":"#\/components\/parameters\/id"},{"$ref":"#\/components\/parameters\/select"}],"responses":{"200":{"description":"The requested guest group","content":{"application\/json":{"schema":{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"$ref":"#\/components\/schemas\/GuestGroup"}}}}}},"404":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Guest group was not found","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":404},"key":{"type":"string","description":"Unique error key","example":"notFound"},"message":{"type":"string","description":"A description of the error","example":"Guest group was not found"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"notFound":{"summary":"notFound","value":{"error":{"code":404,"key":"notFound","message":"Guest group was not found","details":[]},"result":null}}}}},"description":"&#9702; `notFound`: Guest group was not found"},"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}},"patch":{"summary":"Update a guest group by id","description":"This endpoint updates a guest group by its unique id and all their guests\n\n<h3>Required role permissions:<\/h3>`$permittedTo('guestgroups', 'update', 'guestgroup')`","operationId":"guestgroups.guestgroup.update","tags":["GuestGroups"],"security":[{"TokenAuth":[]}],"parameters":[{"$ref":"#\/components\/parameters\/id"}],"requestBody":{"description":"Guest group details","required":true,"content":{"application\/json":{"schema":{"properties":{"categories":{"description":"The id of the ticket category or guestlist category (comma separated if multiple)","type":"string"},"first_name":{"description":"First name of the group owner","type":"string"},"last_name":{"description":"Last name of the group owner","type":"string"},"email":{"description":"Email of the group owner","type":"string","format":"email"}}}}}},"responses":{"200":{"description":"The updated guest group","content":{"application\/json":{"schema":{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"$ref":"#\/components\/schemas\/GuestGroup"}}}}}},"400":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"No data was provided","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"noData"},"message":{"type":"string","description":"A description of the error","example":"No data was provided"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}},{"description":"Missing or invalid fields: categories, first_name, last_name, email","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"inputDataInvalid"},"message":{"type":"string","description":"A description of the error","example":"Missing or invalid fields: categories, first_name, last_name, email"},"details":{"type":"object","description":"Additional error details (if available)","properties":{"invalid_fields":{"type":"array","description":"The missing or invalid fields","example":["categories","first_name","last_name","email"],"items":{"type":"string","enum":["categories","first_name","last_name","email"]}}}}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"noData":{"summary":"noData","value":{"error":{"code":400,"key":"noData","message":"No data was provided","details":[]},"result":null}},"inputDataInvalid":{"summary":"inputDataInvalid","value":{"error":{"code":400,"key":"inputDataInvalid","message":"Missing or invalid fields: categories, first_name, last_name, email","details":{"invalid_fields":["categories","first_name","last_name","email"]}},"result":null}}}}},"description":"&#9702; `noData`: No data was provided<br>&#9702; `inputDataInvalid`: Missing or invalid fields: categories, first_name, last_name, email"},"404":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Guest group was not found","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":404},"key":{"type":"string","description":"Unique error key","example":"notFound"},"message":{"type":"string","description":"A description of the error","example":"Guest group was not found"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"notFound":{"summary":"notFound","value":{"error":{"code":404,"key":"notFound","message":"Guest group was not found","details":[]},"result":null}}}}},"description":"&#9702; `notFound`: Guest group was not found"},"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}},"delete":{"summary":"Delete a guest group by id","description":"This endpoint deletes a guest group by its unique id and all their guests\n\n<h3>Required role permissions:<\/h3>`$permittedTo('guestgroups', 'delete', 'guestgroup')`","operationId":"guestgroups.guestgroup.delete","tags":["GuestGroups"],"security":[{"TokenAuth":[]}],"parameters":[{"$ref":"#\/components\/parameters\/id"}],"responses":{"200":{"description":"The deleted guest group","content":{"application\/json":{"schema":{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"$ref":"#\/components\/schemas\/GuestGroup"}}}}}},"404":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Guest group was not found","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":404},"key":{"type":"string","description":"Unique error key","example":"notFound"},"message":{"type":"string","description":"A description of the error","example":"Guest group was not found"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"notFound":{"summary":"notFound","value":{"error":{"code":404,"key":"notFound","message":"Guest group was not found","details":[]},"result":null}}}}},"description":"&#9702; `notFound`: Guest group was not found"},"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}}},"\/{guest}":{"get":{"summary":"Primarily for the NIGHTOWL\u00ae Scanner App: Get ticket information (or redirect to the shop page)","description":"This public ticket url (content of the QR code on the ticket) redirects to the shop page of the event if called unauthenticated.\n\nIf called authenticated, the whole ticket information is returned (used in the NIGHTOWL\u00ae Scanner App).","operationId":"tickets.ticket.get","tags":["Tickets"],"servers":[{"url":"https:\/\/tickets.nightowl.app"}],"parameters":[{"in":"path","name":"guest","schema":{"type":"string"},"required":true,"description":"The unique guest id"},{"in":"query","name":"details","schema":{"type":"string"},"required":false,"description":"Indicates if the ticket details should be returned"}],"responses":{"200":{"description":"The basic ticket information","content":{"application\/json":{"schema":{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"description":"The basic ticket information","properties":{"event":{"type":"string","description":"The unique event name"},"date":{"type":"string","description":"The date string of the event"}},"type":"object"}}}}}},"404":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Guest was not found","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":404},"key":{"type":"string","description":"Unique error key","example":"notFound"},"message":{"type":"string","description":"A description of the error","example":"Guest was not found"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"notFound":{"summary":"notFound","value":{"error":{"code":404,"key":"notFound","message":"Guest was not found","details":[]},"result":null}}}}},"description":"&#9702; `notFound`: Guest was not found"},"400":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Ticket is out of admission date","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"outOfAdmissionDate"},"message":{"type":"string","description":"A description of the error","example":"Ticket is out of admission date"},"details":{"type":"object","description":"Additional error details","properties":{"event_name":{"description":"The name of the event","type":"string","example":"NIGHTOWL\u00ae Festival"},"valid_from":{"description":"The date when the ticket is valid from","type":"string","format":"date-time","example":"2025-12-24T00:00:00+00:00"},"valid_to":{"description":"The date when the ticket is valid to","type":"string","format":"date-time","example":"2025-12-31T23:59:59+00:00"}}}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"outOfAdmissionDate":{"summary":"outOfAdmissionDate","value":{"error":{"code":400,"key":"outOfAdmissionDate","message":"Ticket is out of admission date","details":{"event_name":"NIGHTOWL\u00ae Festival","valid_from":"2025-12-24T00:00:00+00:00","valid_to":"2025-12-31T23:59:59+00:00"}},"result":null}}}}},"description":"&#9702; `outOfAdmissionDate`: Ticket is out of admission date"},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}}},"\/{guest}\/guest":{"get":{"summary":"Primarily for the NIGHTOWL\u00ae Scanner App: Get guest information","description":"This endpoint returns the minimal guest information of a ticket","operationId":"tickets.guest.get","tags":["Tickets"],"servers":[{"url":"https:\/\/tickets.nightowl.app"}],"security":[{"TokenAuth":[]}],"parameters":[{"in":"path","name":"guest","schema":{"type":"string"},"required":true,"description":"The unique guest id"}],"responses":{"200":{"description":"The (minimal) guest information","content":{"application\/json":{"schema":{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"description":"The (minimal) guest information","properties":{"event_id":{"type":"string","description":"The unique event id"},"short_id":{"type":"string","description":"The short id of the guest"},"first_name":{"type":"string","description":"The first name of the guest"},"last_name":{"type":"string","description":"The last name of the guest"},"email":{"type":"string","description":"The email address of the guest"},"redeemed":{"type":"boolean","description":"If the ticket was redeemed already"},"redeemed_at":{"type":"string","description":"The date when the ticket was redeemed","nullable":true,"format":"date-time"},"categories":{"type":"array","description":"The category ids of the guest. Can be empty if the category was deleted in the meantime","nullable":true,"items":{"type":"string"}}},"type":"object"}}}}}},"404":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Guest was not found","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":404},"key":{"type":"string","description":"Unique error key","example":"notFound"},"message":{"type":"string","description":"A description of the error","example":"Guest was not found"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"notFound":{"summary":"notFound","value":{"error":{"code":404,"key":"notFound","message":"Guest was not found","details":[]},"result":null}}}}},"description":"&#9702; `notFound`: Guest was not found"},"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}}},"\/{guest}\/space":{"get":{"summary":"Primarily for the NIGHTOWL\u00ae Scanner App: Get ticket space information","description":"This endpoint returns the event information of a ticket and includes all the guests of the specific date of the ticket.\n\nIt also returns the websocket url for the event to get live updates of the guests and is primarily used in the NIGHTOWL\u00ae Scanner App.","operationId":"tickets.event.get","tags":["Tickets"],"servers":[{"url":"https:\/\/tickets.nightowl.app"}],"security":[{"TokenAuth":[]}],"parameters":[{"in":"path","name":"guest","schema":{"type":"string"},"required":true,"description":"The unique guest id"}],"responses":{"200":{"description":"The event (space) information","content":{"application\/json":{"schema":{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"description":"The event (space) information","properties":{"event":{"type":"object","description":"The event information","properties":{"id":{"description":"The unique event id","type":"string"},"name":{"description":"The name of the event","type":"string"},"description":{"description":"The description of the event","type":"string"},"min_age":{"description":"The minimum age of the event (if age restricted)","type":"integer","example":18,"nullable":true}}},"date":{"type":"object","description":"The date slot information","properties":{"id":{"description":"The unique date id","type":"string"},"from_date":{"description":"The date when the event starts","type":"string","format":"date-time"},"to_date":{"description":"The date when the event ends","type":"string","format":"date-time"}}},"categories":{"type":"object","description":"All available categories of the event and date slot (mapped by category id)","additionalProperties":{"description":"The category information","properties":{"name":{"description":"The name of the category","type":"string"},"description":{"description":"The (small) description of the category","type":"string"},"personalized_tickets":{"description":"If the tickets of this category are personalized","type":"boolean"}}}},"guests":{"type":"object","description":"All guests of the specific date (mapped by guest id)","additionalProperties":{"description":"The guest information","properties":{"short_id":{"description":"The short id of the guest","type":"string"},"first_name":{"description":"The first name of the guest","type":"string"},"last_name":{"description":"The last name of the guest","type":"string"},"email":{"description":"The email address of the guest","type":"string"},"redeemed":{"description":"If the ticket was redeemed already","type":"boolean"},"redeemed_at":{"description":"The date when the ticket was redeemed","type":"string","format":"date-time","nullable":true},"categories":{"description":"The category ids of the guest. Can be empty if the category was deleted in the meantime","type":"array","nullable":true,"items":{"type":"string"}}}}},"websocket":{"type":"string","description":"The websocket url to get live updates of the event and guests","format":"uri"}},"type":"object"}}}}}},"404":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Guest was not found","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":404},"key":{"type":"string","description":"Unique error key","example":"notFound"},"message":{"type":"string","description":"A description of the error","example":"Guest was not found"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"notFound":{"summary":"notFound","value":{"error":{"code":404,"key":"notFound","message":"Guest was not found","details":[]},"result":null}}}}},"description":"&#9702; `notFound`: Guest was not found"},"400":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Ticket is out of admission date","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"outOfAdmissionDate"},"message":{"type":"string","description":"A description of the error","example":"Ticket is out of admission date"},"details":{"type":"object","description":"Additional error details","properties":{"event_name":{"description":"The name of the event","type":"string","example":"NIGHTOWL\u00ae Festival"},"valid_from":{"description":"The date when the ticket is valid from","type":"string","format":"date-time","example":"2025-12-24T00:00:00+00:00"},"valid_to":{"description":"The date when the ticket is valid to","type":"string","format":"date-time","example":"2025-12-31T23:59:59+00:00"}}}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"outOfAdmissionDate":{"summary":"outOfAdmissionDate","value":{"error":{"code":400,"key":"outOfAdmissionDate","message":"Ticket is out of admission date","details":{"event_name":"NIGHTOWL\u00ae Festival","valid_from":"2025-12-24T00:00:00+00:00","valid_to":"2025-12-31T23:59:59+00:00"}},"result":null}}}}},"description":"&#9702; `outOfAdmissionDate`: Ticket is out of admission date"},"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}}},"\/{guest}\/redeem":{"patch":{"summary":"Primarily for the NIGHTOWL\u00ae Scanner App: Redeem a ticket","description":"This endpoint redeems a ticket and returns a boolean value if the ticket was successfully redeemed.","operationId":"tickets.redeem.update","tags":["Tickets"],"servers":[{"url":"https:\/\/tickets.nightowl.app"}],"security":[{"TokenAuth":[]}],"parameters":[{"in":"path","name":"guest","schema":{"type":"string"},"required":true,"description":"The unique guest id"}],"responses":{"200":{"description":"Ticket redeemed successfully","content":{"application\/json":{"schema":{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"description":"Ticket redeemed successfully","type":"boolean","example":true,"default":true}}}}}},"404":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Guest was not found","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":404},"key":{"type":"string","description":"Unique error key","example":"notFound"},"message":{"type":"string","description":"A description of the error","example":"Guest was not found"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"notFound":{"summary":"notFound","value":{"error":{"code":404,"key":"notFound","message":"Guest was not found","details":[]},"result":null}}}}},"description":"&#9702; `notFound`: Guest was not found"},"400":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"This ticket was already redeemed","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"alreadyRedeemed"},"message":{"type":"string","description":"A description of the error","example":"This ticket was already redeemed"},"details":{"type":"object","description":"Additional error details","properties":{"redeemed_at":{"description":"The date when the ticket was redeemed","type":"string","format":"date-time","example":"2025-12-24T00:00:00+00:00"}}}}},"result":{"description":"No result","nullable":true,"default":null}}},{"description":"Ticket is out of admission date","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"outOfAdmissionDate"},"message":{"type":"string","description":"A description of the error","example":"Ticket is out of admission date"},"details":{"type":"object","description":"Additional error details (if available)","properties":{"event_name":{"description":"The name of the event","type":"string","example":"NIGHTOWL\u00ae Festival"},"valid_from":{"description":"The date when the ticket is valid from","type":"string","format":"date-time","example":"2025-12-24T00:00:00+00:00"},"valid_to":{"description":"The date when the ticket is valid to","type":"string","format":"date-time","example":"2025-12-31T23:59:59+00:00"}}}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"alreadyRedeemed":{"summary":"alreadyRedeemed","value":{"error":{"code":400,"key":"alreadyRedeemed","message":"This ticket was already redeemed","details":{"redeemed_at":"2025-12-24T00:00:00+00:00"}},"result":null}},"outOfAdmissionDate":{"summary":"outOfAdmissionDate","value":{"error":{"code":400,"key":"outOfAdmissionDate","message":"Ticket is out of admission date","details":{"event_name":"NIGHTOWL\u00ae Festival","valid_from":"2025-12-24T00:00:00+00:00","valid_to":"2025-12-31T23:59:59+00:00"}},"result":null}}}}},"description":"&#9702; `alreadyRedeemed`: This ticket was already redeemed<br>&#9702; `outOfAdmissionDate`: Ticket is out of admission date"},"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}},"delete":{"summary":"Primarily for the NIGHTOWL\u00ae Scanner App: Unredeem a ticket","description":"This endpoint unredeems a ticket and returns a boolean value if the ticket was successfully unredeemed.","operationId":"tickets.unredeem.update","tags":["Tickets"],"servers":[{"url":"https:\/\/tickets.nightowl.app"}],"security":[{"TokenAuth":[]}],"parameters":[{"in":"path","name":"guest","schema":{"type":"string"},"required":true,"description":"The unique guest id"}],"responses":{"200":{"description":"Ticket unredeemed successfully","content":{"application\/json":{"schema":{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"description":"Ticket unredeemed successfully","type":"boolean","example":true,"default":true}}}}}},"404":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Guest was not found","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":404},"key":{"type":"string","description":"Unique error key","example":"notFound"},"message":{"type":"string","description":"A description of the error","example":"Guest was not found"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"notFound":{"summary":"notFound","value":{"error":{"code":404,"key":"notFound","message":"Guest was not found","details":[]},"result":null}}}}},"description":"&#9702; `notFound`: Guest was not found"},"400":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"This ticket was already unredeemed","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"alreadyUnredeemed"},"message":{"type":"string","description":"A description of the error","example":"This ticket was already unredeemed"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}},{"description":"Ticket is out of admission date","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"outOfAdmissionDate"},"message":{"type":"string","description":"A description of the error","example":"Ticket is out of admission date"},"details":{"type":"object","description":"Additional error details (if available)","properties":{"event_name":{"description":"The name of the event","type":"string","example":"NIGHTOWL\u00ae Festival"},"valid_from":{"description":"The date when the ticket is valid from","type":"string","format":"date-time","example":"2025-12-24T00:00:00+00:00"},"valid_to":{"description":"The date when the ticket is valid to","type":"string","format":"date-time","example":"2025-12-31T23:59:59+00:00"}}}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"alreadyUnredeemed":{"summary":"alreadyUnredeemed","value":{"error":{"code":400,"key":"alreadyUnredeemed","message":"This ticket was already unredeemed","details":[]},"result":null}},"outOfAdmissionDate":{"summary":"outOfAdmissionDate","value":{"error":{"code":400,"key":"outOfAdmissionDate","message":"Ticket is out of admission date","details":{"event_name":"NIGHTOWL\u00ae Festival","valid_from":"2025-12-24T00:00:00+00:00","valid_to":"2025-12-31T23:59:59+00:00"}},"result":null}}}}},"description":"&#9702; `alreadyUnredeemed`: This ticket was already unredeemed<br>&#9702; `outOfAdmissionDate`: Ticket is out of admission date"},"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}}},"\/{id}.zip":{"get":{"summary":"Download all tickets of a purchase\/group as a zip file","description":"This public endpoint downloads tickets as a zip file. The id is either the guest id, group id or the purchase id.\n\nIf the guest\/group\/purchase was not found, the endpoint redirects to the homepage.","operationId":"tickets.zip.get","tags":["Tickets"],"servers":[{"url":"https:\/\/tickets.nightowl.app"}],"parameters":[{"in":"path","name":"id","schema":{"type":"string"},"required":true,"description":"The unique guest, group or purchase id"},{"in":"query","name":"target","schema":{"type":"string","enum":["pdf","pkpass","ics"]},"required":false,"description":"Filters the files to download. Possible values: 'pdf', 'pkpass', 'ics'. If not set, all files are downloaded."}],"responses":{"200":{"description":"Binary file of all requested tickets","content":{"application\/x-zip":{"schema":{"type":"string","format":"binary","description":"All requested tickets as a zip file"}}}},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}}},"\/{guest}.pdf":{"get":{"summary":"Download ticket as a pdf file","description":"This public endpoint downloads a single ticket as a pdf file. If the guest\/ticket was not found, the endpoint redirects to the homepage.","operationId":"tickets.pdf.get","tags":["Tickets"],"servers":[{"url":"https:\/\/tickets.nightowl.app"}],"parameters":[{"in":"path","name":"guest","schema":{"type":"string"},"required":true,"description":"The unique guest id"}],"responses":{"200":{"description":"Binary file of the requested ticket","content":{"application\/pdf":{"schema":{"type":"string","format":"binary","description":"Ticket as a pdf file"}}}},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}}},"\/{guest}.pkpass":{"get":{"summary":"Download a specific ticket as an Apple Pass file","description":"This public endpoint downloads a single ticket as an Apple Pass file. If the guest\/ticket was not found, the endpoint redirects to the homepage.","operationId":"tickets.pkpass.get","tags":["Tickets"],"servers":[{"url":"https:\/\/tickets.nightowl.app"}],"parameters":[{"in":"path","name":"guest","schema":{"type":"string"},"required":true,"description":"The unique guest id"}],"responses":{"200":{"description":"Binary file of the requested ticket","content":{"application\/vnd.apple.pkpass":{"schema":{"type":"string","format":"binary","description":"Ticket as a Apple Pass file"}}}},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}}},"\/{id}.ics":{"get":{"summary":"Download a calendar file (based on the booked tickets)","description":"This public endpoint provides a calendar file (ics) with all relevant event dates.\n\nIf a guest id is provided, only the relevant event dates of the guest will be included.\n\nIf a group id is provided, all relevant event dates of the group will be included.\n\nIf a purchase id is provided, all relevant event dates of the purchase will be included.","operationId":"tickets.ics.get","tags":["Tickets"],"servers":[{"url":"https:\/\/tickets.nightowl.app"}],"parameters":[{"in":"path","name":"id","schema":{"type":"string"},"required":true,"description":"The unique guest, group or purchase id"}],"responses":{"200":{"description":"Binary calendar file","content":{"text\/calendar":{"schema":{"type":"string","format":"binary","description":"A calendar file (ics) with all relevant event dates"}}}},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}}},"\/{guest}.png":{"get":{"summary":"Download a QR code ticket","description":"This public endpoint provides a QR code as a png file that can be scanned by the NIGHTOWL\u00ae Scanner App","operationId":"tickets.qrcode.get","tags":["Tickets"],"servers":[{"url":"https:\/\/tickets.nightowl.app"}],"parameters":[{"in":"path","name":"guest","schema":{"type":"string"},"required":true,"description":"The unique guest id"},{"in":"query","name":"size","schema":{"type":"string","example":"500","default":"500"},"required":false,"description":"Size of the QR code (in pixels)"}],"responses":{"200":{"description":"QR code in the requested format","content":{"image\/png":{"schema":{"type":"string","format":"binary","description":"QR code as a PNG file"}}}},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}}},"\/v1\/discounts":{"get":{"summary":"Get all discounts","description":"This endpoint returns all discounts from all organizations or from the organization of the user (depending on the user's role)\n\n<h3>Required role permissions:<\/h3>`$permittedTo('discounts', 'get', 'all')`","operationId":"discounts.all.get","tags":["Discounts"],"security":[{"TokenAuth":[]}],"parameters":[{"$ref":"#\/components\/parameters\/page"},{"$ref":"#\/components\/parameters\/limit"},{"$ref":"#\/components\/parameters\/select"},{"$ref":"#\/components\/parameters\/filterBy"}],"responses":{"200":{"description":"All discounts","content":{"application\/json":{"schema":{"oneOf":[{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"description":"All discounts","type":"object","additionalProperties":{"$ref":"#\/components\/schemas\/Discount"}}},"description":"All discounts"},{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"description":"Paginated result","type":"object","properties":{"objects":{"description":"All discounts","type":"object","additionalProperties":{"$ref":"#\/components\/schemas\/Discount"}},"pagination":{"type":"object","description":"Pagination information","properties":{"page":{"type":"integer","description":"Current page","example":1},"pages":{"type":"integer","description":"Total pages","example":10},"objects":{"type":"integer","description":"Total number of objects","example":100}}}}}},"description":"All discounts (paginated if `limit` is set in query params)"}]}}}},"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}},"post":{"summary":"Create a new discount","description":"This endpoint creates a new discount\n\n<h3>Required role permissions:<\/h3>`$permittedTo('discounts', 'create', 'discount')`","operationId":"discounts.discount.create","tags":["Discounts"],"security":[{"TokenAuth":[]}],"requestBody":{"description":"Discount information","required":true,"content":{"application\/json":{"schema":{"required":["name","value"],"properties":{"name":{"description":"Name of the discount","type":"string"},"notes":{"description":"Notes for the discount","type":"string"},"code":{"description":"Code of the discount. If empty, the discount is applied automatically based on the date range. The code must be unique for the organization and in uppercase letters only","type":"string","nullable":true},"value":{"description":"Value of the discount in percentage","type":"number","format":"float","minimum":1,"maximum":100,"example":10},"valid_for":{"description":"One or multiple events with their ticket category (optional) that the discount is valid for. If empty, the discount is valid for all events and ticket categories","type":"object","nullable":true,"additionalProperties":{"description":"The event id and the ticket category id (optional) that the discount is valid for. If the array is empty, the discount is valid for all ticket categories of the event","type":"array","items":{"type":"string","minLength":12,"maxLength":12}},"example":{"{{idOfEvent}}":["{{idOfTicketCategory1}}","{{idOfTicketCategory2}}","..."],"{{idOfEventTwo}}":[]}},"valid_box_offices":{"description":"Indicates if the discount is valid for box offices or not","type":"boolean","default":false},"valid_from":{"description":"Date and time of when the discount is valid from. Must be in UTC!","type":"string","format":"date-time"},"valid_to":{"description":"Date and time of when the discount is valid to. If empty, the discount is valid for unlimited time. Must be in UTC!","type":"string","format":"date-time","nullable":true},"tickets":{"description":"Number of tickets the discount is valid for. If empty, the discount is valid for unlimited tickets","type":"integer","minimum":1,"maximum":10000000,"example":100},"active":{"description":"Indicates if the discount is active or not","type":"boolean","default":true},"organization":{"type":"string","description":"A unique organization identifier that owns the discount (for root access only)"}}}}}},"responses":{"200":{"description":"The created discount","content":{"application\/json":{"schema":{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"$ref":"#\/components\/schemas\/Discount"}}}}}},"400":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"The given code is not unique and already exists for another discount","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"codeNotUnique"},"message":{"type":"string","description":"A description of the error","example":"The given code is not unique and already exists for another discount"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}},{"description":"The given valid for values are invalid or do not exist","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"invalidValidFor"},"message":{"type":"string","description":"A description of the error","example":"The given valid for values are invalid or do not exist"},"details":{"type":"object","description":"Additional error details (if available)"}}},"result":{"description":"No result","nullable":true,"default":null}}},{"description":"The given valid from date is invalid","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"invalidValidFromDateFormat"},"message":{"type":"string","description":"A description of the error","example":"The given valid from date is invalid"},"details":{"type":"object","description":"Additional error details (if available)"}}},"result":{"description":"No result","nullable":true,"default":null}}},{"description":"The given valid to date is invalid","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"invalidValidToDateFormat"},"message":{"type":"string","description":"A description of the error","example":"The given valid to date is invalid"},"details":{"type":"object","description":"Additional error details (if available)"}}},"result":{"description":"No result","nullable":true,"default":null}}},{"description":"Missing or invalid fields: name, value","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"inputDataInvalid"},"message":{"type":"string","description":"A description of the error","example":"Missing or invalid fields: name, value"},"details":{"type":"object","description":"Additional error details (if available)","properties":{"invalid_fields":{"type":"array","description":"The missing or invalid fields","example":["name","value"],"items":{"type":"string","enum":["name","value"]}}}}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"codeNotUnique":{"summary":"codeNotUnique","value":{"error":{"code":400,"key":"codeNotUnique","message":"The given code is not unique and already exists for another discount","details":[]},"result":null}},"invalidValidFor":{"summary":"invalidValidFor","value":{"error":{"code":400,"key":"invalidValidFor","message":"The given valid for values are invalid or do not exist","details":[]},"result":null}},"invalidValidFromDateFormat":{"summary":"invalidValidFromDateFormat","value":{"error":{"code":400,"key":"invalidValidFromDateFormat","message":"The given valid from date is invalid","details":[]},"result":null}},"invalidValidToDateFormat":{"summary":"invalidValidToDateFormat","value":{"error":{"code":400,"key":"invalidValidToDateFormat","message":"The given valid to date is invalid","details":[]},"result":null}},"inputDataInvalid":{"summary":"inputDataInvalid","value":{"error":{"code":400,"key":"inputDataInvalid","message":"Missing or invalid fields: name, value","details":{"invalid_fields":["name","value"]}},"result":null}}}}},"description":"&#9702; `codeNotUnique`: The given code is not unique and already exists for another discount<br>&#9702; `invalidValidFor`: The given valid for values are invalid or do not exist<br>&#9702; `invalidValidFromDateFormat`: The given valid from date is invalid<br>&#9702; `invalidValidToDateFormat`: The given valid to date is invalid<br>&#9702; `inputDataInvalid`: Missing or invalid fields: name, value"},"404":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Organization was not found","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":404},"key":{"type":"string","description":"Unique error key","example":"invalidOrganization"},"message":{"type":"string","description":"A description of the error","example":"Organization was not found"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"invalidOrganization":{"summary":"invalidOrganization","value":{"error":{"code":404,"key":"invalidOrganization","message":"Organization was not found","details":[]},"result":null}}}}},"description":"&#9702; `invalidOrganization`: Organization was not found"},"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}}},"\/v1\/discounts\/{id}":{"get":{"summary":"Get discount by id","description":"This endpoint returns a discount by id\n\n<h3>Required role permissions:<\/h3>`$permittedTo('discounts', 'get', 'discount')`","operationId":"discounts.discount.get","tags":["Discounts"],"security":[{"TokenAuth":[]}],"parameters":[{"$ref":"#\/components\/parameters\/id"},{"$ref":"#\/components\/parameters\/select"}],"responses":{"200":{"description":"The requested discount","content":{"application\/json":{"schema":{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"$ref":"#\/components\/schemas\/Discount"}}}}}},"404":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Discount was not found","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":404},"key":{"type":"string","description":"Unique error key","example":"notFound"},"message":{"type":"string","description":"A description of the error","example":"Discount was not found"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"notFound":{"summary":"notFound","value":{"error":{"code":404,"key":"notFound","message":"Discount was not found","details":[]},"result":null}}}}},"description":"&#9702; `notFound`: Discount was not found"},"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}},"patch":{"summary":"Update discount by id","description":"This endpoint updates a discount by id\n\n<h3>Required role permissions:<\/h3>`$permittedTo('discounts', 'update', 'discount')`","operationId":"discounts.discount.update","tags":["Discounts"],"security":[{"TokenAuth":[]}],"parameters":[{"$ref":"#\/components\/parameters\/id"}],"requestBody":{"description":"Discount information","required":true,"content":{"application\/json":{"schema":{"properties":{"name":{"description":"Name of the discount","type":"string"},"notes":{"description":"Notes for the discount","type":"string"},"code":{"description":"Code of the discount. If empty, the discount is applied automatically based on the date range. The code must be unique for the organization and in uppercase letters only","type":"string","nullable":true},"value":{"description":"Value of the discount in percentage","type":"number","format":"float","minimum":1,"maximum":100,"example":10},"valid_for":{"description":"One or multiple events with their ticket category (optional) that the discount is valid for. If empty, the discount is valid for all events and ticket categories","type":"object","nullable":true,"additionalProperties":{"description":"The event id and the ticket category id (optional) that the discount is valid for. If the array is empty, the discount is valid for all ticket categories of the event","type":"array","items":{"type":"string","minLength":12,"maxLength":12}},"example":{"{{idOfEvent}}":["{{idOfTicketCategory1}}","{{idOfTicketCategory2}}","..."],"{{idOfEventTwo}}":[]}},"valid_box_offices":{"description":"Indicates if the discount is valid for box offices or not","type":"boolean","default":false},"valid_from":{"description":"Date and time of when the discount is valid from. Must be in UTC!","type":"string","format":"date-time"},"valid_to":{"description":"Date and time of when the discount is valid to. If empty, the discount is valid for unlimited time. Must be in UTC!","type":"string","format":"date-time","nullable":true},"tickets":{"description":"Number of tickets the discount is valid for. If empty, the discount is valid for unlimited tickets","type":"integer","minimum":1,"maximum":10000000,"example":100},"active":{"description":"Indicates if the discount is active or not","type":"boolean","default":true},"organization":{"type":"string","description":"A unique organization identifier that owns the discount (for root access only)"}}}}}},"responses":{"200":{"description":"The updated discount","content":{"application\/json":{"schema":{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"$ref":"#\/components\/schemas\/Discount"}}}}}},"404":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Discount was not found","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":404},"key":{"type":"string","description":"Unique error key","example":"notFound"},"message":{"type":"string","description":"A description of the error","example":"Discount was not found"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}},{"description":"Organization was not found","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":404},"key":{"type":"string","description":"Unique error key","example":"invalidOrganization"},"message":{"type":"string","description":"A description of the error","example":"Organization was not found"},"details":{"type":"object","description":"Additional error details (if available)"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"notFound":{"summary":"notFound","value":{"error":{"code":404,"key":"notFound","message":"Discount was not found","details":[]},"result":null}},"invalidOrganization":{"summary":"invalidOrganization","value":{"error":{"code":404,"key":"invalidOrganization","message":"Organization was not found","details":[]},"result":null}}}}},"description":"&#9702; `notFound`: Discount was not found<br>&#9702; `invalidOrganization`: Organization was not found"},"400":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"The given code is not unique and already exists for another discount","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"codeNotUnique"},"message":{"type":"string","description":"A description of the error","example":"The given code is not unique and already exists for another discount"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}},{"description":"The given valid for values are invalid or do not exist","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"invalidValidFor"},"message":{"type":"string","description":"A description of the error","example":"The given valid for values are invalid or do not exist"},"details":{"type":"object","description":"Additional error details (if available)"}}},"result":{"description":"No result","nullable":true,"default":null}}},{"description":"The given valid from date is invalid","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"invalidValidFromDateFormat"},"message":{"type":"string","description":"A description of the error","example":"The given valid from date is invalid"},"details":{"type":"object","description":"Additional error details (if available)"}}},"result":{"description":"No result","nullable":true,"default":null}}},{"description":"The given valid to date is invalid","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"invalidValidToDateFormat"},"message":{"type":"string","description":"A description of the error","example":"The given valid to date is invalid"},"details":{"type":"object","description":"Additional error details (if available)"}}},"result":{"description":"No result","nullable":true,"default":null}}},{"description":"Missing or invalid fields: name, notes, code, value, valid_for, valid_box_offices, valid_from, valid_to, tickets, active, organization","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"inputDataInvalid"},"message":{"type":"string","description":"A description of the error","example":"Missing or invalid fields: name, notes, code, value, valid_for, valid_box_offices, valid_from, valid_to, tickets, active, organization"},"details":{"type":"object","description":"Additional error details (if available)","properties":{"invalid_fields":{"type":"array","description":"The missing or invalid fields","example":["name","notes","code","value","valid_for","valid_box_offices","valid_from","valid_to","tickets","active","organization"],"items":{"type":"string","enum":["name","notes","code","value","valid_for","valid_box_offices","valid_from","valid_to","tickets","active","organization"]}}}}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"codeNotUnique":{"summary":"codeNotUnique","value":{"error":{"code":400,"key":"codeNotUnique","message":"The given code is not unique and already exists for another discount","details":[]},"result":null}},"invalidValidFor":{"summary":"invalidValidFor","value":{"error":{"code":400,"key":"invalidValidFor","message":"The given valid for values are invalid or do not exist","details":[]},"result":null}},"invalidValidFromDateFormat":{"summary":"invalidValidFromDateFormat","value":{"error":{"code":400,"key":"invalidValidFromDateFormat","message":"The given valid from date is invalid","details":[]},"result":null}},"invalidValidToDateFormat":{"summary":"invalidValidToDateFormat","value":{"error":{"code":400,"key":"invalidValidToDateFormat","message":"The given valid to date is invalid","details":[]},"result":null}},"inputDataInvalid":{"summary":"inputDataInvalid","value":{"error":{"code":400,"key":"inputDataInvalid","message":"Missing or invalid fields: name, notes, code, value, valid_for, valid_box_offices, valid_from, valid_to, tickets, active, organization","details":{"invalid_fields":["name","notes","code","value","valid_for","valid_box_offices","valid_from","valid_to","tickets","active","organization"]}},"result":null}}}}},"description":"&#9702; `codeNotUnique`: The given code is not unique and already exists for another discount<br>&#9702; `invalidValidFor`: The given valid for values are invalid or do not exist<br>&#9702; `invalidValidFromDateFormat`: The given valid from date is invalid<br>&#9702; `invalidValidToDateFormat`: The given valid to date is invalid<br>&#9702; `inputDataInvalid`: Missing or invalid fields: name, notes, code, value, valid_for, valid_box_offices, valid_from, valid_to, tickets, active, organization"},"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}},"delete":{"summary":"Delete discount by id","description":"This endpoint deletes a discount by id\n\n<h3>Required role permissions:<\/h3>`$permittedTo('discounts', 'delete', 'discount')`","operationId":"discounts.discount.delete","tags":["Discounts"],"security":[{"TokenAuth":[]}],"parameters":[{"$ref":"#\/components\/parameters\/id"}],"responses":{"200":{"description":"The deleted discount","content":{"application\/json":{"schema":{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"$ref":"#\/components\/schemas\/Discount"}}}}}},"404":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Discount was not found","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":404},"key":{"type":"string","description":"Unique error key","example":"notFound"},"message":{"type":"string","description":"A description of the error","example":"Discount was not found"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"notFound":{"summary":"notFound","value":{"error":{"code":404,"key":"notFound","message":"Discount was not found","details":[]},"result":null}}}}},"description":"&#9702; `notFound`: Discount was not found"},"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}}},"\/v1\/discounts\/{id}\/stats":{"post":{"summary":"Get statistics for a specific discount","description":"This endpoint returns statistics for a specific discount including redemption count, total discount value, and breakdown by events and ticket categories\n\n<h3>Required role permissions:<\/h3>`$permittedTo('discounts', 'get', 'stats')`","operationId":"discounts.stats.get","tags":["Discounts"],"security":[{"TokenAuth":[]}],"parameters":[{"$ref":"#\/components\/parameters\/id"}],"requestBody":{"description":"Date range and currency filters","required":false,"content":{"application\/json":{"schema":{"properties":{"from_date":{"type":"string","description":"The start date to get stats for (UTC)","format":"date","nullable":true},"to_date":{"type":"string","description":"The end date to get stats for (UTC)","format":"date","nullable":true},"currency":{"type":"string","description":"The target currency to convert discount values to","default":"EUR","example":"EUR"}}}}}},"responses":{"200":{"description":"Statistics for the discount","content":{"application\/json":{"schema":{"properties":{"error":{"description":"Is always false, if request was successful","type":"boolean","example":false},"result":{"description":"Statistics for the discount","type":"object","properties":{"redemptions":{"type":"integer","description":"Total number of redemptions"},"total_discount_value":{"type":"number","description":"Total discount value in target currency","format":"float"},"average_discount_value":{"type":"number","description":"Average discount value per purchase in target currency","format":"float"},"currency":{"type":"string","description":"The currency of the discount values","example":"EUR"},"events":{"type":"array","description":"Breakdown by events and ticket categories","items":{"type":"object","properties":{"event_id":{"type":"string"},"event_name":{"type":"string"},"first_date":{"description":"First date of the event","type":"string","format":"date-time","nullable":true},"last_date":{"description":"Last date of the event","type":"string","format":"date-time","nullable":true},"redemptions":{"type":"integer"},"discount_value":{"type":"number","format":"float"},"average_discount_value":{"type":"number","format":"float"},"categories":{"type":"array","items":{"type":"object","properties":{"category_id":{"type":"string"},"category_name":{"type":"string"},"redemptions":{"type":"integer"},"discount_value":{"type":"number","format":"float"},"average_discount_value":{"type":"number","format":"float"}}}}}}}}}}}}}},"404":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Discount was not found","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":404},"key":{"type":"string","description":"Unique error key","example":"notFound"},"message":{"type":"string","description":"A description of the error","example":"Discount was not found"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"notFound":{"summary":"notFound","value":{"error":{"code":404,"key":"notFound","message":"Discount was not found","details":[]},"result":null}}}}},"description":"&#9702; `notFound`: Discount was not found"},"400":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"Missing or invalid fields: from_date, to_date, currency","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":400},"key":{"type":"string","description":"Unique error key","example":"inputDataInvalid"},"message":{"type":"string","description":"A description of the error","example":"Missing or invalid fields: from_date, to_date, currency"},"details":{"type":"object","description":"Additional error details","properties":{"invalid_fields":{"type":"array","description":"The missing or invalid fields","example":["from_date","to_date","currency"],"items":{"type":"string","enum":["from_date","to_date","currency"]}}}}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"inputDataInvalid":{"summary":"inputDataInvalid","value":{"error":{"code":400,"key":"inputDataInvalid","message":"Missing or invalid fields: from_date, to_date, currency","details":{"invalid_fields":["from_date","to_date","currency"]}},"result":null}}}}},"description":"&#9702; `inputDataInvalid`: Missing or invalid fields: from_date, to_date, currency"},"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}}},"\/v1\/export\/{type}.{format}":{"get":{"summary":"Export a spreadsheet","description":"This endpoint exports a spreadsheet of a specific resource type in a specific format\n\n<h3>Required role permissions:<\/h3>`$permittedTo('exports', 'get', 'export')`","operationId":"exports.export.get","tags":["Exporter"],"security":[{"TokenAuth":[]}],"parameters":[{"in":"path","name":"type","schema":{"type":"string","enum":["artists","discounts","events","genres","guestgroups","guestlists","guestpresets","guests","locations","organizations","organization_files","payouts","purchases","users"],"default":"users"},"required":true,"description":"The type of resource to export"},{"in":"path","name":"format","schema":{"type":"string","enum":["xlsx","ods","csv","html","json","yml"],"default":"xlsx"},"required":true,"description":"The file format to export as"},{"$ref":"#\/components\/parameters\/token"},{"in":"query","name":"objects","schema":{"type":"string"},"required":false,"description":"Export only specific resources comma separated by their id\n\nExample: `id1,id2,...`"},{"$ref":"#\/components\/parameters\/select"},{"$ref":"#\/components\/parameters\/orderBy"}],"responses":{"200":{"description":"Binary file in the specified format","content":{"application\/vnd.openxmlformats-officedocument.spreadsheetml.sheet":{"schema":{"type":"string","format":"binary","description":"Export as an Excel file"}},"application\/vnd.oasis.opendocument.spreadsheet":{"schema":{"type":"string","format":"binary","description":"Export as an OpenDocument Spreadsheet file"}},"text\/csv":{"schema":{"type":"string","format":"binary","description":"Export as a CSV file"}},"text\/html":{"schema":{"type":"string","format":"binary","description":"Export as an HTML file"}},"application\/json":{"schema":{"type":"string","format":"binary","description":"Export as a JSON file"}},"text\/yaml":{"schema":{"type":"string","format":"binary","description":"Export as a YAML file"}}}},"401":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":401},"key":{"type":"string","description":"Unique error key","example":"unauthenticated"},"message":{"type":"string","description":"A description of the error","example":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unauthenticated":{"summary":"unauthenticated","value":{"error":{"code":401,"key":"unauthenticated","message":"You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired.","details":[]},"result":null}}}}},"description":"&#9702; `unauthenticated`: You are not authorized to access this resource. Either you did not provide a valid access token or your token has expired."},"500":{"content":{"application\/json":{"schema":{"oneOf":[{"description":"An unknown error occurred. Please try again later or contact support","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"HTTP status code","example":500},"key":{"type":"string","description":"Unique error key","example":"unknown"},"message":{"type":"string","description":"A description of the error","example":"An unknown error occurred. Please try again later or contact support"},"details":{"type":"object","description":"Additional error details"}}},"result":{"description":"No result","nullable":true,"default":null}}}]},"examples":{"unknown":{"summary":"unknown","value":{"error":{"code":500,"key":"unknown","message":"An unknown error occurred. Please try again later or contact support","details":[]},"result":null}}}}},"description":"&#9702; `unknown`: An unknown error occurred. Please try again later or contact support"}}}}},"components":{"securitySchemes":{"TokenAuth":{"type":"apiKey","description":"A time limited token to access the API. Provided after a successful login","name":"Authorization","in":"header"}},"schemas":{"Address":{"description":"An object representing a physical address","type":"object","properties":{"token":{"type":"string","description":"Unique place identifier"},"street":{"type":"string","description":"The street name of the address."},"number":{"type":"string","description":"The street number of the address."},"zip":{"type":"string","description":"The postal code of the address."},"city":{"type":"string","description":"The city of the address."},"state":{"type":"string","description":"The state or region of the address."},"state_code":{"type":"string","description":"The state code or abbreviation of the address."},"country":{"type":"string","description":"The country of the address."},"country_code":{"type":"string","description":"The country code of the address."},"formatted":{"type":"string","description":"The formatted version of the full address."},"geo":{"type":"object","properties":{"lat":{"type":"number","description":"The latitude coordinate of the address."},"lng":{"type":"number","description":"The longitude coordinate of the address."}}},"timezone":{"type":"string","description":"The nearest timezone of the address."}}},"Artist":{"description":"Artist model","type":"object","properties":{"id":{"description":"Unique Artist ID","type":"string","minLength":12,"maxLength":12},"name":{"description":"Name of the artist","type":"string","nullable":true},"avatar":{"$ref":"#\/components\/schemas\/ImageObject","nullable":true},"genres":{"description":"Related genre ids","type":"array","items":{"type":"string","maxLength":6},"example":["{{idOfFirstGenre}}","{{idOfSecondGenre}}","{{idOfThirdGenre}}"]},"links":{"description":"External related links to the artist","type":"array","items":{"type":"object","properties":{"type":{"type":"string","description":"The type of the link (e.g. Apple Music, Spotify, Deezer)","enum":["apple_music","amazon_music","deezer","facebook","google_play","instagram","other","pandora","soundcloud","spotify","tidal","website","x","youtube"]},"value":{"type":"string","description":"The URL of the link","format":"uri"}}},"example":[{"type":"spotify","value":"https:\/\/open.spotify.com\/artist\/12345"},{"type":"apple_music","value":"https:\/\/music.apple.com\/artist\/xyz"},{"type":"website","value":"https:\/\/www.artistwebsite.com"}]},"organization":{"description":"The organization that created the location","type":"string"}}},"Cart":{"description":"A cart object with all items and totals (calculated)","type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"type":{"description":"The type of the item","type":"string","enum":["ticket"]},"quantity":{"type":"integer","description":"The quantity of the item (adjusted to the maximum allowed)","example":1},"content":{"description":"The item content details","type":"object","properties":{"event":{"description":"The id of the event","type":"string"},"option":{"description":"The id of a phase of the category (box office, if available)","type":"string"}}},"price":{"type":"number","description":"The price of the item","example":10},"net_price":{"type":"number","description":"The net price of the item (without vat and fees)","example":8.4},"discount_price":{"type":"number","description":"The discounted price of the item (if available)","example":9,"nullable":true},"subtotal":{"type":"number","description":"The subtotal of the item (without vat)","example":10},"vat":{"type":"number","description":"The VAT of all items (amount)","example":1.9},"fees":{"type":"object","description":"The fees of all items","properties":{"total":{"type":"number","description":"The total fees of the item (including vat)","example":2.05},"service":{"type":"number","description":"The service fees (total amount)","example":1.5},"other":{"type":"number","description":"Other fees (total amount)","example":0.55},"kickback":{"type":"number","description":"The kickback fees (total amount)","example":0},"vat":{"type":"number","description":"The VAT of all fees","example":0.35}}},"total":{"type":"number","description":"The total of the item (including vat)","example":11.9},"metadata":{"type":"object","description":"The metadata of the item","properties":{"currency":{"type":"string","description":"The currency of the item","example":"EUR"},"tickets":{"type":"object","description":"The ticket details","properties":{"total":{"type":"integer","description":"The total number of tickets","example":5},"price":{"type":"number","description":"The price per ticket","example":10.75}}},"taxrates":{"type":"object","description":"The tax rates of the item","properties":{"event":{"type":"object","description":"The tax rate of the event","properties":{"value":{"type":"number","description":"The tax rate value","example":19},"name":{"type":"string","description":"The tax rate name","example":"19% MwSt."}}},"fees":{"type":"object","description":"The tax rate of the fees","properties":{"value":{"type":"number","description":"The tax rate value","example":19},"name":{"type":"string","description":"The tax rate name","example":"19% MwSt."}}}}},"event":{"type":"object","description":"The event details","properties":{"id":{"type":"string","description":"The id of the event","example":"ynvsixhid56j"},"name":{"type":"string","description":"The name of the event","example":"Aliquid recusandae laudantium et quia illo."},"banner":{"type":"string","description":"The banner of the event","example":"fcg5.png"},"timezone":{"type":"string","description":"The timezone of the event","example":"Europe\/Berlin"},"category":{"type":"object","description":"The category of the event","properties":{"id":{"type":"string","description":"The id of the category"},"name":{"type":"string","description":"The name of the category"},"description":{"type":"string","description":"The description of the category"},"description_small":{"type":"string","description":"The short description of the category"},"group_size":{"type":"integer","description":"The group size of the category","example":5},"dates":{"type":"array","description":"The dates of the category","items":{"type":"object","properties":{"id":{"type":"string","description":"The id of the date","example":"ydf"},"from_date":{"type":"string","description":"The start date of the date","example":"2025-02-20T06:35:11+00:00"}}}},"phase":{"type":"object","description":"The phase of the category","properties":{"id":{"type":"string","description":"The id of the phase","example":"v9t"},"name":{"type":"string","description":"The name of the phase","example":"Early Bird"}}}}}}}}}}}},"subtotal":{"type":"number","description":"The subtotal of all items (without vat)","example":10},"discount":{"type":"number","description":"The discount of all items (without vat)","example":1},"discount_details":{"type":"object","description":"The discount details (if available)","properties":{"id":{"type":"string","description":"The unique id of the discount","example":"d9f6g7h8j0k1"},"name":{"type":"string","description":"The name of the discount","example":"Winter Sale"},"code":{"type":"string","description":"The code of the discount","example":"WINTER2024"},"value":{"type":"number","description":"The value of the discount in percentage","example":10},"valid_for":{"type":"object","description":"The events and ticket categories the discount is valid for","additionalProperties":{"type":"array","description":"The ticket categories the discount is valid for. If the array is empty, the discount is valid for all ticket categories of the event","items":{"type":"string","description":"The ticket category id","example":"v9t"}},"example":{"ynvsixhid56j":["v9t","b8n"],"b7m5n4k3j2h1":[]},"nullable":true}},"nullable":true},"vat":{"type":"number","description":"The VAT of all items (amount)","example":1.9},"fees":{"type":"object","description":"The fees of all items","properties":{"total":{"type":"number","description":"The total fees of the item (including vat)","example":2.05},"service":{"type":"number","description":"The service fees (total amount)","example":1.5},"other":{"type":"number","description":"Other fees (total amount)","example":0.55},"vat":{"type":"number","description":"The VAT of all fees","example":0.35}}},"total":{"type":"number","description":"The total of all items (including vat)","example":11.9}}},"Customer":{"description":"Customer model","type":"object","properties":{"id":{"description":"Unique Customer ID","type":"string","minLength":12,"maxLength":12},"cid":{"description":"Unique customer identifier (automatically generated)","type":"string"},"company":{"description":"Company name of the customer","type":"string"},"first_name":{"description":"First name of the customer","type":"string"},"last_name":{"description":"Last name of the customer","type":"string"},"gender":{"description":"Automatically determined (biological) gender of the customer","type":"string","enum":["f","m"]},"email":{"description":"Email of the customer","type":"string","format":"email"},"phone":{"description":"Phone number of the customer","type":"string"},"address":{"$ref":"#\/components\/schemas\/Address"},"birth_date":{"description":"ISO 8601 date of the customers birth date","type":"string","format":"date"},"newsletter":{"description":"Indicates if the customer subscribed to the newsletter","type":"boolean","default":false},"last_seen":{"description":"ISO 8601 date of the last visit of the customer","type":"string","format":"date"},"created":{"description":"ISO 8601 date of the creation of the customer","type":"string","format":"date-time"}}},"Discount":{"description":"Discount model","type":"object","properties":{"id":{"description":"Unique discount id","type":"string","minLength":12,"maxLength":12},"name":{"description":"Name of the discount","type":"string"},"notes":{"description":"Notes for the discount","type":"string"},"code":{"description":"Code of the discount. If empty, the discount is applied automatically based on the date range. The code must be unique for the organization and in uppercase letters only","type":"string","nullable":true},"value":{"description":"Value of the discount in percentage","type":"number","format":"float","minimum":1,"maximum":100,"example":10},"valid_for":{"description":"One or multiple events with their ticket category (optional) that the discount is valid for. If empty, the discount is valid for all events and ticket categories","type":"object","nullable":true,"additionalProperties":{"description":"The event id and the ticket category id (optional) that the discount is valid for. If the array is empty, the discount is valid for all ticket categories of the event","type":"array","items":{"type":"string","minLength":12,"maxLength":12}},"example":{"{{idOfEvent}}":["{{idOfTicketCategory1}}","{{idOfTicketCategory2}}","..."],"{{idOfEventTwo}}":[]}},"valid_box_offices":{"description":"Indicates if the discount is valid for box offices or not","type":"boolean","default":false},"valid_from":{"description":"Date and time of when the discount is valid from. Must be in UTC!","type":"string","format":"date-time"},"valid_to":{"description":"Date and time of when the discount is valid to. If empty, the discount is valid for unlimited time. Must be in UTC!","type":"string","format":"date-time","nullable":true},"tickets":{"description":"Number of tickets the discount is valid for. If empty, the discount is valid for unlimited tickets","type":"integer","minimum":1,"maximum":10000000,"example":100},"active":{"description":"Indicates if the discount is active or not","type":"boolean","default":true},"organization":{"description":"The organization that created the location","type":"string"},"created":{"description":"ISO 8601 date of the creation of the artist","type":"string","format":"date-time"}}},"Event":{"description":"Event model","type":"object","properties":{"id":{"description":"Unique event id","type":"string","minLength":12,"maxLength":12},"name":{"description":"Name of the event","type":"string","nullable":true},"slug":{"description":"URL slug of the event (automatically generated)","type":"string","nullable":true},"description":{"description":"Description of the event","type":"string","nullable":true},"location":{"description":"Identifier for the location","type":"string"},"location_notes":{"description":"Relevant information about the location","type":"string","nullable":true,"example":"Entrance at the back of the building"},"location_weather":{"description":"Weather information for the event location","type":"object","properties":{"code":{"description":"The hourly weather code","type":"array","items":{"type":"integer"}},"temperature":{"description":"Temperature at the event location","type":"array","items":{"type":"number","format":"float"}},"temperature_perceived":{"description":"Perceived temperature at the event location","type":"array","items":{"type":"number","format":"float"}}}},"min_age":{"description":"Minimum age restriction settings for the event","type":"object","properties":{"value":{"description":"The minimum age for the event","type":"integer","minimum":0,"maximum":100,"example":18},"show":{"description":"Show the minimum age on the shop frontend","type":"boolean","default":false}}},"highlight":{"description":"Highlight position of the event. An organization can highlight up to 3 events.","type":"number","minimum":0,"maximum":2},"tax_id":{"description":"Identifier for the tax rate","type":"string"},"include_fees":{"description":"Indicates if the fees are included in the price or listed separately","type":"boolean","default":false},"fees":{"description":"NIGHTOWL\u00ae fees to be paid by the organization (automatically set)","type":"object","properties":{"EUR":{"description":"Fees for EUR transactions","type":"object","properties":{"percentual":{"description":"Percentage of fees to be paid by the organization","type":"number","format":"float","example":4.2,"nullable":true},"flat":{"description":"Flat fees to be paid by the organization","type":"number","format":"float","example":0.8,"nullable":true},"kickback":{"description":"Kickback fees to be paid by the organization","type":"number","format":"float","example":4.2,"nullable":true}}}}},"fees_affiliate":{"description":"Affiliate partner fees to be paid by the organization (automatically set)","type":"object","properties":{"EUR":{"description":"Fees for EUR transactions","type":"object","properties":{"percentual":{"description":"Percentage of fees to be paid by the organization","type":"number","format":"float","example":4.2,"nullable":true},"flat":{"description":"Flat fees to be paid by the organization","type":"number","format":"float","example":0.8,"nullable":true}}}}},"currency":{"description":"Price currency of the event","type":"string","enum":["EUR"],"default":"EUR"},"badges":{"description":"Event badges (are displayed on the shop frontend and are automatically generated)","type":"array","items":{"type":"string","enum":["highlight","hot","limited","discounted","early-bird","sold-out"]},"example":["{{firstBadge}}","{{secondBadge}}","{{thirdBadge}}"]},"banner":{"$ref":"#\/components\/schemas\/ImageObject","nullable":true},"dates":{"description":"Dates for the event","type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"Unique date ID (automatically generated)"},"from_date":{"type":"string","format":"date-time","description":"ISO 8601 date"},"to_date":{"type":"string","format":"date-time","description":"ISO 8601 date"},"box_office":{"type":"object","properties":{"active":{"type":"boolean","description":"Indicates if the box office is active","example":true,"default":false},"description":{"type":"string","description":"Description of the box office","example":"Standard ticket"},"description_small":{"type":"string","description":"Small description of the box office","example":"3 drinks included"},"from_date":{"type":"string","format":"date-time","description":"ISO 8601 date (display date)"},"to_date":{"type":"string","format":"date-time","description":"ISO 8601 date"},"price":{"type":"number","description":"Price of a ticket","example":10},"tickets":{"type":"integer","description":"Number of tickets available for the box office","example":500,"minimum":1}}},"stages":{"type":"array","description":"Stages of the event date","items":{"type":"object","properties":{"name":{"type":"string","description":"Stage name"},"artists":{"type":"array","description":"Artists of the stage","items":{"type":"string"}},"artists_support":{"type":"array","description":"Support artists of the stage","items":{"type":"string"}},"genres":{"type":"array","description":"Genres of the stage","items":{"type":"string"}}}}}}}},"categories":{"description":"Ticket categories for the event","type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"Unique ticket category ID (automatically generated)"},"name":{"type":"string","description":"Name of the ticket category","example":"Standard"},"description":{"type":"string","description":"Description of the ticket phase","example":"Standard ticket"},"description_small":{"type":"string","description":"Small description of the ticket phase","example":"3 drinks included"},"group_tickets":{"type":"boolean","description":"Indicates if the tickets are group tickets","example":true,"default":false},"group_size":{"type":"integer","description":"Number of tickets per purchase (group tickets)","example":5,"minimum":1},"tickets":{"type":"integer","description":"Total number of tickets for the ticket category","example":500,"minimum":1},"personalized_tickets":{"type":"boolean","description":"Indicates if the tickets are personalized","example":true,"default":false},"dates":{"description":"Valid for the specified dates","type":"array","items":{"type":"string","description":"One or multiple date IDs"}},"phases":{"description":"Ticket phases of the ticket category","type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"Unique phase ID (automatically generated)"},"name":{"type":"string","description":"Name of the ticket phase (prefix)","example":"Standard"},"from_date":{"type":"string","format":"date-time","description":"ISO 8601 date of the first date of the ticket category"},"to_date":{"type":"string","format":"date-time","description":"ISO 8601 date of the last date of the ticket category"},"price":{"type":"number","description":"Price of the ticket phase","example":10},"tickets":{"type":"integer","description":"Number of tickets available for the ticket phase","example":500,"minimum":1},"transfer_tickets":{"type":"boolean","description":"Transfer remaining tickets to the next ticket phase","example":true,"default":false},"skip_phase":{"type":"boolean","description":"Skip to the next ticket phase if the current one is sold out","example":true,"default":false}}}}}}},"show_soldout":{"description":"Show soldout tickets\/phases in shop frontend","type":"boolean","default":false},"first_date":{"description":"ISO 8601 date of the first event date (automatically generated)","type":"string","format":"date-time"},"last_date":{"description":"ISO 8601 date of the last event date (automatically generated)","type":"string","format":"date-time"},"tickets":{"description":"Total number of tickets for the event (automatically generated)","type":"integer"},"payout_plan":{"description":"The expected payout amounts (before prepayments)","type":"object","properties":{"subtotal":{"type":"number","description":"The payout subtotal before fees","example":10},"vat":{"type":"number","description":"The payout vat amount","example":1.9},"fees":{"type":"object","description":"The payout fees","properties":{"total":{"type":"number","description":"The total fees of the item (including vat)","example":2.05},"service":{"type":"number","description":"The service fees (total amount)","example":1.5},"other":{"type":"number","description":"Other fees (total amount)","example":0.55},"kickback":{"type":"number","description":"The kickback fees (total amount)","example":0},"vat":{"type":"number","description":"The VAT of all fees","example":0.35}}},"total":{"type":"number","description":"The payout total (before fees)","example":11.9}}},"draft":{"description":"Indicates if the event is in draft mode","type":"boolean","default":true},"publish_date":{"description":"ISO 8601 date of the publish date (if planned for the future)","type":"string","format":"date-time"},"active":{"description":"Indicates if the event is active and visible on the shop frontend","type":"boolean","default":false},"canceled":{"description":"Indicates if the event has been canceled","type":"boolean","default":false},"organization":{"description":"The organization that is the owner of the event","type":"string"},"meta":{"description":"Additional key value meta information about the event, following no specific schema","type":"object"}}},"Genre":{"description":"Genre model","type":"object","properties":{"id":{"description":"Unique Genre ID","type":"string","minLength":6,"maxLength":6},"name":{"description":"Name of the genre","type":"string","nullable":true},"logo":{"$ref":"#\/components\/schemas\/ImageObject","nullable":true},"modified":{"description":"ISO 8601 date of the last modification","type":"string","format":"date-time"}}},"Guest":{"description":"Guest model","type":"object","properties":{"id":{"description":"Unique guest id","type":"string","minLength":24,"maxLength":24},"group":{"description":"A unique identifier for the guest group","type":"string"},"first_name":{"description":"First name of the guest","type":"string"},"last_name":{"description":"Last name of the guest","type":"string"},"gender":{"description":"Automatically determined (biological) gender of the guest","type":"string","enum":["f","m"]},"email":{"description":"Email of the guest","type":"string","format":"email"},"event":{"description":"The event the guest is for","type":"string"},"purchase":{"description":"The purchase identifier of the guest. If empty the guest is a guestlist guest (manually added)","type":"string","nullable":true},"categories":{"description":"The id of the ticket category or guestlist category (comma separated if multiple)","type":"string"},"date":{"description":"The date id of the ticket","type":"string"},"redeemed":{"description":"Indicates if the ticket was redeemed","type":"boolean","default":false},"redeemed_at":{"description":"ISO 8601 redeem date of the ticket","type":"string","format":"date-time"},"email_response":{"description":"The email delivery response","type":"string","nullable":true},"organization":{"description":"The target organization of the guest","type":"string"},"created":{"description":"ISO 8601 date of the creation of the guest","type":"string","format":"date-time"}}},"GuestGroup":{"description":"GuestGroup model","type":"object","properties":{"id":{"description":"Unique guest group id","type":"string","minLength":24,"maxLength":24},"event":{"description":"The event the guest group belongs to","type":"string"},"purchase":{"description":"The purchase identifier of the guest group. If empty the guest group is manually added","type":"string","nullable":true},"categories":{"description":"The id of the ticket category or guestlist category (comma separated if multiple)","type":"string"},"dates":{"description":"Related date ids","type":"array","items":{"type":"string","minLength":3,"maxLength":3},"example":["{{idOfFirstDate}}","{{idOfSecondDate}}","{{idOfThirdDate}}"]},"guests":{"description":"Number of guests in the group","type":"integer","minimum":1},"tickets":{"description":"Number of tickets in the group","type":"integer","minimum":1},"first_name":{"description":"First name of the group owner","type":"string"},"last_name":{"description":"Last name of the group owner","type":"string"},"email":{"description":"Email of the group owner","type":"string","format":"email"},"organization":{"description":"The target organization of the guest","type":"string"},"created":{"description":"ISO 8601 date of the creation of the guest","type":"string","format":"date-time"}}},"GuestPreset":{"description":"GuestPreset model","type":"object","properties":{"id":{"description":"Unique Guest Preset ID","type":"string","minLength":12,"maxLength":12},"name":{"description":"Name of the guest preset","type":"string"},"description":{"description":"Description of the guest preset","type":"string"},"guests":{"description":"Guests of the guest preset","type":"array","items":{"type":"object","properties":{"first_name":{"description":"First name of the guest","type":"string"},"last_name":{"description":"Last name of the guest","type":"string"},"email":{"description":"Email of the guest","type":"string"}}}},"organization":{"description":"The owner organization of the guest preset","type":"string"},"created":{"description":"ISO 8601 date of the creation of the guest preset","type":"string","format":"date-time"}}},"Guestlist":{"description":"Guestlist model","type":"object","properties":{"id":{"description":"Unique Guestlist ID","type":"string","minLength":12,"maxLength":12},"event":{"description":"If the guestlist is related to an event, this is the event ID","type":"string"},"name":{"description":"Name of the guestlist","type":"string"},"description":{"description":"Description of the guestlist","type":"string"},"description_small":{"description":"Small description of the guestlist","type":"string"},"organization":{"description":"The owner organization of the guestlist","type":"string"}}},"ImageObject":{"description":"A related and publicly accessible image","type":"object","properties":{"id":{"type":"string","description":"The unique file id of the image"},"ext":{"type":"string","description":"The file format extension of the image"},"colors":{"type":"array","description":"The 10 most dominant colors of the image","example":["#081712","#1a2b3c","#3b4c5d","#5c6d7e","#7d8e9f","#9fa0b1","#c1c2d3","#e3e4f5","#f6f7f8","#f9fafb"],"items":{"type":"string","description":"The hex color code"}}}},"Location":{"description":"Location model","type":"object","properties":{"id":{"description":"Unique Location ID","type":"string","minLength":16,"maxLength":16},"name":{"description":"Name of the location","type":"string","nullable":true},"address":{"$ref":"#\/components\/schemas\/Address"},"logo":{"$ref":"#\/components\/schemas\/ImageObject","nullable":true},"phone":{"description":"A phone number for the location","type":"string","nullable":true},"organization":{"description":"The organization that created the location","type":"string"}}},"Notification":{"description":"Notification model","type":"object","properties":{"id":{"description":"Unique Notification ID","type":"string","minLength":16,"maxLength":16},"message":{"description":"The message object of the notification","type":"object","properties":{"subject":{"type":"string","description":"The subject of the notification"},"body":{"type":"string","description":"The body of the notification"},"link":{"type":"string","description":"An optional link to a resource related to the notification","nullable":true},"button":{"type":"string","description":"An optional button text related to the notification's link","nullable":true},"theme":{"type":"string","description":"An optional theme color of the notification","default":"white","nullable":true,"enum":["white","blue","green","yellow","red"]}}},"read":{"description":"Indicates if the notification has been read by the user","type":"boolean","default":false},"created":{"description":"ISO 8601 date of the creation of the notification","type":"string","format":"date-time"}}},"Organization":{"description":"Organization model","type":"object","properties":{"id":{"description":"Unique organization identifier","type":"string","minLength":12,"maxLength":12},"cid":{"description":"Unique customer identifier of the organization (automatically generated)","type":"string"},"slug":{"description":"Unique organization slug","type":"string"},"name":{"description":"Name of the organization","type":"string","nullable":true},"company":{"description":"Name of the company","type":"string"},"email":{"description":"General contact email of the organization","type":"string","format":"email"},"phone":{"description":"Phone number of the organization","type":"string"},"vat_id":{"description":"VAT ID of the company","type":"string"},"bank_account":{"description":"Bank account information","type":"object","properties":{"cardholder":{"type":"string","description":"The cardholder name"},"iban":{"type":"string","description":"The IBAN of the bank account"}}},"sepa_direct_debit":{"description":"SEPA Direct Debit status","type":"object","properties":{"accepted":{"type":"boolean","description":"Has the SEPA Direct Debit mandate been accepted?","default":false},"mandate":{"type":"string","description":"The SEPA Direct Debit mandate identifier","nullable":true},"accepted_date":{"type":"string","format":"date-time","description":"The date when the SEPA Direct Debit mandate was accepted","nullable":true},"accepted_ip":{"type":"string","description":"The IP address from which the SEPA Direct Debit mandate was accepted","nullable":true}}},"address":{"$ref":"#\/components\/schemas\/Address"},"colors":{"description":"Specific color settings for the organization","type":"object","properties":{"primaryColor":{"type":"string","description":"The primary color for the shop UI in HEX format (#RRGGBB)","example":"#FF5733","pattern":"^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$"},"buttonTextColor":{"type":"string","description":"The text color for buttons in the shop UI in HEX format (#RRGGBB)","example":"#007ACC","pattern":"^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$"},"backgroundColor":{"type":"string","description":"The background color for the shop UI in HEX format (#RRGGBB)","example":"#EFEFEF","pattern":"^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$"},"copyTextColor":{"type":"string","description":"The text color for copy (text) in the shop UI in HEX format (#RRGGBB)","example":"#333333","pattern":"^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$"},"footerColor":{"type":"string","description":"The color for the footer in the shop UI in HEX format (#RRGGBB)","example":"#444444","pattern":"^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$"},"footerTextColor":{"type":"string","description":"The text color for the footer in the shop UI in HEX format (#RRGGBB)","example":"#FFFFFF","pattern":"^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$"}}},"logo":{"$ref":"#\/components\/schemas\/ImageObject","nullable":true},"favicon":{"$ref":"#\/components\/schemas\/ImageObject","nullable":true},"settings":{"description":"Payout and other settings of the organization. Only NIGHTOWL\u00ae admins can edit these settings.","type":"object","properties":{"payouts":{"description":"Payout settings (can only be set by NIGHTOWL\u00ae admins)","type":"object","properties":{"automatic":{"description":"Automatic payouts enabled? If enabled, NIGHTOWL\u00ae will automatically split the payouts between the organization and the affiliate partner","type":"boolean","default":true,"nullable":true},"schedule":{"description":"Payout schedule (x days after the last event date)","type":"integer","default":0,"nullable":true},"kickbacks":{"description":"Ability to set kickbacks?","type":"boolean","default":false,"nullable":true},"allow_prepayments":{"description":"Allow manual prepayments before the regular payout schedule executes","type":"boolean","default":true,"nullable":true},"reserved_amount_percent":{"description":"Percentage of total sales kept in reserve to cover chargebacks and refunds","type":"number","format":"float","example":25,"nullable":true},"fees":{"description":"NIGHTOWL\u00ae fees to be paid by the organization","type":"object","properties":{"EUR":{"description":"Fees for EUR transactions","type":"object","properties":{"percentual":{"description":"Percentage of fees to be paid by the organization","type":"number","format":"float","example":4.2,"nullable":true},"flat":{"description":"Flat fees to be paid by the organization","type":"number","format":"float","example":0.8,"nullable":true},"kickback":{"description":"Kickback fees to be paid by the organization","type":"number","format":"float","example":4.2,"nullable":true}}}}}}},"affiliate":{"description":"Affiliate information and settings","type":"object","nullable":true,"properties":{"source":{"description":"Organization identifier of the affiliate","type":"string","minLength":12,"maxLength":12},"mode":{"description":"Affiliate mode (partner or standard)","type":"string","enum":["standard","partner"]},"payouts":{"description":"Payout settings for the affiliate source (can be edited by partners)","type":"object","properties":{"automatic":{"description":"Automatic payouts enabled?","type":"boolean","default":true,"nullable":true},"fees":{"description":"Affiliate partner fees to be paid by the organization","type":"object","properties":{"EUR":{"description":"Fees for EUR transactions","type":"object","properties":{"percentual":{"description":"Percentage of fees to be paid by the organization","type":"number","format":"float","example":4.2,"nullable":true},"flat":{"description":"Flat fees to be paid by the organization","type":"number","format":"float","example":0.8,"nullable":true}}}}}}}}},"is_partner":{"description":"Can the organization create partnership affiliate links?","type":"boolean","default":false,"nullable":true},"language":{"description":"The main language of an organization","type":"string","default":"de"}}},"active":{"description":"Indicates if the organization is fully activated and able to sell tickets (onboarding completed)","type":"boolean","default":false},"created":{"description":"ISO 8601 date of the creation","type":"string","format":"date-time"}}},"OrganizationFile":{"description":"OrganizationFile model","type":"object","properties":{"id":{"description":"Unique file identifier","type":"string","minLength":12,"maxLength":12},"name":{"description":"Name of the file","type":"string"},"type":{"description":"Type of the file (mimetype)","type":"string"},"extension":{"description":"File extension","type":"string"},"size":{"description":"Size of the file in bytes","type":"integer","format":"int64"},"modified":{"description":"ISO 8601 date of the last modification","type":"string","format":"date-time"},"created":{"description":"ISO 8601 date of the creation","type":"string","format":"date-time"}}},"Payout":{"description":"Payout model","type":"object","properties":{"id":{"description":"Unique Payout ID","type":"string","minLength":12,"maxLength":12},"payout_number":{"description":"Unique payout number (automatically generated)","type":"string"},"transfer_id":{"description":"Unique transfer identifier coming from the bank. If empty, the payout was transferred manually.","type":"string"},"organization":{"description":"The target organization of the payout","type":"string"},"event":{"description":"The target event of the payout","type":"string"},"items":{"description":"The payout content including all payout items and details","type":"array","items":{"type":"object","properties":{"type":{"description":"The item type","type":"string","enum":["sales_volume","prepayment","service_fee","affiliate_fee","event_organization"]},"value":{"description":"Mixed value of the item. Can be a number, id or other value based on the item type"}}}},"amount":{"description":"The amount of the payout","type":"number","format":"float","default":0},"currency":{"description":"The payout currency","type":"string","example":"EUR"},"type":{"description":"The payout type","type":"string","enum":["eventpayout","prepayment","affiliate"]},"notes":{"description":"Notes for the payout","type":"string"},"initiator":{"description":"The initiator of the payout","type":"string"},"canceled":{"description":"Indicates if the payout was canceled","type":"boolean","default":false},"created":{"description":"ISO 8601 date of the creation of the payout","type":"string","format":"date-time"}}},"Permissions":{"description":"Lists all the permissions. An empty array means all permissions are granted","type":"object","additionalProperties":{"description":"The group of permissions","type":"object","additionalProperties":{"description":"The specific resource of the group","type":"array","example":[0,1,2,3],"items":{"type":"integer","description":"The possible actions on the resource\n\n`0` = Get \/ Read `1` = Update `2` = Create `3` = Delete","enum":[0,1,2,3]}}},"example":{"{{groupName1}}":{"{{resourceName1}}":[0,1,2,3],"{{resourceName2}}":[0,1,2,3]},"{{groupName2}}":{"{{resourceName1}}":[0,1,2,3],"{{resourceName2}}":[0,1,2,3]},"{{groupName3}}":{"{{resourceName1}}":[0,1,2,3],"{{resourceName2}}":[0,1,2,3]}}},"Purchase":{"description":"Purchase model","type":"object","properties":{"id":{"description":"Unique purchase id","type":"string","minLength":12,"maxLength":12},"company":{"description":"Company name of the buyer","type":"string"},"first_name":{"description":"First name of the buyer","type":"string"},"last_name":{"description":"Last name of the buyer","type":"string"},"gender":{"description":"Automatically determined (biological) gender of the buyer","type":"string","enum":["f","m"]},"email":{"description":"Email of the buyer","type":"string","format":"email"},"phone":{"description":"Phone number of the buyer","type":"string"},"address":{"$ref":"#\/components\/schemas\/Address"},"weather":{"description":"Weather information at the time of the purchase","type":"object","properties":{"code":{"description":"The weather code","type":"integer"},"temperature":{"description":"Temperature at the time of the purchase","type":"number","format":"float"},"temperature_perceived":{"description":"Perceived temperature at the time of the purchase","type":"number","format":"float"}}},"cart":{"$ref":"#\/components\/schemas\/Cart"},"discount_id":{"description":"The discount id of the purchase (if a discount was used)","type":"string","minLength":12,"maxLength":12},"insurance_id":{"description":"The insurance id of the purchase (if insurance was used)","type":"string"},"payment_method":{"description":"The payment method of the purchase","type":"string"},"email_response":{"description":"The email delivery response","type":"string","nullable":true},"status":{"description":"Status of the purchase. -1 = Failed, 0 = Pending, 1 = Waiting Payment Confirmation, 2 = Payment Confirmed, 3 = Refunded","type":"integer","enum":[-1,0,1,2,3]},"event":{"description":"Related event with the purchase","type":"string"},"newsletter":{"description":"Indicates if the buyer subscribed to the newsletter","type":"boolean","default":false},"organization":{"description":"The target organization of the purchase","type":"string"},"created":{"description":"ISO 8601 date of the creation of the purchase","type":"string","format":"date-time"}}},"Role":{"description":"Role model","type":"object","properties":{"id":{"description":"Unique Role ID","type":"string","minLength":12,"maxLength":12},"name":{"description":"Name of the Role","type":"string"},"organization":{"description":"If set, this role is an organization related role","type":"string"},"is_root":{"description":"Indicates if the role is a NIGHTOWL\u00ae staff member role","type":"boolean","default":false},"permissions":{"$ref":"#\/components\/schemas\/Permissions"}}},"User":{"description":"User model","type":"object","properties":{"id":{"description":"Unique User ID","type":"string","minLength":12,"maxLength":12},"organizations":{"description":"One or many organizations that the user is part of and the role of the user in the organization","type":"object","additionalProperties":{"description":"The role of the user in the organization","type":"string","minLength":12,"maxLength":12},"example":{"{{idOfOrganization}}":"{{idOfRole}}","{{otherIdOfOrganization}}":"{{otherIdOfRole}}","...":"..."}},"email":{"description":"Email of the user","type":"string","format":"email"},"first_name":{"description":"First name of the user","type":"string"},"last_name":{"description":"Last name of the user","type":"string"},"active":{"description":"Indicates if the user is active or disabled","type":"boolean","default":false},"avatar":{"$ref":"#\/components\/schemas\/ImageObject","nullable":true},"language":{"description":"Language code ISO 639-1 of the user","type":"string","minLength":2,"maxLength":2,"default":"de"},"created":{"description":"ISO 8601 date of the creation of the user","type":"string","format":"date-time"}}}},"parameters":{"id":{"in":"path","name":"id","schema":{"type":"string"},"required":true,"description":"The unique identifier"},"token":{"in":"query","name":"token","schema":{"type":"string"},"required":true,"description":"The current session token"},"page":{"in":"query","name":"page","schema":{"type":"integer"},"required":false,"description":"The page number. Only active in combination with the `limit` parameter\n\nExample: `1`"},"limit":{"in":"query","name":"limit","schema":{"type":"integer"},"required":false,"description":"Results per page. Outputs all if not provided\n\nExample: `100`"},"select":{"in":"query","name":"select","schema":{"type":"string"},"required":false,"description":"Limit output to specific fields at root level (comma separated)\n\nExample: `field1,field2,...`"},"orderBy":{"in":"query","name":"order_by","schema":{"type":"string"},"required":false,"description":"Orders output by specific fields (comma separated)\n\nExample: `field1:asc,field2:desc,...`"},"filterBy":{"in":"query","name":"filter_by","schema":{"type":"string"},"required":false,"description":"Filters output by specific fields (comma separated, \"AND\" filter)\n\nSupported operators: `=`, `!=`, `*=`, `>`, `<`, `>=`, `<=`<br><br>Example: `field1=true,field2!=example,...`"},"groupBy":{"in":"query","name":"group_by","schema":{"type":"string"},"required":false,"description":"Groups output by a specific field\n\nExample: `email`"}}}}