Change Boosted Creator (Sponsor)
curl --request PUT \
--url https://sdk-api.playcamp.io/v1/server/sponsors/user/{userId} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"newCreatorKey": "<string>",
"campaignId": "<string>",
"callbackId": "<string>",
"isTest": false
}
'import requests
url = "https://sdk-api.playcamp.io/v1/server/sponsors/user/{userId}"
payload = {
"newCreatorKey": "<string>",
"campaignId": "<string>",
"callbackId": "<string>",
"isTest": False
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
newCreatorKey: '<string>',
campaignId: '<string>',
callbackId: '<string>',
isTest: false
})
};
fetch('https://sdk-api.playcamp.io/v1/server/sponsors/user/{userId}', 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://sdk-api.playcamp.io/v1/server/sponsors/user/{userId}",
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([
'newCreatorKey' => '<string>',
'campaignId' => '<string>',
'callbackId' => '<string>',
'isTest' => false
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"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://sdk-api.playcamp.io/v1/server/sponsors/user/{userId}"
payload := strings.NewReader("{\n \"newCreatorKey\": \"<string>\",\n \"campaignId\": \"<string>\",\n \"callbackId\": \"<string>\",\n \"isTest\": false\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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://sdk-api.playcamp.io/v1/server/sponsors/user/{userId}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"newCreatorKey\": \"<string>\",\n \"campaignId\": \"<string>\",\n \"callbackId\": \"<string>\",\n \"isTest\": false\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://sdk-api.playcamp.io/v1/server/sponsors/user/{userId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"newCreatorKey\": \"<string>\",\n \"campaignId\": \"<string>\",\n \"callbackId\": \"<string>\",\n \"isTest\": false\n}"
response = http.request(request)
puts response.read_body{
"data": {
"userId": "<string>",
"campaignId": "<string>",
"creatorKey": "<string>",
"creatorName": "<string>",
"isActive": true,
"sponsoredAt": "2023-11-07T05:31:56Z"
}
}{
"status": 400,
"error": "Bad Request",
"message": "Sponsor change is only allowed after 30 days. 12 day(s) remaining.",
"code": "BAD_REQUEST"
}{
"status": 401,
"error": "Unauthorized",
"message": "Invalid API key",
"code": "UNAUTHORIZED"
}{
"status": 404,
"error": "Not Found",
"message": "Creator not found: TEST1",
"code": "NOT_FOUND"
}Boost (Sponsor)
Change Boosted Creator (Sponsor)
Moves an existing boost to a different creator.
- If
campaignIdis not specified, the project’s active campaign is used. - A boost can only be changed 30 days after it was registered or last changed.
- Changing resets the 30-day cooldown and fires a
sponsor.changedwebhook. - The change is recorded in the boost history with action
CHANGED.
PUT
/
v1
/
server
/
sponsors
/
user
/
{userId}
Change Boosted Creator (Sponsor)
curl --request PUT \
--url https://sdk-api.playcamp.io/v1/server/sponsors/user/{userId} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"newCreatorKey": "<string>",
"campaignId": "<string>",
"callbackId": "<string>",
"isTest": false
}
'import requests
url = "https://sdk-api.playcamp.io/v1/server/sponsors/user/{userId}"
payload = {
"newCreatorKey": "<string>",
"campaignId": "<string>",
"callbackId": "<string>",
"isTest": False
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
newCreatorKey: '<string>',
campaignId: '<string>',
callbackId: '<string>',
isTest: false
})
};
fetch('https://sdk-api.playcamp.io/v1/server/sponsors/user/{userId}', 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://sdk-api.playcamp.io/v1/server/sponsors/user/{userId}",
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([
'newCreatorKey' => '<string>',
'campaignId' => '<string>',
'callbackId' => '<string>',
'isTest' => false
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"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://sdk-api.playcamp.io/v1/server/sponsors/user/{userId}"
payload := strings.NewReader("{\n \"newCreatorKey\": \"<string>\",\n \"campaignId\": \"<string>\",\n \"callbackId\": \"<string>\",\n \"isTest\": false\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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://sdk-api.playcamp.io/v1/server/sponsors/user/{userId}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"newCreatorKey\": \"<string>\",\n \"campaignId\": \"<string>\",\n \"callbackId\": \"<string>\",\n \"isTest\": false\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://sdk-api.playcamp.io/v1/server/sponsors/user/{userId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"newCreatorKey\": \"<string>\",\n \"campaignId\": \"<string>\",\n \"callbackId\": \"<string>\",\n \"isTest\": false\n}"
response = http.request(request)
puts response.read_body{
"data": {
"userId": "<string>",
"campaignId": "<string>",
"creatorKey": "<string>",
"creatorName": "<string>",
"isActive": true,
"sponsoredAt": "2023-11-07T05:31:56Z"
}
}{
"status": 400,
"error": "Bad Request",
"message": "Sponsor change is only allowed after 30 days. 12 day(s) remaining.",
"code": "BAD_REQUEST"
}{
"status": 401,
"error": "Unauthorized",
"message": "Invalid API key",
"code": "UNAUTHORIZED"
}{
"status": 404,
"error": "Not Found",
"message": "Creator not found: TEST1",
"code": "NOT_FOUND"
}Authorizations
Server API Key (format: {keyId}:{secret})
Path Parameters
Body
application/json
Creator key to move the boost to (exactly 5 uppercase alphanumeric characters)
Pattern:
^[A-Z0-9]{5}$Campaign ID (active campaign if not specified)
Webhook tracking ID (included in webhook events triggered by this request)
Test mode (does not create actual data)
Response
Success
Show child attributes
Show child attributes
⌘I