curl --request GET \
--url https://external-api.streamforge.com/industries/{industry_id} \
--header 'x-api-key: <api-key>'import requests
url = "https://external-api.streamforge.com/industries/{industry_id}"
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://external-api.streamforge.com/industries/{industry_id}', 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://external-api.streamforge.com/industries/{industry_id}",
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://external-api.streamforge.com/industries/{industry_id}"
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://external-api.streamforge.com/industries/{industry_id}")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://external-api.streamforge.com/industries/{industry_id}")
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{
"payload": {
"id": "<string>",
"name": "<string>",
"window": {
"from": "2025-09-20",
"to": "2026-09-19"
},
"previous_window": {
"from": "2025-09-20",
"to": "2026-09-19"
},
"totals": {
"brands": 123,
"sponsored_posts": 123,
"creators": 123,
"estimated_spend_usd": 123
},
"previous_totals": {
"brands": 123,
"sponsored_posts": 123,
"creators": 123,
"estimated_spend_usd": 123
},
"platforms": [
{
"platform": "<string>",
"sponsored_posts": 123,
"estimated_spend_usd": 123
}
],
"spend_coverage": 123,
"sort": "spend",
"brands": [
{
"rank": 123,
"id": "<string>",
"name": "<string>",
"domain": "<string>",
"icon_url": "<string>",
"sponsored_posts": 123,
"creators": 123,
"estimated_spend_usd": 123,
"previous": {
"sponsored_posts": 123,
"estimated_spend_usd": 123
}
}
]
},
"paging": {
"limit": 123,
"next_cursor": "<string>"
},
"meta": {
"source": "<string>",
"received_at": "2023-11-07T05:31:56Z",
"request_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"data_through": "2023-12-25"
}
}{
"error": {
"status": 400,
"message": "Invalid platform or missing required parameter"
},
"meta": {
"request_id": "5e7c0137-1ed3-4b4b-8e5f-3d9cf00f7ac4"
}
}{
"error": {
"status": 401,
"message": "API key is required"
},
"meta": {
"request_id": "5e7c0137-1ed3-4b4b-8e5f-3d9cf00f7ac4"
}
}{
"error": {
"status": 403,
"message": "Invalid API key"
},
"meta": {
"request_id": "5e7c0137-1ed3-4b4b-8e5f-3d9cf00f7ac4"
}
}{
"error": {
"status": 404,
"message": "Profile not found"
},
"meta": {
"request_id": "5e7c0137-1ed3-4b4b-8e5f-3d9cf00f7ac4"
}
}{
"error": {
"status": 429,
"message": "Rate limit exceeded"
},
"meta": {
"request_id": "5e7c0137-1ed3-4b4b-8e5f-3d9cf00f7ac4"
}
}{
"error": {
"status": 503,
"message": "Market intelligence data is being refreshed. Try again in a few minutes.",
"code": "intel_unavailable"
},
"meta": {
"request_id": "5e7c0137-1ed3-4b4b-8e5f-3d9cf00f7ac4"
}
}Get industry
One industry over the trailing 90 days of published data and the 90 days before: totals, platforms, and its
brand ranking by estimated creator spend (or by sponsored posts). The ranking covers the 100 brands with
the most sponsored posts in the window. Estimated spend prices each valued sponsored post with the product’s
sponsorship value model and excludes affiliate posts; spend_coverage is the share of posts that could be
valued.
The ranking is returned 25 brands per page. Follow paging.next_cursor, with the same sort, for the
rest. Ranks continue across pages, so the second page starts at rank 26. Every page repeats the
industry’s totals and platforms.
Costs 0.1 credit per call. Available with a Streamforge API key only.
curl --request GET \
--url https://external-api.streamforge.com/industries/{industry_id} \
--header 'x-api-key: <api-key>'import requests
url = "https://external-api.streamforge.com/industries/{industry_id}"
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://external-api.streamforge.com/industries/{industry_id}', 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://external-api.streamforge.com/industries/{industry_id}",
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://external-api.streamforge.com/industries/{industry_id}"
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://external-api.streamforge.com/industries/{industry_id}")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://external-api.streamforge.com/industries/{industry_id}")
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{
"payload": {
"id": "<string>",
"name": "<string>",
"window": {
"from": "2025-09-20",
"to": "2026-09-19"
},
"previous_window": {
"from": "2025-09-20",
"to": "2026-09-19"
},
"totals": {
"brands": 123,
"sponsored_posts": 123,
"creators": 123,
"estimated_spend_usd": 123
},
"previous_totals": {
"brands": 123,
"sponsored_posts": 123,
"creators": 123,
"estimated_spend_usd": 123
},
"platforms": [
{
"platform": "<string>",
"sponsored_posts": 123,
"estimated_spend_usd": 123
}
],
"spend_coverage": 123,
"sort": "spend",
"brands": [
{
"rank": 123,
"id": "<string>",
"name": "<string>",
"domain": "<string>",
"icon_url": "<string>",
"sponsored_posts": 123,
"creators": 123,
"estimated_spend_usd": 123,
"previous": {
"sponsored_posts": 123,
"estimated_spend_usd": 123
}
}
]
},
"paging": {
"limit": 123,
"next_cursor": "<string>"
},
"meta": {
"source": "<string>",
"received_at": "2023-11-07T05:31:56Z",
"request_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"data_through": "2023-12-25"
}
}{
"error": {
"status": 400,
"message": "Invalid platform or missing required parameter"
},
"meta": {
"request_id": "5e7c0137-1ed3-4b4b-8e5f-3d9cf00f7ac4"
}
}{
"error": {
"status": 401,
"message": "API key is required"
},
"meta": {
"request_id": "5e7c0137-1ed3-4b4b-8e5f-3d9cf00f7ac4"
}
}{
"error": {
"status": 403,
"message": "Invalid API key"
},
"meta": {
"request_id": "5e7c0137-1ed3-4b4b-8e5f-3d9cf00f7ac4"
}
}{
"error": {
"status": 404,
"message": "Profile not found"
},
"meta": {
"request_id": "5e7c0137-1ed3-4b4b-8e5f-3d9cf00f7ac4"
}
}{
"error": {
"status": 429,
"message": "Rate limit exceeded"
},
"meta": {
"request_id": "5e7c0137-1ed3-4b4b-8e5f-3d9cf00f7ac4"
}
}{
"error": {
"status": 503,
"message": "Market intelligence data is being refreshed. Try again in a few minutes.",
"code": "intel_unavailable"
},
"meta": {
"request_id": "5e7c0137-1ed3-4b4b-8e5f-3d9cf00f7ac4"
}
}Authorizations
Your API key. Include it in the x-api-key header for all requests.
Path Parameters
Industry id from GET /industries
"beauty-personal-care"
Query Parameters
Rank brands by estimated spend (default) or by sponsored posts
spend, posts Brands of the ranking per page (1-25, default 25). A larger value is lowered to 25
1 <= x <= 25Pagination cursor token from previous response
"eyJpZCI6Ijk4NzY1NDMyMSIsImVuZGVkX2F0IjoiMjAyNC0wNy0wNFQxMTozMDowMC4wMDBaIn0="

