MENU navbar-image

Introduction

REST API for managing domains, keywords, content, rank tracking and AI-search visibility data on Grandranker.

All endpoints live under the `/api/v1` prefix and return a consistent JSON envelope:
`{ "success": true, "message": "OK", "data": ... }` on success, or
`{ "success": false, "error": "..." }` on failure.

**Authentication.** Send your API token as a Bearer token: `Authorization: Bearer <token>`.
Generate a token from your dashboard under **Settings → API Tokens**. Each token is granted
scopes (e.g. `domains:read`, `keywords:write`) — an endpoint will return `403` if your token
lacks the required scope. An active subscription is required for most endpoints.

**Domain context.** Domain-scoped endpoints require an `X-Domain-ID` header identifying which
domain the request applies to. Org-level endpoints (e.g. `GET /domains`, `GET /me`) do not.

<aside>As you scroll, you'll see code examples in the dark area to the right (or as part of the content on mobile).
You can switch the language used with the tabs at the top right.</aside>

Authenticating requests

To authenticate requests, include an Authorization header with the value "Bearer {YOUR_API_TOKEN}".

All authenticated endpoints are marked with a requires authentication badge in the documentation below.

Generate a token from your dashboard under Settings → API Tokens. Each token carries scopes that gate which endpoints it may call.

AI Overviews

GET api/v1/ai-overviews

requires authentication

Example request:
curl --request GET \
    --get "https://app.grandranker.com/api/v1/ai-overviews" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.grandranker.com/api/v1/ai-overviews"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/ai-overviews';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

GET api/v1/ai-overviews

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

GET api/v1/ai-overviews/queries

requires authentication

Example request:
curl --request GET \
    --get "https://app.grandranker.com/api/v1/ai-overviews/queries" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.grandranker.com/api/v1/ai-overviews/queries"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/ai-overviews/queries';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

GET api/v1/ai-overviews/queries

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

GET api/v1/ai-overviews/platforms

requires authentication

Example request:
curl --request GET \
    --get "https://app.grandranker.com/api/v1/ai-overviews/platforms" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.grandranker.com/api/v1/ai-overviews/platforms"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/ai-overviews/platforms';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

GET api/v1/ai-overviews/platforms

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

GET api/v1/ai-overviews/competitors

requires authentication

Example request:
curl --request GET \
    --get "https://app.grandranker.com/api/v1/ai-overviews/competitors" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.grandranker.com/api/v1/ai-overviews/competitors"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/ai-overviews/competitors';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

GET api/v1/ai-overviews/competitors

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

GET api/v1/ai-overviews/citations

requires authentication

Example request:
curl --request GET \
    --get "https://app.grandranker.com/api/v1/ai-overviews/citations" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.grandranker.com/api/v1/ai-overviews/citations"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/ai-overviews/citations';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

GET api/v1/ai-overviews/citations

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

requires authentication

Example request:
curl --request GET \
    --get "https://app.grandranker.com/api/v1/ai-overviews/trends" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.grandranker.com/api/v1/ai-overviews/trends"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/ai-overviews/trends';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

GET api/v1/ai-overviews/alerts

requires authentication

Example request:
curl --request GET \
    --get "https://app.grandranker.com/api/v1/ai-overviews/alerts" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.grandranker.com/api/v1/ai-overviews/alerts"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/ai-overviews/alerts';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

GET api/v1/ai-overviews/alerts

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

GET api/v1/ai-overviews/ranking

requires authentication

Example request:
curl --request GET \
    --get "https://app.grandranker.com/api/v1/ai-overviews/ranking" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.grandranker.com/api/v1/ai-overviews/ranking"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/ai-overviews/ranking';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

GET api/v1/ai-overviews/ranking

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

GET api/v1/ai-overviews/share-of-voice

requires authentication

Example request:
curl --request GET \
    --get "https://app.grandranker.com/api/v1/ai-overviews/share-of-voice" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.grandranker.com/api/v1/ai-overviews/share-of-voice"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/ai-overviews/share-of-voice';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

GET api/v1/ai-overviews/share-of-voice

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

GET api/v1/ai-overviews/sentiment

requires authentication

Example request:
curl --request GET \
    --get "https://app.grandranker.com/api/v1/ai-overviews/sentiment" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.grandranker.com/api/v1/ai-overviews/sentiment"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/ai-overviews/sentiment';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

GET api/v1/ai-overviews/sentiment

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

POST api/v1/ai-overviews/queries

requires authentication

Example request:
curl --request POST \
    "https://app.grandranker.com/api/v1/ai-overviews/queries" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"query\": \"b\",
    \"category\": \"n\",
    \"is_local\": false,
    \"country_code\": \"gz\",
    \"language_code\": \"m\",
    \"platforms\": [
        \"deepseek\"
    ]
}"
const url = new URL(
    "https://app.grandranker.com/api/v1/ai-overviews/queries"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "query": "b",
    "category": "n",
    "is_local": false,
    "country_code": "gz",
    "language_code": "m",
    "platforms": [
        "deepseek"
    ]
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/ai-overviews/queries';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'query' => 'b',
            'category' => 'n',
            'is_local' => false,
            'country_code' => 'gz',
            'language_code' => 'm',
            'platforms' => ['deepseek'],
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

POST api/v1/ai-overviews/queries

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

query   string     

Must not be greater than 500 characters. Example: b

category   string  optional    

Must not be greater than 100 characters. Example: n

is_local   boolean  optional    

Example: false

country_code   string  optional    

Must be 2 characters. Example: gz

language_code   string  optional    

Must not be greater than 5 characters. Example: m

platforms   string[]  optional    
Must be one of:
  • google_aio
  • google_ai_mode
  • chatgpt
  • perplexity
  • claude
  • gemini
  • copilot
  • deepseek
  • grok

PUT api/v1/ai-overviews/queries/{queryId}

requires authentication

Example request:
curl --request PUT \
    "https://app.grandranker.com/api/v1/ai-overviews/queries/architecto" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"query\": \"b\",
    \"category\": \"n\",
    \"is_active\": true,
    \"is_local\": true,
    \"country_code\": \"gz\",
    \"language_code\": \"m\",
    \"platforms\": [
        \"copilot\"
    ]
}"
const url = new URL(
    "https://app.grandranker.com/api/v1/ai-overviews/queries/architecto"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "query": "b",
    "category": "n",
    "is_active": true,
    "is_local": true,
    "country_code": "gz",
    "language_code": "m",
    "platforms": [
        "copilot"
    ]
};

fetch(url, {
    method: "PUT",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/ai-overviews/queries/architecto';
$response = $client->put(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'query' => 'b',
            'category' => 'n',
            'is_active' => true,
            'is_local' => true,
            'country_code' => 'gz',
            'language_code' => 'm',
            'platforms' => ['copilot'],
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

PUT api/v1/ai-overviews/queries/{queryId}

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

queryId   string     

Example: architecto

Body Parameters

query   string  optional    

Must not be greater than 500 characters. Example: b

category   string  optional    

Must not be greater than 100 characters. Example: n

is_active   boolean  optional    

Example: true

is_local   boolean  optional    

Example: true

country_code   string  optional    

Must be 2 characters. Example: gz

language_code   string  optional    

Must not be greater than 5 characters. Example: m

platforms   string[]  optional    
Must be one of:
  • google_aio
  • google_ai_mode
  • chatgpt
  • perplexity
  • claude
  • gemini
  • copilot
  • deepseek
  • grok

DELETE api/v1/ai-overviews/queries/{queryId}

requires authentication

Example request:
curl --request DELETE \
    "https://app.grandranker.com/api/v1/ai-overviews/queries/architecto" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.grandranker.com/api/v1/ai-overviews/queries/architecto"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/ai-overviews/queries/architecto';
$response = $client->delete(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

DELETE api/v1/ai-overviews/queries/{queryId}

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

queryId   string     

Example: architecto

POST api/v1/ai-overviews/queries/{queryId}/toggle

requires authentication

Example request:
curl --request POST \
    "https://app.grandranker.com/api/v1/ai-overviews/queries/architecto/toggle" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.grandranker.com/api/v1/ai-overviews/queries/architecto/toggle"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/ai-overviews/queries/architecto/toggle';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

POST api/v1/ai-overviews/queries/{queryId}/toggle

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

queryId   string     

Example: architecto

POST api/v1/ai-overviews/alerts/{alertId}/read

requires authentication

Example request:
curl --request POST \
    "https://app.grandranker.com/api/v1/ai-overviews/alerts/architecto/read" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.grandranker.com/api/v1/ai-overviews/alerts/architecto/read"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/ai-overviews/alerts/architecto/read';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

POST api/v1/ai-overviews/alerts/{alertId}/read

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

alertId   string     

Example: architecto

Account & Domains

GET api/v1/me

requires authentication

Example request:
curl --request GET \
    --get "https://app.grandranker.com/api/v1/me" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.grandranker.com/api/v1/me"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/me';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

GET api/v1/me

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

Analytics

GET api/v1/analytics/performance

requires authentication

Example request:
curl --request GET \
    --get "https://app.grandranker.com/api/v1/analytics/performance" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.grandranker.com/api/v1/analytics/performance"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/analytics/performance';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

GET api/v1/analytics/performance

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

GET api/v1/analytics/countries

requires authentication

Example request:
curl --request GET \
    --get "https://app.grandranker.com/api/v1/analytics/countries" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.grandranker.com/api/v1/analytics/countries"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/analytics/countries';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

GET api/v1/analytics/countries

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

GET api/v1/analytics/keywords

requires authentication

Example request:
curl --request GET \
    --get "https://app.grandranker.com/api/v1/analytics/keywords" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.grandranker.com/api/v1/analytics/keywords"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/analytics/keywords';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

GET api/v1/analytics/keywords

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

GET api/v1/analytics/brand-keywords

requires authentication

Example request:
curl --request GET \
    --get "https://app.grandranker.com/api/v1/analytics/brand-keywords" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.grandranker.com/api/v1/analytics/brand-keywords"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/analytics/brand-keywords';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

GET api/v1/analytics/brand-keywords

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

GET api/v1/analytics/recommendations

requires authentication

Example request:
curl --request GET \
    --get "https://app.grandranker.com/api/v1/analytics/recommendations" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.grandranker.com/api/v1/analytics/recommendations"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/analytics/recommendations';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

GET api/v1/analytics/recommendations

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

Articles

GET api/v1/articles

requires authentication

Example request:
curl --request GET \
    --get "https://app.grandranker.com/api/v1/articles" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.grandranker.com/api/v1/articles"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/articles';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

GET api/v1/articles

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

GET api/v1/articles/first-unpublished

requires authentication

Example request:
curl --request GET \
    --get "https://app.grandranker.com/api/v1/articles/first-unpublished" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.grandranker.com/api/v1/articles/first-unpublished"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/articles/first-unpublished';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

GET api/v1/articles/first-unpublished

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

GET api/v1/articles/wordpress-categories

requires authentication

Example request:
curl --request GET \
    --get "https://app.grandranker.com/api/v1/articles/wordpress-categories" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.grandranker.com/api/v1/articles/wordpress-categories"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/articles/wordpress-categories';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

GET api/v1/articles/wordpress-categories

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

GET api/v1/articles/image/regenerations-remaining

requires authentication

Example request:
curl --request GET \
    --get "https://app.grandranker.com/api/v1/articles/image/regenerations-remaining" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.grandranker.com/api/v1/articles/image/regenerations-remaining"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/articles/image/regenerations-remaining';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

GET api/v1/articles/image/regenerations-remaining

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

GET api/v1/articles/{uuid}

requires authentication

Example request:
curl --request GET \
    --get "https://app.grandranker.com/api/v1/articles/6ff8f7f6-1eb3-3525-be4a-3932c805afed" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.grandranker.com/api/v1/articles/6ff8f7f6-1eb3-3525-be4a-3932c805afed"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/articles/6ff8f7f6-1eb3-3525-be4a-3932c805afed';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

GET api/v1/articles/{uuid}

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

uuid   string     

Example: 6ff8f7f6-1eb3-3525-be4a-3932c805afed

GET api/v1/articles/{uuid}/preview

requires authentication

Example request:
curl --request GET \
    --get "https://app.grandranker.com/api/v1/articles/6ff8f7f6-1eb3-3525-be4a-3932c805afed/preview" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.grandranker.com/api/v1/articles/6ff8f7f6-1eb3-3525-be4a-3932c805afed/preview"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/articles/6ff8f7f6-1eb3-3525-be4a-3932c805afed/preview';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

GET api/v1/articles/{uuid}/preview

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

uuid   string     

Example: 6ff8f7f6-1eb3-3525-be4a-3932c805afed

GET api/v1/articles/{uuid}/score

requires authentication

Example request:
curl --request GET \
    --get "https://app.grandranker.com/api/v1/articles/6ff8f7f6-1eb3-3525-be4a-3932c805afed/score" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.grandranker.com/api/v1/articles/6ff8f7f6-1eb3-3525-be4a-3932c805afed/score"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/articles/6ff8f7f6-1eb3-3525-be4a-3932c805afed/score';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

GET api/v1/articles/{uuid}/score

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

uuid   string     

Example: 6ff8f7f6-1eb3-3525-be4a-3932c805afed

PATCH api/v1/articles/{uuid}

requires authentication

Example request:
curl --request PATCH \
    "https://app.grandranker.com/api/v1/articles/6ff8f7f6-1eb3-3525-be4a-3932c805afed" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"title\": \"b\",
    \"meta_title\": \"n\",
    \"subtitle\": \"architecto\",
    \"content_markdown\": \"architecto\",
    \"content_html\": \"architecto\",
    \"category\": \"n\",
    \"meta_description\": \"architecto\",
    \"slug\": \"n\",
    \"status\": \"architecto\",
    \"type\": \"architecto\",
    \"image_url\": \"http:\\/\\/bailey.com\\/\",
    \"author_name\": \"m\",
    \"author_title\": \"i\",
    \"read_time\": \"y\",
    \"faqs\": [
        {
            \"name\": \"architecto\",
            \"answer\": \"architecto\"
        }
    ]
}"
const url = new URL(
    "https://app.grandranker.com/api/v1/articles/6ff8f7f6-1eb3-3525-be4a-3932c805afed"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "title": "b",
    "meta_title": "n",
    "subtitle": "architecto",
    "content_markdown": "architecto",
    "content_html": "architecto",
    "category": "n",
    "meta_description": "architecto",
    "slug": "n",
    "status": "architecto",
    "type": "architecto",
    "image_url": "http:\/\/bailey.com\/",
    "author_name": "m",
    "author_title": "i",
    "read_time": "y",
    "faqs": [
        {
            "name": "architecto",
            "answer": "architecto"
        }
    ]
};

fetch(url, {
    method: "PATCH",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/articles/6ff8f7f6-1eb3-3525-be4a-3932c805afed';
$response = $client->patch(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'title' => 'b',
            'meta_title' => 'n',
            'subtitle' => 'architecto',
            'content_markdown' => 'architecto',
            'content_html' => 'architecto',
            'category' => 'n',
            'meta_description' => 'architecto',
            'slug' => 'n',
            'status' => 'architecto',
            'type' => 'architecto',
            'image_url' => 'http://bailey.com/',
            'author_name' => 'm',
            'author_title' => 'i',
            'read_time' => 'y',
            'faqs' => [
                ['name' => 'architecto', 'answer' => 'architecto'],
            ],
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

PATCH api/v1/articles/{uuid}

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

uuid   string     

Example: 6ff8f7f6-1eb3-3525-be4a-3932c805afed

Body Parameters

title   string  optional    

Must not be greater than 255 characters. Example: b

meta_title   string  optional    

Must not be greater than 255 characters. Example: n

subtitle   string  optional    

Example: architecto

content_markdown   string  optional    

Example: architecto

content_html   string  optional    

Example: architecto

category   string  optional    

Must not be greater than 255 characters. Example: n

meta_description   string  optional    

Example: architecto

slug   string  optional    

Must not be greater than 255 characters. Example: n

status   string  optional    

Example: architecto

type   string  optional    

Example: architecto

image_url   string  optional    

Must be a valid URL. Must not be greater than 2048 characters. Example: http://bailey.com/

author_name   string  optional    

Must not be greater than 255 characters. Example: m

author_title   string  optional    

Must not be greater than 255 characters. Example: i

read_time   string  optional    

Must not be greater than 50 characters. Example: y

faqs   object[]  optional    
name   string     

Example: architecto

answer   string     

Example: architecto

DELETE api/v1/articles/{uuid}

requires authentication

Example request:
curl --request DELETE \
    "https://app.grandranker.com/api/v1/articles/6ff8f7f6-1eb3-3525-be4a-3932c805afed" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.grandranker.com/api/v1/articles/6ff8f7f6-1eb3-3525-be4a-3932c805afed"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/articles/6ff8f7f6-1eb3-3525-be4a-3932c805afed';
$response = $client->delete(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

DELETE api/v1/articles/{uuid}

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

uuid   string     

Example: 6ff8f7f6-1eb3-3525-be4a-3932c805afed

POST api/v1/articles/bulk-delete

requires authentication

Example request:
curl --request POST \
    "https://app.grandranker.com/api/v1/articles/bulk-delete" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"uuids\": [
        \"6ff8f7f6-1eb3-3525-be4a-3932c805afed\"
    ]
}"
const url = new URL(
    "https://app.grandranker.com/api/v1/articles/bulk-delete"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "uuids": [
        "6ff8f7f6-1eb3-3525-be4a-3932c805afed"
    ]
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/articles/bulk-delete';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'uuids' => ['6ff8f7f6-1eb3-3525-be4a-3932c805afed'],
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

POST api/v1/articles/bulk-delete

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

uuids   string[]     

Must be a valid UUID.

POST api/v1/articles/{uuid}/publish

requires authentication

Example request:
curl --request POST \
    "https://app.grandranker.com/api/v1/articles/6ff8f7f6-1eb3-3525-be4a-3932c805afed/publish" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.grandranker.com/api/v1/articles/6ff8f7f6-1eb3-3525-be4a-3932c805afed/publish"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/articles/6ff8f7f6-1eb3-3525-be4a-3932c805afed/publish';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

POST api/v1/articles/{uuid}/publish

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

uuid   string     

Example: 6ff8f7f6-1eb3-3525-be4a-3932c805afed

POST api/v1/articles/{uuid}/unpublish

requires authentication

Example request:
curl --request POST \
    "https://app.grandranker.com/api/v1/articles/6ff8f7f6-1eb3-3525-be4a-3932c805afed/unpublish" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.grandranker.com/api/v1/articles/6ff8f7f6-1eb3-3525-be4a-3932c805afed/unpublish"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/articles/6ff8f7f6-1eb3-3525-be4a-3932c805afed/unpublish';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

POST api/v1/articles/{uuid}/unpublish

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

uuid   string     

Example: 6ff8f7f6-1eb3-3525-be4a-3932c805afed

POST api/v1/articles/publish-drafts

requires authentication

Example request:
curl --request POST \
    "https://app.grandranker.com/api/v1/articles/publish-drafts" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.grandranker.com/api/v1/articles/publish-drafts"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/articles/publish-drafts';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

POST api/v1/articles/publish-drafts

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

POST api/v1/articles/{uuid}/image/upload

requires authentication

Example request:
curl --request POST \
    "https://app.grandranker.com/api/v1/articles/6ff8f7f6-1eb3-3525-be4a-3932c805afed/image/upload" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: multipart/form-data" \
    --header "Accept: application/json" \
    --form "image=@/private/tmp/claude-501/phphfqg855c5e5s5wkB2WH" 
const url = new URL(
    "https://app.grandranker.com/api/v1/articles/6ff8f7f6-1eb3-3525-be4a-3932c805afed/image/upload"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "multipart/form-data",
    "Accept": "application/json",
};

const body = new FormData();
body.append('image', document.querySelector('input[name="image"]').files[0]);

fetch(url, {
    method: "POST",
    headers,
    body,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/articles/6ff8f7f6-1eb3-3525-be4a-3932c805afed/image/upload';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'multipart/form-data',
            'Accept' => 'application/json',
        ],
        'multipart' => [
            [
                'name' => 'image',
                'contents' => fopen('/private/tmp/claude-501/phphfqg855c5e5s5wkB2WH', 'r')
            ],
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

POST api/v1/articles/{uuid}/image/upload

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: multipart/form-data

Accept        

Example: application/json

URL Parameters

uuid   string     

Example: 6ff8f7f6-1eb3-3525-be4a-3932c805afed

Body Parameters

image   file     

Must be a file. Must be an image. Must not be greater than 5120 kilobytes. Example: /private/tmp/claude-501/phphfqg855c5e5s5wkB2WH

POST api/v1/articles/{uuid}/regenerate

requires authentication

Example request:
curl --request POST \
    "https://app.grandranker.com/api/v1/articles/6ff8f7f6-1eb3-3525-be4a-3932c805afed/regenerate" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.grandranker.com/api/v1/articles/6ff8f7f6-1eb3-3525-be4a-3932c805afed/regenerate"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/articles/6ff8f7f6-1eb3-3525-be4a-3932c805afed/regenerate';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

POST api/v1/articles/{uuid}/regenerate

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

uuid   string     

Example: 6ff8f7f6-1eb3-3525-be4a-3932c805afed

POST api/v1/articles/{uuid}/analyze

requires authentication

Example request:
curl --request POST \
    "https://app.grandranker.com/api/v1/articles/6ff8f7f6-1eb3-3525-be4a-3932c805afed/analyze" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.grandranker.com/api/v1/articles/6ff8f7f6-1eb3-3525-be4a-3932c805afed/analyze"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/articles/6ff8f7f6-1eb3-3525-be4a-3932c805afed/analyze';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

POST api/v1/articles/{uuid}/analyze

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

uuid   string     

Example: 6ff8f7f6-1eb3-3525-be4a-3932c805afed

POST api/v1/articles/analyze-realtime

requires authentication

Example request:
curl --request POST \
    "https://app.grandranker.com/api/v1/articles/analyze-realtime" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"content\": \"architecto\",
    \"title\": \"architecto\",
    \"meta_title\": \"architecto\",
    \"meta_description\": \"architecto\",
    \"keyword\": \"architecto\"
}"
const url = new URL(
    "https://app.grandranker.com/api/v1/articles/analyze-realtime"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "content": "architecto",
    "title": "architecto",
    "meta_title": "architecto",
    "meta_description": "architecto",
    "keyword": "architecto"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/articles/analyze-realtime';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'content' => 'architecto',
            'title' => 'architecto',
            'meta_title' => 'architecto',
            'meta_description' => 'architecto',
            'keyword' => 'architecto',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

POST api/v1/articles/analyze-realtime

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

content   string     

Example: architecto

title   string  optional    

Example: architecto

meta_title   string  optional    

Example: architecto

meta_description   string  optional    

Example: architecto

keyword   string     

Example: architecto

POST api/v1/articles/{uuid}/image/regenerate

requires authentication

Example request:
curl --request POST \
    "https://app.grandranker.com/api/v1/articles/6ff8f7f6-1eb3-3525-be4a-3932c805afed/image/regenerate" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"prompt\": \"b\",
    \"type\": \"cover\",
    \"image_index\": 39
}"
const url = new URL(
    "https://app.grandranker.com/api/v1/articles/6ff8f7f6-1eb3-3525-be4a-3932c805afed/image/regenerate"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "prompt": "b",
    "type": "cover",
    "image_index": 39
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/articles/6ff8f7f6-1eb3-3525-be4a-3932c805afed/image/regenerate';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'prompt' => 'b',
            'type' => 'cover',
            'image_index' => 39,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

POST api/v1/articles/{uuid}/image/regenerate

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

uuid   string     

Example: 6ff8f7f6-1eb3-3525-be4a-3932c805afed

Body Parameters

prompt   string     

Must not be greater than 2000 characters. Example: b

type   string     

Example: cover

Must be one of:
  • cover
  • content
image_index   integer  optional    

This field is required when type is content. Must be at least 0. Example: 39

Content

POST api/v1/content/analyze

requires authentication

Example request:
curl --request POST \
    "https://app.grandranker.com/api/v1/content/analyze" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"article_uuid\": \"6ff8f7f6-1eb3-3525-be4a-3932c805afed\"
}"
const url = new URL(
    "https://app.grandranker.com/api/v1/content/analyze"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "article_uuid": "6ff8f7f6-1eb3-3525-be4a-3932c805afed"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/content/analyze';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'article_uuid' => '6ff8f7f6-1eb3-3525-be4a-3932c805afed',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

POST api/v1/content/analyze

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

article_uuid   string     

Example: 6ff8f7f6-1eb3-3525-be4a-3932c805afed

Content Planner

GET api/v1/content-planner

requires authentication

Example request:
curl --request GET \
    --get "https://app.grandranker.com/api/v1/content-planner" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.grandranker.com/api/v1/content-planner"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/content-planner';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

GET api/v1/content-planner

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

GET api/v1/content-planner/month

requires authentication

Example request:
curl --request GET \
    --get "https://app.grandranker.com/api/v1/content-planner/month" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.grandranker.com/api/v1/content-planner/month"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/content-planner/month';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

GET api/v1/content-planner/month

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

POST api/v1/content-planner/schedule

requires authentication

Example request:
curl --request POST \
    "https://app.grandranker.com/api/v1/content-planner/schedule" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"keyword_id\": 16,
    \"scheduled_date\": \"2026-06-01T11:41:47\"
}"
const url = new URL(
    "https://app.grandranker.com/api/v1/content-planner/schedule"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "keyword_id": 16,
    "scheduled_date": "2026-06-01T11:41:47"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/content-planner/schedule';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'keyword_id' => 16,
            'scheduled_date' => '2026-06-01T11:41:47',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

POST api/v1/content-planner/schedule

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

keyword_id   integer     

The id of an existing record in the keywords table. Example: 16

scheduled_date   string     

Must be a valid date. Example: 2026-06-01T11:41:47

POST api/v1/content-planner/unschedule

requires authentication

Example request:
curl --request POST \
    "https://app.grandranker.com/api/v1/content-planner/unschedule" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"keyword_id\": 16
}"
const url = new URL(
    "https://app.grandranker.com/api/v1/content-planner/unschedule"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "keyword_id": 16
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/content-planner/unschedule';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'keyword_id' => 16,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

POST api/v1/content-planner/unschedule

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

keyword_id   integer     

The id of an existing record in the keywords table. Example: 16

DELETE api/v1/content-planner/keyword

requires authentication

Example request:
curl --request DELETE \
    "https://app.grandranker.com/api/v1/content-planner/keyword" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"keyword_id\": 16
}"
const url = new URL(
    "https://app.grandranker.com/api/v1/content-planner/keyword"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "keyword_id": 16
};

fetch(url, {
    method: "DELETE",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/content-planner/keyword';
$response = $client->delete(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'keyword_id' => 16,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

DELETE api/v1/content-planner/keyword

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

keyword_id   integer     

The id of an existing record in the keywords table. Example: 16

POST api/v1/content-planner/move

requires authentication

Example request:
curl --request POST \
    "https://app.grandranker.com/api/v1/content-planner/move" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"keyword_id\": 16,
    \"new_date\": \"2026-06-01T11:41:47\",
    \"from_date\": \"2026-06-01T11:41:47\"
}"
const url = new URL(
    "https://app.grandranker.com/api/v1/content-planner/move"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "keyword_id": 16,
    "new_date": "2026-06-01T11:41:47",
    "from_date": "2026-06-01T11:41:47"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/content-planner/move';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'keyword_id' => 16,
            'new_date' => '2026-06-01T11:41:47',
            'from_date' => '2026-06-01T11:41:47',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

POST api/v1/content-planner/move

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

keyword_id   integer     

The id of an existing record in the keywords table. Example: 16

new_date   string     

Must be a valid date. Example: 2026-06-01T11:41:47

from_date   string  optional    

Must be a valid date. Example: 2026-06-01T11:41:47

POST api/v1/content-planner/bulk-schedule

requires authentication

Example request:
curl --request POST \
    "https://app.grandranker.com/api/v1/content-planner/bulk-schedule" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"schedules\": [
        {
            \"keyword_id\": 16,
            \"scheduled_date\": \"2026-06-01T11:41:47\"
        }
    ]
}"
const url = new URL(
    "https://app.grandranker.com/api/v1/content-planner/bulk-schedule"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "schedules": [
        {
            "keyword_id": 16,
            "scheduled_date": "2026-06-01T11:41:47"
        }
    ]
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/content-planner/bulk-schedule';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'schedules' => [
                ['keyword_id' => 16, 'scheduled_date' => '2026-06-01T11:41:47'],
            ],
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

POST api/v1/content-planner/bulk-schedule

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

schedules   object[]     
keyword_id   integer     

The id of an existing record in the keywords table. Example: 16

scheduled_date   string     

Must be a valid date. Example: 2026-06-01T11:41:47

POST api/v1/content-planner/auto-schedule

requires authentication

Example request:
curl --request POST \
    "https://app.grandranker.com/api/v1/content-planner/auto-schedule" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"start_date\": \"2026-06-01T11:41:47\",
    \"end_date\": \"2052-06-24\",
    \"exclude_weekends\": true
}"
const url = new URL(
    "https://app.grandranker.com/api/v1/content-planner/auto-schedule"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "start_date": "2026-06-01T11:41:47",
    "end_date": "2052-06-24",
    "exclude_weekends": true
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/content-planner/auto-schedule';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'start_date' => '2026-06-01T11:41:47',
            'end_date' => '2052-06-24',
            'exclude_weekends' => true,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

POST api/v1/content-planner/auto-schedule

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

start_date   string     

Must be a valid date. Example: 2026-06-01T11:41:47

end_date   string     

Must be a valid date. Must be a date after or equal to start_date. Example: 2052-06-24

exclude_weekends   boolean  optional    

Example: true

POST api/v1/content-planner/schedule-all

requires authentication

Example request:
curl --request POST \
    "https://app.grandranker.com/api/v1/content-planner/schedule-all" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.grandranker.com/api/v1/content-planner/schedule-all"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/content-planner/schedule-all';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

POST api/v1/content-planner/schedule-all

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

POST api/v1/content-planner/schedule-next

requires authentication

Example request:
curl --request POST \
    "https://app.grandranker.com/api/v1/content-planner/schedule-next" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"keyword_id\": 16
}"
const url = new URL(
    "https://app.grandranker.com/api/v1/content-planner/schedule-next"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "keyword_id": 16
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/content-planner/schedule-next';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'keyword_id' => 16,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

POST api/v1/content-planner/schedule-next

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

keyword_id   integer     

The id of an existing record in the keywords table. Example: 16

POST api/v1/content-planner/bulk-schedule-next

requires authentication

Example request:
curl --request POST \
    "https://app.grandranker.com/api/v1/content-planner/bulk-schedule-next" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"keyword_ids\": [
        16
    ]
}"
const url = new URL(
    "https://app.grandranker.com/api/v1/content-planner/bulk-schedule-next"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "keyword_ids": [
        16
    ]
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/content-planner/bulk-schedule-next';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'keyword_ids' => [16],
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

POST api/v1/content-planner/bulk-schedule-next

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

keyword_ids   integer[]     

PATCH api/v1/content-planner/settings

requires authentication

Example request:
curl --request PATCH \
    "https://app.grandranker.com/api/v1/content-planner/settings" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"keyword_id\": 16,
    \"article_length\": \"medium\",
    \"custom_instructions\": \"n\"
}"
const url = new URL(
    "https://app.grandranker.com/api/v1/content-planner/settings"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "keyword_id": 16,
    "article_length": "medium",
    "custom_instructions": "n"
};

fetch(url, {
    method: "PATCH",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/content-planner/settings';
$response = $client->patch(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'keyword_id' => 16,
            'article_length' => 'medium',
            'custom_instructions' => 'n',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

PATCH api/v1/content-planner/settings

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

keyword_id   integer     

The id of an existing record in the keywords table. Example: 16

article_length   string  optional    

Example: medium

Must be one of:
  • short
  • medium
  • long
custom_instructions   string  optional    

Must not be greater than 2000 characters. Example: n

POST api/v1/content-planner/optimize-local-mix

requires authentication

Example request:
curl --request POST \
    "https://app.grandranker.com/api/v1/content-planner/optimize-local-mix" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"preview\": true
}"
const url = new URL(
    "https://app.grandranker.com/api/v1/content-planner/optimize-local-mix"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "preview": true
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/content-planner/optimize-local-mix';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'preview' => true,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

POST api/v1/content-planner/optimize-local-mix

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

preview   boolean  optional    

Example: true

POST api/v1/content-planner/generate-next-week

requires authentication

Example request:
curl --request POST \
    "https://app.grandranker.com/api/v1/content-planner/generate-next-week" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.grandranker.com/api/v1/content-planner/generate-next-week"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/content-planner/generate-next-week';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

POST api/v1/content-planner/generate-next-week

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

Domains

GET api/v1/domains

requires authentication

Example request:
curl --request GET \
    --get "https://app.grandranker.com/api/v1/domains" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.grandranker.com/api/v1/domains"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/domains';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

GET api/v1/domains

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

GET api/v1/domains/{domain}

requires authentication

Example request:
curl --request GET \
    --get "https://app.grandranker.com/api/v1/domains/architecto" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.grandranker.com/api/v1/domains/architecto"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/domains/architecto';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

GET api/v1/domains/{domain}

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

domain   string     

The domain. Example: architecto

POST api/v1/domains

requires authentication

Example request:
curl --request POST \
    "https://app.grandranker.com/api/v1/domains" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": \"b\",
    \"domain\": \"n\"
}"
const url = new URL(
    "https://app.grandranker.com/api/v1/domains"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "name": "b",
    "domain": "n"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/domains';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'name' => 'b',
            'domain' => 'n',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

POST api/v1/domains

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

name   string     

Must not be greater than 255 characters. Example: b

domain   string  optional    

Must not be greater than 255 characters. Example: n

PATCH api/v1/domains/{domain}

requires authentication

Example request:
curl --request PATCH \
    "https://app.grandranker.com/api/v1/domains/architecto" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": \"b\",
    \"domain\": \"n\"
}"
const url = new URL(
    "https://app.grandranker.com/api/v1/domains/architecto"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "name": "b",
    "domain": "n"
};

fetch(url, {
    method: "PATCH",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/domains/architecto';
$response = $client->patch(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'name' => 'b',
            'domain' => 'n',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

PATCH api/v1/domains/{domain}

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

domain   string     

The domain. Example: architecto

Body Parameters

name   string     

Must not be greater than 255 characters. Example: b

domain   string  optional    

Must not be greater than 255 characters. Example: n

DELETE api/v1/domains/{domain}

requires authentication

Example request:
curl --request DELETE \
    "https://app.grandranker.com/api/v1/domains/architecto" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.grandranker.com/api/v1/domains/architecto"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/domains/architecto';
$response = $client->delete(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

DELETE api/v1/domains/{domain}

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

domain   string     

The domain. Example: architecto

POST api/v1/domains/{domain}/activate

requires authentication

Example request:
curl --request POST \
    "https://app.grandranker.com/api/v1/domains/architecto/activate" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.grandranker.com/api/v1/domains/architecto/activate"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/domains/architecto/activate';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

POST api/v1/domains/{domain}/activate

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

domain   string     

The domain. Example: architecto

POST api/v1/domains/{domain}/set-primary

requires authentication

Example request:
curl --request POST \
    "https://app.grandranker.com/api/v1/domains/architecto/set-primary" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.grandranker.com/api/v1/domains/architecto/set-primary"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/domains/architecto/set-primary';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

POST api/v1/domains/{domain}/set-primary

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

domain   string     

The domain. Example: architecto

E-commerce

GET api/v1/ecommerce/products

requires authentication

Example request:
curl --request GET \
    --get "https://app.grandranker.com/api/v1/ecommerce/products" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.grandranker.com/api/v1/ecommerce/products"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/ecommerce/products';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

GET api/v1/ecommerce/products

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

GET api/v1/ecommerce/products/{id}

requires authentication

Example request:
curl --request GET \
    --get "https://app.grandranker.com/api/v1/ecommerce/products/architecto" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.grandranker.com/api/v1/ecommerce/products/architecto"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/ecommerce/products/architecto';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

GET api/v1/ecommerce/products/{id}

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   string     

The ID of the product. Example: architecto

POST api/v1/ecommerce/products

requires authentication

Example request:
curl --request POST \
    "https://app.grandranker.com/api/v1/ecommerce/products" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": \"b\",
    \"url\": \"http:\\/\\/bailey.com\\/\",
    \"description\": \"Velit et fugiat sunt nihil accusantium.\",
    \"category\": \"n\",
    \"price\": \"i\",
    \"key_features\": [
        \"k\"
    ],
    \"image_url\": \"http:\\/\\/www.schuster.biz\\/perspiciatis-quo-omnis-nostrum-aut-adipisci-quidem-nostrum-qui\",
    \"is_active\": true
}"
const url = new URL(
    "https://app.grandranker.com/api/v1/ecommerce/products"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "name": "b",
    "url": "http:\/\/bailey.com\/",
    "description": "Velit et fugiat sunt nihil accusantium.",
    "category": "n",
    "price": "i",
    "key_features": [
        "k"
    ],
    "image_url": "http:\/\/www.schuster.biz\/perspiciatis-quo-omnis-nostrum-aut-adipisci-quidem-nostrum-qui",
    "is_active": true
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/ecommerce/products';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'name' => 'b',
            'url' => 'http://bailey.com/',
            'description' => 'Velit et fugiat sunt nihil accusantium.',
            'category' => 'n',
            'price' => 'i',
            'key_features' => ['k'],
            'image_url' => 'http://www.schuster.biz/perspiciatis-quo-omnis-nostrum-aut-adipisci-quidem-nostrum-qui',
            'is_active' => true,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

POST api/v1/ecommerce/products

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

name   string     

Must not be greater than 255 characters. Example: b

url   string     

Must be a valid URL. Must not be greater than 500 characters. Example: http://bailey.com/

description   string  optional    

Must not be greater than 1000 characters. Example: Velit et fugiat sunt nihil accusantium.

category   string  optional    

Must not be greater than 255 characters. Example: n

price   string  optional    

Must not be greater than 100 characters. Example: i

key_features   string[]  optional    

Must not be greater than 100 characters.

image_url   string  optional    

Must be a valid URL. Must not be greater than 500 characters. Example: http://www.schuster.biz/perspiciatis-quo-omnis-nostrum-aut-adipisci-quidem-nostrum-qui

is_active   boolean  optional    

Example: true

PATCH api/v1/ecommerce/products/{id}

requires authentication

Example request:
curl --request PATCH \
    "https://app.grandranker.com/api/v1/ecommerce/products/architecto" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": \"b\",
    \"url\": \"http:\\/\\/bailey.com\\/\",
    \"description\": \"Velit et fugiat sunt nihil accusantium.\",
    \"category\": \"n\",
    \"price\": \"i\",
    \"key_features\": [
        \"k\"
    ],
    \"image_url\": \"http:\\/\\/www.schuster.biz\\/perspiciatis-quo-omnis-nostrum-aut-adipisci-quidem-nostrum-qui\",
    \"is_active\": true
}"
const url = new URL(
    "https://app.grandranker.com/api/v1/ecommerce/products/architecto"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "name": "b",
    "url": "http:\/\/bailey.com\/",
    "description": "Velit et fugiat sunt nihil accusantium.",
    "category": "n",
    "price": "i",
    "key_features": [
        "k"
    ],
    "image_url": "http:\/\/www.schuster.biz\/perspiciatis-quo-omnis-nostrum-aut-adipisci-quidem-nostrum-qui",
    "is_active": true
};

fetch(url, {
    method: "PATCH",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/ecommerce/products/architecto';
$response = $client->patch(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'name' => 'b',
            'url' => 'http://bailey.com/',
            'description' => 'Velit et fugiat sunt nihil accusantium.',
            'category' => 'n',
            'price' => 'i',
            'key_features' => ['k'],
            'image_url' => 'http://www.schuster.biz/perspiciatis-quo-omnis-nostrum-aut-adipisci-quidem-nostrum-qui',
            'is_active' => true,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

PATCH api/v1/ecommerce/products/{id}

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   string     

The ID of the product. Example: architecto

Body Parameters

name   string  optional    

Must not be greater than 255 characters. Example: b

url   string  optional    

Must be a valid URL. Must not be greater than 500 characters. Example: http://bailey.com/

description   string  optional    

Must not be greater than 1000 characters. Example: Velit et fugiat sunt nihil accusantium.

category   string  optional    

Must not be greater than 255 characters. Example: n

price   string  optional    

Must not be greater than 100 characters. Example: i

key_features   string[]  optional    

Must not be greater than 100 characters.

image_url   string  optional    

Must be a valid URL. Must not be greater than 500 characters. Example: http://www.schuster.biz/perspiciatis-quo-omnis-nostrum-aut-adipisci-quidem-nostrum-qui

is_active   boolean  optional    

Example: true

DELETE api/v1/ecommerce/products/{id}

requires authentication

Example request:
curl --request DELETE \
    "https://app.grandranker.com/api/v1/ecommerce/products/architecto" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.grandranker.com/api/v1/ecommerce/products/architecto"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/ecommerce/products/architecto';
$response = $client->delete(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

DELETE api/v1/ecommerce/products/{id}

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   string     

The ID of the product. Example: architecto

POST api/v1/ecommerce/products/bulk-action

requires authentication

Example request:
curl --request POST \
    "https://app.grandranker.com/api/v1/ecommerce/products/bulk-action" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"action\": \"delete\",
    \"product_ids\": [
        16
    ]
}"
const url = new URL(
    "https://app.grandranker.com/api/v1/ecommerce/products/bulk-action"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "action": "delete",
    "product_ids": [
        16
    ]
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/ecommerce/products/bulk-action';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'action' => 'delete',
            'product_ids' => [16],
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

POST api/v1/ecommerce/products/bulk-action

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

action   string     

Example: delete

Must be one of:
  • delete
  • activate
  • deactivate
product_ids   integer[]  optional    

POST api/v1/ecommerce/products/import

requires authentication

Example request:
curl --request POST \
    "https://app.grandranker.com/api/v1/ecommerce/products/import" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"products\": [
        {
            \"name\": \"b\",
            \"url\": \"http:\\/\\/bailey.com\\/\",
            \"description\": \"Velit et fugiat sunt nihil accusantium.\",
            \"category\": \"n\",
            \"price\": \"i\",
            \"key_features\": [
                \"k\"
            ],
            \"image_url\": \"http:\\/\\/www.schuster.biz\\/perspiciatis-quo-omnis-nostrum-aut-adipisci-quidem-nostrum-qui\"
        }
    ]
}"
const url = new URL(
    "https://app.grandranker.com/api/v1/ecommerce/products/import"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "products": [
        {
            "name": "b",
            "url": "http:\/\/bailey.com\/",
            "description": "Velit et fugiat sunt nihil accusantium.",
            "category": "n",
            "price": "i",
            "key_features": [
                "k"
            ],
            "image_url": "http:\/\/www.schuster.biz\/perspiciatis-quo-omnis-nostrum-aut-adipisci-quidem-nostrum-qui"
        }
    ]
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/ecommerce/products/import';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'products' => [
                [
                    'name' => 'b',
                    'url' => 'http://bailey.com/',
                    'description' => 'Velit et fugiat sunt nihil accusantium.',
                    'category' => 'n',
                    'price' => 'i',
                    'key_features' => ['k'],
                    'image_url' => 'http://www.schuster.biz/perspiciatis-quo-omnis-nostrum-aut-adipisci-quidem-nostrum-qui',
                ],
            ],
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

POST api/v1/ecommerce/products/import

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

products   object[]     

Must have at least 1 items. Must not have more than 500 items.

name   string     

Must not be greater than 255 characters. Example: b

url   string     

Must be a valid URL. Must not be greater than 500 characters. Example: http://bailey.com/

description   string  optional    

Must not be greater than 1000 characters. Example: Velit et fugiat sunt nihil accusantium.

category   string  optional    

Must not be greater than 255 characters. Example: n

price   string  optional    

Must not be greater than 100 characters. Example: i

key_features   string[]  optional    

Must not be greater than 100 characters.

image_url   string  optional    

Must be a valid URL. Must not be greater than 500 characters. Example: http://www.schuster.biz/perspiciatis-quo-omnis-nostrum-aut-adipisci-quidem-nostrum-qui

POST api/v1/ecommerce/sync

requires authentication

Example request:
curl --request POST \
    "https://app.grandranker.com/api/v1/ecommerce/sync" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.grandranker.com/api/v1/ecommerce/sync"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/ecommerce/sync';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

POST api/v1/ecommerce/sync

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

GEO Audit

GET api/v1/geo-audit/status

requires authentication

Example request:
curl --request GET \
    --get "https://app.grandranker.com/api/v1/geo-audit/status" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.grandranker.com/api/v1/geo-audit/status"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/geo-audit/status';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

GET api/v1/geo-audit/status

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

GET api/v1/geo-audit/latest

requires authentication

Example request:
curl --request GET \
    --get "https://app.grandranker.com/api/v1/geo-audit/latest" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.grandranker.com/api/v1/geo-audit/latest"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/geo-audit/latest';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

GET api/v1/geo-audit/latest

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

GET api/v1/geo-audit/history

requires authentication

Example request:
curl --request GET \
    --get "https://app.grandranker.com/api/v1/geo-audit/history" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.grandranker.com/api/v1/geo-audit/history"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/geo-audit/history';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

GET api/v1/geo-audit/history

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

GET api/v1/geo-audit/pages

requires authentication

Example request:
curl --request GET \
    --get "https://app.grandranker.com/api/v1/geo-audit/pages" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.grandranker.com/api/v1/geo-audit/pages"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/geo-audit/pages';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

GET api/v1/geo-audit/pages

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

GET api/v1/geo-audit/pages/{id}

requires authentication

Example request:
curl --request GET \
    --get "https://app.grandranker.com/api/v1/geo-audit/pages/architecto" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.grandranker.com/api/v1/geo-audit/pages/architecto"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/geo-audit/pages/architecto';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

GET api/v1/geo-audit/pages/{id}

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   string     

The ID of the page. Example: architecto

GET api/v1/geo-audit/proposals

requires authentication

Example request:
curl --request GET \
    --get "https://app.grandranker.com/api/v1/geo-audit/proposals" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.grandranker.com/api/v1/geo-audit/proposals"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/geo-audit/proposals';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

GET api/v1/geo-audit/proposals

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

GET api/v1/geo-audit/schema-opportunities

requires authentication

Example request:
curl --request GET \
    --get "https://app.grandranker.com/api/v1/geo-audit/schema-opportunities" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.grandranker.com/api/v1/geo-audit/schema-opportunities"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/geo-audit/schema-opportunities';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

GET api/v1/geo-audit/schema-opportunities

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

POST api/v1/geo-audit/proposals/{id}/apply

requires authentication

Example request:
curl --request POST \
    "https://app.grandranker.com/api/v1/geo-audit/proposals/architecto/apply" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.grandranker.com/api/v1/geo-audit/proposals/architecto/apply"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/geo-audit/proposals/architecto/apply';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

POST api/v1/geo-audit/proposals/{id}/apply

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   string     

The ID of the proposal. Example: architecto

POST api/v1/geo-audit/proposals/bulk-apply

requires authentication

Example request:
curl --request POST \
    "https://app.grandranker.com/api/v1/geo-audit/proposals/bulk-apply" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"ids\": [
        16
    ]
}"
const url = new URL(
    "https://app.grandranker.com/api/v1/geo-audit/proposals/bulk-apply"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "ids": [
        16
    ]
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/geo-audit/proposals/bulk-apply';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'ids' => [16],
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

POST api/v1/geo-audit/proposals/bulk-apply

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

ids   integer[]  optional    

POST api/v1/geo-audit/proposals/{id}/dismiss

requires authentication

Example request:
curl --request POST \
    "https://app.grandranker.com/api/v1/geo-audit/proposals/architecto/dismiss" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.grandranker.com/api/v1/geo-audit/proposals/architecto/dismiss"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/geo-audit/proposals/architecto/dismiss';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

POST api/v1/geo-audit/proposals/{id}/dismiss

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   string     

The ID of the proposal. Example: architecto

POST api/v1/geo-audit/schema/apply

requires authentication

Example request:
curl --request POST \
    "https://app.grandranker.com/api/v1/geo-audit/schema/apply" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"article_id\": 16,
    \"schema\": []
}"
const url = new URL(
    "https://app.grandranker.com/api/v1/geo-audit/schema/apply"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "article_id": 16,
    "schema": []
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/geo-audit/schema/apply';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'article_id' => 16,
            'schema' => [],
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

POST api/v1/geo-audit/schema/apply

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

article_id   integer     

Example: 16

schema   object     

PATCH api/v1/geo-audit/sitemap-override

requires authentication

Example request:
curl --request PATCH \
    "https://app.grandranker.com/api/v1/geo-audit/sitemap-override" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"sitemap_url\": \"http:\\/\\/www.bailey.biz\\/quos-velit-et-fugiat-sunt-nihil-accusantium-harum.html\"
}"
const url = new URL(
    "https://app.grandranker.com/api/v1/geo-audit/sitemap-override"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "sitemap_url": "http:\/\/www.bailey.biz\/quos-velit-et-fugiat-sunt-nihil-accusantium-harum.html"
};

fetch(url, {
    method: "PATCH",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/geo-audit/sitemap-override';
$response = $client->patch(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'sitemap_url' => 'http://www.bailey.biz/quos-velit-et-fugiat-sunt-nihil-accusantium-harum.html',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

PATCH api/v1/geo-audit/sitemap-override

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

sitemap_url   string  optional    

Must be a valid URL. Must not be greater than 500 characters. Example: http://www.bailey.biz/quos-velit-et-fugiat-sunt-nihil-accusantium-harum.html

POST api/v1/geo-audit/run

requires authentication

Example request:
curl --request POST \
    "https://app.grandranker.com/api/v1/geo-audit/run" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.grandranker.com/api/v1/geo-audit/run"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/geo-audit/run';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

POST api/v1/geo-audit/run

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

POST api/v1/geo-audit/run-full

requires authentication

Example request:
curl --request POST \
    "https://app.grandranker.com/api/v1/geo-audit/run-full" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.grandranker.com/api/v1/geo-audit/run-full"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/geo-audit/run-full';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

POST api/v1/geo-audit/run-full

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

POST api/v1/geo-audit/schema/generate

requires authentication

Example request:
curl --request POST \
    "https://app.grandranker.com/api/v1/geo-audit/schema/generate" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"url\": \"http:\\/\\/www.bailey.biz\\/quos-velit-et-fugiat-sunt-nihil-accusantium-harum.html\"
}"
const url = new URL(
    "https://app.grandranker.com/api/v1/geo-audit/schema/generate"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "url": "http:\/\/www.bailey.biz\/quos-velit-et-fugiat-sunt-nihil-accusantium-harum.html"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/geo-audit/schema/generate';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'url' => 'http://www.bailey.biz/quos-velit-et-fugiat-sunt-nihil-accusantium-harum.html',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

POST api/v1/geo-audit/schema/generate

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

url   string     

Must be a valid URL. Must not be greater than 2048 characters. Example: http://www.bailey.biz/quos-velit-et-fugiat-sunt-nihil-accusantium-harum.html

Google Analytics 4

GET api/v1/ga4/status

requires authentication

Example request:
curl --request GET \
    --get "https://app.grandranker.com/api/v1/ga4/status" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.grandranker.com/api/v1/ga4/status"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/ga4/status';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

GET api/v1/ga4/status

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

GET api/v1/ga4/properties

requires authentication

Example request:
curl --request GET \
    --get "https://app.grandranker.com/api/v1/ga4/properties" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.grandranker.com/api/v1/ga4/properties"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/ga4/properties';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

GET api/v1/ga4/properties

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

GET api/v1/ga4/performance

requires authentication

Example request:
curl --request GET \
    --get "https://app.grandranker.com/api/v1/ga4/performance" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.grandranker.com/api/v1/ga4/performance"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/ga4/performance';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

GET api/v1/ga4/performance

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

GET api/v1/ga4/pages

requires authentication

Example request:
curl --request GET \
    --get "https://app.grandranker.com/api/v1/ga4/pages" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.grandranker.com/api/v1/ga4/pages"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/ga4/pages';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

GET api/v1/ga4/pages

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

GET api/v1/ga4/sources

requires authentication

Example request:
curl --request GET \
    --get "https://app.grandranker.com/api/v1/ga4/sources" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.grandranker.com/api/v1/ga4/sources"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/ga4/sources';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

GET api/v1/ga4/sources

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

GET api/v1/ga4/devices

requires authentication

Example request:
curl --request GET \
    --get "https://app.grandranker.com/api/v1/ga4/devices" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.grandranker.com/api/v1/ga4/devices"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/ga4/devices';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

GET api/v1/ga4/devices

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

POST api/v1/ga4/select-property

requires authentication

Example request:
curl --request POST \
    "https://app.grandranker.com/api/v1/ga4/select-property" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"property_id\": \"bngzmiyvdljnikhw\"
}"
const url = new URL(
    "https://app.grandranker.com/api/v1/ga4/select-property"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "property_id": "bngzmiyvdljnikhw"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/ga4/select-property';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'property_id' => 'bngzmiyvdljnikhw',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

POST api/v1/ga4/select-property

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

property_id   string     

Must not be greater than 20 characters. Example: bngzmiyvdljnikhw

DELETE api/v1/ga4/disconnect

requires authentication

Example request:
curl --request DELETE \
    "https://app.grandranker.com/api/v1/ga4/disconnect" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.grandranker.com/api/v1/ga4/disconnect"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/ga4/disconnect';
$response = $client->delete(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

DELETE api/v1/ga4/disconnect

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

Google Search Console

GET api/v1/gsc/status

requires authentication

Example request:
curl --request GET \
    --get "https://app.grandranker.com/api/v1/gsc/status" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.grandranker.com/api/v1/gsc/status"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/gsc/status';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

GET api/v1/gsc/status

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

GET api/v1/gsc/properties

requires authentication

Example request:
curl --request GET \
    --get "https://app.grandranker.com/api/v1/gsc/properties" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.grandranker.com/api/v1/gsc/properties"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/gsc/properties';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

GET api/v1/gsc/properties

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

GET api/v1/gsc/performance

requires authentication

Example request:
curl --request GET \
    --get "https://app.grandranker.com/api/v1/gsc/performance" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.grandranker.com/api/v1/gsc/performance"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/gsc/performance';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

GET api/v1/gsc/performance

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

GET api/v1/gsc/queries

requires authentication

Example request:
curl --request GET \
    --get "https://app.grandranker.com/api/v1/gsc/queries" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.grandranker.com/api/v1/gsc/queries"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/gsc/queries';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

GET api/v1/gsc/queries

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

GET api/v1/gsc/pages

requires authentication

Example request:
curl --request GET \
    --get "https://app.grandranker.com/api/v1/gsc/pages" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.grandranker.com/api/v1/gsc/pages"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/gsc/pages';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

GET api/v1/gsc/pages

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

POST api/v1/gsc/page-queries

requires authentication

Example request:
curl --request POST \
    "https://app.grandranker.com/api/v1/gsc/page-queries" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"url\": \"http:\\/\\/www.bailey.biz\\/quos-velit-et-fugiat-sunt-nihil-accusantium-harum.html\"
}"
const url = new URL(
    "https://app.grandranker.com/api/v1/gsc/page-queries"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "url": "http:\/\/www.bailey.biz\/quos-velit-et-fugiat-sunt-nihil-accusantium-harum.html"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/gsc/page-queries';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'url' => 'http://www.bailey.biz/quos-velit-et-fugiat-sunt-nihil-accusantium-harum.html',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

POST api/v1/gsc/page-queries

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

url   string     

Must be a valid URL. Example: http://www.bailey.biz/quos-velit-et-fugiat-sunt-nihil-accusantium-harum.html

GET api/v1/gsc/sitemaps

requires authentication

Example request:
curl --request GET \
    --get "https://app.grandranker.com/api/v1/gsc/sitemaps" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.grandranker.com/api/v1/gsc/sitemaps"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/gsc/sitemaps';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

GET api/v1/gsc/sitemaps

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

POST api/v1/gsc/inspect-url

requires authentication

Example request:
curl --request POST \
    "https://app.grandranker.com/api/v1/gsc/inspect-url" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"url\": \"http:\\/\\/www.bailey.biz\\/quos-velit-et-fugiat-sunt-nihil-accusantium-harum.html\"
}"
const url = new URL(
    "https://app.grandranker.com/api/v1/gsc/inspect-url"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "url": "http:\/\/www.bailey.biz\/quos-velit-et-fugiat-sunt-nihil-accusantium-harum.html"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/gsc/inspect-url';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'url' => 'http://www.bailey.biz/quos-velit-et-fugiat-sunt-nihil-accusantium-harum.html',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

POST api/v1/gsc/inspect-url

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

url   string     

Must be a valid URL. Example: http://www.bailey.biz/quos-velit-et-fugiat-sunt-nihil-accusantium-harum.html

POST api/v1/gsc/select-property

requires authentication

Example request:
curl --request POST \
    "https://app.grandranker.com/api/v1/gsc/select-property" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"property\": \"architecto\"
}"
const url = new URL(
    "https://app.grandranker.com/api/v1/gsc/select-property"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "property": "architecto"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/gsc/select-property';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'property' => 'architecto',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

POST api/v1/gsc/select-property

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

property   string     

Example: architecto

POST api/v1/gsc/clear-property

requires authentication

Example request:
curl --request POST \
    "https://app.grandranker.com/api/v1/gsc/clear-property" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.grandranker.com/api/v1/gsc/clear-property"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/gsc/clear-property';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

POST api/v1/gsc/clear-property

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

DELETE api/v1/gsc/disconnect

requires authentication

Example request:
curl --request DELETE \
    "https://app.grandranker.com/api/v1/gsc/disconnect" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.grandranker.com/api/v1/gsc/disconnect"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/gsc/disconnect';
$response = $client->delete(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

DELETE api/v1/gsc/disconnect

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

POST api/v1/gsc/sitemaps/submit

requires authentication

Example request:
curl --request POST \
    "https://app.grandranker.com/api/v1/gsc/sitemaps/submit" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"url\": \"http:\\/\\/www.bailey.biz\\/quos-velit-et-fugiat-sunt-nihil-accusantium-harum.html\"
}"
const url = new URL(
    "https://app.grandranker.com/api/v1/gsc/sitemaps/submit"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "url": "http:\/\/www.bailey.biz\/quos-velit-et-fugiat-sunt-nihil-accusantium-harum.html"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/gsc/sitemaps/submit';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'url' => 'http://www.bailey.biz/quos-velit-et-fugiat-sunt-nihil-accusantium-harum.html',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

POST api/v1/gsc/sitemaps/submit

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

url   string     

Must be a valid URL. Example: http://www.bailey.biz/quos-velit-et-fugiat-sunt-nihil-accusantium-harum.html

DELETE api/v1/gsc/sitemaps

requires authentication

Example request:
curl --request DELETE \
    "https://app.grandranker.com/api/v1/gsc/sitemaps" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"url\": \"http:\\/\\/www.bailey.biz\\/quos-velit-et-fugiat-sunt-nihil-accusantium-harum.html\"
}"
const url = new URL(
    "https://app.grandranker.com/api/v1/gsc/sitemaps"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "url": "http:\/\/www.bailey.biz\/quos-velit-et-fugiat-sunt-nihil-accusantium-harum.html"
};

fetch(url, {
    method: "DELETE",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/gsc/sitemaps';
$response = $client->delete(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'url' => 'http://www.bailey.biz/quos-velit-et-fugiat-sunt-nihil-accusantium-harum.html',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

DELETE api/v1/gsc/sitemaps

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

url   string     

Must be a valid URL. Example: http://www.bailey.biz/quos-velit-et-fugiat-sunt-nihil-accusantium-harum.html

Internal Links

requires authentication

Example request:
curl --request GET \
    --get "https://app.grandranker.com/api/v1/internal-links/pages" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.grandranker.com/api/v1/internal-links/pages"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/internal-links/pages';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

requires authentication

Example request:
curl --request POST \
    "https://app.grandranker.com/api/v1/internal-links/detect" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"sitemap_url\": \"http:\\/\\/www.bailey.biz\\/quos-velit-et-fugiat-sunt-nihil-accusantium-harum.html\"
}"
const url = new URL(
    "https://app.grandranker.com/api/v1/internal-links/detect"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "sitemap_url": "http:\/\/www.bailey.biz\/quos-velit-et-fugiat-sunt-nihil-accusantium-harum.html"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/internal-links/detect';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'sitemap_url' => 'http://www.bailey.biz/quos-velit-et-fugiat-sunt-nihil-accusantium-harum.html',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

requires authentication

Example request:
curl --request PATCH \
    "https://app.grandranker.com/api/v1/internal-links/configuration" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"link_source\": \"architecto\",
    \"sitemap_url\": \"http:\\/\\/bailey.com\\/\",
    \"internal_links_count\": 17
}"
const url = new URL(
    "https://app.grandranker.com/api/v1/internal-links/configuration"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "link_source": "architecto",
    "sitemap_url": "http:\/\/bailey.com\/",
    "internal_links_count": 17
};

fetch(url, {
    method: "PATCH",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/internal-links/configuration';
$response = $client->patch(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'link_source' => 'architecto',
            'sitemap_url' => 'http://bailey.com/',
            'internal_links_count' => 17,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

requires authentication

Example request:
curl --request POST \
    "https://app.grandranker.com/api/v1/internal-links/pages" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"url\": \"http:\\/\\/www.bailey.biz\\/quos-velit-et-fugiat-sunt-nihil-accusantium-harum.html\",
    \"title\": \"i\"
}"
const url = new URL(
    "https://app.grandranker.com/api/v1/internal-links/pages"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "url": "http:\/\/www.bailey.biz\/quos-velit-et-fugiat-sunt-nihil-accusantium-harum.html",
    "title": "i"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/internal-links/pages';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'url' => 'http://www.bailey.biz/quos-velit-et-fugiat-sunt-nihil-accusantium-harum.html',
            'title' => 'i',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

requires authentication

Example request:
curl --request POST \
    "https://app.grandranker.com/api/v1/internal-links/pages/exclude" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"url\": \"http:\\/\\/www.bailey.biz\\/quos-velit-et-fugiat-sunt-nihil-accusantium-harum.html\"
}"
const url = new URL(
    "https://app.grandranker.com/api/v1/internal-links/pages/exclude"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "url": "http:\/\/www.bailey.biz\/quos-velit-et-fugiat-sunt-nihil-accusantium-harum.html"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/internal-links/pages/exclude';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'url' => 'http://www.bailey.biz/quos-velit-et-fugiat-sunt-nihil-accusantium-harum.html',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

requires authentication

Example request:
curl --request POST \
    "https://app.grandranker.com/api/v1/internal-links/pages/restore" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"url\": \"http:\\/\\/www.bailey.biz\\/quos-velit-et-fugiat-sunt-nihil-accusantium-harum.html\"
}"
const url = new URL(
    "https://app.grandranker.com/api/v1/internal-links/pages/restore"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "url": "http:\/\/www.bailey.biz\/quos-velit-et-fugiat-sunt-nihil-accusantium-harum.html"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/internal-links/pages/restore';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'url' => 'http://www.bailey.biz/quos-velit-et-fugiat-sunt-nihil-accusantium-harum.html',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

requires authentication

Example request:
curl --request DELETE \
    "https://app.grandranker.com/api/v1/internal-links/pages/custom" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"url\": \"http:\\/\\/www.bailey.biz\\/quos-velit-et-fugiat-sunt-nihil-accusantium-harum.html\"
}"
const url = new URL(
    "https://app.grandranker.com/api/v1/internal-links/pages/custom"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "url": "http:\/\/www.bailey.biz\/quos-velit-et-fugiat-sunt-nihil-accusantium-harum.html"
};

fetch(url, {
    method: "DELETE",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/internal-links/pages/custom';
$response = $client->delete(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'url' => 'http://www.bailey.biz/quos-velit-et-fugiat-sunt-nihil-accusantium-harum.html',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Keywords

GET api/v1/keywords

requires authentication

Example request:
curl --request GET \
    --get "https://app.grandranker.com/api/v1/keywords" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.grandranker.com/api/v1/keywords"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/keywords';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

GET api/v1/keywords

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

GET api/v1/keywords/stats

requires authentication

Example request:
curl --request GET \
    --get "https://app.grandranker.com/api/v1/keywords/stats" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.grandranker.com/api/v1/keywords/stats"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/keywords/stats';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

GET api/v1/keywords/stats

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

GET api/v1/keywords/{id}

requires authentication

Example request:
curl --request GET \
    --get "https://app.grandranker.com/api/v1/keywords/architecto" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.grandranker.com/api/v1/keywords/architecto"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/keywords/architecto';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

GET api/v1/keywords/{id}

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   string     

The ID of the keyword. Example: architecto

POST api/v1/keywords

requires authentication

Example request:
curl --request POST \
    "https://app.grandranker.com/api/v1/keywords" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"keyword\": \"b\",
    \"category\": \"n\",
    \"content_type\": \"both\",
    \"language_code\": \"g\"
}"
const url = new URL(
    "https://app.grandranker.com/api/v1/keywords"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "keyword": "b",
    "category": "n",
    "content_type": "both",
    "language_code": "g"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/keywords';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'keyword' => 'b',
            'category' => 'n',
            'content_type' => 'both',
            'language_code' => 'g',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

POST api/v1/keywords

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

keyword   string     

Must not be greater than 255 characters. Example: b

category   string  optional    

Must not be greater than 100 characters. Example: n

content_type   string  optional    

Example: both

Must be one of:
  • blog
  • guide
  • both
language_code   string  optional    

Must not be greater than 5 characters. Example: g

PATCH api/v1/keywords/{id}

requires authentication

Example request:
curl --request PATCH \
    "https://app.grandranker.com/api/v1/keywords/architecto" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"keyword\": \"b\",
    \"category\": \"n\",
    \"content_type\": \"guide\",
    \"language_code\": \"g\",
    \"priority\": 16,
    \"article_length\": \"medium\",
    \"custom_instructions\": \"m\"
}"
const url = new URL(
    "https://app.grandranker.com/api/v1/keywords/architecto"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "keyword": "b",
    "category": "n",
    "content_type": "guide",
    "language_code": "g",
    "priority": 16,
    "article_length": "medium",
    "custom_instructions": "m"
};

fetch(url, {
    method: "PATCH",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/keywords/architecto';
$response = $client->patch(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'keyword' => 'b',
            'category' => 'n',
            'content_type' => 'guide',
            'language_code' => 'g',
            'priority' => 16,
            'article_length' => 'medium',
            'custom_instructions' => 'm',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

PATCH api/v1/keywords/{id}

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   string     

The ID of the keyword. Example: architecto

Body Parameters

keyword   string  optional    

Must not be greater than 255 characters. Example: b

category   string  optional    

Must not be greater than 100 characters. Example: n

content_type   string  optional    

Example: guide

Must be one of:
  • blog
  • guide
  • both
language_code   string  optional    

Must not be greater than 5 characters. Example: g

priority   integer  optional    

Must be at least 0. Must not be greater than 100. Example: 16

article_length   string  optional    

Example: medium

Must be one of:
  • short
  • medium
  • long
custom_instructions   string  optional    

Must not be greater than 2000 characters. Example: m

DELETE api/v1/keywords/{id}

requires authentication

Example request:
curl --request DELETE \
    "https://app.grandranker.com/api/v1/keywords/architecto" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.grandranker.com/api/v1/keywords/architecto"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/keywords/architecto';
$response = $client->delete(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

DELETE api/v1/keywords/{id}

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   string     

The ID of the keyword. Example: architecto

POST api/v1/keywords/bulk-delete

requires authentication

Example request:
curl --request POST \
    "https://app.grandranker.com/api/v1/keywords/bulk-delete" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"keyword_ids\": [
        16
    ]
}"
const url = new URL(
    "https://app.grandranker.com/api/v1/keywords/bulk-delete"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "keyword_ids": [
        16
    ]
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/keywords/bulk-delete';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'keyword_ids' => [16],
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

POST api/v1/keywords/bulk-delete

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

keyword_ids   integer[]  optional    

POST api/v1/keywords/import

requires authentication

Example request:
curl --request POST \
    "https://app.grandranker.com/api/v1/keywords/import" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"keywords\": [
        {
            \"keyword\": \"b\",
            \"category\": \"n\",
            \"content_type\": \"blog\"
        }
    ]
}"
const url = new URL(
    "https://app.grandranker.com/api/v1/keywords/import"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "keywords": [
        {
            "keyword": "b",
            "category": "n",
            "content_type": "blog"
        }
    ]
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/keywords/import';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'keywords' => [
                ['keyword' => 'b', 'category' => 'n', 'content_type' => 'blog'],
            ],
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

POST api/v1/keywords/import

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

keywords   object[]     

Must have at least 1 items. Must not have more than 500 items.

keyword   string     

Must not be greater than 255 characters. Example: b

category   string  optional    

Must not be greater than 100 characters. Example: n

content_type   string  optional    

Example: blog

Must be one of:
  • blog
  • guide
  • both

POST api/v1/keywords/{id}/generate

requires authentication

Example request:
curl --request POST \
    "https://app.grandranker.com/api/v1/keywords/architecto/generate" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.grandranker.com/api/v1/keywords/architecto/generate"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/keywords/architecto/generate';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

POST api/v1/keywords/{id}/generate

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   string     

The ID of the keyword. Example: architecto

POST api/v1/keywords/{id}/generate-local

requires authentication

Example request:
curl --request POST \
    "https://app.grandranker.com/api/v1/keywords/architecto/generate-local" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.grandranker.com/api/v1/keywords/architecto/generate-local"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/keywords/architecto/generate-local';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

POST api/v1/keywords/{id}/generate-local

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   string     

The ID of the keyword. Example: architecto

POST api/v1/keywords/generate-all

requires authentication

Example request:
curl --request POST \
    "https://app.grandranker.com/api/v1/keywords/generate-all" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.grandranker.com/api/v1/keywords/generate-all"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/keywords/generate-all';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

POST api/v1/keywords/generate-all

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

POST api/v1/keywords/research

requires authentication

Example request:
curl --request POST \
    "https://app.grandranker.com/api/v1/keywords/research" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"limit\": 1,
    \"relevance_threshold\": 22,
    \"include_own_domain\": false,
    \"include_competitors\": true,
    \"include_ai_seeds\": false
}"
const url = new URL(
    "https://app.grandranker.com/api/v1/keywords/research"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "limit": 1,
    "relevance_threshold": 22,
    "include_own_domain": false,
    "include_competitors": true,
    "include_ai_seeds": false
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/keywords/research';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'limit' => 1,
            'relevance_threshold' => 22,
            'include_own_domain' => false,
            'include_competitors' => true,
            'include_ai_seeds' => false,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

POST api/v1/keywords/research

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

limit   integer  optional    

Must be at least 10. Must not be greater than 500. Example: 1

relevance_threshold   integer  optional    

Must be at least 0. Must not be greater than 100. Example: 22

include_own_domain   boolean  optional    

Example: false

include_competitors   boolean  optional    

Example: true

include_ai_seeds   boolean  optional    

Example: false

POST api/v1/keywords/score-relevance

requires authentication

Example request:
curl --request POST \
    "https://app.grandranker.com/api/v1/keywords/score-relevance" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"keyword_ids\": [
        16
    ]
}"
const url = new URL(
    "https://app.grandranker.com/api/v1/keywords/score-relevance"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "keyword_ids": [
        16
    ]
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/keywords/score-relevance';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'keyword_ids' => [16],
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

POST api/v1/keywords/score-relevance

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

keyword_ids   integer[]  optional    

POST api/v1/keywords/enrich

requires authentication

Example request:
curl --request POST \
    "https://app.grandranker.com/api/v1/keywords/enrich" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"keyword_ids\": [
        16
    ]
}"
const url = new URL(
    "https://app.grandranker.com/api/v1/keywords/enrich"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "keyword_ids": [
        16
    ]
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/keywords/enrich';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'keyword_ids' => [16],
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

POST api/v1/keywords/enrich

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

keyword_ids   integer[]  optional    

POST api/v1/keywords/enrich-all

requires authentication

Example request:
curl --request POST \
    "https://app.grandranker.com/api/v1/keywords/enrich-all" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.grandranker.com/api/v1/keywords/enrich-all"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/keywords/enrich-all';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

POST api/v1/keywords/enrich-all

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

Languages

GET api/v1/languages

requires authentication

Example request:
curl --request GET \
    --get "https://app.grandranker.com/api/v1/languages" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.grandranker.com/api/v1/languages"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/languages';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

GET api/v1/languages

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

POST api/v1/languages

requires authentication

Example request:
curl --request POST \
    "https://app.grandranker.com/api/v1/languages" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"language_code\": \"bn\"
}"
const url = new URL(
    "https://app.grandranker.com/api/v1/languages"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "language_code": "bn"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/languages';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'language_code' => 'bn',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

POST api/v1/languages

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

language_code   string     

Must be 2 characters. Example: bn

DELETE api/v1/languages/{id}

requires authentication

Example request:
curl --request DELETE \
    "https://app.grandranker.com/api/v1/languages/architecto" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.grandranker.com/api/v1/languages/architecto"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/languages/architecto';
$response = $client->delete(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

DELETE api/v1/languages/{id}

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   string     

The ID of the language. Example: architecto

POST api/v1/languages/{id}/pause

requires authentication

Example request:
curl --request POST \
    "https://app.grandranker.com/api/v1/languages/architecto/pause" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.grandranker.com/api/v1/languages/architecto/pause"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/languages/architecto/pause';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

POST api/v1/languages/{id}/pause

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   string     

The ID of the language. Example: architecto

POST api/v1/languages/{id}/resume

requires authentication

Example request:
curl --request POST \
    "https://app.grandranker.com/api/v1/languages/architecto/resume" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.grandranker.com/api/v1/languages/architecto/resume"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/languages/architecto/resume';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

POST api/v1/languages/{id}/resume

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   string     

The ID of the language. Example: architecto

PATCH api/v1/languages/{id}/settings

requires authentication

Example request:
curl --request PATCH \
    "https://app.grandranker.com/api/v1/languages/architecto/settings" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"settings\": {
        \"brand_voice\": \"b\",
        \"tone\": \"professional\",
        \"custom_instructions\": \"n\"
    }
}"
const url = new URL(
    "https://app.grandranker.com/api/v1/languages/architecto/settings"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "settings": {
        "brand_voice": "b",
        "tone": "professional",
        "custom_instructions": "n"
    }
};

fetch(url, {
    method: "PATCH",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/languages/architecto/settings';
$response = $client->patch(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'settings' => ['brand_voice' => 'b', 'tone' => 'professional', 'custom_instructions' => 'n'],
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

PATCH api/v1/languages/{id}/settings

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   string     

The ID of the language. Example: architecto

Body Parameters

settings   object     
brand_voice   string  optional    

Must not be greater than 500 characters. Example: b

tone   string  optional    

Example: professional

Must be one of:
  • professional
  • casual
  • friendly
  • academic
custom_instructions   string  optional    

Must not be greater than 2000 characters. Example: n

Liftability

GET api/v1/liftability/history

requires authentication

Example request:
curl --request GET \
    --get "https://app.grandranker.com/api/v1/liftability/history" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.grandranker.com/api/v1/liftability/history"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/liftability/history';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

GET api/v1/liftability/history

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

POST api/v1/liftability/scan

requires authentication

Example request:
curl --request POST \
    "https://app.grandranker.com/api/v1/liftability/scan" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"url\": \"http:\\/\\/www.bailey.biz\\/quos-velit-et-fugiat-sunt-nihil-accusantium-harum.html\"
}"
const url = new URL(
    "https://app.grandranker.com/api/v1/liftability/scan"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "url": "http:\/\/www.bailey.biz\/quos-velit-et-fugiat-sunt-nihil-accusantium-harum.html"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/liftability/scan';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'url' => 'http://www.bailey.biz/quos-velit-et-fugiat-sunt-nihil-accusantium-harum.html',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

POST api/v1/liftability/scan

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

url   string     

Must be a valid URL. Must not be greater than 2048 characters. Example: http://www.bailey.biz/quos-velit-et-fugiat-sunt-nihil-accusantium-harum.html

POST api/v1/liftability/scan-cited

requires authentication

Example request:
curl --request POST \
    "https://app.grandranker.com/api/v1/liftability/scan-cited" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.grandranker.com/api/v1/liftability/scan-cited"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/liftability/scan-cited';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

POST api/v1/liftability/scan-cited

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

Local SEO

GET api/v1/local-seo/local-pack-history

requires authentication

Example request:
curl --request GET \
    --get "https://app.grandranker.com/api/v1/local-seo/local-pack-history" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.grandranker.com/api/v1/local-seo/local-pack-history"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/local-seo/local-pack-history';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

GET api/v1/local-seo/local-pack-history

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

GET api/v1/local-seo/reviews

requires authentication

Example request:
curl --request GET \
    --get "https://app.grandranker.com/api/v1/local-seo/reviews" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.grandranker.com/api/v1/local-seo/reviews"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/local-seo/reviews';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

GET api/v1/local-seo/reviews

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

GET api/v1/local-seo/review-insights

requires authentication

Example request:
curl --request GET \
    --get "https://app.grandranker.com/api/v1/local-seo/review-insights" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.grandranker.com/api/v1/local-seo/review-insights"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/local-seo/review-insights';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

GET api/v1/local-seo/review-insights

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

GET api/v1/local-seo/posts

requires authentication

Example request:
curl --request GET \
    --get "https://app.grandranker.com/api/v1/local-seo/posts" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.grandranker.com/api/v1/local-seo/posts"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/local-seo/posts';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

GET api/v1/local-seo/posts

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

GET api/v1/local-seo/recommendations

requires authentication

Example request:
curl --request GET \
    --get "https://app.grandranker.com/api/v1/local-seo/recommendations" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.grandranker.com/api/v1/local-seo/recommendations"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/local-seo/recommendations';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

GET api/v1/local-seo/recommendations

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

GET api/v1/local-seo/geogrid/history

requires authentication

Example request:
curl --request GET \
    --get "https://app.grandranker.com/api/v1/local-seo/geogrid/history" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.grandranker.com/api/v1/local-seo/geogrid/history"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/local-seo/geogrid/history';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

GET api/v1/local-seo/geogrid/history

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

GET api/v1/local-seo/geogrid/{scanId}

requires authentication

Example request:
curl --request GET \
    --get "https://app.grandranker.com/api/v1/local-seo/geogrid/architecto" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.grandranker.com/api/v1/local-seo/geogrid/architecto"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/local-seo/geogrid/architecto';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

GET api/v1/local-seo/geogrid/{scanId}

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

scanId   string     

Example: architecto

POST api/v1/local-seo/posts

requires authentication

Example request:
curl --request POST \
    "https://app.grandranker.com/api/v1/local-seo/posts" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"gmb_location_id\": 16,
    \"type\": \"STANDARD\",
    \"summary\": \"n\",
    \"cta_type\": \"g\",
    \"cta_url\": \"http:\\/\\/www.okuneva.com\\/fugiat-sunt-nihil-accusantium-harum-mollitia.html\",
    \"event_title\": \"k\",
    \"event_start\": \"2026-06-01T11:41:47\",
    \"event_end\": \"2052-06-24\",
    \"offer_coupon_code\": \"n\",
    \"offer_terms\": \"g\",
    \"scheduled_at\": \"2052-06-24\"
}"
const url = new URL(
    "https://app.grandranker.com/api/v1/local-seo/posts"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "gmb_location_id": 16,
    "type": "STANDARD",
    "summary": "n",
    "cta_type": "g",
    "cta_url": "http:\/\/www.okuneva.com\/fugiat-sunt-nihil-accusantium-harum-mollitia.html",
    "event_title": "k",
    "event_start": "2026-06-01T11:41:47",
    "event_end": "2052-06-24",
    "offer_coupon_code": "n",
    "offer_terms": "g",
    "scheduled_at": "2052-06-24"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/local-seo/posts';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'gmb_location_id' => 16,
            'type' => 'STANDARD',
            'summary' => 'n',
            'cta_type' => 'g',
            'cta_url' => 'http://www.okuneva.com/fugiat-sunt-nihil-accusantium-harum-mollitia.html',
            'event_title' => 'k',
            'event_start' => '2026-06-01T11:41:47',
            'event_end' => '2052-06-24',
            'offer_coupon_code' => 'n',
            'offer_terms' => 'g',
            'scheduled_at' => '2052-06-24',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

POST api/v1/local-seo/posts

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

gmb_location_id   integer     

Example: 16

type   string     

Example: STANDARD

Must be one of:
  • STANDARD
  • EVENT
  • OFFER
summary   string     

Must not be greater than 1500 characters. Example: n

cta_type   string  optional    

Must not be greater than 50 characters. Example: g

cta_url   string  optional    

Must be a valid URL. Must not be greater than 500 characters. Example: http://www.okuneva.com/fugiat-sunt-nihil-accusantium-harum-mollitia.html

event_title   string  optional    

Must not be greater than 255 characters. Example: k

event_start   string  optional    

Must be a valid date. Example: 2026-06-01T11:41:47

event_end   string  optional    

Must be a valid date. Must be a date after or equal to event_start. Example: 2052-06-24

offer_coupon_code   string  optional    

Must not be greater than 50 characters. Example: n

offer_terms   string  optional    

Must not be greater than 500 characters. Example: g

scheduled_at   string  optional    

Must be a valid date. Must be a date after now. Example: 2052-06-24

POST api/v1/local-seo/gmb/sync

requires authentication

Example request:
curl --request POST \
    "https://app.grandranker.com/api/v1/local-seo/gmb/sync" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.grandranker.com/api/v1/local-seo/gmb/sync"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/local-seo/gmb/sync';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

POST api/v1/local-seo/gmb/sync

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

PATCH api/v1/local-seo/recommendations/{actionId}

requires authentication

Example request:
curl --request PATCH \
    "https://app.grandranker.com/api/v1/local-seo/recommendations/architecto" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"status\": \"dismissed\"
}"
const url = new URL(
    "https://app.grandranker.com/api/v1/local-seo/recommendations/architecto"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "status": "dismissed"
};

fetch(url, {
    method: "PATCH",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/local-seo/recommendations/architecto';
$response = $client->patch(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'status' => 'dismissed',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

PATCH api/v1/local-seo/recommendations/{actionId}

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

actionId   string     

Example: architecto

Body Parameters

status   string     

Example: dismissed

Must be one of:
  • pending
  • in_progress
  • completed
  • dismissed

POST api/v1/local-seo/geogrid/scan

requires authentication

Example request:
curl --request POST \
    "https://app.grandranker.com/api/v1/local-seo/geogrid/scan" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"keyword\": \"b\",
    \"gmb_location_id\": 16,
    \"city\": \"n\",
    \"grid_size\": 5,
    \"radius_miles\": 7
}"
const url = new URL(
    "https://app.grandranker.com/api/v1/local-seo/geogrid/scan"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "keyword": "b",
    "gmb_location_id": 16,
    "city": "n",
    "grid_size": 5,
    "radius_miles": 7
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/local-seo/geogrid/scan';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'keyword' => 'b',
            'gmb_location_id' => 16,
            'city' => 'n',
            'grid_size' => 5,
            'radius_miles' => 7,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

POST api/v1/local-seo/geogrid/scan

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

keyword   string     

Must not be greater than 255 characters. Example: b

gmb_location_id   integer  optional    

Example: 16

city   string  optional    

Must not be greater than 255 characters. Example: n

grid_size   integer     

Example: 5

Must be one of:
  • 3
  • 5
  • 7
radius_miles   number     

Must be at least 1. Must not be greater than 50. Example: 7

Plugin

POST api/v1/plugin/connect

requires authentication

Example request:
curl --request POST \
    "https://app.grandranker.com/api/v1/plugin/connect" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"site_url\": \"http:\\/\\/www.bailey.biz\\/quos-velit-et-fugiat-sunt-nihil-accusantium-harum.html\"
}"
const url = new URL(
    "https://app.grandranker.com/api/v1/plugin/connect"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "site_url": "http:\/\/www.bailey.biz\/quos-velit-et-fugiat-sunt-nihil-accusantium-harum.html"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/plugin/connect';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'site_url' => 'http://www.bailey.biz/quos-velit-et-fugiat-sunt-nihil-accusantium-harum.html',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

POST api/v1/plugin/connect

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

site_url   string     

Must be a valid URL. Must not be greater than 500 characters. Example: http://www.bailey.biz/quos-velit-et-fugiat-sunt-nihil-accusantium-harum.html

GET api/v1/plugin/status

requires authentication

Example request:
curl --request GET \
    --get "https://app.grandranker.com/api/v1/plugin/status" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.grandranker.com/api/v1/plugin/status"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/plugin/status';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

GET api/v1/plugin/status

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

DELETE api/v1/plugin/disconnect

requires authentication

Example request:
curl --request DELETE \
    "https://app.grandranker.com/api/v1/plugin/disconnect" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.grandranker.com/api/v1/plugin/disconnect"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/plugin/disconnect';
$response = $client->delete(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

DELETE api/v1/plugin/disconnect

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

GET api/v1/plugin/deliveries

requires authentication

Example request:
curl --request GET \
    --get "https://app.grandranker.com/api/v1/plugin/deliveries" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.grandranker.com/api/v1/plugin/deliveries"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/plugin/deliveries';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

GET api/v1/plugin/deliveries

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

POST api/v1/plugin/deliveries/{pluginDelivery_id}/confirm

requires authentication

Example request:
curl --request POST \
    "https://app.grandranker.com/api/v1/plugin/deliveries/16/confirm" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"post_id\": 16,
    \"url\": \"http:\\/\\/bailey.com\\/\",
    \"error\": \"m\"
}"
const url = new URL(
    "https://app.grandranker.com/api/v1/plugin/deliveries/16/confirm"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "post_id": 16,
    "url": "http:\/\/bailey.com\/",
    "error": "m"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/plugin/deliveries/16/confirm';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'post_id' => 16,
            'url' => 'http://bailey.com/',
            'error' => 'm',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

POST api/v1/plugin/deliveries/{pluginDelivery_id}/confirm

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

pluginDelivery_id   integer     

The ID of the pluginDelivery. Example: 16

Body Parameters

post_id   integer  optional    

Example: 16

url   string  optional    

Must be a valid URL. Must not be greater than 2000 characters. Example: http://bailey.com/

error   string  optional    

Must not be greater than 2000 characters. Example: m

Rank Tracking

GET api/v1/rank-tracking/overview

requires authentication

Example request:
curl --request GET \
    --get "https://app.grandranker.com/api/v1/rank-tracking/overview" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.grandranker.com/api/v1/rank-tracking/overview"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/rank-tracking/overview';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

GET api/v1/rank-tracking/overview

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

GET api/v1/rank-tracking/keywords

requires authentication

Example request:
curl --request GET \
    --get "https://app.grandranker.com/api/v1/rank-tracking/keywords" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.grandranker.com/api/v1/rank-tracking/keywords"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/rank-tracking/keywords';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

GET api/v1/rank-tracking/keywords

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

GET api/v1/rank-tracking/keywords/{id}/history

requires authentication

Example request:
curl --request GET \
    --get "https://app.grandranker.com/api/v1/rank-tracking/keywords/architecto/history" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.grandranker.com/api/v1/rank-tracking/keywords/architecto/history"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/rank-tracking/keywords/architecto/history';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

GET api/v1/rank-tracking/keywords/{id}/history

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   string     

The ID of the keyword. Example: architecto

GET api/v1/rank-tracking/distribution

requires authentication

Example request:
curl --request GET \
    --get "https://app.grandranker.com/api/v1/rank-tracking/distribution" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.grandranker.com/api/v1/rank-tracking/distribution"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/rank-tracking/distribution';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

GET api/v1/rank-tracking/distribution

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

GET api/v1/rank-tracking/top-movers

requires authentication

Example request:
curl --request GET \
    --get "https://app.grandranker.com/api/v1/rank-tracking/top-movers" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.grandranker.com/api/v1/rank-tracking/top-movers"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/rank-tracking/top-movers';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

GET api/v1/rank-tracking/top-movers

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

POST api/v1/rank-tracking/keywords/{id}/toggle

requires authentication

Example request:
curl --request POST \
    "https://app.grandranker.com/api/v1/rank-tracking/keywords/architecto/toggle" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.grandranker.com/api/v1/rank-tracking/keywords/architecto/toggle"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/rank-tracking/keywords/architecto/toggle';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

POST api/v1/rank-tracking/keywords/{id}/toggle

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   string     

The ID of the keyword. Example: architecto

POST api/v1/rank-tracking/bulk-track

requires authentication

Example request:
curl --request POST \
    "https://app.grandranker.com/api/v1/rank-tracking/bulk-track" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"keyword_ids\": [
        16
    ],
    \"track\": false
}"
const url = new URL(
    "https://app.grandranker.com/api/v1/rank-tracking/bulk-track"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "keyword_ids": [
        16
    ],
    "track": false
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/rank-tracking/bulk-track';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'keyword_ids' => [16],
            'track' => false,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

POST api/v1/rank-tracking/bulk-track

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

keyword_ids   integer[]  optional    
track   boolean     

Example: false

POST api/v1/rank-tracking/refresh

requires authentication

Example request:
curl --request POST \
    "https://app.grandranker.com/api/v1/rank-tracking/refresh" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.grandranker.com/api/v1/rank-tracking/refresh"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/rank-tracking/refresh';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

POST api/v1/rank-tracking/refresh

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

Schema

POST api/v1/schema/generate

requires authentication

Example request:
curl --request POST \
    "https://app.grandranker.com/api/v1/schema/generate" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"article_uuid\": \"6ff8f7f6-1eb3-3525-be4a-3932c805afed\"
}"
const url = new URL(
    "https://app.grandranker.com/api/v1/schema/generate"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "article_uuid": "6ff8f7f6-1eb3-3525-be4a-3932c805afed"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/schema/generate';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'article_uuid' => '6ff8f7f6-1eb3-3525-be4a-3932c805afed',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

POST api/v1/schema/generate

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

article_uuid   string     

Example: 6ff8f7f6-1eb3-3525-be4a-3932c805afed

Settings

GET api/v1/settings/brand-profile

requires authentication

Example request:
curl --request GET \
    --get "https://app.grandranker.com/api/v1/settings/brand-profile" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.grandranker.com/api/v1/settings/brand-profile"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/settings/brand-profile';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

GET api/v1/settings/brand-profile

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

GET api/v1/settings/local-seo

requires authentication

Example request:
curl --request GET \
    --get "https://app.grandranker.com/api/v1/settings/local-seo" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.grandranker.com/api/v1/settings/local-seo"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/settings/local-seo';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

GET api/v1/settings/local-seo

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

GET api/v1/settings/articles

requires authentication

Example request:
curl --request GET \
    --get "https://app.grandranker.com/api/v1/settings/articles" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.grandranker.com/api/v1/settings/articles"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/settings/articles';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

GET api/v1/settings/articles

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

PATCH api/v1/settings/business

requires authentication

Example request:
curl --request PATCH \
    "https://app.grandranker.com/api/v1/settings/business" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"business_name\": \"b\",
    \"website_url\": \"http:\\/\\/bailey.com\\/\",
    \"language\": \"mi\",
    \"country\": \"yv\",
    \"product_description\": \"d\",
    \"industry\": \"l\"
}"
const url = new URL(
    "https://app.grandranker.com/api/v1/settings/business"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "business_name": "b",
    "website_url": "http:\/\/bailey.com\/",
    "language": "mi",
    "country": "yv",
    "product_description": "d",
    "industry": "l"
};

fetch(url, {
    method: "PATCH",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/settings/business';
$response = $client->patch(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'business_name' => 'b',
            'website_url' => 'http://bailey.com/',
            'language' => 'mi',
            'country' => 'yv',
            'product_description' => 'd',
            'industry' => 'l',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

PATCH api/v1/settings/business

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

business_name   string  optional    

Must not be greater than 255 characters. Example: b

website_url   string  optional    

Must be a valid URL. Must not be greater than 500 characters. Example: http://bailey.com/

language   string  optional    

Must be 2 characters. Example: mi

country   string  optional    

Must not be greater than 2 characters. Example: yv

product_description   string  optional    

Must not be greater than 2000 characters. Example: d

industry   string  optional    

Must not be greater than 255 characters. Example: l

PATCH api/v1/settings/audience

requires authentication

Example request:
curl --request PATCH \
    "https://app.grandranker.com/api/v1/settings/audience" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"target_audience\": [
        \"b\"
    ],
    \"competitors\": [
        \"n\"
    ],
    \"icp_description\": \"g\",
    \"pain_points\": [
        \"z\"
    ]
}"
const url = new URL(
    "https://app.grandranker.com/api/v1/settings/audience"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "target_audience": [
        "b"
    ],
    "competitors": [
        "n"
    ],
    "icp_description": "g",
    "pain_points": [
        "z"
    ]
};

fetch(url, {
    method: "PATCH",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/settings/audience';
$response = $client->patch(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'target_audience' => ['b'],
            'competitors' => ['n'],
            'icp_description' => 'g',
            'pain_points' => ['z'],
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

PATCH api/v1/settings/audience

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

target_audience   string[]  optional    

Must not be greater than 255 characters.

competitors   string[]  optional    

Must not be greater than 500 characters.

icp_description   string  optional    

Must not be greater than 2000 characters. Example: g

pain_points   string[]  optional    

Must not be greater than 500 characters.

PATCH api/v1/settings/local-seo

requires authentication

Example request:
curl --request PATCH \
    "https://app.grandranker.com/api/v1/settings/local-seo" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"enabled\": false,
    \"business_type\": \"hybrid\",
    \"city\": \"b\",
    \"state_region\": \"n\",
    \"neighborhood\": \"g\",
    \"service_categories\": [
        \"z\"
    ]
}"
const url = new URL(
    "https://app.grandranker.com/api/v1/settings/local-seo"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "enabled": false,
    "business_type": "hybrid",
    "city": "b",
    "state_region": "n",
    "neighborhood": "g",
    "service_categories": [
        "z"
    ]
};

fetch(url, {
    method: "PATCH",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/settings/local-seo';
$response = $client->patch(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'enabled' => false,
            'business_type' => 'hybrid',
            'city' => 'b',
            'state_region' => 'n',
            'neighborhood' => 'g',
            'service_categories' => ['z'],
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

PATCH api/v1/settings/local-seo

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

enabled   boolean     

Example: false

business_type   string     

Example: hybrid

Must be one of:
  • storefront
  • service_area
  • hybrid
city   string  optional    

Must not be greater than 255 characters. Example: b

state_region   string  optional    

Must not be greater than 255 characters. Example: n

neighborhood   string  optional    

Must not be greater than 255 characters. Example: g

service_categories   string[]  optional    

Must not be greater than 255 characters.

PATCH api/v1/settings/articles

requires authentication

Example request:
curl --request PATCH \
    "https://app.grandranker.com/api/v1/settings/articles" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"auto_publish\": false,
    \"show_branding\": true,
    \"article_style\": \"professional\",
    \"global_instructions\": \"b\",
    \"include_emojis\": true,
    \"use_first_person\": false,
    \"image_style\": \"pencil_sketch\",
    \"include_youtube_videos\": false,
    \"author_name\": \"n\",
    \"author_title\": \"g\",
    \"enable_cta\": false,
    \"brand_color\": \"zmiyvdl\",
    \"cta_text\": \"j\",
    \"cta_url\": \"http:\\/\\/tillman.com\\/\",
    \"cta_style\": \"inline\",
    \"cta_position\": \"bottom\",
    \"ctas_per_article\": 1,
    \"sitemap_url\": \"http:\\/\\/www.dubuque.net\\/quo-omnis-nostrum-aut-adipisci\",
    \"blog_root_url\": \"https:\\/\\/cronin.com\\/incidunt-iure-odit-et-et-modi-ipsum.html\",
    \"use_sitemap_links\": true,
    \"example_articles\": [
        \"p\"
    ]
}"
const url = new URL(
    "https://app.grandranker.com/api/v1/settings/articles"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "auto_publish": false,
    "show_branding": true,
    "article_style": "professional",
    "global_instructions": "b",
    "include_emojis": true,
    "use_first_person": false,
    "image_style": "pencil_sketch",
    "include_youtube_videos": false,
    "author_name": "n",
    "author_title": "g",
    "enable_cta": false,
    "brand_color": "zmiyvdl",
    "cta_text": "j",
    "cta_url": "http:\/\/tillman.com\/",
    "cta_style": "inline",
    "cta_position": "bottom",
    "ctas_per_article": 1,
    "sitemap_url": "http:\/\/www.dubuque.net\/quo-omnis-nostrum-aut-adipisci",
    "blog_root_url": "https:\/\/cronin.com\/incidunt-iure-odit-et-et-modi-ipsum.html",
    "use_sitemap_links": true,
    "example_articles": [
        "p"
    ]
};

fetch(url, {
    method: "PATCH",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/settings/articles';
$response = $client->patch(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'auto_publish' => false,
            'show_branding' => true,
            'article_style' => 'professional',
            'global_instructions' => 'b',
            'include_emojis' => true,
            'use_first_person' => false,
            'image_style' => 'pencil_sketch',
            'include_youtube_videos' => false,
            'author_name' => 'n',
            'author_title' => 'g',
            'enable_cta' => false,
            'brand_color' => 'zmiyvdl',
            'cta_text' => 'j',
            'cta_url' => 'http://tillman.com/',
            'cta_style' => 'inline',
            'cta_position' => 'bottom',
            'ctas_per_article' => 1,
            'sitemap_url' => 'http://www.dubuque.net/quo-omnis-nostrum-aut-adipisci',
            'blog_root_url' => 'https://cronin.com/incidunt-iure-odit-et-et-modi-ipsum.html',
            'use_sitemap_links' => true,
            'example_articles' => ['p'],
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

PATCH api/v1/settings/articles

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

auto_publish   boolean  optional    

Example: false

show_branding   boolean  optional    

Example: true

article_style   string  optional    

Example: professional

Must be one of:
  • professional
  • casual
  • friendly
  • academic
global_instructions   string  optional    

Must not be greater than 2000 characters. Example: b

include_emojis   boolean  optional    

Example: true

use_first_person   boolean  optional    

Example: false

image_style   string  optional    

Example: pencil_sketch

Must be one of:
  • watercolor
  • cinematic
  • digital_illustration
  • pencil_sketch
  • real_life
include_youtube_videos   boolean  optional    

Example: false

author_name   string  optional    

Must not be greater than 100 characters. Example: n

author_title   string  optional    

Must not be greater than 100 characters. Example: g

enable_cta   boolean  optional    

Example: false

brand_color   string  optional    

Must match the regex /^#[0-9A-Fa-f]{6}$/. Must not be greater than 7 characters. Example: zmiyvdl

cta_text   string  optional    

Must not be greater than 100 characters. Example: j

cta_url   string  optional    

Must be a valid URL. Must not be greater than 255 characters. Example: http://tillman.com/

cta_style   string  optional    

Example: inline

Must be one of:
  • button
  • banner
  • inline
cta_position   string  optional    

Example: bottom

Must be one of:
  • bottom
  • both
  • inline
ctas_per_article   integer  optional    

Must be at least 1. Must not be greater than 3. Example: 1

sitemap_url   string  optional    

Must be a valid URL. Must not be greater than 500 characters. Example: http://www.dubuque.net/quo-omnis-nostrum-aut-adipisci

blog_root_url   string  optional    

Must be a valid URL. Must not be greater than 500 characters. Example: https://cronin.com/incidunt-iure-odit-et-et-modi-ipsum.html

use_sitemap_links   boolean  optional    

Example: true

example_articles   string[]  optional    

Must be a valid URL. Must not be greater than 500 characters.

POST api/v1/settings/ecommerce/toggle

requires authentication

Example request:
curl --request POST \
    "https://app.grandranker.com/api/v1/settings/ecommerce/toggle" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"enabled\": true
}"
const url = new URL(
    "https://app.grandranker.com/api/v1/settings/ecommerce/toggle"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "enabled": true
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/settings/ecommerce/toggle';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'enabled' => true,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

POST api/v1/settings/ecommerce/toggle

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

enabled   boolean     

Example: true

Sitemap

GET api/v1/sitemap/entries

requires authentication

Example request:
curl --request GET \
    --get "https://app.grandranker.com/api/v1/sitemap/entries" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.grandranker.com/api/v1/sitemap/entries"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/sitemap/entries';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

GET api/v1/sitemap/entries

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

POST api/v1/sitemap/suggested-url

requires authentication

Example request:
curl --request POST \
    "https://app.grandranker.com/api/v1/sitemap/suggested-url" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"content_type\": \"guide\",
    \"category\": \"b\",
    \"slug\": \"n\"
}"
const url = new URL(
    "https://app.grandranker.com/api/v1/sitemap/suggested-url"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "content_type": "guide",
    "category": "b",
    "slug": "n"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/sitemap/suggested-url';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'content_type' => 'guide',
            'category' => 'b',
            'slug' => 'n',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

POST api/v1/sitemap/suggested-url

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

content_type   string     

Example: guide

Must be one of:
  • blog
  • guide
category   string     

Must not be greater than 255 characters. Example: b

slug   string     

Must not be greater than 255 characters. Example: n

POST api/v1/sitemap/entries

requires authentication

Example request:
curl --request POST \
    "https://app.grandranker.com/api/v1/sitemap/entries" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"content_type\": \"guide\",
    \"category\": \"b\",
    \"url_pattern\": \"n\",
    \"priority\": 16
}"
const url = new URL(
    "https://app.grandranker.com/api/v1/sitemap/entries"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "content_type": "guide",
    "category": "b",
    "url_pattern": "n",
    "priority": 16
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/sitemap/entries';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'content_type' => 'guide',
            'category' => 'b',
            'url_pattern' => 'n',
            'priority' => 16,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

POST api/v1/sitemap/entries

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

content_type   string     

Example: guide

Must be one of:
  • blog
  • guide
category   string     

Must not be greater than 255 characters. Example: b

url_pattern   string     

Must not be greater than 500 characters. Example: n

priority   integer  optional    

Example: 16

PATCH api/v1/sitemap/entries/{id}

requires authentication

Example request:
curl --request PATCH \
    "https://app.grandranker.com/api/v1/sitemap/entries/architecto" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"content_type\": \"guide\",
    \"category\": \"b\",
    \"url_pattern\": \"n\",
    \"priority\": 16
}"
const url = new URL(
    "https://app.grandranker.com/api/v1/sitemap/entries/architecto"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "content_type": "guide",
    "category": "b",
    "url_pattern": "n",
    "priority": 16
};

fetch(url, {
    method: "PATCH",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/sitemap/entries/architecto';
$response = $client->patch(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'content_type' => 'guide',
            'category' => 'b',
            'url_pattern' => 'n',
            'priority' => 16,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

PATCH api/v1/sitemap/entries/{id}

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   string     

The ID of the entry. Example: architecto

Body Parameters

content_type   string  optional    

Example: guide

Must be one of:
  • blog
  • guide
category   string  optional    

Must not be greater than 255 characters. Example: b

url_pattern   string  optional    

Must not be greater than 500 characters. Example: n

priority   integer  optional    

Example: 16

DELETE api/v1/sitemap/entries/{id}

requires authentication

Example request:
curl --request DELETE \
    "https://app.grandranker.com/api/v1/sitemap/entries/architecto" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.grandranker.com/api/v1/sitemap/entries/architecto"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/sitemap/entries/architecto';
$response = $client->delete(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

DELETE api/v1/sitemap/entries/{id}

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   string     

The ID of the entry. Example: architecto

Subscription

GET api/v1/subscription

requires authentication

Example request:
curl --request GET \
    --get "https://app.grandranker.com/api/v1/subscription" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.grandranker.com/api/v1/subscription"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/subscription';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

GET api/v1/subscription

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

GET api/v1/subscription/plans

requires authentication

Example request:
curl --request GET \
    --get "https://app.grandranker.com/api/v1/subscription/plans" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.grandranker.com/api/v1/subscription/plans"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/subscription/plans';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

GET api/v1/subscription/plans

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

POST api/v1/subscription

requires authentication

Example request:
curl --request POST \
    "https://app.grandranker.com/api/v1/subscription" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"tier\": \"semiannual\",
    \"coupon_code\": \"b\"
}"
const url = new URL(
    "https://app.grandranker.com/api/v1/subscription"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "tier": "semiannual",
    "coupon_code": "b"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/subscription';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'tier' => 'semiannual',
            'coupon_code' => 'b',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

POST api/v1/subscription

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

tier   string     

Example: semiannual

Must be one of:
  • monthly
  • semiannual
  • yearly
coupon_code   string  optional    

Must not be greater than 80 characters. Example: b

PATCH api/v1/subscription

requires authentication

Example request:
curl --request PATCH \
    "https://app.grandranker.com/api/v1/subscription" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"tier\": \"semiannual\"
}"
const url = new URL(
    "https://app.grandranker.com/api/v1/subscription"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "tier": "semiannual"
};

fetch(url, {
    method: "PATCH",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/subscription';
$response = $client->patch(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'tier' => 'semiannual',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

PATCH api/v1/subscription

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

tier   string     

Example: semiannual

Must be one of:
  • monthly
  • semiannual
  • yearly

DELETE api/v1/subscription

requires authentication

Example request:
curl --request DELETE \
    "https://app.grandranker.com/api/v1/subscription" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.grandranker.com/api/v1/subscription"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/subscription';
$response = $client->delete(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

DELETE api/v1/subscription

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

requires authentication

Example request:
curl --request POST \
    "https://app.grandranker.com/api/v1/subscription/checkout-link" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"tier\": \"semiannual\",
    \"success_url\": \"http:\\/\\/www.bailey.biz\\/quos-velit-et-fugiat-sunt-nihil-accusantium-harum.html\",
    \"cancel_url\": \"https:\\/\\/www.runte.com\\/ab-provident-perspiciatis-quo-omnis-nostrum-aut-adipisci\"
}"
const url = new URL(
    "https://app.grandranker.com/api/v1/subscription/checkout-link"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "tier": "semiannual",
    "success_url": "http:\/\/www.bailey.biz\/quos-velit-et-fugiat-sunt-nihil-accusantium-harum.html",
    "cancel_url": "https:\/\/www.runte.com\/ab-provident-perspiciatis-quo-omnis-nostrum-aut-adipisci"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/subscription/checkout-link';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'tier' => 'semiannual',
            'success_url' => 'http://www.bailey.biz/quos-velit-et-fugiat-sunt-nihil-accusantium-harum.html',
            'cancel_url' => 'https://www.runte.com/ab-provident-perspiciatis-quo-omnis-nostrum-aut-adipisci',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

POST api/v1/subscription/billing-portal

requires authentication

Example request:
curl --request POST \
    "https://app.grandranker.com/api/v1/subscription/billing-portal" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.grandranker.com/api/v1/subscription/billing-portal"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/subscription/billing-portal';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

POST api/v1/subscription/billing-portal

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

Webhooks

GET api/v1/webhooks

requires authentication

Example request:
curl --request GET \
    --get "https://app.grandranker.com/api/v1/webhooks" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.grandranker.com/api/v1/webhooks"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/webhooks';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

GET api/v1/webhooks

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

GET api/v1/webhooks/deliveries/{deliveryId}

requires authentication

Example request:
curl --request GET \
    --get "https://app.grandranker.com/api/v1/webhooks/deliveries/architecto" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.grandranker.com/api/v1/webhooks/deliveries/architecto"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/webhooks/deliveries/architecto';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

GET api/v1/webhooks/deliveries/{deliveryId}

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

deliveryId   string     

Example: architecto

GET api/v1/webhooks/{id}

requires authentication

Example request:
curl --request GET \
    --get "https://app.grandranker.com/api/v1/webhooks/architecto" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.grandranker.com/api/v1/webhooks/architecto"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/webhooks/architecto';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

GET api/v1/webhooks/{id}

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   string     

The ID of the webhook. Example: architecto

GET api/v1/webhooks/{id}/secret

requires authentication

Example request:
curl --request GET \
    --get "https://app.grandranker.com/api/v1/webhooks/architecto/secret" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.grandranker.com/api/v1/webhooks/architecto/secret"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/webhooks/architecto/secret';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

GET api/v1/webhooks/{id}/secret

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   string     

The ID of the webhook. Example: architecto

GET api/v1/webhooks/{id}/deliveries

requires authentication

Example request:
curl --request GET \
    --get "https://app.grandranker.com/api/v1/webhooks/architecto/deliveries" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.grandranker.com/api/v1/webhooks/architecto/deliveries"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/webhooks/architecto/deliveries';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

GET api/v1/webhooks/{id}/deliveries

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   string     

The ID of the webhook. Example: architecto

POST api/v1/webhooks

requires authentication

Example request:
curl --request POST \
    "https://app.grandranker.com/api/v1/webhooks" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": \"b\",
    \"url\": \"http:\\/\\/bailey.com\\/\",
    \"events\": [
        \"architecto\"
    ]
}"
const url = new URL(
    "https://app.grandranker.com/api/v1/webhooks"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "name": "b",
    "url": "http:\/\/bailey.com\/",
    "events": [
        "architecto"
    ]
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/webhooks';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'name' => 'b',
            'url' => 'http://bailey.com/',
            'events' => ['architecto'],
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

POST api/v1/webhooks

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

name   string     

Must not be greater than 255 characters. Example: b

url   string     

Must be a valid URL. Must not be greater than 2048 characters. Example: http://bailey.com/

events   string[]  optional    

POST api/v1/webhooks/deliveries/{deliveryId}/retry

requires authentication

Example request:
curl --request POST \
    "https://app.grandranker.com/api/v1/webhooks/deliveries/architecto/retry" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.grandranker.com/api/v1/webhooks/deliveries/architecto/retry"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/webhooks/deliveries/architecto/retry';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

POST api/v1/webhooks/deliveries/{deliveryId}/retry

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

deliveryId   string     

Example: architecto

PATCH api/v1/webhooks/{id}

requires authentication

Example request:
curl --request PATCH \
    "https://app.grandranker.com/api/v1/webhooks/architecto" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": \"b\",
    \"url\": \"http:\\/\\/bailey.com\\/\",
    \"events\": [
        \"architecto\"
    ],
    \"secret\": \"n\",
    \"auth_type\": \"architecto\",
    \"is_active\": true,
    \"verify_ssl\": false,
    \"timeout\": 22,
    \"retry_count\": 2
}"
const url = new URL(
    "https://app.grandranker.com/api/v1/webhooks/architecto"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "name": "b",
    "url": "http:\/\/bailey.com\/",
    "events": [
        "architecto"
    ],
    "secret": "n",
    "auth_type": "architecto",
    "is_active": true,
    "verify_ssl": false,
    "timeout": 22,
    "retry_count": 2
};

fetch(url, {
    method: "PATCH",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/webhooks/architecto';
$response = $client->patch(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'name' => 'b',
            'url' => 'http://bailey.com/',
            'events' => ['architecto'],
            'secret' => 'n',
            'auth_type' => 'architecto',
            'is_active' => true,
            'verify_ssl' => false,
            'timeout' => 22,
            'retry_count' => 2,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

PATCH api/v1/webhooks/{id}

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   string     

The ID of the webhook. Example: architecto

Body Parameters

name   string  optional    

Must not be greater than 255 characters. Example: b

url   string  optional    

Must be a valid URL. Must not be greater than 2048 characters. Example: http://bailey.com/

events   string[]  optional    
secret   string  optional    

Must not be greater than 255 characters. Example: n

auth_type   string  optional    

Example: architecto

headers   object  optional    
is_active   boolean  optional    

Example: true

verify_ssl   boolean  optional    

Example: false

timeout   integer  optional    

Must be at least 5. Must not be greater than 60. Example: 22

retry_count   integer  optional    

Must be at least 0. Must not be greater than 5. Example: 2

DELETE api/v1/webhooks/{id}

requires authentication

Example request:
curl --request DELETE \
    "https://app.grandranker.com/api/v1/webhooks/architecto" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.grandranker.com/api/v1/webhooks/architecto"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/webhooks/architecto';
$response = $client->delete(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

DELETE api/v1/webhooks/{id}

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   string     

The ID of the webhook. Example: architecto

POST api/v1/webhooks/{id}/toggle

requires authentication

Example request:
curl --request POST \
    "https://app.grandranker.com/api/v1/webhooks/architecto/toggle" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.grandranker.com/api/v1/webhooks/architecto/toggle"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/webhooks/architecto/toggle';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

POST api/v1/webhooks/{id}/toggle

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   string     

The ID of the webhook. Example: architecto

POST api/v1/webhooks/{id}/test

requires authentication

Example request:
curl --request POST \
    "https://app.grandranker.com/api/v1/webhooks/architecto/test" \
    --header "Authorization: Bearer {YOUR_API_TOKEN}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.grandranker.com/api/v1/webhooks/architecto/test"
);

const headers = {
    "Authorization": "Bearer {YOUR_API_TOKEN}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.grandranker.com/api/v1/webhooks/architecto/test';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_API_TOKEN}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

POST api/v1/webhooks/{id}/test

Headers

Authorization        

Example: Bearer {YOUR_API_TOKEN}

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   string     

The ID of the webhook. Example: architecto