AUTHENTICATION

You need to add parameter api_token=YOUR_API_TOKEN to each request to the our API.
Example: https://acc.giantcampaign.com/api/v1/lists?api_token=YOUR_API_TOKEN

Method Parameter Type Required
POST api_token string YES
const data = null;

const xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
if (this.readyState === this.DONE) {
    console.log(this.responseText);
}
});

xhr.open("POST", "https://acc.giantcampaign.com/api/v1/login-token?api_token=YOUR_TOKEN_HERE");
xhr.setRequestHeader("accept", "application/json");

xhr.send(data);
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://acc.giantcampaign.com/api/v1/login-token?api_token=YOUR_TOKEN_HERE');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'accept: application/json',
]);

$response = curl_exec($ch);

curl_close($ch);
using System.Net.Http;

HttpClient client = new HttpClient();

HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Post, "https://acc.giantcampaign.com/api/v1/login-token?api_token=YOUR_TOKEN_HERE");

request.Headers.Add("accept", "application/json");

HttpResponseMessage response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
string responseBody = await response.Content.ReadAsStringAsync();
package main

import (
	"fmt"
	"io"
	"log"
	"net/http"
)

func main() {
	client := &http.Client{}
	req, err := http.NewRequest("POST", "https://acc.giantcampaign.com/api/v1/login-token?api_token=YOUR_TOKEN_HERE", nil)
	if err != nil {
		log.Fatal(err)
	}
	req.Header.Set("accept", "application/json")
	resp, err := client.Do(req)
	if err != nil {
		log.Fatal(err)
	}
	defer resp.Body.Close()
	bodyText, err := io.ReadAll(resp.Body)
	if err != nil {
		log.Fatal(err)
	}
	fmt.Printf("%s\n", bodyText)
}
val client = OkHttpClient()

val request = Request.Builder()
  .url("https://acc.giantcampaign.com/api/v1/login-token?api_token=YOUR_TOKEN_HERE")
  .post(null)
  .addHeader("accept", "application/json")
  .build()

val response = client.newCall(request).execute()
const axios = require('axios');

const response = await axios.post(
  'https://acc.giantcampaign.com/api/v1/login-token',
  '',
  {
    params: {
      'api_token': 'YOUR_TOKEN_HERE'
    },
    headers: {
      'accept': 'application/json'
    }
  }
);

Response: token string

User can login by visiting the following URL:
https://acc.giantcampaign.com/login/token/*|token_string|*

LISTS

POST Create a list

Parameter Type Required
api_token string YES
name string YES
from_email string YES
from_name string YES
contact[company] string YES
contact[state] string YES
contact[address_1] string YES
contact[address_2] string NO
contact[city] string YES
contact[zip] string YES
contact[phone] string NO
contact[country_id] string YES
contact[email] string YES
contact[url] string YES
subscribe_confirmation integer YES
send_welcome_email integer YES
unsubscribe_notification integer YES
const data = null;

const xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("POST", "https://acc.giantcampaign.com/api/v1/lists?api_token=YOUR_TOKEN_HERE&name=List%201&from_email=admin%40abccorp.org&from_name=ABC%20Corp.&contact%5Bcompany%5D=ABC%20Corp.&contact%5Bstate%5D=Armagh&contact%5Baddress_1%5D=14%20Tottenham%20Court%20Road%20London%20England&contact%5Baddress_2%5D=44-46%20Morningside%20Road%20Edinburgh%20Scotland%20EH10%204BF&contact%5Bcity%5D=Noname&contact%5Bzip%5D=80000&contact%5Bphone%5D=123%20456%20889&contact%5Bcountry_id%5D=1&contact%5Bemail%5D=info%40abccorp.org&contact%5Burl%5D=http%3A%2F%2Fwww.abccorp.org&subscribe_confirmation=1&send_welcome_email=1&unsubscribe_notification=1");
xhr.setRequestHeader("accept", "application/json");

xhr.send(data);
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://acc.giantcampaign.com/api/v1/lists?api_token=YOUR_TOKEN_HERE&name=List+1&from_email=admin@abccorp.org&from_name=ABC+Corp.&contact[company]=ABC+Corp.&contact[state]=Armagh&contact[address_1]=14+Tottenham+Court+Road+London+England&contact[address_2]=44-46+Morningside+Road+Edinburgh+Scotland+EH10+4BF&contact[city]=Noname&contact[zip]=80000&contact[phone]=123+456+889&contact[country_id]=1&contact[email]=info@abccorp.org&contact[url]=http://www.abccorp.org&subscribe_confirmation=1&send_welcome_email=1&unsubscribe_notification=1');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'accept: application/json',
]);

$response = curl_exec($ch);

curl_close($ch);
using System.Net.Http;

HttpClient client = new HttpClient();

HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Post, "https://acc.giantcampaign.com/api/v1/lists?api_token=YOUR_TOKEN_HERE&name=List+1&from_email=admin@abccorp.org&from_name=ABC+Corp.&contact[company]=ABC+Corp.&contact[state]=Armagh&contact[address_1]=14+Tottenham+Court+Road+London+England&contact[address_2]=44-46+Morningside+Road+Edinburgh+Scotland+EH10+4BF&contact[city]=Noname&contact[zip]=80000&contact[phone]=123+456+889&contact[country_id]=1&contact[email]=info@abccorp.org&contact[url]=http://www.abccorp.org&subscribe_confirmation=1&send_welcome_email=1&unsubscribe_notification=1");

request.Headers.Add("accept", "application/json");

HttpResponseMessage response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
string responseBody = await response.Content.ReadAsStringAsync();
package main

import (
	"fmt"
	"io"
	"log"
	"net/http"
)

func main() {
	client := &http.Client{}
	req, err := http.NewRequest("POST", "https://acc.giantcampaign.com/api/v1/lists?api_token=YOUR_TOKEN_HERE&name=List+1&from_email=admin@abccorp.org&from_name=ABC+Corp.&contact[company]=ABC+Corp.&contact[state]=Armagh&contact[address_1]=14+Tottenham+Court+Road+London+England&contact[address_2]=44-46+Morningside+Road+Edinburgh+Scotland+EH10+4BF&contact[city]=Noname&contact[zip]=80000&contact[phone]=123+456+889&contact[country_id]=1&contact[email]=info@abccorp.org&contact[url]=http://www.abccorp.org&subscribe_confirmation=1&send_welcome_email=1&unsubscribe_notification=1", nil)
	if err != nil {
		log.Fatal(err)
	}
	req.Header.Set("accept", "application/json")
	resp, err := client.Do(req)
	if err != nil {
		log.Fatal(err)
	}
	defer resp.Body.Close()
	bodyText, err := io.ReadAll(resp.Body)
	if err != nil {
		log.Fatal(err)
	}
	fmt.Printf("%s\n", bodyText)
}
val client = OkHttpClient()

val request = Request.Builder()
  .url("https://acc.giantcampaign.com/api/v1/lists?api_token=YOUR_TOKEN_HERE&name=List%201&from_email=admin%40abccorp.org&from_name=ABC%20Corp.&contact%5Bcompany%5D=ABC%20Corp.&contact%5Bstate%5D=Armagh&contact%5Baddress_1%5D=14%20Tottenham%20Court%20Road%20London%20England&contact%5Baddress_2%5D=44-46%20Morningside%20Road%20Edinburgh%20Scotland%20EH10%204BF&contact%5Bcity%5D=Noname&contact%5Bzip%5D=80000&contact%5Bphone%5D=123%20456%20889&contact%5Bcountry_id%5D=1&contact%5Bemail%5D=info%40abccorp.org&contact%5Burl%5D=http%3A%2F%2Fwww.abccorp.org&subscribe_confirmation=1&send_welcome_email=1&unsubscribe_notification=1")
  .post(null)
  .addHeader("accept", "application/json")
  .build()

val response = client.newCall(request).execute()
const axios = require('axios');

const response = await axios.post(
  'https://acc.giantcampaign.com/api/v1/lists?api_token=YOUR_TOKEN_HERE&name=List+1&from_email=admin@abccorp.org&from_name=ABC+Corp.&contact[company]=ABC+Corp.&contact[state]=Armagh&contact[address_1]=14+Tottenham+Court+Road+London+England&contact[address_2]=44-46+Morningside+Road+Edinburgh+Scotland+EH10+4BF&contact[city]=Noname&contact[zip]=80000&contact[phone]=123+456+889&contact[country_id]=1&contact[email]=info@abccorp.org&contact[url]=http://www.abccorp.org&subscribe_confirmation=1&send_welcome_email=1&unsubscribe_notification=1',
  '',
  {
    headers: {
      'accept': 'application/json'
    }
  }
);

GET Get all lists

Parameter Type Required
api_token string YES
const data = null;

const xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://acc.giantcampaign.com/api/v1/lists?api_token=YOUR_TOKEN_HERE");
xhr.setRequestHeader("accept", "application/json");

xhr.send(data);
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://acc.giantcampaign.com/api/v1/lists?api_token=YOUR_TOKEN_HERE');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'accept: application/json',
]);

$response = curl_exec($ch);

curl_close($ch);
using System.Net.Http;

HttpClient client = new HttpClient();

HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Get, "https://acc.giantcampaign.com/api/v1/lists?api_token=YOUR_TOKEN_HERE");

request.Headers.Add("accept", "application/json");

HttpResponseMessage response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
string responseBody = await response.Content.ReadAsStringAsync();
package main

import (
	"fmt"
	"io"
	"log"
	"net/http"
)

func main() {
	client := &http.Client{}
	req, err := http.NewRequest("GET", "https://acc.giantcampaign.com/api/v1/lists?api_token=YOUR_TOKEN_HERE", nil)
	if err != nil {
		log.Fatal(err)
	}
	req.Header.Set("accept", "application/json")
	resp, err := client.Do(req)
	if err != nil {
		log.Fatal(err)
	}
	defer resp.Body.Close()
	bodyText, err := io.ReadAll(resp.Body)
	if err != nil {
		log.Fatal(err)
	}
	fmt.Printf("%s\n", bodyText)
}
val client = OkHttpClient()

val request = Request.Builder()
  .url("https://acc.giantcampaign.com/api/v1/lists?api_token=YOUR_TOKEN_HERE")
  .get()
  .addHeader("accept", "application/json")
  .build()

val response = client.newCall(request).execute()
const axios = require('axios');

const response = await axios.get('https://acc.giantcampaign.com/api/v1/lists', {
  params: {
    'api_token': 'YOUR_TOKEN_HERE'
  },
  headers: {
    'accept': 'application/json'
  }
});

GET Get specific list

Parameter Type Required
api_token string YES
uid string YES
const data = null;

const xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://acc.giantcampaign.com/api/v1/lists/{uid}?api_token=YOUR_TOKEN_HERE");
xhr.setRequestHeader("accept", "application/json");

xhr.send(data);
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://acc.giantcampaign.com/api/v1/lists/{uid}?api_token=YOUR_TOKEN_HERE');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'accept: application/json',
]);

$response = curl_exec($ch);

curl_close($ch);
using System.Net.Http;

HttpClient client = new HttpClient();

HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Get, "https://acc.giantcampaign.com/api/v1/lists/{uid}?api_token=YOUR_TOKEN_HERE");

request.Headers.Add("accept", "application/json");

HttpResponseMessage response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
string responseBody = await response.Content.ReadAsStringAsync();
package main

import (
	"fmt"
	"io"
	"log"
	"net/http"
)

func main() {
	client := &http.Client{}
	req, err := http.NewRequest("GET", "https://acc.giantcampaign.com/api/v1/lists/{uid}?api_token=YOUR_TOKEN_HERE", nil)
	if err != nil {
		log.Fatal(err)
	}
	req.Header.Set("accept", "application/json")
	resp, err := client.Do(req)
	if err != nil {
		log.Fatal(err)
	}
	defer resp.Body.Close()
	bodyText, err := io.ReadAll(resp.Body)
	if err != nil {
		log.Fatal(err)
	}
	fmt.Printf("%s\n", bodyText)
}
val client = OkHttpClient()

val request = Request.Builder()
  .url("https://acc.giantcampaign.com/api/v1/lists/{uid}?api_token=YOUR_TOKEN_HERE")
  .get()
  .addHeader("accept", "application/json")
  .build()

val response = client.newCall(request).execute()
const axios = require('axios');

const response = await axios.get('https://acc.giantcampaign.com/api/v1/lists/{uid}', {
  params: {
    'api_token': 'YOUR_TOKEN_HERE'
  },
  headers: {
    'accept': 'application/json'
  }
});

POST Create custom field

Parameter Type Required
api_token string YES
uid string YES
type string YES
label string YES
tag string YES
default_value string NO
const data = null;

const xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("POST", "https://acc.giantcampaign.com/api/v1/lists/{uid}/add-field?api_token=YOUR_TOKEN_HERE&type=text&label=Custom&tag=CUSTOM_FIELD_1&default_value=test");
xhr.setRequestHeader("accept", "application/json");

xhr.send(data);
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://acc.giantcampaign.com/api/v1/lists/{uid}/add-field?api_token=YOUR_TOKEN_HERE&type=text&label=Custom&tag=CUSTOM_FIELD_1&default_value=test');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'accept: application/json',
]);

$response = curl_exec($ch);

curl_close($ch);
using System.Net.Http;

HttpClient client = new HttpClient();

HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Post, "https://acc.giantcampaign.com/api/v1/lists/{uid}/add-field?api_token=YOUR_TOKEN_HERE&type=text&label=Custom&tag=CUSTOM_FIELD_1&default_value=test");

request.Headers.Add("accept", "application/json");

HttpResponseMessage response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
string responseBody = await response.Content.ReadAsStringAsync();
package main

import (
	"fmt"
	"io"
	"log"
	"net/http"
)

func main() {
	client := &http.Client{}
	req, err := http.NewRequest("POST", "https://acc.giantcampaign.com/api/v1/lists/{uid}/add-field?api_token=YOUR_TOKEN_HERE&type=text&label=Custom&tag=CUSTOM_FIELD_1&default_value=test", nil)
	if err != nil {
		log.Fatal(err)
	}
	req.Header.Set("accept", "application/json")
	resp, err := client.Do(req)
	if err != nil {
		log.Fatal(err)
	}
	defer resp.Body.Close()
	bodyText, err := io.ReadAll(resp.Body)
	if err != nil {
		log.Fatal(err)
	}
	fmt.Printf("%s\n", bodyText)
}
val client = OkHttpClient()

val request = Request.Builder()
  .url("https://acc.giantcampaign.com/api/v1/lists/{uid}/add-field?api_token=YOUR_TOKEN_HERE&type=text&label=Custom&tag=CUSTOM_FIELD_1&default_value=test")
  .post(null)
  .addHeader("accept", "application/json")
  .build()

val response = client.newCall(request).execute()
const axios = require('axios');

const response = await axios.post(
  'https://acc.giantcampaign.com/api/v1/lists/{uid}/add-field',
  '',
  {
    params: {
      'api_token': 'YOUR_TOKEN_HERE',
      'type': 'text',
      'label': 'Custom',
      'tag': 'CUSTOM_FIELD_1',
      'default_value': 'test'
    },
    headers: {
      'accept': 'application/json'
    }
  }
);

DELETE Delete a list

Parameter Type Required
api_token string YES
uid string YES
const data = null;

const xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("DELETE", "https://acc.giantcampaign.com/api/v1/lists/{uid}?api_token=YOUR_TOKEN_HERE");
xhr.setRequestHeader("accept", "application/json");

xhr.send(data);
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://acc.giantcampaign.com/api/v1/lists/{uid}?api_token=YOUR_TOKEN_HERE');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'DELETE');
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'accept: application/json',
]);

$response = curl_exec($ch);

curl_close($ch);
using System.Net.Http;

HttpClient client = new HttpClient();

HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Delete, "https://acc.giantcampaign.com/api/v1/lists/{uid}?api_token=YOUR_TOKEN_HERE");

request.Headers.Add("accept", "application/json");

HttpResponseMessage response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
string responseBody = await response.Content.ReadAsStringAsync();
package main

import (
	"fmt"
	"io"
	"log"
	"net/http"
)

func main() {
	client := &http.Client{}
	req, err := http.NewRequest("DELETE", "https://acc.giantcampaign.com/api/v1/lists/{uid}?api_token=YOUR_TOKEN_HERE", nil)
	if err != nil {
		log.Fatal(err)
	}
	req.Header.Set("accept", "application/json")
	resp, err := client.Do(req)
	if err != nil {
		log.Fatal(err)
	}
	defer resp.Body.Close()
	bodyText, err := io.ReadAll(resp.Body)
	if err != nil {
		log.Fatal(err)
	}
	fmt.Printf("%s\n", bodyText)
}
val client = OkHttpClient()

val request = Request.Builder()
  .url("https://acc.giantcampaign.com/api/v1/lists/{uid}?api_token=YOUR_TOKEN_HERE")
  .delete(null)
  .addHeader("accept", "application/json")
  .build()

val response = client.newCall(request).execute()
const axios = require('axios');

const response = await axios.delete('https://acc.giantcampaign.com/api/v1/lists/{uid}', {
  params: {
    'api_token': 'YOUR_TOKEN_HERE'
  },
  headers: {
    'accept': 'application/json'
  }
});

CAMPAIGNS

GET Get all campaigns

Parameter Type Required
api_token string YES
const data = null;

const xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://acc.giantcampaign.com/api/v1/campaigns?api_token=YOUR_TOKEN_HERE");
xhr.setRequestHeader("accept", "application/json");

xhr.send(data);
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://acc.giantcampaign.com/api/v1/campaigns?api_token=YOUR_TOKEN_HERE');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'accept: application/json',
]);

$response = curl_exec($ch);

curl_close($ch);
using System.Net.Http;

HttpClient client = new HttpClient();

HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Get, "https://acc.giantcampaign.com/api/v1/campaigns?api_token=YOUR_TOKEN_HERE");

request.Headers.Add("accept", "application/json");

HttpResponseMessage response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
string responseBody = await response.Content.ReadAsStringAsync();
package main

import (
	"fmt"
	"io"
	"log"
	"net/http"
)

func main() {
	client := &http.Client{}
	req, err := http.NewRequest("GET", "https://acc.giantcampaign.com/api/v1/campaigns?api_token=YOUR_TOKEN_HERE", nil)
	if err != nil {
		log.Fatal(err)
	}
	req.Header.Set("accept", "application/json")
	resp, err := client.Do(req)
	if err != nil {
		log.Fatal(err)
	}
	defer resp.Body.Close()
	bodyText, err := io.ReadAll(resp.Body)
	if err != nil {
		log.Fatal(err)
	}
	fmt.Printf("%s\n", bodyText)
}
val client = OkHttpClient()

val request = Request.Builder()
  .url("https://acc.giantcampaign.com/api/v1/campaigns?api_token=YOUR_TOKEN_HERE")
  .get()
  .addHeader("accept", "application/json")
  .build()

val response = client.newCall(request).execute()
const axios = require('axios');

const response = await axios.get('https://acc.giantcampaign.com/api/v1/campaigns', {
  params: {
    'api_token': 'YOUR_TOKEN_HERE'
  },
  headers: {
    'accept': 'application/json'
  }
});

GET Get specific campaign

Parameter Type Required
api_token string YES
uid string YES
const data = null;

const xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://acc.giantcampaign.com/api/v1/campaigns/{uid}?api_token=YOUR_TOKEN_HERE");
xhr.setRequestHeader("accept", "application/json");

xhr.send(data);
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://acc.giantcampaign.com/api/v1/campaigns/{uid}?api_token=YOUR_TOKEN_HERE');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'accept: application/json',
]);

$response = curl_exec($ch);

curl_close($ch);
using System.Net.Http;

HttpClient client = new HttpClient();

HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Get, "https://acc.giantcampaign.com/api/v1/campaigns/{uid}?api_token=YOUR_TOKEN_HERE");

request.Headers.Add("accept", "application/json");

HttpResponseMessage response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
string responseBody = await response.Content.ReadAsStringAsync();
package main

import (
	"fmt"
	"io"
	"log"
	"net/http"
)

func main() {
	client := &http.Client{}
	req, err := http.NewRequest("GET", "https://acc.giantcampaign.com/api/v1/campaigns/{uid}?api_token=YOUR_TOKEN_HERE", nil)
	if err != nil {
		log.Fatal(err)
	}
	req.Header.Set("accept", "application/json")
	resp, err := client.Do(req)
	if err != nil {
		log.Fatal(err)
	}
	defer resp.Body.Close()
	bodyText, err := io.ReadAll(resp.Body)
	if err != nil {
		log.Fatal(err)
	}
	fmt.Printf("%s\n", bodyText)
}
val client = OkHttpClient()

val request = Request.Builder()
  .url("https://acc.giantcampaign.com/api/v1/campaigns/{uid}?api_token=YOUR_TOKEN_HERE")
  .get()
  .addHeader("accept", "application/json")
  .build()

val response = client.newCall(request).execute()
const axios = require('axios');

const response = await axios.get('https://acc.giantcampaign.com/api/v1/campaigns/{uid}', {
  params: {
    'api_token': 'YOUR_TOKEN_HERE'
  },
  headers: {
    'accept': 'application/json'
  }
});

POST Pause specific campaign

Parameter Type Required
api_token string YES
uid string YES
const data = null;

const xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("POST", "https://acc.giantcampaign.com/api/v1/campaigns/{uid}/pause?api_token=YOUR_TOKEN_HERE");
xhr.setRequestHeader("accept", "application/json");

xhr.send(data);
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://acc.giantcampaign.com/api/v1/campaigns/{uid}/pause?api_token=YOUR_TOKEN_HERE');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'accept: application/json',
]);

$response = curl_exec($ch);

curl_close($ch);
using System.Net.Http;

HttpClient client = new HttpClient();

HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Post, "https://acc.giantcampaign.com/api/v1/campaigns/{uid}/pause?api_token=YOUR_TOKEN_HERE");

request.Headers.Add("accept", "application/json");

HttpResponseMessage response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
string responseBody = await response.Content.ReadAsStringAsync();
package main

import (
	"fmt"
	"io"
	"log"
	"net/http"
)

func main() {
	client := &http.Client{}
	req, err := http.NewRequest("POST", "https://acc.giantcampaign.com/api/v1/campaigns/{uid}/pause?api_token=YOUR_TOKEN_HERE", nil)
	if err != nil {
		log.Fatal(err)
	}
	req.Header.Set("accept", "application/json")
	resp, err := client.Do(req)
	if err != nil {
		log.Fatal(err)
	}
	defer resp.Body.Close()
	bodyText, err := io.ReadAll(resp.Body)
	if err != nil {
		log.Fatal(err)
	}
	fmt.Printf("%s\n", bodyText)
}
val client = OkHttpClient()

val request = Request.Builder()
  .url("https://acc.giantcampaign.com/api/v1/campaigns/{uid}/pause?api_token=YOUR_TOKEN_HERE")
  .post(null)
  .addHeader("accept", "application/json")
  .build()

val response = client.newCall(request).execute()
const axios = require('axios');

const response = await axios.post(
  'https://acc.giantcampaign.com/api/v1/campaigns/{uid}/pause',
  '',
  {
    params: {
      'api_token': 'YOUR_TOKEN_HERE'
    },
    headers: {
      'accept': 'application/json'
    }
  }
);

SUBSCRIBERS

GET Get all subscribers

Parameter Type Required
api_token string YES
const data = null;

const xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://acc.giantcampaign.com/api/v1/subscribers?api_token=YOUR_TOKEN_HERE&list_uid={list_uid}&per_page=20&page=1");
xhr.setRequestHeader("accept", "application/json");

xhr.send(data);
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://acc.giantcampaign.com/api/v1/subscribers?api_token=YOUR_TOKEN_HERE&list_uid={list_uid}&per_page=20&page=1');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'accept: application/json',
]);

$response = curl_exec($ch);

curl_close($ch);
using System.Net.Http;

HttpClient client = new HttpClient();

HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Get, "https://acc.giantcampaign.com/api/v1/subscribers?api_token=YOUR_TOKEN_HERE&list_uid={list_uid}&per_page=20&page=1");

request.Headers.Add("accept", "application/json");

HttpResponseMessage response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
string responseBody = await response.Content.ReadAsStringAsync();
package main

import (
	"fmt"
	"io"
	"log"
	"net/http"
)

func main() {
	client := &http.Client{}
	req, err := http.NewRequest("GET", "https://acc.giantcampaign.com/api/v1/subscribers?api_token=YOUR_TOKEN_HERE&list_uid={list_uid}&per_page=20&page=1", nil)
	if err != nil {
		log.Fatal(err)
	}
	req.Header.Set("accept", "application/json")
	resp, err := client.Do(req)
	if err != nil {
		log.Fatal(err)
	}
	defer resp.Body.Close()
	bodyText, err := io.ReadAll(resp.Body)
	if err != nil {
		log.Fatal(err)
	}
	fmt.Printf("%s\n", bodyText)
}
val client = OkHttpClient()

val request = Request.Builder()
  .url("https://acc.giantcampaign.com/api/v1/subscribers?api_token=YOUR_TOKEN_HERE&list_uid={list_uid}&per_page=20&page=1")
  .get()
  .addHeader("accept", "application/json")
  .build()

val response = client.newCall(request).execute()
const axios = require('axios');

const response = await axios.get('https://acc.giantcampaign.com/api/v1/subscribers?api_token=YOUR_TOKEN_HERE&list_uid={list_uid}&per_page=20&page=1', {
  headers: {
    'accept': 'application/json'
  }
});

POST Create subscriber/s

Parameter Type Required
api_token string YES
list_uid string YES
EMAIL string YES
tag string NO
tag string NO
FIRST_NAME string NO
LAST_NAME string NO
const data = null;

const xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("POST", "https://acc.giantcampaign.com/api/v1/subscribers?api_token=YOUR_TOKEN_HERE&list_uid={list_uid}&EMAIL=test%40gmail.com&tag=foo%2Cbar%2Ctag%20with%20space%2C&FIRST_NAME=Marine&LAST_NAME=Joze");
xhr.setRequestHeader("accept", "application/json");

xhr.send(data);
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://acc.giantcampaign.com/api/v1/subscribers?api_token=YOUR_TOKEN_HERE&list_uid={list_uid}&EMAIL=test@gmail.com&tag=foo,bar,tag+with+space,&FIRST_NAME=Marine&LAST_NAME=Joze');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'accept: application/json',
]);

$response = curl_exec($ch);

curl_close($ch);
using System.Net.Http;

HttpClient client = new HttpClient();

HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Post, "https://acc.giantcampaign.com/api/v1/subscribers?api_token=YOUR_TOKEN_HERE&list_uid={list_uid}&EMAIL=test@gmail.com&tag=foo,bar,tag+with+space,&FIRST_NAME=Marine&LAST_NAME=Joze");

request.Headers.Add("accept", "application/json");

HttpResponseMessage response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
string responseBody = await response.Content.ReadAsStringAsync();
package main

import (
	"fmt"
	"io"
	"log"
	"net/http"
)

func main() {
	client := &http.Client{}
	req, err := http.NewRequest("POST", "https://acc.giantcampaign.com/api/v1/subscribers?api_token=YOUR_TOKEN_HERE&list_uid={list_uid}&EMAIL=test@gmail.com&tag=foo,bar,tag+with+space,&FIRST_NAME=Marine&LAST_NAME=Joze", nil)
	if err != nil {
		log.Fatal(err)
	}
	req.Header.Set("accept", "application/json")
	resp, err := client.Do(req)
	if err != nil {
		log.Fatal(err)
	}
	defer resp.Body.Close()
	bodyText, err := io.ReadAll(resp.Body)
	if err != nil {
		log.Fatal(err)
	}
	fmt.Printf("%s\n", bodyText)
}
val client = OkHttpClient()

val request = Request.Builder()
  .url("https://acc.giantcampaign.com/api/v1/subscribers?api_token=YOUR_TOKEN_HERE&list_uid={list_uid}&EMAIL=test%40gmail.com&tag=foo%2Cbar%2Ctag%20with%20space%2C&FIRST_NAME=Marine&LAST_NAME=Joze")
  .post(null)
  .addHeader("accept", "application/json")
  .build()

val response = client.newCall(request).execute()
const axios = require('axios');

const response = await axios.post(
  'https://acc.giantcampaign.com/api/v1/subscribers?api_token=YOUR_TOKEN_HERE&list_uid={list_uid}&EMAIL=test@gmail.com&tag=foo,bar,tag+with+space,&FIRST_NAME=Marine&LAST_NAME=Joze',
  '',
  {
    headers: {
      'accept': 'application/json'
    }
  }
);

PATCH Edit specific subscriber

Parameter Type Required
api_token string YES
uid string YES
EMAIL string YES
tag string NO
FIRST_NAME string NO
LAST_NAME string NO
const data = null;

const xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("PATCH", "https://acc.giantcampaign.com/api/v1/subscribers/{uid}?api_token=YOUR_TOKEN_HERE&EMAIL=test%40gmail.com&tag=foo%2Cbar%2Ctag%20with%20space%2C&FIRST_NAME=Marine&LAST_NAME=Joze");
xhr.setRequestHeader("accept", "application/json");

xhr.send(data);
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://acc.giantcampaign.com/api/v1/subscribers/{uid}?api_token=YOUR_TOKEN_HERE&EMAIL=test@gmail.com&tag=foo,bar,tag+with+space,&FIRST_NAME=Marine&LAST_NAME=Joze');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'PATCH');
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'accept: application/json',
]);

$response = curl_exec($ch);

curl_close($ch);
using System.Net.Http;

HttpClient client = new HttpClient();

HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Patch, "https://acc.giantcampaign.com/api/v1/subscribers/{uid}?api_token=YOUR_TOKEN_HERE&EMAIL=test@gmail.com&tag=foo,bar,tag+with+space,&FIRST_NAME=Marine&LAST_NAME=Joze");

request.Headers.Add("accept", "application/json");

HttpResponseMessage response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
string responseBody = await response.Content.ReadAsStringAsync();
package main

import (
	"fmt"
	"io"
	"log"
	"net/http"
)

func main() {
	client := &http.Client{}
	req, err := http.NewRequest("PATCH", "https://acc.giantcampaign.com/api/v1/subscribers/{uid}?api_token=YOUR_TOKEN_HERE&EMAIL=test@gmail.com&tag=foo,bar,tag+with+space,&FIRST_NAME=Marine&LAST_NAME=Joze", nil)
	if err != nil {
		log.Fatal(err)
	}
	req.Header.Set("accept", "application/json")
	resp, err := client.Do(req)
	if err != nil {
		log.Fatal(err)
	}
	defer resp.Body.Close()
	bodyText, err := io.ReadAll(resp.Body)
	if err != nil {
		log.Fatal(err)
	}
	fmt.Printf("%s\n", bodyText)
}
val client = OkHttpClient()

val request = Request.Builder()
  .url("https://acc.giantcampaign.com/api/v1/subscribers/{uid}?api_token=YOUR_TOKEN_HERE&EMAIL=test%40gmail.com&tag=foo%2Cbar%2Ctag%20with%20space%2C&FIRST_NAME=Marine&LAST_NAME=Joze")
  .patch(null)
  .addHeader("accept", "application/json")
  .build()

val response = client.newCall(request).execute()
const axios = require('axios');

const response = await axios.patch(
  'https://acc.giantcampaign.com/api/v1/subscribers/{uid}?api_token=YOUR_TOKEN_HERE&EMAIL=test@gmail.com&tag=foo,bar,tag+with+space,&FIRST_NAME=Marine&LAST_NAME=Joze',
  '',
  {
    headers: {
      'accept': 'application/json'
    }
  }
);

GET Get specific subscriber

Parameter Type Required
api_token string YES
uid string YES
const data = null;

const xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://acc.giantcampaign.com/api/v1/subscribers/{uid}?api_token=YOUR_TOKEN_HERE");
xhr.setRequestHeader("accept", "application/json");

xhr.send(data);
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://acc.giantcampaign.com/api/v1/subscribers/{uid}?api_token=YOUR_TOKEN_HERE');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'accept: application/json',
]);

$response = curl_exec($ch);

curl_close($ch);
using System.Net.Http;

HttpClient client = new HttpClient();

HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Get, "https://acc.giantcampaign.com/api/v1/subscribers/{uid}?api_token=YOUR_TOKEN_HERE");

request.Headers.Add("accept", "application/json");

HttpResponseMessage response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
string responseBody = await response.Content.ReadAsStringAsync();
package main

import (
	"fmt"
	"io"
	"log"
	"net/http"
)

func main() {
	client := &http.Client{}
	req, err := http.NewRequest("GET", "https://acc.giantcampaign.com/api/v1/subscribers/{uid}?api_token=YOUR_TOKEN_HERE", nil)
	if err != nil {
		log.Fatal(err)
	}
	req.Header.Set("accept", "application/json")
	resp, err := client.Do(req)
	if err != nil {
		log.Fatal(err)
	}
	defer resp.Body.Close()
	bodyText, err := io.ReadAll(resp.Body)
	if err != nil {
		log.Fatal(err)
	}
	fmt.Printf("%s\n", bodyText)
}
val client = OkHttpClient()

val request = Request.Builder()
  .url("https://acc.giantcampaign.com/api/v1/subscribers/{uid}?api_token=YOUR_TOKEN_HERE")
  .get()
  .addHeader("accept", "application/json")
  .build()

val response = client.newCall(request).execute()
const axios = require('axios');

const response = await axios.get('https://acc.giantcampaign.com/api/v1/subscribers/{uid}', {
  params: {
    'api_token': 'YOUR_TOKEN_HERE'
  },
  headers: {
    'accept': 'application/json'
  }
});

POST Add tags to subscriber

Parameter Type Required
api_token string YES
uid string YES
tag string YES
const data = null;

const xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("POST", "https://acc.giantcampaign.com/api/v1/subscribers/{uid}/add-tag?api_token=YOUR_TOKEN_HERE&tag=foo%2Cbar%2Ctag%20with%20space");
xhr.setRequestHeader("accept", "application/json");

xhr.send(data);
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://acc.giantcampaign.com/api/v1/subscribers/{uid}/add-tag?api_token=YOUR_TOKEN_HERE&tag=foo,bar,tag+with+space');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'accept: application/json',
]);

$response = curl_exec($ch);

curl_close($ch);
using System.Net.Http;

HttpClient client = new HttpClient();

HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Post, "https://acc.giantcampaign.com/api/v1/subscribers/{uid}/add-tag?api_token=YOUR_TOKEN_HERE&tag=foo,bar,tag+with+space");

request.Headers.Add("accept", "application/json");

HttpResponseMessage response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
string responseBody = await response.Content.ReadAsStringAsync();
package main

import (
	"fmt"
	"io"
	"log"
	"net/http"
)

func main() {
	client := &http.Client{}
	req, err := http.NewRequest("POST", "https://acc.giantcampaign.com/api/v1/subscribers/{uid}/add-tag?api_token=YOUR_TOKEN_HERE&tag=foo,bar,tag+with+space", nil)
	if err != nil {
		log.Fatal(err)
	}
	req.Header.Set("accept", "application/json")
	resp, err := client.Do(req)
	if err != nil {
		log.Fatal(err)
	}
	defer resp.Body.Close()
	bodyText, err := io.ReadAll(resp.Body)
	if err != nil {
		log.Fatal(err)
	}
	fmt.Printf("%s\n", bodyText)
}
val client = OkHttpClient()

val request = Request.Builder()
  .url("https://acc.giantcampaign.com/api/v1/subscribers/{uid}/add-tag?api_token=YOUR_TOKEN_HERE&tag=foo%2Cbar%2Ctag%20with%20space")
  .post(null)
  .addHeader("accept", "application/json")
  .build()

val response = client.newCall(request).execute()
const axios = require('axios');

const response = await axios.post(
  'https://acc.giantcampaign.com/api/v1/subscribers/{uid}/add-tag?api_token=YOUR_TOKEN_HERE&tag=foo,bar,tag+with+space',
  '',
  {
    headers: {
      'accept': 'application/json'
    }
  }
);

GET Search a subscriber

Parameter Type Required
api_token string YES
email string YES
const data = null;

const xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://acc.giantcampaign.com/api/v1/subscribers/email/{email}?api_token=YOUR_TOKEN_HERE");
xhr.setRequestHeader("accept", "application/json");

xhr.send(data);
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://acc.giantcampaign.com/api/v1/subscribers/email/{email}?api_token=YOUR_TOKEN_HERE');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'accept: application/json',
]);

$response = curl_exec($ch);

curl_close($ch);
using System.Net.Http;

HttpClient client = new HttpClient();

HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Get, "https://acc.giantcampaign.com/api/v1/subscribers/email/{email}?api_token=YOUR_TOKEN_HERE");

request.Headers.Add("accept", "application/json");

HttpResponseMessage response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
string responseBody = await response.Content.ReadAsStringAsync();
package main

import (
	"fmt"
	"io"
	"log"
	"net/http"
)

func main() {
	client := &http.Client{}
	req, err := http.NewRequest("GET", "https://acc.giantcampaign.com/api/v1/subscribers/email/{email}?api_token=YOUR_TOKEN_HERE", nil)
	if err != nil {
		log.Fatal(err)
	}
	req.Header.Set("accept", "application/json")
	resp, err := client.Do(req)
	if err != nil {
		log.Fatal(err)
	}
	defer resp.Body.Close()
	bodyText, err := io.ReadAll(resp.Body)
	if err != nil {
		log.Fatal(err)
	}
	fmt.Printf("%s\n", bodyText)
}
val client = OkHttpClient()

val request = Request.Builder()
  .url("https://acc.giantcampaign.com/api/v1/subscribers/email/{email}?api_token=YOUR_TOKEN_HERE")
  .get()
  .addHeader("accept", "application/json")
  .build()

val response = client.newCall(request).execute()
const axios = require('axios');

const response = await axios.get('https://acc.giantcampaign.com/api/v1/subscribers/email/{email}', {
  params: {
    'api_token': 'YOUR_TOKEN_HERE'
  },
  headers: {
    'accept': 'application/json'
  }
});

PATCH Subscribe a subscriber

Parameter Type Required
api_token string YES
list_uid string YES
uid string YES
const data = null;

const xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("PATCH", "https://acc.giantcampaign.com/api/v1/lists/{list_uid}/subscribers/{uid}/subscribe?api_token=YOUR_TOKEN_HERE");
xhr.setRequestHeader("accept", "application/json");

xhr.send(data);
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://acc.giantcampaign.com/api/v1/lists/{list_uid}/subscribers/{uid}/subscribe?api_token=YOUR_TOKEN_HERE');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'PATCH');
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'accept: application/json',
]);

$response = curl_exec($ch);

curl_close($ch);
using System.Net.Http;

HttpClient client = new HttpClient();

HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Patch, "https://acc.giantcampaign.com/api/v1/lists/{list_uid}/subscribers/{uid}/subscribe?api_token=YOUR_TOKEN_HERE");

request.Headers.Add("accept", "application/json");

HttpResponseMessage response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
string responseBody = await response.Content.ReadAsStringAsync();
package main

import (
	"fmt"
	"io"
	"log"
	"net/http"
)

func main() {
	client := &http.Client{}
	req, err := http.NewRequest("PATCH", "https://acc.giantcampaign.com/api/v1/lists/{list_uid}/subscribers/{uid}/subscribe?api_token=YOUR_TOKEN_HERE", nil)
	if err != nil {
		log.Fatal(err)
	}
	req.Header.Set("accept", "application/json")
	resp, err := client.Do(req)
	if err != nil {
		log.Fatal(err)
	}
	defer resp.Body.Close()
	bodyText, err := io.ReadAll(resp.Body)
	if err != nil {
		log.Fatal(err)
	}
	fmt.Printf("%s\n", bodyText)
}
val client = OkHttpClient()

val request = Request.Builder()
  .url("https://acc.giantcampaign.com/api/v1/lists/{list_uid}/subscribers/{uid}/subscribe?api_token=YOUR_TOKEN_HERE")
  .patch(null)
  .addHeader("accept", "application/json")
  .build()

val response = client.newCall(request).execute()
const axios = require('axios');

const response = await axios.patch(
  'https://acc.giantcampaign.com/api/v1/lists/{list_uid}/subscribers/{uid}/subscribe',
  '',
  {
    params: {
      'api_token': 'YOUR_TOKEN_HERE'
    },
    headers: {
      'accept': 'application/json'
    }
  }
);

PATCH Unsubscribe a subscriber

Parameter Type Required
api_token string YES
list_uid string YES
uid string YES
const data = null;

const xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("PATCH", "https://acc.giantcampaign.com/api/v1/lists/{list_uid}/subscribers/{uid}/unsubscribe?api_token=YOUR_TOKEN_HERE");
xhr.setRequestHeader("accept", "application/json");

xhr.send(data);
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://acc.giantcampaign.com/api/v1/lists/{list_uid}/subscribers/{uid}/unsubscribe?api_token=YOUR_TOKEN_HERE');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'PATCH');
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'accept: application/json',
]);

$response = curl_exec($ch);

curl_close($ch);
using System.Net.Http;

HttpClient client = new HttpClient();

HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Patch, "https://acc.giantcampaign.com/api/v1/lists/{list_uid}/subscribers/{uid}/unsubscribe?api_token=YOUR_TOKEN_HERE");

request.Headers.Add("accept", "application/json");

HttpResponseMessage response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
string responseBody = await response.Content.ReadAsStringAsync();
package main

import (
	"fmt"
	"io"
	"log"
	"net/http"
)

func main() {
	client := &http.Client{}
	req, err := http.NewRequest("PATCH", "https://acc.giantcampaign.com/api/v1/lists/{list_uid}/subscribers/{uid}/unsubscribe?api_token=YOUR_TOKEN_HERE", nil)
	if err != nil {
		log.Fatal(err)
	}
	req.Header.Set("accept", "application/json")
	resp, err := client.Do(req)
	if err != nil {
		log.Fatal(err)
	}
	defer resp.Body.Close()
	bodyText, err := io.ReadAll(resp.Body)
	if err != nil {
		log.Fatal(err)
	}
	fmt.Printf("%s\n", bodyText)
}
val client = OkHttpClient()

val request = Request.Builder()
  .url("https://acc.giantcampaign.com/api/v1/lists/{list_uid}/subscribers/{uid}/unsubscribe?api_token=YOUR_TOKEN_HERE")
  .patch(null)
  .addHeader("accept", "application/json")
  .build()

val response = client.newCall(request).execute()
const axios = require('axios');

const response = await axios.patch(
  'https://acc.giantcampaign.com/api/v1/lists/{list_uid}/subscribers/{uid}/unsubscribe',
  '',
  {
    params: {
      'api_token': 'YOUR_TOKEN_HERE'
    },
    headers: {
      'accept': 'application/json'
    }
  }
);

DELETE Delete a subscriber

Parameter Type Required
api_token string YES
uid string YES
const data = null;

const xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("DELETE", "https://acc.giantcampaign.com/api/v1/subscribers/{uid}?api_token=YOUR_TOKEN_HERE");
xhr.setRequestHeader("accept", "application/json");

xhr.send(data);
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://acc.giantcampaign.com/api/v1/subscribers/{uid}?api_token=YOUR_TOKEN_HERE');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'DELETE');
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'accept: application/json',
]);

$response = curl_exec($ch);

curl_close($ch);
using System.Net.Http;

HttpClient client = new HttpClient();

HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Delete, "https://acc.giantcampaign.com/api/v1/subscribers/{uid}?api_token=YOUR_TOKEN_HERE");

request.Headers.Add("accept", "application/json");

HttpResponseMessage response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
string responseBody = await response.Content.ReadAsStringAsync();
package main

import (
	"fmt"
	"io"
	"log"
	"net/http"
)

func main() {
	client := &http.Client{}
	req, err := http.NewRequest("DELETE", "https://acc.giantcampaign.com/api/v1/subscribers/{uid}?api_token=YOUR_TOKEN_HERE", nil)
	if err != nil {
		log.Fatal(err)
	}
	req.Header.Set("accept", "application/json")
	resp, err := client.Do(req)
	if err != nil {
		log.Fatal(err)
	}
	defer resp.Body.Close()
	bodyText, err := io.ReadAll(resp.Body)
	if err != nil {
		log.Fatal(err)
	}
	fmt.Printf("%s\n", bodyText)
}
val client = OkHttpClient()

val request = Request.Builder()
  .url("https://acc.giantcampaign.com/api/v1/subscribers/{uid}?api_token=YOUR_TOKEN_HERE")
  .delete(null)
  .addHeader("accept", "application/json")
  .build()

val response = client.newCall(request).execute()
const axios = require('axios');

const response = await axios.delete('https://acc.giantcampaign.com/api/v1/subscribers/{uid}', {
  params: {
    'api_token': 'YOUR_TOKEN_HERE'
  },
  headers: {
    'accept': 'application/json'
  }
});

NOTIFICATION

POST Sent

Parameter Type Required
api_token string YES
message_id string YES
type string YES
const data = null;

const xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("POST", "https://acc.giantcampaign.com/api/v1/notification?api_token=YOUR_TOKEN_HERE&message_id=201637442604422402.6199642caf7f3%40example.com&type=sent");
xhr.setRequestHeader("accept", "application/json");

xhr.send(data);
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://acc.giantcampaign.com/api/v1/notification?api_token=YOUR_TOKEN_HERE&message_id=201637442604422402.6199642caf7f3@example.com&type=sent');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'accept: application/json',
]);

$response = curl_exec($ch);

curl_close($ch);
using System.Net.Http;

HttpClient client = new HttpClient();

HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Post, "https://acc.giantcampaign.com/api/v1/notification?api_token=YOUR_TOKEN_HERE&message_id=201637442604422402.6199642caf7f3@example.com&type=sent");

request.Headers.Add("accept", "application/json");

HttpResponseMessage response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
string responseBody = await response.Content.ReadAsStringAsync();
package main

import (
	"fmt"
	"io"
	"log"
	"net/http"
)

func main() {
	client := &http.Client{}
	req, err := http.NewRequest("POST", "https://acc.giantcampaign.com/api/v1/notification?api_token=YOUR_TOKEN_HERE&message_id=201637442604422402.6199642caf7f3@example.com&type=sent", nil)
	if err != nil {
		log.Fatal(err)
	}
	req.Header.Set("accept", "application/json")
	resp, err := client.Do(req)
	if err != nil {
		log.Fatal(err)
	}
	defer resp.Body.Close()
	bodyText, err := io.ReadAll(resp.Body)
	if err != nil {
		log.Fatal(err)
	}
	fmt.Printf("%s\n", bodyText)
}
val client = OkHttpClient()

val request = Request.Builder()
  .url("https://acc.giantcampaign.com/api/v1/notification?api_token=YOUR_TOKEN_HERE&message_id=201637442604422402.6199642caf7f3%40example.com&type=sent")
  .post(null)
  .addHeader("accept", "application/json")
  .build()

val response = client.newCall(request).execute()
const axios = require('axios');

const response = await axios.post(
  'https://acc.giantcampaign.com/api/v1/notification?api_token=YOUR_TOKEN_HERE&message_id=201637442604422402.6199642caf7f3@example.com&type=sent',
  '',
  {
    headers: {
      'accept': 'application/json'
    }
  }
);

POST Bounced

Parameter Type Required
api_token string YES
message_id string YES
type string YES
bounce_type string YES
description string YES
const data = null;

const xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("POST", "https://acc.giantcampaign.com/api/v1/notification?api_token=YOUR_TOKEN_HERE&message_id=201637442604422402.6199642caf7f3%40example.com&type=bounced&bounce_type=hard&description=Email%20address%20does%20not%20exist");
xhr.setRequestHeader("accept", "application/json");

xhr.send(data);
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://acc.giantcampaign.com/api/v1/notification?api_token=YOUR_TOKEN_HERE&message_id=201637442604422402.6199642caf7f3@example.com&type=bounced&bounce_type=hard&description=Email+address+does+not+exist');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'accept: application/json',
]);

$response = curl_exec($ch);

curl_close($ch);
using System.Net.Http;

HttpClient client = new HttpClient();

HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Post, "https://acc.giantcampaign.com/api/v1/notification?api_token=YOUR_TOKEN_HERE&message_id=201637442604422402.6199642caf7f3@example.com&type=bounced&bounce_type=hard&description=Email+address+does+not+exist");

request.Headers.Add("accept", "application/json");

HttpResponseMessage response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
string responseBody = await response.Content.ReadAsStringAsync();
package main

import (
	"fmt"
	"io"
	"log"
	"net/http"
)

func main() {
	client := &http.Client{}
	req, err := http.NewRequest("POST", "https://acc.giantcampaign.com/api/v1/notification?api_token=YOUR_TOKEN_HERE&message_id=201637442604422402.6199642caf7f3@example.com&type=bounced&bounce_type=hard&description=Email+address+does+not+exist", nil)
	if err != nil {
		log.Fatal(err)
	}
	req.Header.Set("accept", "application/json")
	resp, err := client.Do(req)
	if err != nil {
		log.Fatal(err)
	}
	defer resp.Body.Close()
	bodyText, err := io.ReadAll(resp.Body)
	if err != nil {
		log.Fatal(err)
	}
	fmt.Printf("%s\n", bodyText)
}
val client = OkHttpClient()

val request = Request.Builder()
  .url("https://acc.giantcampaign.com/api/v1/notification?api_token=YOUR_TOKEN_HERE&message_id=201637442604422402.6199642caf7f3%40example.com&type=bounced&bounce_type=hard&description=Email%20address%20does%20not%20exist")
  .post(null)
  .addHeader("accept", "application/json")
  .build()

val response = client.newCall(request).execute()
const axios = require('axios');

const response = await axios.post(
  'https://acc.giantcampaign.com/api/v1/notification?api_token=YOUR_TOKEN_HERE&message_id=201637442604422402.6199642caf7f3@example.com&type=bounced&bounce_type=hard&description=Email+address+does+not+exist',
  '',
  {
    headers: {
      'accept': 'application/json'
    }
  }
);

POST Abuse

Parameter Type Required
api_token string YES
message_id string YES
type string YES
report_type string YES
description string YES
const data = null;

const xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("POST", "https://acc.giantcampaign.com/api/v1/notification?api_token=YOUR_TOKEN_HERE&message_id=201637442604422402.6199642caf7f3%40example.com&type=abuse&report_type=hard&description=Email%20address%20does%20not%20exist");
xhr.setRequestHeader("accept", "application/json");

xhr.send(data);
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://acc.giantcampaign.com/api/v1/notification?api_token=YOUR_TOKEN_HERE&message_id=201637442604422402.6199642caf7f3@example.com&type=abuse&report_type=hard&description=Email+address+does+not+exist');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'accept: application/json',
]);

$response = curl_exec($ch);

curl_close($ch);
using System.Net.Http;

HttpClient client = new HttpClient();

HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Post, "https://acc.giantcampaign.com/api/v1/notification?api_token=YOUR_TOKEN_HERE&message_id=201637442604422402.6199642caf7f3@example.com&type=abuse&report_type=hard&description=Email+address+does+not+exist");

request.Headers.Add("accept", "application/json");

HttpResponseMessage response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
string responseBody = await response.Content.ReadAsStringAsync();
package main

import (
	"fmt"
	"io"
	"log"
	"net/http"
)

func main() {
	client := &http.Client{}
	req, err := http.NewRequest("POST", "https://acc.giantcampaign.com/api/v1/notification?api_token=YOUR_TOKEN_HERE&message_id=201637442604422402.6199642caf7f3@example.com&type=abuse&report_type=hard&description=Email+address+does+not+exist", nil)
	if err != nil {
		log.Fatal(err)
	}
	req.Header.Set("accept", "application/json")
	resp, err := client.Do(req)
	if err != nil {
		log.Fatal(err)
	}
	defer resp.Body.Close()
	bodyText, err := io.ReadAll(resp.Body)
	if err != nil {
		log.Fatal(err)
	}
	fmt.Printf("%s\n", bodyText)
}
val client = OkHttpClient()

val request = Request.Builder()
  .url("https://acc.giantcampaign.com/api/v1/notification?api_token=YOUR_TOKEN_HERE&message_id=201637442604422402.6199642caf7f3%40example.com&type=abuse&report_type=hard&description=Email%20address%20does%20not%20exist")
  .post(null)
  .addHeader("accept", "application/json")
  .build()

val response = client.newCall(request).execute()
const axios = require('axios');

const response = await axios.post(
  'https://acc.giantcampaign.com/api/v1/notification?api_token=YOUR_TOKEN_HERE&message_id=201637442604422402.6199642caf7f3@example.com&type=abuse&report_type=hard&description=Email+address+does+not+exist',
  '',
  {
    headers: {
      'accept': 'application/json'
    }
  }
);

POST Spam

Parameter Type Required
api_token string YES
message_id string YES
type string YES
report_type string YES
description string YES
const data = null;

const xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("POST", "https://acc.giantcampaign.com/api/v1/notification?api_token=YOUR_TOKEN_HERE&message_id=201637442604422402.6199642caf7f3%40example.com&type=spam&report_type=hard&description=Email%20address%20does%20not%20exist");
xhr.setRequestHeader("accept", "application/json");

xhr.send(data);
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://acc.giantcampaign.com/api/v1/notification?api_token=YOUR_TOKEN_HERE&message_id=201637442604422402.6199642caf7f3@example.com&type=spam&report_type=hard&description=Email+address+does+not+exist');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'accept: application/json',
]);

$response = curl_exec($ch);

curl_close($ch);
using System.Net.Http;

HttpClient client = new HttpClient();

HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Post, "https://acc.giantcampaign.com/api/v1/notification?api_token=YOUR_TOKEN_HERE&message_id=201637442604422402.6199642caf7f3@example.com&type=spam&report_type=hard&description=Email+address+does+not+exist");

request.Headers.Add("accept", "application/json");

HttpResponseMessage response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
string responseBody = await response.Content.ReadAsStringAsync();
package main

import (
	"fmt"
	"io"
	"log"
	"net/http"
)

func main() {
	client := &http.Client{}
	req, err := http.NewRequest("POST", "https://acc.giantcampaign.com/api/v1/notification?api_token=YOUR_TOKEN_HERE&message_id=201637442604422402.6199642caf7f3@example.com&type=spam&report_type=hard&description=Email+address+does+not+exist", nil)
	if err != nil {
		log.Fatal(err)
	}
	req.Header.Set("accept", "application/json")
	resp, err := client.Do(req)
	if err != nil {
		log.Fatal(err)
	}
	defer resp.Body.Close()
	bodyText, err := io.ReadAll(resp.Body)
	if err != nil {
		log.Fatal(err)
	}
	fmt.Printf("%s\n", bodyText)
}
val client = OkHttpClient()

val request = Request.Builder()
  .url("https://acc.giantcampaign.com/api/v1/notification?api_token=YOUR_TOKEN_HERE&message_id=201637442604422402.6199642caf7f3%40example.com&type=spam&report_type=hard&description=Email%20address%20does%20not%20exist")
  .post(null)
  .addHeader("accept", "application/json")
  .build()

val response = client.newCall(request).execute()
const axios = require('axios');

const response = await axios.post(
  'https://acc.giantcampaign.com/api/v1/notification?api_token=YOUR_TOKEN_HERE&message_id=201637442604422402.6199642caf7f3@example.com&type=spam&report_type=hard&description=Email+address+does+not+exist',
  '',
  {
    headers: {
      'accept': 'application/json'
    }
  }
);

POST Failed

Parameter Type Required
api_token string YES
message_id string YES
type string YES
description string YES
const data = null;

const xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("POST", "https://acc.giantcampaign.com/api/v1/notification?api_token=YOUR_TOKEN_HERE&message_id=201637442604422402.6199642caf7f3%40example.com&type=failed&description=Email%20address%20does%20not%20exist");
xhr.setRequestHeader("accept", "application/json");

xhr.send(data);
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://acc.giantcampaign.com/api/v1/notification?api_token=YOUR_TOKEN_HERE&message_id=201637442604422402.6199642caf7f3@example.com&type=failed&description=Email+address+does+not+exist');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'accept: application/json',
]);

$response = curl_exec($ch);

curl_close($ch);
using System.Net.Http;

HttpClient client = new HttpClient();

HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Post, "https://acc.giantcampaign.com/api/v1/notification?api_token=YOUR_TOKEN_HERE&message_id=201637442604422402.6199642caf7f3@example.com&type=failed&description=Email+address+does+not+exist");

request.Headers.Add("accept", "application/json");

HttpResponseMessage response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
string responseBody = await response.Content.ReadAsStringAsync();
package main

import (
	"fmt"
	"io"
	"log"
	"net/http"
)

func main() {
	client := &http.Client{}
	req, err := http.NewRequest("POST", "https://acc.giantcampaign.com/api/v1/notification?api_token=YOUR_TOKEN_HERE&message_id=201637442604422402.6199642caf7f3@example.com&type=failed&description=Email+address+does+not+exist", nil)
	if err != nil {
		log.Fatal(err)
	}
	req.Header.Set("accept", "application/json")
	resp, err := client.Do(req)
	if err != nil {
		log.Fatal(err)
	}
	defer resp.Body.Close()
	bodyText, err := io.ReadAll(resp.Body)
	if err != nil {
		log.Fatal(err)
	}
	fmt.Printf("%s\n", bodyText)
}
val client = OkHttpClient()

val request = Request.Builder()
  .url("https://acc.giantcampaign.com/api/v1/notification?api_token=YOUR_TOKEN_HERE&message_id=201637442604422402.6199642caf7f3%40example.com&type=failed&description=Email%20address%20does%20not%20exist")
  .post(null)
  .addHeader("accept", "application/json")
  .build()

val response = client.newCall(request).execute()
const axios = require('axios');

const response = await axios.post(
  'https://acc.giantcampaign.com/api/v1/notification?api_token=YOUR_TOKEN_HERE&message_id=201637442604422402.6199642caf7f3@example.com&type=failed&description=Email+address+does+not+exist',
  '',
  {
    headers: {
      'accept': 'application/json'
    }
  }
);

POST FILE

Parameter Type Required
api_token string YES
files array YES
const data = null;

const xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("POST", "https://acc.giantcampaign.com/api/v1/file/upload?api_token=YOUR_TOKEN_HERE&files=%5B{%22url%22%3A%22http%3A%2F%2Fexample.com%2Fimages%2Flogo_big.svg%22%2C%22subdirectory%22%3A%22path%2Fto%2Ffile%22}%2C{%22url%22%3A%22http%3A%2F%2Fexample.com%2Fimages%2Flogo_big.svg%22%2C%22subdirectory%22%3A%22path%2Fto%2Ffile2%22}%5D");
xhr.setRequestHeader("accept", "application/json");

xhr.send(data);
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://acc.giantcampaign.com/api/v1/file/upload?api_token=YOUR_TOKEN_HERE&files=[{"url":"http://example.com/images/logo_big.svg","subdirectory":"path/to/file"},{"url":"http://example.com/images/logo_big.svg","subdirectory":"path/to/file2"}]');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'accept: application/json',
]);

$response = curl_exec($ch);

curl_close($ch);
using System.Net.Http;

HttpClient client = new HttpClient();

HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Post, "https://acc.giantcampaign.com/api/v1/file/upload?api_token=YOUR_TOKEN_HERE&files=[{\"url\":\"http://example.com/images/logo_big.svg\",\"subdirectory\":\"path/to/file\"},{\"url\":\"http://example.com/images/logo_big.svg\",\"subdirectory\":\"path/to/file2\"}]");

request.Headers.Add("accept", "application/json");

HttpResponseMessage response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
string responseBody = await response.Content.ReadAsStringAsync();
package main

import (
	"fmt"
	"io"
	"log"
	"net/http"
)

func main() {
	client := &http.Client{}
	req, err := http.NewRequest("POST", "https://acc.giantcampaign.com/api/v1/file/upload?api_token=YOUR_TOKEN_HERE&files=[{\"url\":\"http://example.com/images/logo_big.svg\",\"subdirectory\":\"path/to/file\"},{\"url\":\"http://example.com/images/logo_big.svg\",\"subdirectory\":\"path/to/file2\"}]", nil)
	if err != nil {
		log.Fatal(err)
	}
	req.Header.Set("accept", "application/json")
	resp, err := client.Do(req)
	if err != nil {
		log.Fatal(err)
	}
	defer resp.Body.Close()
	bodyText, err := io.ReadAll(resp.Body)
	if err != nil {
		log.Fatal(err)
	}
	fmt.Printf("%s\n", bodyText)
}
val client = OkHttpClient()

val request = Request.Builder()
  .url("https://acc.giantcampaign.com/api/v1/file/upload?api_token=YOUR_TOKEN_HERE&files=%5B{%22url%22%3A%22http%3A%2F%2Fexample.com%2Fimages%2Flogo_big.svg%22%2C%22subdirectory%22%3A%22path%2Fto%2Ffile%22}%2C{%22url%22%3A%22http%3A%2F%2Fexample.com%2Fimages%2Flogo_big.svg%22%2C%22subdirectory%22%3A%22path%2Fto%2Ffile2%22}%5D")
  .post(null)
  .addHeader("accept", "application/json")
  .build()

val response = client.newCall(request).execute()
const axios = require('axios');

const response = await axios.post(
  'https://acc.giantcampaign.com/api/v1/file/upload?api_token=YOUR_TOKEN_HERE&files=[{"url":"http://example.com/images/logo_big.svg","subdirectory":"path/to/file"},{"url":"http://example.com/images/logo_big.svg","subdirectory":"path/to/file2"}]',
  '',
  {
    headers: {
      'accept': 'application/json'
    }
  }
);