Promote From Waiting List
curl --request POST \
--url https://api.example.com/wp-json/latepoint-api/v1/events/waiting-list/{id}/promoteimport requests
url = "https://api.example.com/wp-json/latepoint-api/v1/events/waiting-list/{id}/promote"
response = requests.post(url)
print(response.text)const options = {method: 'POST'};
fetch('https://api.example.com/wp-json/latepoint-api/v1/events/waiting-list/{id}/promote', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.example.com/wp-json/latepoint-api/v1/events/waiting-list/{id}/promote",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.example.com/wp-json/latepoint-api/v1/events/waiting-list/{id}/promote"
req, _ := http.NewRequest("POST", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.example.com/wp-json/latepoint-api/v1/events/waiting-list/{id}/promote")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/wp-json/latepoint-api/v1/events/waiting-list/{id}/promote")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
response = http.request(request)
puts response.read_bodyWaiting List (Pro)
Promote From Waiting List
Register a waiting list customer directly. Free events only.
POST
/
wp-json
/
latepoint-api
/
v1
/
events
/
waiting-list
/
{id}
/
promote
Promote From Waiting List
curl --request POST \
--url https://api.example.com/wp-json/latepoint-api/v1/events/waiting-list/{id}/promoteimport requests
url = "https://api.example.com/wp-json/latepoint-api/v1/events/waiting-list/{id}/promote"
response = requests.post(url)
print(response.text)const options = {method: 'POST'};
fetch('https://api.example.com/wp-json/latepoint-api/v1/events/waiting-list/{id}/promote', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.example.com/wp-json/latepoint-api/v1/events/waiting-list/{id}/promote",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.example.com/wp-json/latepoint-api/v1/events/waiting-list/{id}/promote"
req, _ := http.NewRequest("POST", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.example.com/wp-json/latepoint-api/v1/events/waiting-list/{id}/promote")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/wp-json/latepoint-api/v1/events/waiting-list/{id}/promote")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
response = http.request(request)
puts response.read_bodyLatePoint Pro feature. The waiting list requires LatePoint Pro Features with Waiting List enabled in LatePoint settings. Otherwise this endpoint returns
503 (feature_not_available or feature_disabled). See Pro features.converted.
Promote only works for free places. For paid events use Invite From Waiting List so the customer pays at checkout.
Path Parameters
integer
required
The ID of the waiting list entry
Example Request
POST /wp-json/latepoint-api/v1/events/waiting-list/1/promote
Authorization: Bearer YOUR_API_KEY
Response
The response includes the new registration inregistration. It has no order, so order_id is null.
{
"success": true,
"message": "A place has been given and the customer is now registered",
"data": {
"id": 1,
"event_id": 3,
"customer_id": 40,
"customer": {
"id": 40,
"first_name": "Api",
"last_name": "Tester",
"full_name": "Api Tester",
"email": "api.tester@example.com",
"phone": ""
},
"ticket_type_id": null,
"ticket_type_name": null,
"quantity": 1,
"status": "converted",
"status_label": "Registered",
"position": null,
"invited_at": null,
"invite_expires_at": null,
"converted_registration_id": 5,
"converted_order_id": null,
"created_at": "2026-10-28 16:10:05",
"updated_at": "2026-10-28 19:50:12"
},
"registration": {
"id": 5,
"registration_code": "K4TQW8RZ",
"event_id": 3,
"event_name": "Free Meetup",
"customer_id": 40,
"customer": {
"id": 40,
"first_name": "Api",
"last_name": "Tester",
"full_name": "Api Tester",
"email": "api.tester@example.com",
"phone": ""
},
"order_id": null,
"order_item_id": null,
"quantity": 1,
"status": "confirmed",
"status_label": "Confirmed",
"payment_status": "not_paid",
"notes": null,
"created_at": "2026-10-28 19:50:12",
"updated_at": "2026-10-28 19:50:12",
"ticket_types": []
}
}
Error Responses
When LatePoint cannot give the place (the place is paid, the event is still full, the entry is no longer active…), the request fails with409 and LatePoint’s own explanation:
{
"code": "waiting_list_action_failed",
"message": "This place is paid, so the customer has to be invited to check out rather than given a place directly.",
"data": {
"status": 409
}
}
404 waiting_list_entry_not_found, 503 feature_disabled.