Reassign List Owner
PATCH /lists/{audience_id}/owner
Hand a list to someone else.
mode="list_and_records" ALSO re-owns every record in the list. Under
record-level scoping that changes who can see them, so preview it first.
This route carries no verify_list_access_dep in the app - the transfer
rules are enforced inside the handler instead, and they are stricter than
the per-list read gate rather than weaker.
Authorizations
Parameters
Path Parameters
List (audience) id.
List (audience) id.
Header Parameters
Request Body required
Hand a list to someone else.
mode decides how far the transfer reaches, and the difference is not
cosmetic: list_and_records re-owns every CONTACT in the list as well,
which changes who can see them under record-level scoping. Preview it
first with GET /lists/{id}/owner/preview.
object
list_only moves just the list. list_and_records also re-owns every record in it, which can change who else can see them.
Must agree with the user id - the app verifies both. Typed as an email at the request layer because the app’s model is EmailStr and is built inside the handler: a malformed address would otherwise raise there and escape as a 500 rather than a 422.
Responses
200
Successful Response
object
An open envelope for a list, a capability map or a job result.
Open because several of these return the whole Audience, whose shape
carries per-source metadata that differs between an uploaded file, a
dynamic query and a master list - and grows with them.
object
422
Validation Error