Program
Get program details
Retrieve program details, statistics, settings, and portal configuration.
GET
/
v1
/
program
Get program details
curl --request GET \
--url https://api.example.com/v1/programimport requests
url = "https://api.example.com/v1/program"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.example.com/v1/program', 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.example.com/v1/program",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.example.com/v1/program"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.example.com/v1/program")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/v1/program")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_bodyEndpoint
GET https://api.partnero.com/v1/program
Request
cURL
curl --location 'https://api.partnero.com/v1/program' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer YOUR_API_KEY'
Response
The response structure varies based on program type. Both types share the same top-level structure:program, stats, program_settings, and portal_settings.
- Affiliate program
- Refer-a-friend program
200 OK
{
"status": 1,
"data": {
"program": {
"id": 1,
"public_id": "MOBTGEKX",
"website": "https://yourcompany.com",
"initial": "A0",
"type": "Affiliate",
"name": "My Affiliate Program",
"created_at": "2025-04-30",
"last_edited": "2025-04-30"
},
"stats": {
"total_partners": "12",
"total_partners_growth": 0,
"total_purchases": "45",
"total_purchases_growth": 0,
"total_signups": "30",
"total_signups_growth": 0,
"total_paid_accounts": "25",
"total_paid_accounts_growth": 0,
"total_reward": {
"usd": "$337.47"
},
"total_reward_growth": 0,
"total_revenue": {
"usd": "$1,124.90"
},
"total_revenue_growth": 0,
"affiliate_referred_visitors_clicks": "150",
"affiliate_referred_visitors_clicks_growth": 0,
"click_to_signup_conversion": "20",
"click_to_signup_conversion_growth": 0,
"signup_to_sale_conversion": "83",
"signup_to_sale_conversion_growth": 0,
"total_paid": [],
"total_pending": [],
"net_profit": 787.43,
"net_profit_growth": 0,
"net_profit_formatted": "$787.43",
"average_order_value": {
"usd": "$24.99"
},
"rewards_breakdown": {
"unclaimed": {},
"in_review": {},
"paid": {}
},
"partner_activity": {
"partners_with_signups": "8",
"active_partners": "5",
"approved": "10",
"waiting_for_approval": "2",
"rejected": "0"
},
"payout_status_breakdown": {
"requested": { "count": 0, "amounts": {} },
"approved": { "count": 0, "amounts": {} },
"paid": { "count": 0, "amounts": {} },
"rejected": { "count": 0, "amounts": {} },
"resubmitted": { "count": 0, "amounts": {} },
"total_requested_amounts": {},
"total_waiting_amounts": {}
}
},
"program_settings": {
"currency": "USD",
"cookie_lifetime": "7",
"commission_description": "30%, lifetime",
"commission_value": "30%",
"has_multiple_commissions": false,
"payout_threshold": 0,
"payout_automation_enabled": false,
"payout_automation_schedule": null,
"welcome_email_enabled": false,
"onboarding_enabled": false,
"partner_email_notifications_enabled": false
},
"portal_settings": {
"partner_portal_url": "https://myprogram.partneroapp.site",
"program_page_enabled": true,
"leads_page_enabled": false,
"registration_disabled": false,
"google_login_enabled": false,
"passwordless_login_enabled": false,
"sub_accounts_enabled": false,
"widget_enabled": false,
"signup_popup_enabled": false,
"embeddable_form_enabled": false
}
}
}
200 OK
{
"status": 1,
"data": {
"program": {
"id": 2,
"public_id": "REFPRGM1",
"website": "https://yourcompany.com",
"initial": "R1",
"type": "Referral",
"name": "My Referral Program",
"created_at": "2025-04-30",
"last_edited": "2025-04-30"
},
"stats": {
"total_customers": 100,
"total_customers_growth": 0,
"total_referring_customers": 25,
"total_referring_customers_growth": 0,
"total_referred_customers": 40,
"total_referred_customers_growth": 0,
"total_sales": 30,
"total_sales_growth": 0,
"participation": 25,
"participation_growth": 0,
"total_revenue_from_sales": {
"usd": "$890.00"
}
},
"program_settings": {
"referral_portal_enabled": true,
"rewards_notification_enabled": false
},
"portal_settings": {
"referral_portal_url": "https://myreferral.partneroapp.site",
"registration_disabled": false,
"program_page_enabled": true,
"widget_enabled": false,
"embeddable_form_enabled": false,
"popup_form_enabled": false,
"refer_a_friend_form_url": "https://yourcompany.com/refer"
}
}
}
Response fields
Program details — data.program
Program details — data.program
| Field | Type | Description |
|---|---|---|
id | integer | Internal program ID |
public_id | string | Public program identifier |
website | string | Program landing page URL |
type | string | Affiliate, Referral, or Newsletter |
name | string | Program name |
created_at | string | Creation date |
last_edited | string | Last modification date |
Statistics — data.stats
Statistics — data.stats
- Affiliate
- Refer-a-friend
| Field | Type | Description |
|---|---|---|
total_partners | string | Total number of partners |
total_purchases | string | Total number of purchases |
total_signups | string | Total referred sign-ups |
total_paid_accounts | string | Total paid accounts |
total_reward | object | Total rewards by currency |
total_revenue | object | Total revenue by currency |
affiliate_referred_visitors_clicks | string | Total referral link clicks |
click_to_signup_conversion | string | Click-to-signup conversion rate (%) |
signup_to_sale_conversion | string | Signup-to-sale conversion rate (%) |
net_profit | number | Revenue minus rewards |
net_profit_formatted | string | Formatted net profit with currency |
average_order_value | object | Average order value by currency |
rewards_breakdown | object | Rewards split by status: unclaimed, in_review, paid |
partner_activity | object | Partner counts by status |
payout_status_breakdown | object | Payout counts and amounts by status |
| Field | Type | Description |
|---|---|---|
total_customers | integer | Total customers in the program |
total_referring_customers | integer | Customers who have shared referral links |
total_referred_customers | integer | Customers who signed up via referral |
total_sales | integer | Total sales from referrals |
participation | integer | Percentage of customers who are referring |
total_revenue_from_sales | object | Total revenue from referral sales by currency |
Program settings — data.program_settings
Program settings — data.program_settings
- Affiliate
- Refer-a-friend
| Field | Type | Description |
|---|---|---|
currency | string | Commission currency (e.g., USD) |
cookie_lifetime | string | Referral cookie duration in days |
commission_description | string | Human-readable commission description |
commission_value | string | Commission value |
has_multiple_commissions | boolean | Whether advanced commissions are configured |
payout_threshold | number | Minimum amount required for payout |
payout_automation_enabled | boolean | Whether automated payouts are active |
payout_automation_schedule | string | Payout schedule description (if enabled) |
welcome_email_enabled | boolean | Send welcome email to new partners |
onboarding_enabled | boolean | Partner onboarding flow enabled |
partner_email_notifications_enabled | boolean | Email notifications for partners |
| Field | Type | Description |
|---|---|---|
referral_portal_enabled | boolean | Referral portal is active |
rewards_notification_enabled | boolean | Send reward notification emails |
Portal settings — data.portal_settings
Portal settings — data.portal_settings
- Affiliate
- Refer-a-friend
| Field | Type | Description |
|---|---|---|
partner_portal_url | string | Partner portal URL |
program_page_enabled | boolean | Public program page is active |
leads_page_enabled | boolean | Lead submission page is active |
registration_disabled | boolean | Portal registration is disabled |
google_login_enabled | boolean | Google login/signup is enabled |
passwordless_login_enabled | boolean | Passwordless (OTP) login is enabled |
sub_accounts_enabled | boolean | Partner sub-accounts are enabled |
widget_enabled | boolean | Portal widget is enabled |
signup_popup_enabled | boolean | Signup pop-up is enabled |
embeddable_form_enabled | boolean | Embeddable signup form is enabled |
| Field | Type | Description |
|---|---|---|
referral_portal_url | string | Referral portal URL |
registration_disabled | boolean | Portal registration is disabled |
program_page_enabled | boolean | Program page is active |
widget_enabled | boolean | Portal widget is enabled |
embeddable_form_enabled | boolean | Embeddable refer-a-friend form is enabled |
popup_form_enabled | boolean | Pop-up refer-a-friend form is enabled |
refer_a_friend_form_url | string | URL for the refer-a-friend form |
The legacy endpoint
GET /v1/program/overview is still available for backward compatibility but returns a flat response format. New integrations should use GET /v1/program.⌘I
Get program details
curl --request GET \
--url https://api.example.com/v1/programimport requests
url = "https://api.example.com/v1/program"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.example.com/v1/program', 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.example.com/v1/program",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.example.com/v1/program"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.example.com/v1/program")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/v1/program")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body