curl --request GET \
--url https://api.lomadee.com.br/affiliate/campaigns \
--header 'x-api-key: <api-key>'import requests
url = "https://api.lomadee.com.br/affiliate/campaigns"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://api.lomadee.com.br/affiliate/campaigns', 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.lomadee.com.br/affiliate/campaigns",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-api-key: <api-key>"
],
]);
$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.lomadee.com.br/affiliate/campaigns"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
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.lomadee.com.br/affiliate/campaigns")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.lomadee.com.br/affiliate/campaigns")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"data": {
"id": "<string>",
"name": "<string>",
"period": {
"startAt": "<string>",
"endAt": "<string>"
},
"type": "<string>",
"offerType": "Spreadsheet",
"categories": [
"<string>"
],
"description": "<string>",
"code": "<string>",
"url": "<string>",
"organizationId": "<string>",
"isHighlight": true,
"status": "onTime",
"createdAt": "<string>",
"channels": [
{
"id": "<string>",
"name": "<string>",
"availableChannel": {
"id": "<string>",
"name": "<string>"
},
"shortUrls": [
"<string>"
],
"message": "<string>"
}
],
"mediaKit": {
"banners": [
"<string>"
],
"emailMarketing": "<unknown>"
}
},
"meta": {
"total": 123,
"page": 123,
"limit": 123,
"totalPages": 123
}
}{
"success": false,
"message": "<string>",
"code": "<string>"
}{
"success": false,
"message": "<string>",
"code": "<string>"
}{
"success": false,
"message": "<string>",
"code": "<string>"
}Get all Campaigns
Returns all campaigns from the system that the user has access to
curl --request GET \
--url https://api.lomadee.com.br/affiliate/campaigns \
--header 'x-api-key: <api-key>'import requests
url = "https://api.lomadee.com.br/affiliate/campaigns"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://api.lomadee.com.br/affiliate/campaigns', 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.lomadee.com.br/affiliate/campaigns",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-api-key: <api-key>"
],
]);
$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.lomadee.com.br/affiliate/campaigns"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
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.lomadee.com.br/affiliate/campaigns")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.lomadee.com.br/affiliate/campaigns")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"data": {
"id": "<string>",
"name": "<string>",
"period": {
"startAt": "<string>",
"endAt": "<string>"
},
"type": "<string>",
"offerType": "Spreadsheet",
"categories": [
"<string>"
],
"description": "<string>",
"code": "<string>",
"url": "<string>",
"organizationId": "<string>",
"isHighlight": true,
"status": "onTime",
"createdAt": "<string>",
"channels": [
{
"id": "<string>",
"name": "<string>",
"availableChannel": {
"id": "<string>",
"name": "<string>"
},
"shortUrls": [
"<string>"
],
"message": "<string>"
}
],
"mediaKit": {
"banners": [
"<string>"
],
"emailMarketing": "<unknown>"
}
},
"meta": {
"total": 123,
"page": 123,
"limit": 123,
"totalPages": 123
}
}{
"success": false,
"message": "<string>",
"code": "<string>"
}{
"success": false,
"message": "<string>",
"code": "<string>"
}{
"success": false,
"message": "<string>",
"code": "<string>"
}Get all Campaigns
Returns paginated campaigns (coupons and offers). Requires scopecampaigns:read.
Offers are listed here — there is no separate /affiliate/offers endpoint. Use types=Offer to filter offers.
HTTP Request
GET https://api-beta.lomadee.com.br/affiliate/campaigns
Query Parameters
| Parameter | Type | Description |
|---|---|---|
page | integer | Page number (default 1) |
limit | integer | Items per page (default 10, max 20) |
types | string | Comma-separated: PersonalCoupon, GenericCoupon, Offer |
offerType | string | For offers: Spreadsheet or Url |
organizationId | string | Filter by brand UUID |
organizationIds | string | Comma-separated brand UUIDs |
name | string | Search by name |
isHighlight | boolean | Highlight filter |
categories | string | Comma-separated categories |
status | string | onTime, expired, scheduled (comma-separated) |
startAt / endAt | date-time | Period filter |
Response
{
"data": [],
"meta": {
"total": 0,
"page": 1,
"limit": 10,
"totalPages": 0
}
}
Example — list offers
curl -X GET "https://api-beta.lomadee.com.br/affiliate/campaigns?types=Offer&page=1&limit=10" \
-H "x-api-key: your-api-key"
Authorizations
Query Parameters
Page number for pagination
Maximum number of results per page (default: 10, max: 20)
x <= 20Campaign types to filter
PersonalCoupon, GenericCoupon, Offer Type of offer to filter. If not provided, all offers will be returned.
Spreadsheet: Spreadsheet offer type. In this case, links will not be generated automatically. You need to use the POST /affiliate/shortener/url endpoint to generate links by passing the campaign id as a parameter through featureId.
Url: Link offer type. In this case, links will be generated automatically.
Spreadsheet, Url Brand identifier to filter campaigns
List of brand identifiers to filter campaigns
Campaign name to search for
Filter campaigns by highlight status
List of categories to filter campaigns
Filter campaigns by status. Accepts multiple values separated by comma.
onTime: Active campaign within period.
expired: Campaign expired (period.endAt has passed).
scheduled: Campaign scheduled (period.startAt has not arrived yet).
Example: status=onTime,expired
onTime, expired, scheduled Campaign period filter
Show child attributes
Show child attributes
Campaign start date (ISO 8601). Must be used together with endAt.
Campaign end date (ISO 8601). Must be used together with startAt.