Update Event
curl --request PUT \
--url https://api.example.com/wp-json/latepoint-api/v1/events/{id} \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>",
"status": "<string>",
"price": 123,
"capacity": 123,
"registration_end": "<string>",
"ticket_types": [
{}
]
}
'import requests
url = "https://api.example.com/wp-json/latepoint-api/v1/events/{id}"
payload = {
"name": "<string>",
"status": "<string>",
"price": 123,
"capacity": 123,
"registration_end": "<string>",
"ticket_types": [{}]
}
headers = {"Content-Type": "application/json"}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
status: '<string>',
price: 123,
capacity: 123,
registration_end: '<string>',
ticket_types: [{}]
})
};
fetch('https://api.example.com/wp-json/latepoint-api/v1/events/{id}', 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/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'name' => '<string>',
'status' => '<string>',
'price' => 123,
'capacity' => 123,
'registration_end' => '<string>',
'ticket_types' => [
[
]
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.example.com/wp-json/latepoint-api/v1/events/{id}"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"status\": \"<string>\",\n \"price\": 123,\n \"capacity\": 123,\n \"registration_end\": \"<string>\",\n \"ticket_types\": [\n {}\n ]\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.put("https://api.example.com/wp-json/latepoint-api/v1/events/{id}")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"status\": \"<string>\",\n \"price\": 123,\n \"capacity\": 123,\n \"registration_end\": \"<string>\",\n \"ticket_types\": [\n {}\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/wp-json/latepoint-api/v1/events/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"status\": \"<string>\",\n \"price\": 123,\n \"capacity\": 123,\n \"registration_end\": \"<string>\",\n \"ticket_types\": [\n {}\n ]\n}"
response = http.request(request)
puts response.read_bodyEvents
Update Event
Update an existing event.
PUT
/
wp-json
/
latepoint-api
/
v1
/
events
/
{id}
Update Event
curl --request PUT \
--url https://api.example.com/wp-json/latepoint-api/v1/events/{id} \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>",
"status": "<string>",
"price": 123,
"capacity": 123,
"registration_end": "<string>",
"ticket_types": [
{}
]
}
'import requests
url = "https://api.example.com/wp-json/latepoint-api/v1/events/{id}"
payload = {
"name": "<string>",
"status": "<string>",
"price": 123,
"capacity": 123,
"registration_end": "<string>",
"ticket_types": [{}]
}
headers = {"Content-Type": "application/json"}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
status: '<string>',
price: 123,
capacity: 123,
registration_end: '<string>',
ticket_types: [{}]
})
};
fetch('https://api.example.com/wp-json/latepoint-api/v1/events/{id}', 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/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'name' => '<string>',
'status' => '<string>',
'price' => 123,
'capacity' => 123,
'registration_end' => '<string>',
'ticket_types' => [
[
]
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.example.com/wp-json/latepoint-api/v1/events/{id}"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"status\": \"<string>\",\n \"price\": 123,\n \"capacity\": 123,\n \"registration_end\": \"<string>\",\n \"ticket_types\": [\n {}\n ]\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.put("https://api.example.com/wp-json/latepoint-api/v1/events/{id}")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"status\": \"<string>\",\n \"price\": 123,\n \"capacity\": 123,\n \"registration_end\": \"<string>\",\n \"ticket_types\": [\n {}\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/wp-json/latepoint-api/v1/events/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"status\": \"<string>\",\n \"price\": 123,\n \"capacity\": 123,\n \"registration_end\": \"<string>\",\n \"ticket_types\": [\n {}\n ]\n}"
response = http.request(request)
puts response.read_bodyPath Parameters
integer
required
The ID of the event to update
Request Body Parameters
All parameters are optional. Only provided fields will be updated; omitted fields and settings keep their current values. Accepts the same parameters as Create Event, including the Pro parameters, exceptdates. To add, change or remove dates use the Event Dates endpoints.
string
Event name. Cannot be empty.
string
Event status. Available values:
draft, published, cancelled, completednumber
Price per ticket (
0 = free event)integer
Maximum number of places.
0 or empty = unlimited.string
When registration closes (
YYYY-MM-DD HH:MM, site timezone). Send null to close registration when the event starts.array
Pro. Replaces the whole list of ticket types. Include the
id of every ticket type you want to keep; types left out are deleted if they were never sold, otherwise they are set to disabled.When you send
ticket_types, always send the complete list. A partial list removes (or disables) the ticket types you leave out.Example Request
PUT /wp-json/latepoint-api/v1/events/2
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
{
"capacity": 12,
"registration_end": "2026-12-03 18:00",
"ticket_types": [
{ "id": 1, "name": "General", "price": 20, "capacity": 8 },
{ "name": "VIP", "price": 40, "capacity": 4 }
]
}
Response
Returns the full updated event, includingdates. See Get Event for the complete object.
{
"success": true,
"message": "Event updated successfully",
"data": {
"id": 2,
"name": "Yoga Retreat",
"status": "published",
"price": 25,
"formatted_price": "$25.00",
"start": "2026-12-05 09:00:00",
"end": "2026-12-06 12:00:00",
"start_utc": "2026-12-05 12:00:00",
"end_utc": "2026-12-06 15:00:00",
"registration_start": null,
"registration_end": "2026-12-03 18:00:00",
"registration_open": true,
"capacity": {
"unlimited": false,
"total": 12,
"booked": 0,
"available": 12,
"sold_out": false
},
"timezone": "America/Montevideo",
"use_ticket_types": true,
"ticket_types": [
{
"id": 1,
"event_id": 2,
"name": "General",
"price": 20,
"formatted_price": "$20.00",
"capacity": 8,
"booked": 0,
"available": 8,
"sold_out": false,
"status": "active",
"order_number": 0
},
{
"id": 2,
"event_id": 2,
"name": "VIP",
"price": 40,
"formatted_price": "$40.00",
"capacity": 4,
"booked": 0,
"available": 4,
"sold_out": false,
"status": "active",
"order_number": 1
}
]
}
}
The response above is shortened. The actual response contains every field of the Event Object.
Error Responses
| Status | Code | Description |
|---|---|---|
400 | invalid_field | name is sent empty |
400 | invalid_status, invalid_event_type, invalid_datetime, invalid_category | Same validation as Create Event |
404 | event_not_found | The event does not exist |
422 | save_error | LatePoint could not save the event |
503 | feature_disabled | Events is disabled in LatePoint settings |
