cURL
curl --request GET \
--url https://api.lomadee.com.br/affiliate/products \
--header 'x-api-key: <api-key>'import requests
url = "https://api.lomadee.com.br/affiliate/products"
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/products', 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/products",
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/products"
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/products")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.lomadee.com.br/affiliate/products")
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": [
{
"organizationId": "<string>",
"id": "<string>",
"available": true,
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z",
"name": "<string>",
"description": "<string>",
"url": "<string>",
"images": [
{
"url": "<string>"
}
],
"options": [
{
"id": "<string>",
"ean": "<string>",
"name": "<string>",
"available": true,
"seller": "<string>",
"images": [
{
"url": "<string>"
}
],
"categories": "<array>",
"brands": "<array>",
"pricing": [
{
"listPrice": 123,
"price": 123,
"metadata": "<array>"
}
],
"stocks": [
{
"value": 123,
"metadata": "<array>"
}
],
"metadata": "<array>"
}
],
"metadata": "<array>"
}
],
"count": 123
}{
"message": "<string>",
"error": "<string>",
"statusCode": 123
}{
"success": false,
"message": "<string>",
"code": "<string>"
}{
"success": false,
"message": "<string>",
"code": "<string>"
}{
"success": false,
"message": "<string>",
"code": "<string>"
}{
"message": "<string>",
"error": "<string>",
"statusCode": 123
}Products
Get all Products
Returns all products from the system that the user has access to
GET
/
affiliate
/
products
cURL
curl --request GET \
--url https://api.lomadee.com.br/affiliate/products \
--header 'x-api-key: <api-key>'import requests
url = "https://api.lomadee.com.br/affiliate/products"
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/products', 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/products",
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/products"
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/products")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.lomadee.com.br/affiliate/products")
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": [
{
"organizationId": "<string>",
"id": "<string>",
"available": true,
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z",
"name": "<string>",
"description": "<string>",
"url": "<string>",
"images": [
{
"url": "<string>"
}
],
"options": [
{
"id": "<string>",
"ean": "<string>",
"name": "<string>",
"available": true,
"seller": "<string>",
"images": [
{
"url": "<string>"
}
],
"categories": "<array>",
"brands": "<array>",
"pricing": [
{
"listPrice": 123,
"price": 123,
"metadata": "<array>"
}
],
"stocks": [
{
"value": 123,
"metadata": "<array>"
}
],
"metadata": "<array>"
}
],
"metadata": "<array>"
}
],
"count": 123
}{
"message": "<string>",
"error": "<string>",
"statusCode": 123
}{
"success": false,
"message": "<string>",
"code": "<string>"
}{
"success": false,
"message": "<string>",
"code": "<string>"
}{
"success": false,
"message": "<string>",
"code": "<string>"
}{
"message": "<string>",
"error": "<string>",
"statusCode": 123
}Get all Products
Retrieve a comprehensive list of products available across all affiliate brands. This endpoint provides detailed product information including pricing, availability, images, and specifications.HTTP Request
GET https://api-beta.lomadee.com.br/affiliate/products
Query Parameters
integer
Page number for pagination. Starts at 1. Default: 1 Example: 2
integer
Number of products per page. Minimum 1, maximum 100. Values outside this range return
400. Default: 5 Example: 25
Example: 25boolean
Filter products by availability status. Example: true
string
Search term to filter products by name or description. Example:
“smartphone”
string
Price range filter in cents. Format:
from:to Format: {minPrice}: {maxPrice} (in cents) Example: “7400:8000” (R74,00toR 80,00)string
Filter products by specific brand organization IDs. Multiple IDs separated by
commas. Format: UUID separated by commas Example:
“e36f5bbb-3e5f-42e2-be4c-6c32dac101c2,12345678-1234-1234-1234-123456789012”
Example Requests
Basic Request
curl -X GET "https://api-beta.lomadee.com.br/affiliate/products" \
-H "x-api-key: your-api-key"
With Pagination
curl -X GET "https://api-beta.lomadee.com.br/affiliate/products?page=1&limit=20" \
-H "x-api-key: your-api-key"
With Search and Price Filter
curl -X GET "https://api-beta.lomadee.com.br/affiliate/products?search=ar%20condicionado&price=5000:6000" \
-H "x-api-key: your-api-key"
Filter by Specific Brands
curl -X GET "https://api-beta.lomadee.com.br/affiliate/products?organizationIds=e36f5bbb-3e5f-42e2-be4c-6c32dac101c2" \
-H "x-api-key: your-api-key"
Response Format
array
Array of product objects
integer
Total number of products matching the filters. Use
page and limit query
parameters to paginate; the response does not echo current page metadata.Product Object Structure
string
Brand organization UUID
string
Product identifier
boolean
Product availability status
string
Product creation timestamp (ISO 8601)
string
Last update timestamp (ISO 8601)
string
Product name/title
string
Product description (HTML format)
string
Product page URL
array
Product variants/options
Show properties
Show properties
string
Option identifier
string
European Article Number
string
Option name
boolean
Option availability
string
Seller identifier
array
Option-specific images
array
Product categories
array
Product brands
array
array
Additional option data
array
Additional product data
Example Response
{
"data": [
{
"_id": "6851c116cd2fe4fb974f9351",
"organizationId": "e36f5bbb-3e5f-42e2-be4c-6c32dac101c2",
"id": "1027452",
"available": true,
"createdAt": "2025-06-17T19:25:06.152Z",
"updatedAt": "2025-08-18T12:26:02.179Z",
"name": "Ar Condicionado Split Hi Wall Philco Inverter 24000 BTU/h Frio Monofásico PAC24000IFM15 - 220 Volts",
"description": "<h2>Ar Condicionado Split Hi Wall Philco Inverter...</h2>",
"url": "https://www.friopecas.com.br/split-philco-hw-24k-220-1-f-in-1027452/p",
"integration": "vtex",
"images": [
{
"url": "https://friopecas.vteximg.com.br/arquivos/ids/241735/17.png.png?v=638663374020100000"
}
],
"options": [
{
"id": "1027452",
"ean": "7899963913617",
"name": "Ar Condicionado Split Hi Wall Philco Inverter 24000 BTU/h Frio Monofásico PAC24000IFM15 - 220 Volts",
"available": true,
"seller": "friopecas",
"images": [
{
"url": "https://friopecas.vteximg.com.br/arquivos/ids/241735/17.png.png?v=638663374020100000"
}
],
"categories": [],
"brands": [],
"pricing": [
{
"listPrice": 5098,
"price": 5098,
"metadata": []
}
],
"stocks": [
{
"value": 99999,
"metadata": []
}
],
"metadata": []
}
],
"metadata": []
}
],
"count": 1500
}
Error Responses
400 Bad Request
{
"message": "Invalid price range format. Expected format: from:to",
"error": "BadRequest",
"statusCode": 400
}
401 Unauthorized
{
"message": "API key is required",
"error": "Unauthorized",
"statusCode": 401
}
500 Internal Server Error
{
"message": "Internal server error",
"error": "InternalServerError",
"statusCode": 500
}
Usage Examples
JavaScript/Node.js
const axios = require("axios");
async function getProducts() {
try {
const response = await axios.get(
"https://api-beta.lomadee.com.br/affiliate/products",
{
headers: {
"x-api-key": "your-api-key",
},
params: {
page: 1,
limit: 20,
search: "smartphone",
price: "5000:10000",
},
}
);
console.log("Products:", response.data.data);
console.log("Total count:", response.data.count);
} catch (error) {
console.error("Error:", error.response.data);
}
}
Python
import requests
def get_products():
url = 'https://api-beta.lomadee.com.br/affiliate/products'
headers = {'x-api-key': 'your-api-key'}
params = {
'page': 1,
'limit': 20,
'search': 'smartphone',
'price': '5000:10000'
}
response = requests.get(url, headers=headers, params=params)
if response.status_code == 200:
data = response.json()
print('Products:', data['data'])
print('Total count:', data['count'])
else:
print('Error:', response.json())
PHP
<?php
$url = 'https://api-beta.lomadee.com.br/affiliate/products';
$headers = ['x-api-key: your-api-key'];
$params = [
'page' => 1,
'limit' => 20,
'search' => 'smartphone',
'price' => '5000:10000'
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url . '?' . http_build_query($params));
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if ($httpCode === 200) {
$data = json_decode($response, true);
echo 'Products: ' . print_r($data['data'], true);
echo 'Total count: ' . $data['count'];
} else {
echo 'Error: ' . $response;
}
?>
Best Practices
- Pagination: Always implement pagination for large datasets
- Caching: Cache product data when appropriate (TTL: 60 seconds)
- Search Optimization: Use specific search terms for better results
- Price Filtering: Use price ranges to narrow down products
- Error Handling: Implement proper error handling for all responses
- Rate Limiting: Respect the 60 requests per 60 seconds limit
Common Use Cases
- Product Catalog: Display available products with filtering
- Price Comparison: Compare prices across different brands
- Inventory Management: Check product availability and stock levels
- Search Integration: Implement product search functionality
- Recommendation Engine: Build product recommendation systems
Authorizations
Query Parameters
Page number for pagination. Starts at 1.
Number of products per page. Maximum 100. Default: 5.
Required range:
x <= 100Search term to filter products by name or description.
Price range filter in cents. Format: from:to
Pattern:
^[0-9]+:[0-9]+$Filter products by specific brand organization IDs. Multiple IDs separated by commas.
Filter products by availability status