curl --request GET \
--url https://external-api.streamforge.com/rates/estimate \
--header 'x-api-key: <api-key>'import requests
url = "https://external-api.streamforge.com/rates/estimate"
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/rates/estimate', 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/rates/estimate",
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/rates/estimate"
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/rates/estimate")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://external-api.streamforge.com/rates/estimate")
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": {
"platform": "<string>",
"content_type": "<string>",
"average_views": 123,
"industry": {
"id": "beauty-personal-care",
"name": "Beauty & Personal Care"
},
"country": {
"code": "<string>",
"name": "<string>"
},
"unit": "per_1000_views",
"rate": {
"low_usd": 123,
"high_usd": 123
},
"total": {
"low_usd": 123,
"high_usd": 123
},
"confidence": "high"
},
"meta": {
"source": "<string>",
"received_at": "2023-11-07T05:31:56Z",
"request_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"snapshot": {
"year": 123,
"revision": 123,
"published_at": "2023-11-07T05:31:56Z"
}
}
}{
"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"
}
}Estimate a rate
A typical sponsorship rate range for one piece of content, from the published rate snapshot. On-demand content is priced per 1,000 views; live streams per average concurrent viewer. The range widens with the snapshot’s confidence in the country and industry (15%, 25% or 40% either side of the estimate) and is rounded outward to two significant figures. Rates are for creators who sell their own sponsorships, and exclude usage rights, exclusivity, agency fees and bundles.
Costs 0.01 credit. Available with a Streamforge API key only.
curl --request GET \
--url https://external-api.streamforge.com/rates/estimate \
--header 'x-api-key: <api-key>'import requests
url = "https://external-api.streamforge.com/rates/estimate"
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/rates/estimate', 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/rates/estimate",
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/rates/estimate"
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/rates/estimate")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://external-api.streamforge.com/rates/estimate")
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": {
"platform": "<string>",
"content_type": "<string>",
"average_views": 123,
"industry": {
"id": "beauty-personal-care",
"name": "Beauty & Personal Care"
},
"country": {
"code": "<string>",
"name": "<string>"
},
"unit": "per_1000_views",
"rate": {
"low_usd": 123,
"high_usd": 123
},
"total": {
"low_usd": 123,
"high_usd": 123
},
"confidence": "high"
},
"meta": {
"source": "<string>",
"received_at": "2023-11-07T05:31:56Z",
"request_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"snapshot": {
"year": 123,
"revision": 123,
"published_at": "2023-11-07T05:31:56Z"
}
}
}{
"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.
Query Parameters
youtube, twitch, tiktok, instagram, twitter A format the platform is priced for (see GET /rates/dimensions)
video, short, stream, post, story Average views per upload, or average concurrent viewers for a stream
x >= 125000
Industry id from GET /rates/dimensions
"gaming"
Two-letter country code from GET /rates/dimensions
"US"

