curl --request PATCH \
--url https://app.surfacd.com/api/v1/projects/{project}/archive \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"archived": true
}
'import requests
url = "https://app.surfacd.com/api/v1/projects/{project}/archive"
payload = { "archived": True }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({archived: true})
};
fetch('https://app.surfacd.com/api/v1/projects/{project}/archive', 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://app.surfacd.com/api/v1/projects/{project}/archive",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'archived' => true
]),
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://app.surfacd.com/api/v1/projects/{project}/archive"
payload := strings.NewReader("{\n \"archived\": true\n}")
req, _ := http.NewRequest("PATCH", 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.patch("https://app.surfacd.com/api/v1/projects/{project}/archive")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"archived\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.surfacd.com/api/v1/projects/{project}/archive")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"archived\": true\n}"
response = http.request(request)
puts response.read_body{
"uuid": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"check_frequency": "manual",
"project_type": "standard",
"pitch_ends_at": "2023-11-07T05:31:56Z",
"prompt_limit": 123,
"archived_at": "2023-11-07T05:31:56Z",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"default_country": {
"code": "<string>",
"name": "<string>"
},
"primary_brand": {
"uuid": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"domain": "<string>",
"type": 0,
"brand_aliases": [
"<string>"
]
},
"services": [
{
"uuid": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"display_name": "<string>",
"provider": "<string>"
}
],
"share": {
"enabled": true,
"share_url": "<string>",
"password_protected": true
}
}{
"message": "<string>"
}{
"message": "<string>",
"errors": {}
}Archive or Restore Project
Archives a project, or restores it when archived is false. Archiving releases the project’s reserved credits. Restoring resumes collection at the project’s stored frequency and re-reserves the credits that schedule needs; if the team lacks sufficient available credits the restore is rejected with a 422 and no change is made.
curl --request PATCH \
--url https://app.surfacd.com/api/v1/projects/{project}/archive \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"archived": true
}
'import requests
url = "https://app.surfacd.com/api/v1/projects/{project}/archive"
payload = { "archived": True }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({archived: true})
};
fetch('https://app.surfacd.com/api/v1/projects/{project}/archive', 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://app.surfacd.com/api/v1/projects/{project}/archive",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'archived' => true
]),
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://app.surfacd.com/api/v1/projects/{project}/archive"
payload := strings.NewReader("{\n \"archived\": true\n}")
req, _ := http.NewRequest("PATCH", 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.patch("https://app.surfacd.com/api/v1/projects/{project}/archive")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"archived\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.surfacd.com/api/v1/projects/{project}/archive")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"archived\": true\n}"
response = http.request(request)
puts response.read_body{
"uuid": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"check_frequency": "manual",
"project_type": "standard",
"pitch_ends_at": "2023-11-07T05:31:56Z",
"prompt_limit": 123,
"archived_at": "2023-11-07T05:31:56Z",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"default_country": {
"code": "<string>",
"name": "<string>"
},
"primary_brand": {
"uuid": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"domain": "<string>",
"type": 0,
"brand_aliases": [
"<string>"
]
},
"services": [
{
"uuid": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"display_name": "<string>",
"provider": "<string>"
}
],
"share": {
"enabled": true,
"share_url": "<string>",
"password_protected": true
}
}{
"message": "<string>"
}{
"message": "<string>",
"errors": {}
}Authorizations
Team API key created in Team Settings. Use it with URLs for the same team.
Path Parameters
Project UUID.
Body
Set false to restore an archived project.
Response
The archived or restored project.
manual, monthly, weekly, daily Project type. pitch projects run a fixed 7-day collection window and do not consume credits.
standard, pitch End of the 7-day pitch collection window. Only set for pitch projects once their first collection run starts; always null for standard projects. Read-only.
Resolved prompt limit. Falls back to the team default when not explicitly set on the project.
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Active services (AI platforms) enabled for this project.
Show child attributes
Show child attributes
Show child attributes
Show child attributes