Artist Roster Management
REST API endpoints for managing artist roster members and pending invitations.
Endpoints
List Roster Members and Invites
Endpoint: GET /wp-json/extrachill/v1/artists/{id}/roster
Purpose: Retrieve current roster members and pending invitations for an artist profile.
Parameters:
id(integer, required) – Artist profile post ID (in URL path)
Response (HTTP 200):
{
"members": [
{
"id": 123,
"display_name": "John Doe",
"username": "johndoe",
"email": "[email protected]",
"avatar_url": "https://example.com/wp-content/uploads/avatar.jpg",
"profile_url": "https://example.com/artists/johndoe"
}
],
"invites": [
{
"id": "abc123def456",
"email": "[email protected]",
"of_existing_user": false,
"status": "pending",
"invited_on": 1704067200,
"invited_on_formatted": "January 1, 2025"
}
]
}
Permission: User must have permission to manage the artist (ec_can_manage_artist())
File: inc/routes/artists/roster.php
Invite Roster Member
Endpoint: POST /wp-json/extrachill/v1/artists/{id}/roster
Purpose: Send an invitation to join the artist roster.
Parameters:
id(integer, required) – Artist profile post ID (in URL path)email(string, required) – Email address of person to invite
Response (HTTP 200):
{
"message": "Invitation successfully sent.",
"invitation": {
"id": "abc123def456",
"email": "[email protected]",
"status": "pending"
}
}
Permission: User must have permission to manage the artist
File: inc/routes/artists/roster.php
Remove Roster Member
Endpoint: DELETE /wp-json/extrachill/v1/artists/{id}/roster/{user_id}
Purpose: Remove a user from the artist roster.
Parameters:
id(integer, required) – Artist profile post ID (in URL path)user_id(integer, required) – User ID to remove from roster (in URL path)
Response (HTTP 200):
{
"removed": true,
"user_id": 123,
"artist_id": 456
}
Permission: User must have permission to manage the artist
File: inc/routes/artists/roster.php
Cancel Pending Invitation
Endpoint: DELETE /wp-json/extrachill/v1/artists/{id}/roster/invites/{invite_id}
Purpose: Cancel a pending roster invitation.
Parameters:
id(integer, required) – Artist profile post ID (in URL path)invite_id(string, required) – Invitation ID to cancel (in URL path)
Response (HTTP 200):
{
"cancelled": true,
"invite_id": "abc123def456",
"artist_id": 456
}
Permission: User must have permission to manage the artist
File: inc/routes/artists/roster.php
Error Responses
Invalid Artist (HTTP 400):
{
"code": "invalid_artist",
"message": "Invalid artist specified.",
"data": { "status": 400 }
}
Permission Denied (HTTP 403):
{
"code": "permission_denied",
"message": "You do not have permission to manage members for this artist.",
"data": { "status": 403 }
}
Invalid Email (HTTP 400):
{
"code": "invalid_email",
"message": "Please enter a valid email address.",
"data": { "status": 400 }
}
Dependencies
- BuddyPress integration for roster management
ec_can_manage_artist()function for permission checksbp_get_linked_members()andbp_get_pending_invitations()for data retrievalextrachill_artist_invite_memberfilter for invitation handling
Integration
Used by artist management interfaces to allow collaborative management of artist profiles by multiple team members.