Info
Welcome to the generated API reference. Get Postman Collection
This is an unofficial API for Brave Browser verified creators. We are a fan of Brave Browser and BAT. The source data comes from https://publishers-distro.basicattentiontoken.org/api/v3/public/channels (big file alert!), which we sync our data with daily. We also use other third-party API data to enrich the data.
To use this API, you need to register an account with us here. If you have an account already, please log in here and get an API token. This API requires an API token and is free to use, but we reserve the right to rate-limit your usage if you excessively use the API (currently at 60 API calls per minute). You are required to make a backlink to https://bravebat.info in your app or service with an anchor text to the effect of "Powered by BraveBat", "Data from BraveBat", etc. If you have any questions or suggestions, please email us at [email protected].
The API is currrently on V1. There are currently a few limitations:
- The Reddit endpoint currently only returns true/false answer without additional datapoints.
- The YouTube endpoint currently does not have additional datapoints for all verified creators.
Be Brave and thank you!
v1
GitHub
Check if a GitHub account is a verified Brave Browser Creator. When it is confirmed, the endpoint returns the Github link, use name, display name, description, the number of followers and the number of repos.
Example request:
curl -X POST \
"http://bravebat.test/api/v1/github" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Authorization: Bearer {your-token}" \
-d '{"github_id":"241138"}'
const url = new URL(
"http://bravebat.test/api/v1/github"
);
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Authorization": "Bearer {your-token}",
};
let body = {
"github_id": "241138"
}
fetch(url, {
method: "POST",
headers: headers,
body: body
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->post(
'http://bravebat.test/api/v1/github',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {your-token}',
],
'json' => [
'github_id' => '241138',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'http://bravebat.test/api/v1/github'
payload = {
"github_id": "241138"
}
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer {your-token}'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()
Example response (200):
{
"success": true,
"data": {
"link": "https:\/\/github.com\/karpathy",
"name": "karpathy",
"display_name": "Andrej",
"description": "I like to train Deep Neural Nets on large datasets.",
"followers": 24815,
"repos": 35
}
}
Example response (422):
{
"success": false,
"message": "Missing required field"
}
Example response (404):
{
"success": false,
"message": "Not found"
}
HTTP Request
POST api/v1/github
Body Parameters
Parameter | Type | Status | Description |
---|---|---|---|
github_id |
string | required | The GitHub ID (example: "241138"). Notice this is not Github username that you might be familiar with. |
Check if a Reddit account is a verified Brave Browser Creator. When it is confirmed, the endpoint returns the confirmation. No additional data points are returned currently.
Example request:
curl -X POST \
"http://bravebat.test/api/v1/reddit" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Authorization: Bearer {your-token}" \
-d '{"reddit_id":"2lsiek42"}'
const url = new URL(
"http://bravebat.test/api/v1/reddit"
);
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Authorization": "Bearer {your-token}",
};
let body = {
"reddit_id": "2lsiek42"
}
fetch(url, {
method: "POST",
headers: headers,
body: body
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->post(
'http://bravebat.test/api/v1/reddit',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {your-token}',
],
'json' => [
'reddit_id' => '2lsiek42',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'http://bravebat.test/api/v1/reddit'
payload = {
"reddit_id": "2lsiek42"
}
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer {your-token}'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()
Example response (200):
{
"success": true
}
Example response (422):
{
"success": false,
"message": "Missing required field"
}
Example response (404):
{
"success": false,
"message": "Not found"
}
HTTP Request
POST api/v1/reddit
Body Parameters
Parameter | Type | Status | Description |
---|---|---|---|
reddit_id |
string | required | The Reddit ID (example: "2lsiek42"). Notice this is not Reddit username that you might be familiar with. |
Twitch
Check if a Twitch channel is a verified Brave Browser Creator. When it is confirmed, the endpoint returns the Twitch link, name, display name, description, the number of followers and the number of views.
Example request:
curl -X POST \
"http://bravebat.test/api/v1/twitch" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Authorization: Bearer {your-token}" \
-d '{"twitch_id":"zerator"}'
const url = new URL(
"http://bravebat.test/api/v1/twitch"
);
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Authorization": "Bearer {your-token}",
};
let body = {
"twitch_id": "zerator"
}
fetch(url, {
method: "POST",
headers: headers,
body: body
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->post(
'http://bravebat.test/api/v1/twitch',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {your-token}',
],
'json' => [
'twitch_id' => 'zerator',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'http://bravebat.test/api/v1/twitch'
payload = {
"twitch_id": "zerator"
}
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer {your-token}'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()
Example response (200):
{
"success": true,
"data": {
"link": "https:\/\/www.twitch.tv\/zerator",
"name": "zerator",
"display_name": "ZeratoR",
"description": "Créateur de contenu vidéo \/ French Streamer and Videomaker \/ Everything is on : http:\/\/www.ZeratoR.com",
"followers": 808737,
"views": 83595247
}
}
Example response (422):
{
"success": false,
"message": "Missing required field"
}
Example response (404):
{
"success": false,
"message": "Not found"
}
HTTP Request
POST api/v1/twitch
Body Parameters
Parameter | Type | Status | Description |
---|---|---|---|
twitch_id |
string | required | The Twitch ID (example: "zerator") |
Check if a Twitter account is a verified Brave Browser Creator. When it is confirmed, the endpoint returns the Twitter link, handle, display name, description and the number of followers.
Example request:
curl -X POST \
"http://bravebat.test/api/v1/twitter" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Authorization: Bearer {your-token}" \
-d '{"twitter_id":"3488129179"}'
const url = new URL(
"http://bravebat.test/api/v1/twitter"
);
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Authorization": "Bearer {your-token}",
};
let body = {
"twitter_id": "3488129179"
}
fetch(url, {
method: "POST",
headers: headers,
body: body
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->post(
'http://bravebat.test/api/v1/twitter',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {your-token}',
],
'json' => [
'twitter_id' => '3488129179',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'http://bravebat.test/api/v1/twitter'
payload = {
"twitter_id": "3488129179"
}
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer {your-token}'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()
Example response (200):
{
"success": true,
"data": {
"link": "https:\/\/twitter.com\/FreakyTheory",
"handle": "FreakyTheory",
"display_name": "Motivation",
"description": "Stop Doubting & Start Living a Wealthy Life.We Don't own any of the pictures!",
"followers": 3702201
}
}
Example response (422):
{
"success": false,
"message": "Missing required field"
}
Example response (404):
{
"success": false,
"message": "Not found"
}
HTTP Request
POST api/v1/twitter
Body Parameters
Parameter | Type | Status | Description |
---|---|---|---|
twitter_id |
string | required | The Twitter ID (example: "3488129179"). Notice this is not Twitter handle that you might be familiar with. |
Vimeo
Check if a Vimeo channel is a verified Brave Browser Creator. When it is confirmed, the endpoint returns the Vimeo link, channel name, channel description, the number of channel followers and the number of videos.
Example request:
curl -X POST \
"http://bravebat.test/api/v1/vimeo" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Authorization: Bearer {your-token}" \
-d '{"vimeo_id":"1512484"}'
const url = new URL(
"http://bravebat.test/api/v1/vimeo"
);
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Authorization": "Bearer {your-token}",
};
let body = {
"vimeo_id": "1512484"
}
fetch(url, {
method: "POST",
headers: headers,
body: body
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->post(
'http://bravebat.test/api/v1/vimeo',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {your-token}',
],
'json' => [
'vimeo_id' => '1512484',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'http://bravebat.test/api/v1/vimeo'
payload = {
"vimeo_id": "1512484"
}
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer {your-token}'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()
Example response (200):
{
"success": true,
"data": {
"link": "https:\/\/vimeo.com\/visiophone",
"name": "visiophone",
"display name": "visiophone",
"description": null,
"followers": 1702,
"videos": 133
}
}
Example response (422):
{
"success": false,
"message": "Missing required field"
}
Example response (404):
{
"success": false,
"message": "Not found"
}
HTTP Request
POST api/v1/vimeo
Body Parameters
Parameter | Type | Status | Description |
---|---|---|---|
vimeo_id |
string | required | The Vimeo ID (example: "1512484"). Notice this is not Vimeo username that you might be familiar with. |
Website
Check if a website is a verified Brave Browser Creator. When it is confirmed, the endpoint returns the URL link, alexa ranking and screenshot.
Example request:
curl -X POST \
"http://bravebat.test/api/v1/website" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Authorization: Bearer {your-token}" \
-d '{"url":"wikipedia.org"}'
const url = new URL(
"http://bravebat.test/api/v1/website"
);
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Authorization": "Bearer {your-token}",
};
let body = {
"url": "wikipedia.org"
}
fetch(url, {
method: "POST",
headers: headers,
body: body
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->post(
'http://bravebat.test/api/v1/website',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {your-token}',
],
'json' => [
'url' => 'wikipedia.org',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'http://bravebat.test/api/v1/website'
payload = {
"url": "wikipedia.org"
}
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer {your-token}'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()
Example response (200):
{
"success": true,
"data": {
"link": "https:\/\/wikipedia.org",
"alexa_ranking": 10,
"screenshot": "https:\/\/bravebat-prod.s3.us-west-2.amazonaws.com\/website_screenshots\/wikipedia_org.png"
}
}
Example response (422):
{
"success": false,
"message": "Missing required field"
}
Example response (404):
{
"success": false,
"message": "Not found"
}
HTTP Request
POST api/v1/website
Body Parameters
Parameter | Type | Status | Description |
---|---|---|---|
url |
string | required | The URL of the website. |
YouTube
Check if a YouTube channel is a verified Brave Browser Creator. When it is confirmed, the endpoint returns the YouTube channel link, channel name, channel description and the number of channel subscribers.
Example request:
curl -X POST \
"http://bravebat.test/api/v1/youtube" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Authorization: Bearer {your-token}" \
-d '{"youtube_id":"UCaUKfGWDNnZ5wWCogMshVrQ"}'
const url = new URL(
"http://bravebat.test/api/v1/youtube"
);
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Authorization": "Bearer {your-token}",
};
let body = {
"youtube_id": "UCaUKfGWDNnZ5wWCogMshVrQ"
}
fetch(url, {
method: "POST",
headers: headers,
body: body
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->post(
'http://bravebat.test/api/v1/youtube',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {your-token}',
],
'json' => [
'youtube_id' => 'UCaUKfGWDNnZ5wWCogMshVrQ',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'http://bravebat.test/api/v1/youtube'
payload = {
"youtube_id": "UCaUKfGWDNnZ5wWCogMshVrQ"
}
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer {your-token}'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()
Example response (200):
{
"success": true,
"data": {
"link": "https:\/\/www.youtube.com\/channel\/UCaUKfGWDNnZ5wWCogMshVrQ",
"name": "Yao Cabrera",
"description": "Los limites estan solo en tu cabeza..",
"subscribers": 6890000
}
}
Example response (422):
{
"success": false,
"message": "Missing required field"
}
Example response (404):
{
"success": false,
"message": "Not found"
}
HTTP Request
POST api/v1/youtube
Body Parameters
Parameter | Type | Status | Description |
---|---|---|---|
youtube_id |
string | required | The YouTube ID (example: "UCaUKfGWDNnZ5wWCogMshVrQ") |