openapi: 3.1.0 info: title: Howler API v3 Artists API version: 3.6.1 description: '*Last updated: 2026-01-20 21:15:49 +0200* ' servers: - url: https://{defaultHost}/api/v3/consumer_portal variables: defaultHost: default: www.howler.co.za description: Server for consumer portal endpoints security: - bearer_header: [] bearer_param: [] api_key: [] bearer_auth: [] tags: - name: Artists paths: /artists/{id}/favourite: parameters: - name: id in: path description: Artist ID required: true schema: type: integer post: summary: favourite an artist tags: - Artists operationId: favouriteArtist description: Favourite an artist for the current user. responses: '201': description: artist favourited '422': description: already favourited delete: summary: unfavourite an artist tags: - Artists operationId: unfavouriteArtist description: Unfavourite an artist for the current user. responses: '204': description: artist unfavourited '422': description: not favourited components: securitySchemes: oauth2: type: oauth2 description: OAuth2 authentication for third-party applications flows: authorizationCode: authorizationUrl: /oauth/authorize tokenUrl: /oauth/token scopes: public: Public scope login: Login scope ott: One-time token scope bearer_header: type: http scheme: bearer bearerFormat: oauth2 in: header bearer_param: type: apiKey scheme: bearer bearerFormat: oauth2 name: bearer_token in: query jwt_header: type: http scheme: bearer bearerFormat: JWT description: JWT token obtained from basic authentication login jwt_param: type: apiKey name: bearer_token in: query description: JWT token as query parameter (alternative to Authorization header) basic_auth: type: http scheme: basic description: Basic authentication with email and password api_key: type: apiKey name: x-auth-token in: header description: API key authentication bearer_auth: type: http scheme: bearer bearerFormat: JWT description: JWT token authentication