Howler User API
The User API from Howler — 4 operation(s) for user.
The User API from Howler — 4 operation(s) for user.
openapi: 3.1.0
info:
title: Howler API v3 Artists User 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: User
paths:
/user:
delete:
summary: request user account deletion
operationId: requestUserDeletion
tags:
- User
description: Request deletion of a user account.
responses:
'204':
description: successful
content:
application/json:
schema:
type: string
nullable: true
example: null
get:
summary: get user details
operationId: getConsumerUser
tags:
- User
description: 'Retrieve details of the current user.
'
responses:
'200':
description: successful
content:
application/json:
schema:
type: object
properties:
user:
$ref: '#/components/schemas/UserDetails'
put:
summary: update user details
operationId: updateConsumerUser
tags:
- User
description: 'Update details of the current user.
'
parameters: []
responses:
'200':
description: successful
content:
application/json:
schema:
type: object
properties:
user:
$ref: '#/components/schemas/UserDetails'
'422':
description: invalid locale
content:
application/json:
schema:
type: object
properties:
errors:
type: object
properties:
user:
type: object
properties:
language_locale:
type: array
items:
type: string
requestBody:
content:
application/json:
schema:
type: object
properties:
user:
$ref: '#/components/schemas/UserDetails'
required:
- user
required: true
/events/{event_id}/user/setup:
parameters:
- name: event_id
in: path
description: Event Id
required: true
schema:
type: string
get:
summary: check if user is setup for event
operationId: updateConsumerUserIsSetup
tags:
- User
description: 'Checks if the current user is setup for a specific event. Will return true if all required details are filled in for the user profile.
This can be compared to the event''s `user_validation_configuration`.
'
responses:
'200':
description: successful
content:
application/json:
schema:
type: object
properties:
event_id:
type: integer
is_setup?:
type: boolean
required:
- event_id
- is_setup?
/user/resend_confirmation:
post:
summary: resend user confirmation email
operationId: resendUserConfirmation
tags:
- User
description: 'Resend the confirmation email to the user''s primary email address.
'
responses:
'200':
description: successful
content:
application/json:
schema:
type: object
properties:
code:
type: integer
status:
type: string
message:
type: string
/user/web:
get:
summary: input user details on a rendered form
operationId: editConsumerUserWeb
tags:
- User
description: 'Renders a webpage to allow the user to set their user details.
Once the user information has successfully been entered, a redirect will be done to a specific URL.
'
responses:
'200':
description: successful
put:
summary: update user details from a rendered form
operationId: updateConsumerUserWeb
tags:
- User
description: '**Private API**
This end-point should only ever be called using by the web page rendered using the GET version of this end-point.
'
parameters: []
responses:
'303':
description: successful
'200':
description: failed
requestBody:
content:
application/json:
schema:
type: object
properties: {}
required: []
required: true
components:
schemas:
UserDetails:
type: object
properties:
id:
type: integer
readOnly: true
description: Primary Key
first_name:
type: string
description: First Name
last_name:
type: string
description: Last Name
primary_email:
type: string
readOnly: true
description: Email address of user or dummy user
dummy?:
type: boolean
readOnly: true
description: True if the user has not yet signed up for an account.
auto_cashout:
type: boolean
readOnly: true
description: Auto cashouts are enabled. This setting is updated when bank account details are captured.
cellphone_number:
type: string
description: Cellphone Number
country:
type: string
description: Country of Residence
city:
type: string
description: City of Residence
id_number:
type: string
description: South African ID Number
gender:
type:
- string
- 'null'
enum:
- male
- female
- other
- null
description: Gender
date_of_birth:
type: string
format: ISO 8601
description: Date of Birth
nickname:
type:
- string
- 'null'
description: Nickname
billing_address:
type:
- string
- 'null'
description: Billing Address
is_rsa_citizen:
type: boolean
description: Indicates the user is a South African Citisen. If true they will need to fill in an ID number, otherwise they will need to fill in their passprt country and number.
passport_number:
type:
- string
- 'null'
description: Passport Number
passport_country:
type:
- string
- 'null'
description: Passport Country
email_confirmed?:
type: boolean
description: Email has been confirmed
avatar_url:
type:
- string
- 'null'
description: Avatar URL
required_fields:
type: array
description: Required fields
allow_email:
type:
- boolean
- 'null'
description: User allows email communication
allow_sms:
type:
- boolean
- 'null'
description: User allows SMS communication
postal_code:
type:
- string
- 'null'
description: Postal Code
street_and_number:
type:
- string
- 'null'
description: Street and Number
province:
type:
- string
- 'null'
description: Province
country_of_birth:
type:
- string
- 'null'
description: Country of Birth
province_of_birth:
type:
- string
- 'null'
description: Province of Birth
city_of_birth:
type:
- string
- 'null'
description: City of Birth
medical_aid_provider:
type:
- string
- 'null'
description: Medical Aid Provider
medical_aid_number:
type:
- string
- 'null'
description: Medical Aid Number
emergency_contact_name:
type:
- string
- 'null'
description: Emergency Contact Name
emergency_contact_relationship:
type:
- string
- 'null'
description: Emergency Contact Relationship
emergency_contact_number:
type:
- string
- 'null'
description: Emergency Contact Number
allergies:
type:
- string
- 'null'
description: Allergies
medical_conditions:
type:
- string
- 'null'
description: Medical Conditions
language_locale:
type: string
description: User language preference
is_language_locale_manually_set:
type: boolean
description: Whether the language locale was manually set by the user
required:
- id
- first_name
- last_name
- primary_email
- dummy?
- allow_email
- allow_sms
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