curl --request POST \
--url https://api.firstpromoter.com/api/v2/company/promoters \
--header 'Account-ID: <account-id>' \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"email": "[email protected]",
"cust_id": "<string>",
"profile": {
"id": 123,
"first_name": "<string>",
"last_name": "<string>",
"website": "<string>",
"company_name": "<string>",
"company_number": "<string>",
"phone_number": "<string>",
"vat_id": "<string>",
"country": "US",
"address": "<string>",
"avatar": "<string>",
"w8_form_url": "<string>",
"w9_form_url": "<string>",
"description": "<string>",
"invoice_details_validation_errors": {},
"should_validate_invoice_details": true,
"instagram_url": "<string>",
"youtube_url": "<string>",
"linkedin_url": "<string>",
"facebook_url": "<string>",
"twitter_url": "<string>",
"twitch_url": "<string>",
"tiktok_url": "<string>"
},
"initial_campaign_id": 123,
"drip_emails": true
}
'import requests
url = "https://api.firstpromoter.com/api/v2/company/promoters"
payload = {
"email": "[email protected]",
"cust_id": "<string>",
"profile": {
"id": 123,
"first_name": "<string>",
"last_name": "<string>",
"website": "<string>",
"company_name": "<string>",
"company_number": "<string>",
"phone_number": "<string>",
"vat_id": "<string>",
"country": "US",
"address": "<string>",
"avatar": "<string>",
"w8_form_url": "<string>",
"w9_form_url": "<string>",
"description": "<string>",
"invoice_details_validation_errors": {},
"should_validate_invoice_details": True,
"instagram_url": "<string>",
"youtube_url": "<string>",
"linkedin_url": "<string>",
"facebook_url": "<string>",
"twitter_url": "<string>",
"twitch_url": "<string>",
"tiktok_url": "<string>"
},
"initial_campaign_id": 123,
"drip_emails": True
}
headers = {
"Account-ID": "<account-id>",
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'Account-ID': '<account-id>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
email: '[email protected]',
cust_id: '<string>',
profile: {
id: 123,
first_name: '<string>',
last_name: '<string>',
website: '<string>',
company_name: '<string>',
company_number: '<string>',
phone_number: '<string>',
vat_id: '<string>',
country: 'US',
address: '<string>',
avatar: '<string>',
w8_form_url: '<string>',
w9_form_url: '<string>',
description: '<string>',
invoice_details_validation_errors: {},
should_validate_invoice_details: true,
instagram_url: '<string>',
youtube_url: '<string>',
linkedin_url: '<string>',
facebook_url: '<string>',
twitter_url: '<string>',
twitch_url: '<string>',
tiktok_url: '<string>'
},
initial_campaign_id: 123,
drip_emails: true
})
};
fetch('https://api.firstpromoter.com/api/v2/company/promoters', 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.firstpromoter.com/api/v2/company/promoters",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'email' => '[email protected]',
'cust_id' => '<string>',
'profile' => [
'id' => 123,
'first_name' => '<string>',
'last_name' => '<string>',
'website' => '<string>',
'company_name' => '<string>',
'company_number' => '<string>',
'phone_number' => '<string>',
'vat_id' => '<string>',
'country' => 'US',
'address' => '<string>',
'avatar' => '<string>',
'w8_form_url' => '<string>',
'w9_form_url' => '<string>',
'description' => '<string>',
'invoice_details_validation_errors' => [
],
'should_validate_invoice_details' => true,
'instagram_url' => '<string>',
'youtube_url' => '<string>',
'linkedin_url' => '<string>',
'facebook_url' => '<string>',
'twitter_url' => '<string>',
'twitch_url' => '<string>',
'tiktok_url' => '<string>'
],
'initial_campaign_id' => 123,
'drip_emails' => true
]),
CURLOPT_HTTPHEADER => [
"Account-ID: <account-id>",
"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://api.firstpromoter.com/api/v2/company/promoters"
payload := strings.NewReader("{\n \"email\": \"[email protected]\",\n \"cust_id\": \"<string>\",\n \"profile\": {\n \"id\": 123,\n \"first_name\": \"<string>\",\n \"last_name\": \"<string>\",\n \"website\": \"<string>\",\n \"company_name\": \"<string>\",\n \"company_number\": \"<string>\",\n \"phone_number\": \"<string>\",\n \"vat_id\": \"<string>\",\n \"country\": \"US\",\n \"address\": \"<string>\",\n \"avatar\": \"<string>\",\n \"w8_form_url\": \"<string>\",\n \"w9_form_url\": \"<string>\",\n \"description\": \"<string>\",\n \"invoice_details_validation_errors\": {},\n \"should_validate_invoice_details\": true,\n \"instagram_url\": \"<string>\",\n \"youtube_url\": \"<string>\",\n \"linkedin_url\": \"<string>\",\n \"facebook_url\": \"<string>\",\n \"twitter_url\": \"<string>\",\n \"twitch_url\": \"<string>\",\n \"tiktok_url\": \"<string>\"\n },\n \"initial_campaign_id\": 123,\n \"drip_emails\": true\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Account-ID", "<account-id>")
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.post("https://api.firstpromoter.com/api/v2/company/promoters")
.header("Account-ID", "<account-id>")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"email\": \"[email protected]\",\n \"cust_id\": \"<string>\",\n \"profile\": {\n \"id\": 123,\n \"first_name\": \"<string>\",\n \"last_name\": \"<string>\",\n \"website\": \"<string>\",\n \"company_name\": \"<string>\",\n \"company_number\": \"<string>\",\n \"phone_number\": \"<string>\",\n \"vat_id\": \"<string>\",\n \"country\": \"US\",\n \"address\": \"<string>\",\n \"avatar\": \"<string>\",\n \"w8_form_url\": \"<string>\",\n \"w9_form_url\": \"<string>\",\n \"description\": \"<string>\",\n \"invoice_details_validation_errors\": {},\n \"should_validate_invoice_details\": true,\n \"instagram_url\": \"<string>\",\n \"youtube_url\": \"<string>\",\n \"linkedin_url\": \"<string>\",\n \"facebook_url\": \"<string>\",\n \"twitter_url\": \"<string>\",\n \"twitch_url\": \"<string>\",\n \"tiktok_url\": \"<string>\"\n },\n \"initial_campaign_id\": 123,\n \"drip_emails\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.firstpromoter.com/api/v2/company/promoters")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Account-ID"] = '<account-id>'
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"email\": \"[email protected]\",\n \"cust_id\": \"<string>\",\n \"profile\": {\n \"id\": 123,\n \"first_name\": \"<string>\",\n \"last_name\": \"<string>\",\n \"website\": \"<string>\",\n \"company_name\": \"<string>\",\n \"company_number\": \"<string>\",\n \"phone_number\": \"<string>\",\n \"vat_id\": \"<string>\",\n \"country\": \"US\",\n \"address\": \"<string>\",\n \"avatar\": \"<string>\",\n \"w8_form_url\": \"<string>\",\n \"w9_form_url\": \"<string>\",\n \"description\": \"<string>\",\n \"invoice_details_validation_errors\": {},\n \"should_validate_invoice_details\": true,\n \"instagram_url\": \"<string>\",\n \"youtube_url\": \"<string>\",\n \"linkedin_url\": \"<string>\",\n \"facebook_url\": \"<string>\",\n \"twitter_url\": \"<string>\",\n \"twitch_url\": \"<string>\",\n \"tiktok_url\": \"<string>\"\n },\n \"initial_campaign_id\": 123,\n \"drip_emails\": true\n}"
response = http.request(request)
puts response.read_body{
"id": 123,
"email": "<string>",
"name": "<string>",
"cust_id": "<string>",
"note": "<string>",
"stats": {
"clicks_count": 123,
"referrals_count": 123,
"sales_count": 123,
"customers_count": 123,
"revenue_amount": 123,
"active_customers_count": 123
},
"is_customized": true,
"fraud_suspicions": [
"<string>"
],
"is_confirmed": true,
"profile": {
"id": 123,
"first_name": "<string>",
"last_name": "<string>",
"website": "<string>",
"company_name": "<string>",
"company_number": "<string>",
"phone_number": "<string>",
"vat_id": "<string>",
"country": "US",
"address": "<string>",
"avatar": "<string>",
"w8_form_url": "<string>",
"w9_form_url": "<string>",
"description": "<string>",
"invoice_details_validation_errors": {},
"should_validate_invoice_details": true,
"instagram_url": "<string>",
"youtube_url": "<string>",
"linkedin_url": "<string>",
"facebook_url": "<string>",
"twitter_url": "<string>",
"twitch_url": "<string>",
"tiktok_url": "<string>"
},
"joined_at": "2023-11-07T05:31:56Z",
"last_login_at": "2023-11-07T05:31:56Z",
"archived_at": "2023-11-07T05:31:56Z",
"custom_fields": {},
"password_setup_url": "<string>",
"first_event_at": "2023-11-07T05:31:56Z",
"promoter_campaigns": [
{
"id": 123,
"campaign_id": 123,
"promoter_id": 123,
"created_at": "2023-11-07T05:31:56Z",
"campaign": {
"id": 123,
"name": "<string>",
"color": "<string>"
},
"coupon": "<string>",
"ref_token": "<string>",
"ref_link": "<string>"
}
],
"balances": {
"cash": 123,
"credits": 123,
"points": 123,
"free_months": 123,
"discount": 123
},
"track_ad_traffic": true,
"auth_provider": "<string>",
"selected_payout_method": {
"id": 123,
"method": "<string>",
"date_added": "2023-11-07T05:31:56Z",
"is_disabled": true
},
"parent_promoter": {
"id": 123,
"email": "<string>",
"name": "<string>"
}
}Create promoter
With this endpoint you can create a promoter.
POST https://api.firstpromoter.com/api/v2/company/promoterscurl --request POST \
--url https://api.firstpromoter.com/api/v2/company/promoters \
--header 'Account-ID: <account-id>' \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"email": "[email protected]",
"cust_id": "<string>",
"profile": {
"id": 123,
"first_name": "<string>",
"last_name": "<string>",
"website": "<string>",
"company_name": "<string>",
"company_number": "<string>",
"phone_number": "<string>",
"vat_id": "<string>",
"country": "US",
"address": "<string>",
"avatar": "<string>",
"w8_form_url": "<string>",
"w9_form_url": "<string>",
"description": "<string>",
"invoice_details_validation_errors": {},
"should_validate_invoice_details": true,
"instagram_url": "<string>",
"youtube_url": "<string>",
"linkedin_url": "<string>",
"facebook_url": "<string>",
"twitter_url": "<string>",
"twitch_url": "<string>",
"tiktok_url": "<string>"
},
"initial_campaign_id": 123,
"drip_emails": true
}
'import requests
url = "https://api.firstpromoter.com/api/v2/company/promoters"
payload = {
"email": "[email protected]",
"cust_id": "<string>",
"profile": {
"id": 123,
"first_name": "<string>",
"last_name": "<string>",
"website": "<string>",
"company_name": "<string>",
"company_number": "<string>",
"phone_number": "<string>",
"vat_id": "<string>",
"country": "US",
"address": "<string>",
"avatar": "<string>",
"w8_form_url": "<string>",
"w9_form_url": "<string>",
"description": "<string>",
"invoice_details_validation_errors": {},
"should_validate_invoice_details": True,
"instagram_url": "<string>",
"youtube_url": "<string>",
"linkedin_url": "<string>",
"facebook_url": "<string>",
"twitter_url": "<string>",
"twitch_url": "<string>",
"tiktok_url": "<string>"
},
"initial_campaign_id": 123,
"drip_emails": True
}
headers = {
"Account-ID": "<account-id>",
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'Account-ID': '<account-id>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
email: '[email protected]',
cust_id: '<string>',
profile: {
id: 123,
first_name: '<string>',
last_name: '<string>',
website: '<string>',
company_name: '<string>',
company_number: '<string>',
phone_number: '<string>',
vat_id: '<string>',
country: 'US',
address: '<string>',
avatar: '<string>',
w8_form_url: '<string>',
w9_form_url: '<string>',
description: '<string>',
invoice_details_validation_errors: {},
should_validate_invoice_details: true,
instagram_url: '<string>',
youtube_url: '<string>',
linkedin_url: '<string>',
facebook_url: '<string>',
twitter_url: '<string>',
twitch_url: '<string>',
tiktok_url: '<string>'
},
initial_campaign_id: 123,
drip_emails: true
})
};
fetch('https://api.firstpromoter.com/api/v2/company/promoters', 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.firstpromoter.com/api/v2/company/promoters",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'email' => '[email protected]',
'cust_id' => '<string>',
'profile' => [
'id' => 123,
'first_name' => '<string>',
'last_name' => '<string>',
'website' => '<string>',
'company_name' => '<string>',
'company_number' => '<string>',
'phone_number' => '<string>',
'vat_id' => '<string>',
'country' => 'US',
'address' => '<string>',
'avatar' => '<string>',
'w8_form_url' => '<string>',
'w9_form_url' => '<string>',
'description' => '<string>',
'invoice_details_validation_errors' => [
],
'should_validate_invoice_details' => true,
'instagram_url' => '<string>',
'youtube_url' => '<string>',
'linkedin_url' => '<string>',
'facebook_url' => '<string>',
'twitter_url' => '<string>',
'twitch_url' => '<string>',
'tiktok_url' => '<string>'
],
'initial_campaign_id' => 123,
'drip_emails' => true
]),
CURLOPT_HTTPHEADER => [
"Account-ID: <account-id>",
"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://api.firstpromoter.com/api/v2/company/promoters"
payload := strings.NewReader("{\n \"email\": \"[email protected]\",\n \"cust_id\": \"<string>\",\n \"profile\": {\n \"id\": 123,\n \"first_name\": \"<string>\",\n \"last_name\": \"<string>\",\n \"website\": \"<string>\",\n \"company_name\": \"<string>\",\n \"company_number\": \"<string>\",\n \"phone_number\": \"<string>\",\n \"vat_id\": \"<string>\",\n \"country\": \"US\",\n \"address\": \"<string>\",\n \"avatar\": \"<string>\",\n \"w8_form_url\": \"<string>\",\n \"w9_form_url\": \"<string>\",\n \"description\": \"<string>\",\n \"invoice_details_validation_errors\": {},\n \"should_validate_invoice_details\": true,\n \"instagram_url\": \"<string>\",\n \"youtube_url\": \"<string>\",\n \"linkedin_url\": \"<string>\",\n \"facebook_url\": \"<string>\",\n \"twitter_url\": \"<string>\",\n \"twitch_url\": \"<string>\",\n \"tiktok_url\": \"<string>\"\n },\n \"initial_campaign_id\": 123,\n \"drip_emails\": true\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Account-ID", "<account-id>")
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.post("https://api.firstpromoter.com/api/v2/company/promoters")
.header("Account-ID", "<account-id>")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"email\": \"[email protected]\",\n \"cust_id\": \"<string>\",\n \"profile\": {\n \"id\": 123,\n \"first_name\": \"<string>\",\n \"last_name\": \"<string>\",\n \"website\": \"<string>\",\n \"company_name\": \"<string>\",\n \"company_number\": \"<string>\",\n \"phone_number\": \"<string>\",\n \"vat_id\": \"<string>\",\n \"country\": \"US\",\n \"address\": \"<string>\",\n \"avatar\": \"<string>\",\n \"w8_form_url\": \"<string>\",\n \"w9_form_url\": \"<string>\",\n \"description\": \"<string>\",\n \"invoice_details_validation_errors\": {},\n \"should_validate_invoice_details\": true,\n \"instagram_url\": \"<string>\",\n \"youtube_url\": \"<string>\",\n \"linkedin_url\": \"<string>\",\n \"facebook_url\": \"<string>\",\n \"twitter_url\": \"<string>\",\n \"twitch_url\": \"<string>\",\n \"tiktok_url\": \"<string>\"\n },\n \"initial_campaign_id\": 123,\n \"drip_emails\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.firstpromoter.com/api/v2/company/promoters")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Account-ID"] = '<account-id>'
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"email\": \"[email protected]\",\n \"cust_id\": \"<string>\",\n \"profile\": {\n \"id\": 123,\n \"first_name\": \"<string>\",\n \"last_name\": \"<string>\",\n \"website\": \"<string>\",\n \"company_name\": \"<string>\",\n \"company_number\": \"<string>\",\n \"phone_number\": \"<string>\",\n \"vat_id\": \"<string>\",\n \"country\": \"US\",\n \"address\": \"<string>\",\n \"avatar\": \"<string>\",\n \"w8_form_url\": \"<string>\",\n \"w9_form_url\": \"<string>\",\n \"description\": \"<string>\",\n \"invoice_details_validation_errors\": {},\n \"should_validate_invoice_details\": true,\n \"instagram_url\": \"<string>\",\n \"youtube_url\": \"<string>\",\n \"linkedin_url\": \"<string>\",\n \"facebook_url\": \"<string>\",\n \"twitter_url\": \"<string>\",\n \"twitch_url\": \"<string>\",\n \"tiktok_url\": \"<string>\"\n },\n \"initial_campaign_id\": 123,\n \"drip_emails\": true\n}"
response = http.request(request)
puts response.read_body{
"id": 123,
"email": "<string>",
"name": "<string>",
"cust_id": "<string>",
"note": "<string>",
"stats": {
"clicks_count": 123,
"referrals_count": 123,
"sales_count": 123,
"customers_count": 123,
"revenue_amount": 123,
"active_customers_count": 123
},
"is_customized": true,
"fraud_suspicions": [
"<string>"
],
"is_confirmed": true,
"profile": {
"id": 123,
"first_name": "<string>",
"last_name": "<string>",
"website": "<string>",
"company_name": "<string>",
"company_number": "<string>",
"phone_number": "<string>",
"vat_id": "<string>",
"country": "US",
"address": "<string>",
"avatar": "<string>",
"w8_form_url": "<string>",
"w9_form_url": "<string>",
"description": "<string>",
"invoice_details_validation_errors": {},
"should_validate_invoice_details": true,
"instagram_url": "<string>",
"youtube_url": "<string>",
"linkedin_url": "<string>",
"facebook_url": "<string>",
"twitter_url": "<string>",
"twitch_url": "<string>",
"tiktok_url": "<string>"
},
"joined_at": "2023-11-07T05:31:56Z",
"last_login_at": "2023-11-07T05:31:56Z",
"archived_at": "2023-11-07T05:31:56Z",
"custom_fields": {},
"password_setup_url": "<string>",
"first_event_at": "2023-11-07T05:31:56Z",
"promoter_campaigns": [
{
"id": 123,
"campaign_id": 123,
"promoter_id": 123,
"created_at": "2023-11-07T05:31:56Z",
"campaign": {
"id": 123,
"name": "<string>",
"color": "<string>"
},
"coupon": "<string>",
"ref_token": "<string>",
"ref_link": "<string>"
}
],
"balances": {
"cash": 123,
"credits": 123,
"points": 123,
"free_months": 123,
"discount": 123
},
"track_ad_traffic": true,
"auth_provider": "<string>",
"selected_payout_method": {
"id": 123,
"method": "<string>",
"date_added": "2023-11-07T05:31:56Z",
"is_disabled": true
},
"parent_promoter": {
"id": 123,
"email": "<string>",
"name": "<string>"
}
}Authorizations
API key passed as a Bearer token in the Authorization header. You can find your API Key on Your FirstPromoter Dashboard. Navigate to Settings → Integrations section → Manage API Keys
Headers
Account id. You can find your Account ID on Your FirstPromoter Dashboard. Navigate to Settings → Integrations
Body
Response
Promoter created successfully
Id of the promoter
Email address of the promoter
Full name of the promoter
Cust ID of the promoter
Optional note about the promoter
Performance statistics for the promoter
Show child attributes
Show child attributes
Whether the promoter has customized settings
List of potential fraud flags
Whether the promoter has confirmed their account
Status of the promoter's invoice details
pending, approved, denied Show child attributes
Show child attributes
Date and time when the promoter joined.
Date and time of the promoter's last login.
Date and time when the promoter was archived, if applicable.
Custom fields for the promoter, based on company settings. This is a key-value pair object where keys are custom field identifiers and values are the corresponding data.
URL for the promoter to set up their password
Date and time of the promoter's first activity.
List of campaigns associated with the promoter
Show child attributes
Show child attributes
Earnings balance breakdown for the promoter
Show child attributes
Show child attributes
Whether ad traffic tracking is enabled for this promoter. Null means the campaign default is used.
OAuth provider used to authenticate (e.g. google). Null if using email/password.
The promoter's currently selected payout method. Omitted when the exclude_payout_method=true query parameter is set.
Show child attributes
Show child attributes
The parent promoter (for sub-affiliate relationships). Only included when the include_parent_promoter=true query parameter is set.
Show child attributes
Show child attributes