items:
object
key: string
name: string
image_url: string
profile_url: string
social_numbers: object
object
fbAvg: number (float)
fbTotal: object
igAvg: number (float)
igTotal: object
spAvg: number (float)
spTotal: object
ytAvg: number (float)
ytTotal: number (float)
igUrl: string
genres: array
rostr: object
object
uuid: string
rostrId: string
profile: object
rostr_parent: object
object
parent: object
url: string
recordLabelType: object
typeClassifier: object
rosterSize: number (float)
Responses
400 — Bad Request
401 — Unauthorized
403 — Forbidden
Example request
curl -X PUT ' http://localhost:3099/api/agencies/{id} ' \
-H ' Authorization: Bearer <JWT> ' \
-H ' Content-Type: application/json ' \
Purpose: Delete resource
Parameters
id (path, string) required
Request body
None
Responses
400 — Bad Request
401 — Unauthorized
403 — Forbidden
Example request
curl -X DELETE ' http://localhost:3099/api/agencies/{id} ' \
-H ' Authorization: Bearer <JWT> ' \
Purpose: Retrieve resource
Parameters
id (path, string) required
page (query, number) — default: 1
limit (query, number) — default: 20
q (query, string)
role (query, string; enum: agency, management)
Request body
None
Responses
400 — Bad Request
403 — Forbidden
Example request
curl -X GET ' http://localhost:3099/api/agencies/{id}/roster ' \
-H ' Authorization: Bearer <JWT> ' \
Purpose: Create resource
Parameters
id (path, string) required
Request body
Required: Yes
Content-Type: application/json
$ref: AddRosterDtoSchema
object
artistId: string required
id: number required (float)
key: string required
name: string required
role: string enum(agency, management) required
Content-Type: application/xml
$ref: AddRosterDtoSchema
object
artistId: string required
id: number required (float)
key: string required
name: string required
role: string enum(agency, management) required
Responses
400 — Bad Request
401 — Unauthorized
403 — Forbidden
Example request
curl -X POST ' http://localhost:3099/api/agencies/{id}/roster ' \
-H ' Authorization: Bearer <JWT> ' \
-H ' Content-Type: application/json ' \
Purpose: Retrieve resource
Parameters
id (path, string) required
Request body
None
Responses
Example request
curl -X GET ' http://localhost:3099/api/agencies/{id}/top-roster ' \
-H ' Authorization: Bearer <JWT> ' \
Purpose: Delete resource
Parameters
id (path, string) required
rosterId (path, string) required
Request body
None
Responses
400 — Bad Request
401 — Unauthorized
403 — Forbidden
Example request
curl -X DELETE ' http://localhost:3099/api/agencies/{id}/roster/{rosterId} ' \
-H ' Authorization: Bearer <JWT> ' \
Purpose: Retrieve resource
Parameters
id (path, string) required
page (query, number) — default: 1
limit (query, number) — default: 20
q (query, string)
Request body
None
Responses
400 — Bad Request
403 — Forbidden
Example request
curl -X GET ' http://localhost:3099/api/agencies/{id}/team ' \
-H ' Authorization: Bearer <JWT> ' \
Purpose: Create resource
Parameters
id (path, string) required
Request body
Required: Yes
Content-Type: application/json
$ref: AddTeamMemberDtoSchema
object
name: string required
email: string (email)
title: string
phone: string
department: string
role: string
active: boolean — default: True
Content-Type: application/xml
$ref: AddTeamMemberDtoSchema
object
name: string required
email: string (email)
title: string
phone: string
department: string
role: string
active: boolean — default: True
Responses
400 — Bad Request
401 — Unauthorized
403 — Forbidden
Example request
curl -X POST ' http://localhost:3099/api/agencies/{id}/team ' \
-H ' Authorization: Bearer <JWT> ' \
-H ' Content-Type: application/json ' \
"email": "user@example.com",
Purpose: Replace resource
Parameters
id (path, string) required
teamId (path, string) required
Request body
Required: Yes
Content-Type: application/json
$ref: UpdateTeamMemberDtoSchema
object
name: string
email: string (email)
title: string
phone: string
department: string
role: string
active: boolean
Content-Type: application/xml
$ref: UpdateTeamMemberDtoSchema
object
name: string
email: string (email)
title: string
phone: string
department: string
role: string
active: boolean
Responses
400 — Bad Request
401 — Unauthorized
403 — Forbidden
Example request
curl -X PUT ' http://localhost:3099/api/agencies/{id}/team/{teamId} ' \
-H ' Authorization: Bearer <JWT> ' \
-H ' Content-Type: application/json ' \
"email": "user@example.com",
Purpose: Delete resource
Parameters
id (path, string) required
teamId (path, string) required
Request body
None
Responses
400 — Bad Request
401 — Unauthorized
403 — Forbidden
Example request
curl -X DELETE ' http://localhost:3099/api/agencies/{id}/team/{teamId} ' \
-H ' Authorization: Bearer <JWT> ' \
Operations in this group: 10
Purpose: Retrieve resource
Parameters
None
Request body
None
Responses
Example request
curl -X GET ' http://localhost:3099/api/agreements ' \
-H ' Authorization: Bearer <JWT> ' \
Purpose: Retrieve resource
Parameters
id (path, string) required
Request body
None
Responses
Example request
curl -X GET ' http://localhost:3099/api/agreements/{id} ' \
-H ' Authorization: Bearer <JWT> ' \
Purpose: Replace resource
Parameters
id (path, string) required
Request body
None
Responses
Example request
curl -X PUT ' http://localhost:3099/api/agreements/{id} ' \
-H ' Authorization: Bearer <JWT> ' \
Purpose: Retrieve resource
Parameters
id (path, string) required
assets (path, string) required
Request body
None
Responses
Example request
curl -X GET ' http://localhost:3099/api/agreements/{id}/{assets} ' \
-H ' Authorization: Bearer <JWT> ' \
Purpose: Create resource
Parameters
id (path, string) required
assets (path, string) required
Request body
None
Responses
Example request
curl -X POST ' http://localhost:3099/api/agreements/{id}/{assets} ' \
-H ' Authorization: Bearer <JWT> ' \
Purpose: Replace resource
Parameters
id (path, string) required
assets (path, string) required
Request body
None
Responses
Example request
curl -X PUT ' http://localhost:3099/api/agreements/{id}/{assets} ' \
-H ' Authorization: Bearer <JWT> ' \
Purpose: Retrieve resource
Parameters
id (path, string) required
assets (path, string) required
extra (path, string) required
Request body
None
Responses
Example request
curl -X GET ' http://localhost:3099/api/agreements/{id}/{assets}/{extra} ' \
-H ' Authorization: Bearer <JWT> ' \
Purpose: Create resource
Parameters
None
Request body
None
Responses
Example request
curl -X POST ' http://localhost:3099/api/agreements/create ' \
-H ' Authorization: Bearer <JWT> ' \
Purpose: Create resource
Parameters
offerId (path, string) required
Request body
None
Responses
Example request
curl -X POST ' http://localhost:3099/api/agreements/create/pdf/{offerId} ' \
-H ' Authorization: Bearer <JWT> ' \
Purpose: Delete resource
Parameters
offerId (path, string) required
Request body
None
Responses
Example request
curl -X DELETE ' http://localhost:3099/api/agreements/delete/pdf/{offerId} ' \
-H ' Authorization: Bearer <JWT> ' \
Operations in this group: 6
Purpose: Create resource
Parameters
None
Request body
Required: Yes
Content-Type: application/json
$ref: RequestGeminiSchema
Content-Type: application/xml
$ref: RequestGeminiSchema
Responses
400 — Bad Request
403 — Forbidden
Example request
curl -X POST ' http://localhost:3099/api/ai-kisum/gemini ' \
-H ' Authorization: Bearer <JWT> ' \
-H ' Content-Type: application/json ' \
Purpose: Create resource
Parameters
None
Request body
Required: Yes
Content-Type: application/json
$ref: RequestChatAISchema
object
artist: string
request: string
char: number (float)
Content-Type: application/xml
$ref: RequestChatAISchema
object
artist: string
request: string
char: number (float)
Responses
400 — Bad Request
403 — Forbidden
Example request
curl -X POST ' http://localhost:3099/api/ai-kisum ' \
-H ' Authorization: Bearer <JWT> ' \
-H ' Content-Type: application/json ' \
Purpose: Create resource
Parameters
None
Request body
Required: Yes
Content-Type: application/json
$ref: RequestN8NSchema (schema definition not found)
Content-Type: application/xml
$ref: RequestN8NSchema (schema definition not found)
Responses
400 — Bad Request
403 — Forbidden
Example request
curl -X POST ' http://localhost:3099/api/ai-kisum/n8n ' \
-H ' Authorization: Bearer <JWT> ' \
-H ' Content-Type: application/json ' \
"$ref": "RequestN8NSchema"
Purpose: Retrieve resource
Parameters
id (path, string) required
Request body
None
Responses
Example request
curl -X GET ' http://localhost:3099/api/ai-kisum/conversation/{id} ' \
-H ' Authorization: Bearer <JWT> ' \
Purpose: Create resource
Parameters
None
Request body
Required: Yes
Content-Type: application/json
$ref: RequestConversationSchema (schema definition not found)
Content-Type: application/xml
$ref: RequestConversationSchema (schema definition not found)
Responses
400 — Bad Request
403 — Forbidden
Example request
curl -X POST ' http://localhost:3099/api/ai-kisum/conversation ' \
-H ' Authorization: Bearer <JWT> ' \
-H ' Content-Type: application/json ' \
"$ref": "RequestConversationSchema"
Purpose: Create resource
Parameters
None
Request body
Required: Yes
Content-Type: application/json
$ref: RequestChatSchema (schema definition not found)
Content-Type: application/xml
$ref: RequestChatSchema (schema definition not found)
Responses
400 — Bad Request
403 — Forbidden
Example request
curl -X POST ' http://localhost:3099/api/ai-kisum/chat ' \
-H ' Authorization: Bearer <JWT> ' \
-H ' Content-Type: application/json ' \
"$ref": "RequestChatSchema"
Operations in this group: 1
Purpose: Retrieve resource
Parameters
startDate (query, string)
endDate (query, string)
Request body
None
Responses
400 — Bad Request
403 — Forbidden
Example request
curl -X GET ' http://localhost:3099/api/analytics/financials ' \
-H ' Authorization: Bearer <JWT> ' \
Operations in this group: 6
Purpose: Retrieve resource
Parameters
status (query, string; enum: pending, approved, rejected, canceled, failed)
Request body
None
Responses
400 — Bad Request
401 — Unauthorized
403 — Forbidden
Example request
curl -X GET ' http://localhost:3099/api/approval ' \
-H ' Authorization: Bearer <JWT> ' \
Purpose: Retrieve resource
Parameters
status (query, string; enum: pending, approved, rejected, canceled, failed)
Request body
None
Responses
Example request
curl -X GET ' http://localhost:3099/api/approval/by-user ' \
-H ' Authorization: Bearer <JWT> ' \
Purpose: Create resource
Parameters
id (path, string) required
Request body
Required: No
Content-Type: application/json
$ref: UpdateApprovalDtoSchema
Content-Type: application/xml
$ref: UpdateApprovalDtoSchema
Responses
400 — Bad Request
401 — Unauthorized
403 — Forbidden
Example request
curl -X POST ' http://localhost:3099/api/approval/{id}/approve ' \
-H ' Authorization: Bearer <JWT> ' \
-H ' Content-Type: application/json ' \
Purpose: Create resource
Parameters
id (path, string) required
Request body
Required: Yes
Content-Type: application/json
$ref: UpdateApprovalDtoSchema
Content-Type: application/xml
$ref: UpdateApprovalDtoSchema
Responses
400 — Bad Request
401 — Unauthorized
403 — Forbidden
Example request
curl -X POST ' http://localhost:3099/api/approval/{id}/reject ' \
-H ' Authorization: Bearer <JWT> ' \
-H ' Content-Type: application/json ' \
Purpose: Create resource
Parameters
id (path, string) required
Request body
Required: No
Content-Type: application/json
$ref: UpdateApprovalDtoSchema
Content-Type: application/xml
$ref: UpdateApprovalDtoSchema
Responses
400 — Bad Request
401 — Unauthorized
403 — Forbidden
Example request
curl -X POST ' http://localhost:3099/api/approval/{id}/cancel ' \
-H ' Authorization: Bearer <JWT> ' \
-H ' Content-Type: application/json ' \
Purpose: Retrieve resource
Parameters
id (path, string) required
Request body
None
Responses
Example request
curl -X GET ' http://localhost:3099/api/approval/{id} ' \
-H ' Authorization: Bearer <JWT> ' \
Operations in this group: 27
Purpose: Retrieve resource
Parameters
public (query, string)
rankings (query, boolean)
sort (query, string)
page (query, number)
limit (query, number)
iso2 (query, string)
Request body
None
Responses
400 — Bad Request
403 — Forbidden
500 — Internal Server Error
Example request
curl -X GET ' http://localhost:3099/api/artists ' \
-H ' Authorization: Bearer <JWT> ' \
Purpose: Create resource
Parameters
Request body
None
Responses
403 — Forbidden
500 — Internal Server Error
Example request
curl -X POST ' http://localhost:3099/api/artists ' \
-H ' Authorization: Bearer <JWT> ' \
Purpose: Retrieve resource
Parameters
public (query, string)
q (query, string) required
code (query, string)
db (query, string)
limit (query, number)
Request body
None
Responses
400 — Bad Request
403 — Forbidden
500 — Internal Server Error
Example request
curl -X GET ' http://localhost:3099/api/artists/search ' \
-H ' Authorization: Bearer <JWT> ' \
Purpose: Retrieve resource
Parameters
public (query, string)
q (query, string)
type (query, string)
Request body
None
Responses
403 — Forbidden
500 — Internal Server Error
Example request
curl -X GET ' http://localhost:3099/api/artists/search/new ' \
-H ' Authorization: Bearer <JWT> ' \
Purpose: Retrieve resource
Parameters
public (query, string)
q (query, string)
Request body
None
Responses
403 — Forbidden
500 — Internal Server Error
Example request
curl -X GET ' http://localhost:3099/api/artists/search/new/music-brainz ' \
-H ' Authorization: Bearer <JWT> ' \
Purpose: Retrieve resource
Parameters
None
Request body
None
Responses
Example request
curl -X GET ' http://localhost:3099/api/artists/genres ' \
-H ' Authorization: Bearer <JWT> ' \
Purpose: Retrieve resource
Parameters
public (query, string)
spotifyID (query, string) required
name (query, string)
Request body
None
Responses
400 — Bad Request
403 — Forbidden
500 — Internal Server Error
Example request
curl -X GET ' http://localhost:3099/api/artists/platforms ' \
-H ' Authorization: Bearer <JWT> ' \
Purpose: Retrieve resource
Parameters
id (path, string) required
public (query, string)
time_range (query, string)
location (query, string)
location_name (query, string)
type (query, string)
from (query, string)
to (query, string)
tag (query, string)
check (query, boolean)
Request body
None
Responses
400 — Bad Request
403 — Forbidden
500 — Internal Server Error
Example request
curl -X GET ' http://localhost:3099/api/artists/{id}/trend ' \
-H ' Authorization: Bearer <JWT> ' \
Purpose: Retrieve resource
Parameters
id (path, string) required
public (query, string)
country (query, string) required
Request body
None
Responses
400 — Bad Request
403 — Forbidden
500 — Internal Server Error
Example request
curl -X GET ' http://localhost:3099/api/artists/{id}/data ' \
-H ' Authorization: Bearer <JWT> ' \
Purpose: Retrieve resource
Parameters
id (path, string) required
public (query, string)
country (query, string) required
Request body
None
Responses
400 — Bad Request
403 — Forbidden
500 — Internal Server Error
Example request
curl -X GET ' http://localhost:3099/api/artists/{id}/data-v2 ' \
-H ' Authorization: Bearer <JWT> ' \
Purpose: Retrieve resource
Parameters
id (path, string) required
public (query, string)
Request body
None
Responses
403 — Forbidden
500 — Internal Server Error
Example request
curl -X GET ' http://localhost:3099/api/artists/{id}/stats ' \
-H ' Authorization: Bearer <JWT> ' \
Purpose: Retrieve resource
Parameters
id (path, string) required
public (query, string)
Request body
None
Responses
403 — Forbidden
500 — Internal Server Error
Example request
curl -X GET ' http://localhost:3099/api/artists/{id}/card-stats ' \
-H ' Authorization: Bearer <JWT> ' \
Purpose: Retrieve resource
Parameters
id (path, string) required
public (query, string)
Request body
None
Responses
403 — Forbidden
500 — Internal Server Error
Example request
curl -X GET ' http://localhost:3099/api/artists/{id}/demographics ' \
-H ' Authorization: Bearer <JWT> ' \
Purpose: Retrieve resource
Parameters
id (path, string) required
public (query, string)
Request body
None
Responses
403 — Forbidden
500 — Internal Server Error
Example request
curl -X GET ' http://localhost:3099/api/artists/{id}/setlistfm ' \
-H ' Authorization: Bearer <JWT> ' \
Purpose: Retrieve resource
Parameters
id (path, string) required
countryCode (path, string) required
public (query, string)
Request body
None
Responses
403 — Forbidden
500 — Internal Server Error
Example request
curl -X GET ' http://localhost:3099/api/artists/{id}/prediction/{countryCode} ' \
-H ' Authorization: Bearer <JWT> ' \
Purpose: Retrieve resource
Parameters
id (path, string) required
public (query, string)
Request body
None
Responses
403 — Forbidden
500 — Internal Server Error
Example request
curl -X GET ' http://localhost:3099/api/artists/{id}/bandsintown/events ' \
-H ' Authorization: Bearer <JWT> ' \
Purpose: Retrieve resource
Parameters
id (path, string) required
public (query, string)
Request body
None
Responses
403 — Forbidden
500 — Internal Server Error
Example request
curl -X GET ' http://localhost:3099/api/artists/{id}/bandsintown ' \
-H ' Authorization: Bearer <JWT> ' \
Purpose: Retrieve resource
Parameters
id (path, string) required
public (query, string)
Request body
None
Responses
403 — Forbidden
500 — Internal Server Error
Example request
curl -X GET ' http://localhost:3099/api/artists/{id}/historical ' \
-H ' Authorization: Bearer <JWT> ' \
Purpose: Retrieve resource
Parameters
id (path, string) required
public (query, string)
Request body
None
Responses
403 — Forbidden
500 — Internal Server Error
Example request
curl -X GET ' http://localhost:3099/api/artists/{id}/discography ' \
-H ' Authorization: Bearer <JWT> ' \
Purpose: Retrieve resource
Parameters
id (path, string) required
public (query, string)
Request body
None
Responses
403 — Forbidden
500 — Internal Server Error
Example request
curl -X GET ' http://localhost:3099/api/artists/{id}/events ' \
-H ' Authorization: Bearer <JWT> ' \
Purpose: Retrieve resource
Parameters
id (path, string) required
public (query, string)
Request body
None
Responses
403 — Forbidden
500 — Internal Server Error
Example request
curl -X GET ' http://localhost:3099/api/artists/{id}/performance ' \
-H ' Authorization: Bearer <JWT> ' \
Purpose: Retrieve resource
Parameters
id (path, string) required
public (query, string)
Request body
None
Responses
403 — Forbidden
500 — Internal Server Error
Example request
curl -X GET ' http://localhost:3099/api/artists/{id}/contacts ' \
-H ' Authorization: Bearer <JWT> ' \
Purpose: Retrieve resource
Parameters
id (path, string) required
public (query, string)
Request body
None
Responses
403 — Forbidden
500 — Internal Server Error
Example request
curl -X GET ' http://localhost:3099/api/artists/{id} ' \
-H ' Authorization: Bearer <JWT> ' \
Purpose: Create resource
Parameters
id (path, string) required
public (query, string)
Request body
None
Responses
403 — Forbidden
500 — Internal Server Error
Example request
curl -X POST ' http://localhost:3099/api/artists/{id}/prediction-v2 ' \
-H ' Authorization: Bearer <JWT> ' \
Purpose: Create resource
Parameters
id (path, string) required
public (query, string)
Request body
None
Responses
403 — Forbidden
500 — Internal Server Error
Example request
curl -X POST ' http://localhost:3099/api/artists/{id}/prediction-v3 ' \
-H ' Authorization: Bearer <JWT> ' \
Purpose: Create resource
Parameters
Request body
None
Responses
403 — Forbidden
500 — Internal Server Error
Example request
curl -X POST ' http://localhost:3099/api/artists/market-analysis ' \
-H ' Authorization: Bearer <JWT> ' \
Purpose: Create resource
Parameters
id (path, string) required
public (query, string)
Request body
Required: Yes
Content-Type: application/json
Content-Type: application/xml
Responses
400 — Bad Request
403 — Forbidden
500 — Internal Server Error
Example request
curl -X POST ' http://localhost:3099/api/artists/{id}/bio ' \
-H ' Authorization: Bearer <JWT> ' \
-H ' Content-Type: application/json ' \
All protected routes MUST follow this flow:
Validate JWT
→ if invalid → 401
Validate x-org
→ if missing → 400
Resolve effective access
→ call Auth /auth/me/access
If Auth fails
→ return 503
Check module access
→ if missing → 403
Check permission
→ if missing → 403
Execute request
⚠️ DEPRECATED — DO NOT USE
All authentication logic in this backend is deprecated and must be removed.
This backend no longer owns identity or authentication .
All /auth/* endpoints have been removed from this backend.
They must not be called under any circumstance.
Refer to:
Auth Backend documentation
This service must NOT :
authenticate users
issue JWT tokens
refresh tokens
manage passwords
validate credentials
manage user identity
All authentication is handled by the Auth Backend .
Source of truth:
2.1.-Backend-Auth.md . Auth Backend endpoints must be consumed via its own documentation. This backend must not depend on specific endpoint paths of the Auth service.
This backend must:
accept Authorization: Bearer <JWT>
accept x-org: <companyId>
validate JWT (signature, expiration, issuer, audience, and token format)
trust Auth for:
user identity
company membership
effective access
This backend requires the client to send the active company in:
The Base backend does not own company selection.
The active company must come from the external Auth flow and frontend company selection process.
This backend must then rely on the external Auth system to determine whether the authenticated user belongs to that company and has valid access there.
Any legacy logic that previously selected or resolved the company inside this backend as an authority for access is deprecated and must be removed.
JWT validation in this backend must be limited to consuming tokens issued by the external Auth service .
Allowed:
parse bearer token
verify JWT signature
verify issuer
verify audience
verify expiration
reject invalid token with 401
Not allowed:
generate token locally
refresh token locally
authenticate email/password locally
keep this backend as JWT issuer
All local auth/token code is deprecated and must be removed.
All code related to Auth must be removed:
controllers
services
routes
middleware (if doing identity resolution)
database logic for authentication
password logic
token generation logic
Only JWT validation middleware is allowed.
This backend must no longer determine package access, permission access, or subscription access locally.
The source of truth for effective access is now the external Auth system.
This means:
package-based access checks in this backend are deprecated
permission-based access checks remain required in this backend, but MUST rely exclusively on the effective access returned by Auth. Local permission systems as a source of truth are deprecated.
subscription-based access checks in this backend are deprecated if they are local source-of-truth checks
This backend must only enforce the effective access model returned by Auth.
❌ Auth endpoints: deprecated
❌ Auth logic: must be removed
✅ Auth integration: required (external Auth service)
Operations in this group: 9
Purpose: Retrieve resource
Parameters
public (query, string)
from (query, string)
to (query, string)
name (query, string)
limit (query, number)
sort (query, string)
Request body
None
Responses
403 — Forbidden
500 — Internal Server Error
Example request
curl -X GET ' http://localhost:3099/api/avails ' \
-H ' Authorization: Bearer <JWT> ' \
Purpose: Create resource
Parameters
Request body
None
Responses
403 — Forbidden
500 — Internal Server Error
Example request
curl -X POST ' http://localhost:3099/api/avails ' \
-H ' Authorization: Bearer <JWT> ' \
Purpose: Retrieve resource
Parameters
public (query, string)
from (query, date)
to (query, date)
name (query, string)
limit (query, number)
page (query, number)
iso2 (query, string)
artist (query, string)
regions (query, array) — Array of territory IDs
subregions (query, array) — Array of territory IDs
countries (query, array) — Array of territory IDs
sortBy (query, string; enum: name, date, fee, commission) — Field to sort results by
sortOrder (query, string; enum: asc, desc) — Sort direction
Request body
None
Responses
403 — Forbidden
500 — Internal Server Error
Example request
curl -X GET ' http://localhost:3099/api/avails/user ' \
-H ' Authorization: Bearer <JWT> ' \
Purpose: Retrieve resource
Parameters
id (path, string) required
public (query, string)
eventTitle (query, string)
status (query, boolean)
date (query, date)
country_iso (query, string)
Request body
None
Responses
403 — Forbidden
500 — Internal Server Error
Example request
curl -X GET ' http://localhost:3099/api/avails/{id}/shows ' \
-H ' Authorization: Bearer <JWT> ' \
Purpose: Retrieve resource
Parameters
id (path, string) required
public (query, string)
Request body
None
Responses
403 — Forbidden
500 — Internal Server Error
Example request
curl -X GET ' http://localhost:3099/api/avails/{id}/shows-summary ' \
-H ' Authorization: Bearer <JWT> ' \
Purpose: Retrieve resource
Parameters
public (query, string)
artist (query, string)
regions (query, array) — Array of territory IDs
subregions (query, array) — Array of territory IDs
countries (query, array) — Array of territory IDs
Request body
None
Responses
403 — Forbidden
500 — Internal Server Error
Example request
curl -X GET ' http://localhost:3099/api/avails/agencies ' \
-H ' Authorization: Bearer <JWT> ' \
Purpose: Retrieve resource
Parameters
id (path, string) required
public (query, string)
Request body
None
Responses
403 — Forbidden
500 — Internal Server Error
Example request
curl -X GET ' http://localhost:3099/api/avails/{id} ' \
-H ' Authorization: Bearer <JWT> ' \
Purpose: Replace resource
Parameters
id (path, string) required
public (query, string)
Request body
None
Responses
403 — Forbidden
500 — Internal Server Error
Example request
curl -X PUT ' http://localhost:3099/api/avails/{id} ' \
-H ' Authorization: Bearer <JWT> ' \
Purpose: Delete resource
Parameters
id (path, string) required
public (query, string)
Request body
None
Responses
403 — Forbidden
500 — Internal Server Error
Example request
curl -X DELETE ' http://localhost:3099/api/avails/{id} ' \
-H ' Authorization: Bearer <JWT> ' \
Operations in this group: 1
Purpose: Retrieve resource
Parameters
startDate (query, string) required
endDate (query, string) required
Request body
None
Responses
400 — Bad Request
403 — Forbidden
Example request
curl -X GET ' http://localhost:3099/api/cash-flow ' \
-H ' Authorization: Bearer <JWT> ' \
Operations in this group: 9
Purpose: Retrieve resource
Parameters
None
Request body
None
Responses
Example request
curl -X GET ' http://localhost:3099/api/countries ' \
-H ' Authorization: Bearer <JWT> ' \
Purpose: Retrieve resource
Parameters
None
Request body
None
Responses
Example request
curl -X GET ' http://localhost:3099/api/countries/all/currencies ' \
-H ' Authorization: Bearer <JWT> ' \
Purpose: Retrieve resource
Parameters
Request body
None
Responses
Example request
curl -X GET ' http://localhost:3099/api/countries/all ' \
-H ' Authorization: Bearer <JWT> ' \
Purpose: Retrieve resource
Parameters
Request body
None
Responses
Example request
curl -X GET ' http://localhost:3099/api/countries/search ' \
-H ' Authorization: Bearer <JWT> ' \
Purpose: Retrieve resource
Parameters
iso (path, string) required
Request body
None
Responses
Example request
curl -X GET ' http://localhost:3099/api/countries/{iso} ' \
-H ' Authorization: Bearer <JWT> ' \
Purpose: Retrieve resource
Parameters
iso2 (path, string) required
name (query, string) required — City name or partial name to search for
Request body
None
Responses
Example request
curl -X GET ' http://localhost:3099/api/countries/{iso2}/cities/search ' \
-H ' Authorization: Bearer <JWT> ' \
Purpose: Retrieve resource
Parameters
iso2 (path, string) required
Request body
None
Responses
Example request
curl -X GET ' http://localhost:3099/api/countries/{iso2}/states ' \
-H ' Authorization: Bearer <JWT> ' \
Purpose: Retrieve resource
Parameters
iso2 (path, string) required
name (query, string) required — State name or partial name to search for
Request body
None
Responses
Example request
curl -X GET ' http://localhost:3099/api/countries/{iso2}/states/search ' \
-H ' Authorization: Bearer <JWT> ' \
Purpose: Retrieve resource
Parameters
iso2 (path, string) required
state_code (path, string) required
Request body
None
Responses
Example request
curl -X GET ' http://localhost:3099/api/countries/{iso2}/states/{state_code} ' \
-H ' Authorization: Bearer <JWT> ' \
⚠️ DEPRECATED — MOVED TO AUTH BACKEND
This section is no longer valid in the Base backend.
All routes, controllers, services, and database logic related to Auth must be removed.
See:
user-to-company relationships
company membership management
Company membership is part of:
and is now owned by:
company user controllers
membership assignment logic
company-user tables as source of truth
any access logic based on company-user relations
Use Auth Backend:
This backend must NOT:
decide if user belongs to company
assign users to companies
manage memberships
Membership must be resolved via Auth.
Operations in this group: 3
Purpose: Retrieve resource
Parameters
Request body
None
Responses
403 — Forbidden
500 — Internal Server Error
Example request
curl -X GET ' http://localhost:3099/api/company-users ' \
-H ' Authorization: Bearer <JWT> ' \
Purpose: Update resource
Parameters
id (path, string) required
public (query, string)
Request body
Required: Yes
Content-Type: application/json
$ref: UpdateCompanyUserSchema
object
company_team: string
permissions: array
job_title: string
Content-Type: application/xml
$ref: UpdateCompanyUserSchema
object
company_team: string
permissions: array
job_title: string
Responses
403 — Forbidden
500 — Internal Server Error
Example request
curl -X PATCH ' http://localhost:3099/api/company-users/{id} ' \
-H ' Authorization: Bearer <JWT> ' \
-H ' Content-Type: application/json ' \
"company_team": "string",
Purpose: Delete resource
Parameters
id (path, string) required
public (query, string)
Request body
None
Responses
403 — Forbidden
500 — Internal Server Error
Example request
curl -X DELETE ' http://localhost:3099/api/company-users/{id} ' \
-H ' Authorization: Bearer <JWT> ' \
⚠️ DEPRECATED — MOVED TO AUTH BACKEND
This section is no longer valid in the Base backend.
All routes, controllers, services, and database logic related to Auth must be removed.
See:
Invitations are part of:
user onboarding
company membership creation
identity lifecycle
This means they belong to the Auth Backend , not Platform Core and not Base backend.
inviting users to companies
onboarding flows
invitation token handling
Invitations are part of:
identity lifecycle
onboarding
membership creation
and are owned by:
invitation controllers
invitation routes
invitation services
invitation database tables
invitation email logic
Use Auth Backend:
This backend must NOT:
create invitations
accept invitations
manage onboarding flows
Invitation flow must be handled by Auth.
⚠️ DEPRECATED — MOVED TO AUTH BACKEND
This section is no longer valid in the Base backend.
All routes, controllers, services, and database logic related to Auth must be removed.
See:
team structures
team-based access
grouping users within company
Teams affect:
permissions
access control
and belong to:
team controllers
team routes
team-based permission logic
team-based access checks
Use Auth Backend:
This backend must NOT:
resolve access using teams
manage team membership for access control
Teams must only be consumed via Auth effective access.
Operations in this group: 11
Purpose: Retrieve resource
Parameters
None
Request body
None
Responses
Example request
curl -X GET ' http://localhost:3099/api/companies ' \
-H ' Authorization: Bearer <JWT> ' \
Purpose: Create resource
Parameters
None
Request body
None
Responses
Example request
curl -X POST ' http://localhost:3099/api/companies ' \
-H ' Authorization: Bearer <JWT> ' \
Purpose: Retrieve resource
Parameters
None
Request body
None
Responses
Example request
curl -X GET ' http://localhost:3099/api/companies/user/ ' \
-H ' Authorization: Bearer <JWT> ' \
Purpose: Retrieve resource
Parameters
public (query, string)
permission_type (query, string; enum: user, team)
Request body
None
Responses
403 — Forbidden
500 — Internal Server Error
Example request
curl -X GET ' http://localhost:3099/api/companies/active-package ' \
-H ' Authorization: Bearer <JWT> ' \
Purpose: Retrieve resource
Parameters
id (path, string) required
public (query, string)
Request body
None
Responses
403 — Forbidden
500 — Internal Server Error
Example request
curl -X GET ' http://localhost:3099/api/companies/user/details/{id} ' \
-H ' Authorization: Bearer <JWT> ' \
Purpose: Retrieve resource
Parameters
id (path, string) required
Request body
None
Responses
Example request
curl -X GET ' http://localhost:3099/api/companies/{id} ' \
-H ' Authorization: Bearer <JWT> ' \
Purpose: Replace resource
Parameters
id (path, string) required
public (query, string)
Request body
None
Responses
403 — Forbidden
500 — Internal Server Error
Example request
curl -X PUT ' http://localhost:3099/api/companies/{id} ' \
-H ' Authorization: Bearer <JWT> ' \
Purpose: Delete resource
Parameters
id (path, string) required
public (query, string)
Request body
None
Responses
403 — Forbidden
500 — Internal Server Error
Example request
curl -X DELETE ' http://localhost:3099/api/companies/{id} ' \
-H ' Authorization: Bearer <JWT> ' \
Purpose: Create resource
Parameters
None
Request body
None
Responses
Example request
curl -X POST ' http://localhost:3099/api/companies/image ' \
-H ' Authorization: Bearer <JWT> ' \
Purpose: Create resource
Parameters
id (path, string) required
Request body
None
Responses
Example request
curl -X POST ' http://localhost:3099/api/companies/user/{id} ' \
-H ' Authorization: Bearer <JWT> ' \
Purpose: Delete resource
Parameters
id (path, string) required
Request body
None
Responses
Example request
curl -X DELETE ' http://localhost:3099/api/companies/{id}/leave ' \
-H ' Authorization: Bearer <JWT> ' \
Operations in this group: 3
Purpose: Retrieve resource
Parameters
public (query, string)
period (query, string; enum: all_time, last_month, three_months, six_months) — default: all_time — Options: all_time, last_month, three_months, six_months
Request body
None
Responses
403 — Forbidden
500 — Internal Server Error
Example request
curl -X GET ' http://localhost:3099/api/dashboard/events-overview ' \
-H ' Authorization: Bearer <JWT> ' \
Purpose: Retrieve resource
Parameters
Request body
None
Responses
403 — Forbidden
500 — Internal Server Error
Example request
curl -X GET ' http://localhost:3099/api/dashboard/upcoming-events ' \
-H ' Authorization: Bearer <JWT> ' \
Purpose: Retrieve resource
Parameters
public (query, string)
period (query, string; enum: yearly, half-yearly, quarterly) — default: yearly — Options: yearly, half-yearly, quarterly
Request body
None
Responses
403 — Forbidden
500 — Internal Server Error
Example request
curl -X GET ' http://localhost:3099/api/dashboard/financial ' \
-H ' Authorization: Bearer <JWT> ' \
Operations in this group: 26
Purpose: Create resource
Parameters
Request body
Required: Yes
Content-Type: application/json
$ref: CreateEventsV2DtoSchema
object
posted_by: string required
status: boolean required
title: string required
date: string required (date-time)
time: object required
object
start: string required (date-time)
end: string required (date-time)
venue: string required
type: string enum(speaker, concert, workshop, meetup, festival) required
country_name: string required
country_iso: string required
country_currency: string required
city: string required
lineup: array required
items:
object
artist: string required
currency: string required
amount: number required (float)
vendor: string
Content-Type: application/xml
$ref: CreateEventsV2DtoSchema
object
posted_by: string required
status: boolean required
title: string required
date: string required (date-time)
time: object required
object
start: string required (date-time)
end: string required (date-time)
venue: string required
type: string enum(speaker, concert, workshop, meetup, festival) required
country_name: string required
country_iso: string required
country_currency: string required
city: string required
lineup: array required
items:
object
artist: string required
currency: string required
amount: number required (float)
vendor: string
Responses
400 — Bad Request
401 — Unauthorized
403 — Forbidden
500 — Internal Server Error
Example request
curl -X POST ' http://localhost:3099/api/v2/events ' \
-H ' Authorization: Bearer <JWT> ' \
-H ' Content-Type: application/json ' \
"date": "2026-01-01T00:00:00Z",
"start": "2026-01-01T00:00:00Z",
"end": "2026-01-01T00:00:00Z"
Purpose: Update resource
Parameters
id (path, string) required
public (query, string)
Request body
Required: Yes
Content-Type: application/json
$ref: UpdateEventsV2DtoDefinition (schema definition not found)
Content-Type: application/xml
$ref: UpdateEventsV2DtoDefinition (schema definition not found)
Responses
400 — Bad Request
403 — Forbidden
500 — Internal Server Error
Example request
curl -X PATCH ' http://localhost:3099/api/v2/events/{id} ' \
-H ' Authorization: Bearer <JWT> ' \
-H ' Content-Type: application/json ' \
"$ref": "UpdateEventsV2DtoDefinition"
Purpose: Create resource
Parameters
Request body
Required: Yes
Content-Type: application/json
$ref: CreateEventsDtoSchema
object
eventOrg: string required
status: boolean required
title: string required
date: string required (date-time)
country_iso: string required
country_name: string required
country_currency: string required
city: string required
venue: string required
venue_id: string
description: string
type: string required
lineup: array
time: object
object
start: string required (date-time)
end: string required (date-time)
financial: object required
object
expenses: object
object
estimated: object
object
talent_programming: array
hospitality_logistics: array
technical_infrastructure: array
operations_management: array
venue_site: array
safety_compliance: array
marketing_sales: array
commercial: array
general_administrative: array
other: array
actual: object
object
talent_programming: array
hospitality_logistics: array
technical_infrastructure: array
operations_management: array
venue_site: array
safety_compliance: array
marketing_sales: array
commercial: array
general_administrative: array
other: array
income: object
object
estimated: object
object
fnb: array
sponsors: array
merch: array
other: array
actual: object
object
tickets: array
fnb: array
sponsors: array
merch: array
other: array
tickets: array
taxes: array
Content-Type: application/xml
$ref: CreateEventsDtoSchema
object
eventOrg: string required
status: boolean required
title: string required
date: string required (date-time)
country_iso: string required
country_name: string required
country_currency: string required
city: string required
venue: string required
venue_id: string
description: string
type: string required
lineup: array
time: object
object
start: string required (date-time)
end: string required (date-time)
financial: object required
object
expenses: object
object
estimated: object
object
talent_programming: array
hospitality_logistics: array
technical_infrastructure: array
operations_management: array
venue_site: array
safety_compliance: array
marketing_sales: array
commercial: array
general_administrative: array
other: array
actual: object
object
talent_programming: array
hospitality_logistics: array
technical_infrastructure: array
operations_management: array
venue_site: array
safety_compliance: array
marketing_sales: array
commercial: array
general_administrative: array
other: array
income: object
object
estimated: object
object
fnb: array
sponsors: array
merch: array
other: array
actual: object
object
tickets: array
fnb: array
sponsors: array
merch: array
other: array
tickets: array
taxes: array
Responses
400 — Bad Request
401 — Unauthorized
403 — Forbidden
500 — Internal Server Error
Example request