Created true, its Status back to waiting_for_hotel (a new link means "look at this again"), and ApprovedAt, ApprovedBy and ApprovedTextGeneratedAt kept as the record of what was approved — which makes this the way back to a live link after a revoke. Created distinguishes minted from untouched per row. Hotel ids that are not live members of the project are skipped and echoed in NotInProjectIDs.curl --location 'https://api.ygo.ai/v2/project/content/createApprovalLinks' \
--header 'X-Project-ID: ' \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"HotelIDs": [
"019d9c2e-0ef8-7458-b0fa-8bed7182eb30",
"019d9c23-1238-7334-bf02-4c45c50e033a"
]
}'{
"Data": [
{
"HotelID": "019d9c2e-0ef8-7458-b0fa-8bed7182eb30",
"HotelName": "Sotavento Beach Club",
"GiataID": 5721,
"MasterCode": "FUED0009",
"Token": "xPBOjXHomqBvKZ0nQ2sT7yWlR4dGuAeIcNvXbF9pMk3",
"TokenPreview": "xPBOjXHo...",
"Status": "waiting_for_hotel",
"Created": true,
"CreatedBy": "editor@example.com",
"CreatedAt": "2026-08-25T18:19:17.522006Z",
"UpdatedAt": "2026-08-25T18:19:17.522006Z"
},
{
"HotelID": "019d9c23-1238-7334-bf02-4c45c50e033a",
"HotelName": "JAZ Makadina",
"GiataID": 16706,
"MasterCode": "HRGD0238",
"Token": "QxIpAvQhJ8rLzTd5oYuN1kSbVe6HcWfMg0iRnJ2aPtE",
"TokenPreview": "QxIpAvQh...",
"Status": "waiting_for_hotel",
"Created": true,
"CreatedBy": "editor@example.com",
"CreatedAt": "2026-08-25T18:19:17.522006Z",
"UpdatedAt": "2026-08-25T18:19:17.522006Z"
}
]
}