curl --request POST \
--url https://api.1club.ai/v1/platform/events/{id}/duplicate \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.1club.ai/v1/platform/events/{id}/duplicate"
headers = {"Authorization": "Bearer <token>"}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.1club.ai/v1/platform/events/{id}/duplicate', 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.1club.ai/v1/platform/events/{id}/duplicate",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$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.1club.ai/v1/platform/events/{id}/duplicate"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
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.1club.ai/v1/platform/events/{id}/duplicate")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.1club.ai/v1/platform/events/{id}/duplicate")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"id": 123,
"slug": "<string>",
"title": "<string>",
"summary": "<string>",
"description": {
"blocks": [
{
"type": "paragraph",
"data": {},
"id": "<string>",
"tunes": {}
}
],
"time": 123,
"version": "<string>"
},
"descriptionText": "<string>",
"coverImage": "<string>",
"location": "<string>",
"clubId": 123,
"club": {
"id": 123,
"name": "<string>"
},
"startTime": "2023-11-07T05:31:56Z",
"endTime": "2023-11-07T05:31:56Z",
"status": "draft",
"visibility": "Public",
"featured": true,
"bookable": true,
"paymentCollection": "online",
"sports": [
"<string>"
],
"notifyStaff": true,
"translations": {},
"publishedAt": "2023-11-07T05:31:56Z",
"publicUrl": "<string>",
"instructors": [
{
"id": 123,
"name": "<string>"
}
],
"areas": [
{
"id": 123,
"name": "<string>"
}
],
"tickets": [
{
"id": 123,
"name": "<string>",
"description": "<string>",
"price": 123,
"capacity": 123,
"revenueAccountId": 123,
"sortOrder": 123,
"translations": {},
"soldCount": 123
}
],
"bookedCount": 123,
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z"
}{
"error": "<string>",
"code": "<string>",
"details": {}
}{
"error": "<string>",
"code": "<string>",
"details": {}
}{
"error": "<string>",
"code": "<string>",
"details": {}
}{
"error": "<string>",
"code": "<string>",
"details": {}
}{
"error": "<string>",
"code": "<string>",
"details": {}
}Duplicate an event
Copies an event into a new draft titled ” (copy)”, with the same schedule, description, tickets, coaches, areas and settings, and a new slug. Nothing of the original’s runtime state is copied: no bookings, not published. Edit the copy’s dates with PATCH, then publish it. Works on a cancelled event too, which is how one is run again.
curl --request POST \
--url https://api.1club.ai/v1/platform/events/{id}/duplicate \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.1club.ai/v1/platform/events/{id}/duplicate"
headers = {"Authorization": "Bearer <token>"}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.1club.ai/v1/platform/events/{id}/duplicate', 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.1club.ai/v1/platform/events/{id}/duplicate",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$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.1club.ai/v1/platform/events/{id}/duplicate"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
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.1club.ai/v1/platform/events/{id}/duplicate")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.1club.ai/v1/platform/events/{id}/duplicate")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"id": 123,
"slug": "<string>",
"title": "<string>",
"summary": "<string>",
"description": {
"blocks": [
{
"type": "paragraph",
"data": {},
"id": "<string>",
"tunes": {}
}
],
"time": 123,
"version": "<string>"
},
"descriptionText": "<string>",
"coverImage": "<string>",
"location": "<string>",
"clubId": 123,
"club": {
"id": 123,
"name": "<string>"
},
"startTime": "2023-11-07T05:31:56Z",
"endTime": "2023-11-07T05:31:56Z",
"status": "draft",
"visibility": "Public",
"featured": true,
"bookable": true,
"paymentCollection": "online",
"sports": [
"<string>"
],
"notifyStaff": true,
"translations": {},
"publishedAt": "2023-11-07T05:31:56Z",
"publicUrl": "<string>",
"instructors": [
{
"id": 123,
"name": "<string>"
}
],
"areas": [
{
"id": 123,
"name": "<string>"
}
],
"tickets": [
{
"id": 123,
"name": "<string>",
"description": "<string>",
"price": 123,
"capacity": 123,
"revenueAccountId": 123,
"sortOrder": 123,
"translations": {},
"soldCount": 123
}
],
"bookedCount": 123,
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z"
}{
"error": "<string>",
"code": "<string>",
"details": {}
}{
"error": "<string>",
"code": "<string>",
"details": {}
}{
"error": "<string>",
"code": "<string>",
"details": {}
}{
"error": "<string>",
"code": "<string>",
"details": {}
}{
"error": "<string>",
"code": "<string>",
"details": {}
}Authorizations
Organization-scoped bearer credential: a customer API key (1club_sk_live_...) or an MCP OAuth access token.
Headers
Retry-safe key; a repeat of the same request replays the first response
255Path Parameters
1club id of the event to copy
Response
The new draft
A one-off occasion a club puts on, sold through tickets. Counts only: who booked is not part of an event.
The last part of the public URL; follows the title.
An Editor.js document: { blocks: [{ type, data }] }.
Show child attributes
Show child attributes
description as plain text.
Show child attributes
Show child attributes
draft: members see nothing. live: published. cancelled: called off, its bookings cancelled.
draft, live, cancelled Public, Member_only, Private online, on_arrival, member_choice Per-locale wording, as { "es": { "title": "..." } }. Replaces the whole map when sent.
Show child attributes
Show child attributes
When it was first published.
The member-facing page. null unless the event is live, or when the organization publishes neither a website nor a member portal.
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Active tickets, in display order.
Show child attributes
Show child attributes
Active bookings (confirmed, pending, checked in) across all tickets.
Was this page helpful?