Skip to main content
DELETE
/
campaigns
/
{campaign_id}
/
tasks
/
{task_id}
Archive a task
curl --request DELETE \
  --url https://api.launchpoint.sh/2026-07/campaigns/{campaign_id}/tasks/{task_id} \
  --header 'Authorization: Bearer <token>'
import requests

url = "https://api.launchpoint.sh/2026-07/campaigns/{campaign_id}/tasks/{task_id}"

headers = {"Authorization": "Bearer <token>"}

response = requests.delete(url, headers=headers)

print(response.text)
const options = {method: 'DELETE', headers: {Authorization: 'Bearer <token>'}};

fetch('https://api.launchpoint.sh/2026-07/campaigns/{campaign_id}/tasks/{task_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.launchpoint.sh/2026-07/campaigns/{campaign_id}/tasks/{task_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "DELETE",
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.launchpoint.sh/2026-07/campaigns/{campaign_id}/tasks/{task_id}"

req, _ := http.NewRequest("DELETE", 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.delete("https://api.launchpoint.sh/2026-07/campaigns/{campaign_id}/tasks/{task_id}")
.header("Authorization", "Bearer <token>")
.asString();
require 'uri'
require 'net/http'

url = URI("https://api.launchpoint.sh/2026-07/campaigns/{campaign_id}/tasks/{task_id}")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Delete.new(url)
request["Authorization"] = 'Bearer <token>'

response = http.request(request)
puts response.read_body
{
  "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "title": "15s unboxing video",
  "instructions": "Open the package on camera and show your first reaction.",
  "platforms": [
    "tiktok",
    "instagram"
  ],
  "formats": [
    "feed_video"
  ],
  "caption": "Obsessed with my new glow ✨ @acmeskincare",
  "require_ad_disclosure": true,
  "tiktok_sound_url": "<string>",
  "instagram_sound_url": "<string>",
  "video_examples": [
    "<string>"
  ],
  "image_url": "<string>",
  "review_mode": "media_review",
  "autoreview_prompt": "The product must be clearly visible and mentioned by name.",
  "is_required": true,
  "max_posts_per_creator": 1,
  "display_order": 0,
  "status": "active",
  "created_at": "2023-11-07T05:31:56Z",
  "updated_at": "2023-11-07T05:31:56Z"
}
{
"error": 123,
"message": "<string>",
"code": "invalid_state_transition"
}
{
"error": 123,
"message": "<string>",
"code": "invalid_state_transition"
}
{
"error": 123,
"message": "<string>",
"code": "invalid_state_transition"
}
{
"error": 123,
"message": "<string>",
"code": "invalid_state_transition"
}

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Path Parameters

campaign_id
string<uuid>
required

The campaign ID

task_id
string<uuid>
required

The task ID

Response

The archived task

A deliverable creators complete for the campaign. Tasks on Canvas campaigns are readable but not writable via the API, and some fields (e.g. max_posts_per_creator) don't apply to them.

id
string<uuid>
title
string
Example:

"15s unboxing video"

instructions
string
Example:

"Open the package on camera and show your first reaction."

platforms
enum<string>[]
Available options:
tiktok,
instagram,
youtube,
snapchat
Example:
["tiktok", "instagram"]
formats
enum<string>[]

The content format for a task

Available options:
feed_video,
feed_images,
feed_video_ugc,
feed_video_music,
feed_images_music,
story_video,
story_images
Example:
["feed_video"]
caption
string | null

Caption the creator must use when posting

Example:

"Obsessed with my new glow ✨ @acmeskincare"

require_ad_disclosure
boolean

Whether the post must carry the platform's paid-partnership / ad disclosure

Example:

true

tiktok_sound_url
string<uri> | null

TikTok sound the content must use

instagram_sound_url
string<uri> | null

Instagram sound the content must use

video_examples
string<uri>[]

URLs of example videos showing creators what to make

image_url
string<uri> | null

Cover image shown with the task

review_mode
enum<string>

media_review: you review each submission. autoreview: submissions are reviewed automatically — set autoreview_prompt to have the AI check content against it first.

Available options:
media_review,
autoreview
Example:

"media_review"

autoreview_prompt
string | null

What the AI should verify before approving a submission. Only used when review_mode is autoreview. Optional — with no prompt, autoreview approves every submission.

Example:

"The product must be clearly visible and mentioned by name."

is_required
boolean

Whether every creator must complete this task. Only authored directly when the campaign's settings.completion_mode is some_required; other modes derive it.

Example:

true

max_posts_per_creator
integer | null

Null means unlimited. Not applicable to Canvas campaigns, which cap videos weekly instead — always null there.

Example:

1

display_order
integer

Position of the task in the campaign's brief

Example:

0

status
enum<string>

active tasks accept new work; archived tasks accept no new creators

Available options:
active,
archived
Example:

"active"

created_at
string<date-time>
updated_at
string<date-time>