curl --request GET \
--url https://api.rankspot.ai/v1/workspace \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.rankspot.ai/v1/workspace"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.rankspot.ai/v1/workspace', 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.rankspot.ai/v1/workspace",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$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.rankspot.ai/v1/workspace"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
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.rankspot.ai/v1/workspace")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.rankspot.ai/v1/workspace")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"id": "clx...",
"name": "Screen Studio",
"brandName": "Screen Studio",
"domain": "https://screen.studio/",
"businessDescription": "A macOS app that records your screen and turns the footage into a polished video automatically.",
"targetAudience": "Indie developers, designers and founders who publish demo videos.",
"benefits": "Automatic zooms, no editing skills needed, exports in 4K.",
"toneOfVoice": "Direct and practical, no marketing filler.",
"industry": "Software",
"location": "US",
"language": "en"
}Get the workspace
Returns the brand and business context for the workspace your API key belongs to: brand name, domain, what the business does, who it sells to, tone of voice, industry, and the country and language it targets.
There is no path parameter. A key belongs to exactly one workspace, and this returns that one.
Read this first if you are deciding what work is worth doing. A keyword, a cited page or a competitor backlink is only an opportunity in the context of a particular business, and every other endpoint assumes you already know what that business is.
Fields are read-only and any of them can be null. They shape article generation and the AI visibility analysis, so they are edited in the RankSpot dashboard rather than here.
curl --request GET \
--url https://api.rankspot.ai/v1/workspace \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.rankspot.ai/v1/workspace"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.rankspot.ai/v1/workspace', 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.rankspot.ai/v1/workspace",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$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.rankspot.ai/v1/workspace"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
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.rankspot.ai/v1/workspace")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.rankspot.ai/v1/workspace")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"id": "clx...",
"name": "Screen Studio",
"brandName": "Screen Studio",
"domain": "https://screen.studio/",
"businessDescription": "A macOS app that records your screen and turns the footage into a polished video automatically.",
"targetAudience": "Indie developers, designers and founders who publish demo videos.",
"benefits": "Automatic zooms, no editing skills needed, exports in 4K.",
"toneOfVoice": "Direct and practical, no marketing filler.",
"industry": "Software",
"location": "US",
"language": "en"
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Response
"clx..."
The workspace name, which is not necessarily the brand name.
"Screen Studio"
How the business refers to itself. This is the name AI visibility counts mentions of.
"Screen Studio"
The domain this workspace is about. Articles are published here, and a citation or backlink pointing at it is your own rather than an opportunity.
Stored as it was entered, so it may be a bare hostname (screen.studio) or a full URL with a scheme and a trailing slash (https://screen.studio/). Elsewhere in the API a domain is always a bare hostname, so strip the scheme and any trailing slash before comparing.
"https://screen.studio/"
What the business does, in its own words.
"A macOS app that records your screen and turns the footage into a polished video automatically."
Who the business sells to.
"Indie developers, designers and founders who publish demo videos."
What the business argues is better about it.
"Automatic zooms, no editing skills needed, exports in 4K."
How generated content should sound.
"Direct and practical, no marketing filler."
"Software"
ISO 3166-1 alpha-2 country the workspace targets. Search results, keyword volumes and rankings are all reported for this market.
"US"
ISO 639-1 language content is written in.
"en"
