Endpoint-by-endpoint reference with authentication scopes, parameters, request and response examples, and code samples in five languages.
Base URL: https://www.gmbradar.com
Beta API warning: The GMBRadar API is still under development. You may encounter errors, unexpected behavior, incomplete features, or temporary interruptions. Endpoints, parameters, response formats, and behavior may change as we improve the API. Please handle errors in your integration and avoid relying on the Beta API for critical production workflows.
Authentication
Send an API key in the Authorization header. Use the scopes shown for each endpoint.
Get an API key: Sign in at gmbradar.com, then use the left-side menu and open Account → API Access, or go directly to gmbradar.com/account/api-access to create and manage API keys.
using System;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
var apiKey = Environment.GetEnvironmentVariable("GMBRADAR_API_KEY");
using (var client = new HttpClient())
{
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", apiKey);
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
var response = await client.GetAsync("https://www.gmbradar.com/api/v1/Test");
var responseText = await response.Content.ReadAsStringAsync();
Console.WriteLine((int)response.StatusCode);
Console.WriteLine(responseText);
}
GET/api/v1/TestRead
2. TestRead
Required scope: `businesses:read`
Verify that the key has business read access.
Input parameters
No parameters.
Inputs as documented: No parameters.
Example JSON request body
No JSON request body documented for this endpoint.
using System;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
var apiKey = Environment.GetEnvironmentVariable("GMBRADAR_API_KEY");
using (var client = new HttpClient())
{
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", apiKey);
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
var response = await client.GetAsync("https://www.gmbradar.com/api/v1/TestRead");
var responseText = await response.Content.ReadAsStringAsync();
Console.WriteLine((int)response.StatusCode);
Console.WriteLine(responseText);
}
POST/api/v1/TestWrite
3. TestWrite
Required scope: `businesses:write`
Verify that the key has business write access.
Input parameters
No parameters.
Inputs as documented: No parameters.
Example JSON request body
No JSON request body documented for this endpoint.
using System;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
var apiKey = Environment.GetEnvironmentVariable("GMBRADAR_API_KEY");
using (var client = new HttpClient())
{
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", apiKey);
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
var response = await client.PostAsync("https://www.gmbradar.com/api/v1/TestWrite", new StringContent(""));
var responseText = await response.Content.ReadAsStringAsync();
Console.WriteLine((int)response.StatusCode);
Console.WriteLine(responseText);
}
GET/api/v1/Account
4. Account
Required scope: `account:read`
Retrieve account information for the authenticated user.
Input parameters
No parameters.
Inputs as documented: No parameters.
Example JSON request body
No JSON request body documented for this endpoint.
using System;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
var apiKey = Environment.GetEnvironmentVariable("GMBRADAR_API_KEY");
using (var client = new HttpClient())
{
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", apiKey);
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
var response = await client.GetAsync("https://www.gmbradar.com/api/v1/Account");
var responseText = await response.Content.ReadAsStringAsync();
Console.WriteLine((int)response.StatusCode);
Console.WriteLine(responseText);
}
GET/api/v1/Businesses
5. Businesses
Required scope: `businesses:read`
List businesses owned by the authenticated account, or retrieve one business by public GUID.
Input parameters
Parameter
Type
Requirement
Description / validation
businessId
string
Optional / conditional
optional, string: business GUID. If supplied, returns one business
page
integer
Optional / conditional
optional integer, default 1: must be >= 1 when listing
pageSize
integer
Optional / conditional
optional integer, default 50: 1–100 when listing
Inputs as documented: businessId (optional, string): business GUID. If supplied, returns one business. page (optional integer, default 1): must be >= 1 when listing. pageSize (optional integer, default 50): 1–100 when listing.
Example JSON request body
No JSON request body documented for this endpoint.
using System;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
var apiKey = Environment.GetEnvironmentVariable("GMBRADAR_API_KEY");
using (var client = new HttpClient())
{
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", apiKey);
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
var response = await client.GetAsync("https://www.gmbradar.com/api/v1/Businesses");
var responseText = await response.Content.ReadAsStringAsync();
Console.WriteLine((int)response.StatusCode);
Console.WriteLine(responseText);
}
POST/api/v1/CreateBusiness
6. CreateBusiness
Required scope: `businesses:write`
Add a Google Maps business to the authenticated account using its Google Place ID.
Input parameters
Parameter
Type
Requirement
Description / validation
placeId
string
Required
required string, max 100 chars
lat
—
Optional / conditional
optional decimal, -90 to 90
lng
—
Optional / conditional
optional decimal, -180 to 180
alias
string
Optional / conditional
optional string
Inputs as documented: placeId (required string, max 100 chars); lat (optional decimal, -90 to 90); lng (optional decimal, -180 to 180); alias (optional string).
Latitude/longitude override the coordinates returned by Google when supplied. Duplicate businesses return 409; free-plan limit may return 409; unavailable Place data returns 404.
using System;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
var apiKey = Environment.GetEnvironmentVariable("GMBRADAR_API_KEY");
using (var client = new HttpClient())
{
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", apiKey);
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
var content = new StringContent("{\"placeId\":\"ChIJexamplePlaceId\",\"lat\":33.7215,\"lng\":73.0433,\"alias\":\"Main location\"}", Encoding.UTF8, "application/json");
var response = await client.PostAsync("https://www.gmbradar.com/api/v1/CreateBusiness", content);
var responseText = await response.Content.ReadAsStringAsync();
Console.WriteLine((int)response.StatusCode);
Console.WriteLine(responseText);
}
POST/api/v1/DeleteBusiness
7. DeleteBusiness
Required scope: `businesses:write`
Delete a business belonging to the authenticated account and disable its classic automatic scans.
Input parameters
Parameter
Type
Requirement
Description / validation
businessId
string
Required
required string: business GUID
Inputs as documented: businessId (required string): business GUID.
using System;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
var apiKey = Environment.GetEnvironmentVariable("GMBRADAR_API_KEY");
using (var client = new HttpClient())
{
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", apiKey);
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
var content = new StringContent("{\"businessId\":\"11111111-2222-3333-4444-555555555555\"}", Encoding.UTF8, "application/json");
var response = await client.PostAsync("https://www.gmbradar.com/api/v1/DeleteBusiness", content);
var responseText = await response.Content.ReadAsStringAsync();
Console.WriteLine((int)response.StatusCode);
Console.WriteLine(responseText);
}
GET/api/v1/Groups
8. Groups
Required scope: `groups:read`
List groups, or retrieve one group by public group GUID.
Input parameters
Parameter
Type
Requirement
Description / validation
groupId
string
Optional / conditional
optional string
page
integer
Optional / conditional
optional integer, default 1; values below 1 reset to 1
pageSize
integer
Optional / conditional
optional integer, default 50; values below 1 reset to 50 and above 100 reset to 100
Inputs as documented: groupId (optional string); page (optional integer, default 1; values below 1 reset to 1); pageSize (optional integer, default 50; values below 1 reset to 50 and above 100 reset to 100).
Example JSON request body
No JSON request body documented for this endpoint.
using System;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
var apiKey = Environment.GetEnvironmentVariable("GMBRADAR_API_KEY");
using (var client = new HttpClient())
{
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", apiKey);
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
var response = await client.GetAsync("https://www.gmbradar.com/api/v1/Groups");
var responseText = await response.Content.ReadAsStringAsync();
Console.WriteLine((int)response.StatusCode);
Console.WriteLine(responseText);
}
POST/api/v1/CreateGroup
9. CreateGroup
Required scope: `groups:write`
Create a group, optionally nested under a parent group.
Input parameters
Parameter
Type
Requirement
Description / validation
name
string
Required
required string, max 300 chars
description
string
Optional / conditional
optional string
parentGroupId
GUID
Optional / conditional
optional public group GUID; must belong to the account
Inputs as documented: name (required string, max 300 chars); description (optional string); parentGroupId (optional public group GUID; must belong to the account).
Example JSON request body
{
"name": "Islamabad Clients",
"description": "Businesses managed by the Islamabad team",
"parentGroupId": null
}
using System;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
var apiKey = Environment.GetEnvironmentVariable("GMBRADAR_API_KEY");
using (var client = new HttpClient())
{
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", apiKey);
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
var content = new StringContent("{\"name\":\"Islamabad Clients\",\"description\":\"Businesses managed by the Islamabad team\",\"parentGroupId\":null}", Encoding.UTF8, "application/json");
var response = await client.PostAsync("https://www.gmbradar.com/api/v1/CreateGroup", content);
var responseText = await response.Content.ReadAsStringAsync();
Console.WriteLine((int)response.StatusCode);
Console.WriteLine(responseText);
}
POST/api/v1/UpdateGroup
10. UpdateGroup
Required scope: `groups:write`
Update a group's name, description and optional parent.
Input parameters
Parameter
Type
Requirement
Description / validation
groupId
string
Required
required string, provided as a query or form parameter: body
name
string
Required
required string, max 300 chars
description
—
Optional / conditional
optional
parentGroupId
GUID
Optional / conditional
optional public GUID
Inputs as documented: groupId (required string, provided as a query or form parameter); body name (required string, max 300 chars); description (optional); parentGroupId (optional public GUID).
using System;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
var apiKey = Environment.GetEnvironmentVariable("GMBRADAR_API_KEY");
using (var client = new HttpClient())
{
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", apiKey);
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
var content = new StringContent("{\"name\":\"Islamabad SEO Clients\",\"description\":\"Updated description\",\"parentGroupId\":null}", Encoding.UTF8, "application/json");
var response = await client.PostAsync("https://www.gmbradar.com/api/v1/UpdateGroup", content);
var responseText = await response.Content.ReadAsStringAsync();
Console.WriteLine((int)response.StatusCode);
Console.WriteLine(responseText);
}
POST/api/v1/DeleteGroup
11. DeleteGroup
Required scope: `groups:write`
Delete a group owned by the authenticated user.
Input parameters
Parameter
Type
Requirement
Description / validation
groupId
string
Required
required string: public group GUID
Inputs as documented: groupId (required string): public group GUID.
using System;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
var apiKey = Environment.GetEnvironmentVariable("GMBRADAR_API_KEY");
using (var client = new HttpClient())
{
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", apiKey);
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
var content = new StringContent("{\"groupId\":\"22222222-3333-4444-5555-666666666666\"}", Encoding.UTF8, "application/json");
var response = await client.PostAsync("https://www.gmbradar.com/api/v1/DeleteGroup", content);
var responseText = await response.Content.ReadAsStringAsync();
Console.WriteLine((int)response.StatusCode);
Console.WriteLine(responseText);
}
GET/api/v1/GroupBusinesses
12. GroupBusinesses
Required scope: `groups:read`
List businesses assigned to a group, with optional text search.
Input parameters
Parameter
Type
Requirement
Description / validation
groupId
string
Required
required string
page
—
Optional / conditional
default 1, values below 1 become 1
pageSize
—
Optional / conditional
default 50, values below 1 become 50, max 100
search
string
Optional / conditional
optional string
Inputs as documented: groupId (required string); page (default 1, values below 1 become 1); pageSize (default 50, values below 1 become 50, max 100); search (optional string).
Example JSON request body
No JSON request body documented for this endpoint.
using System;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
var apiKey = Environment.GetEnvironmentVariable("GMBRADAR_API_KEY");
using (var client = new HttpClient())
{
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", apiKey);
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
var response = await client.GetAsync("https://www.gmbradar.com/api/v1/GroupBusinesses");
var responseText = await response.Content.ReadAsStringAsync();
Console.WriteLine((int)response.StatusCode);
Console.WriteLine(responseText);
}
GET/api/v1/AvailableGroupBusinesses
13. AvailableGroupBusinesses
Required scope: `groups:read`
List businesses owned by the user that are available to add to the specified group.
Input parameters
Parameter
Type
Requirement
Description / validation
groupId
string
Required
required string
page
—
Optional / conditional
default 1, normalized to >=1
pageSize
—
Optional / conditional
default 50, max 100
search
string
Optional / conditional
optional string
Inputs as documented: groupId (required string); page (default 1, normalized to >=1); pageSize (default 50, max 100); search (optional string).
Example JSON request body
No JSON request body documented for this endpoint.
using System;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
var apiKey = Environment.GetEnvironmentVariable("GMBRADAR_API_KEY");
using (var client = new HttpClient())
{
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", apiKey);
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
var response = await client.GetAsync("https://www.gmbradar.com/api/v1/AvailableGroupBusinesses");
var responseText = await response.Content.ReadAsStringAsync();
Console.WriteLine((int)response.StatusCode);
Console.WriteLine(responseText);
}
POST/api/v1/AddGroupBusinesses
14. AddGroupBusinesses
Required scope: `groups:write`
Add one or more businesses to a group.
Input parameters
Parameter
Type
Requirement
Description / validation
groupId
—
Required
required parameter
businessIds
array
Required
required JSON array with at least one business GUID
Inputs as documented: groupId (required parameter); businessIds (required JSON array with at least one business GUID).
using System;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
var apiKey = Environment.GetEnvironmentVariable("GMBRADAR_API_KEY");
using (var client = new HttpClient())
{
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", apiKey);
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
var content = new StringContent("{\"businessIds\":[\"11111111-2222-3333-4444-555555555555\",\"33333333-4444-5555-6666-777777777777\"]}", Encoding.UTF8, "application/json");
var response = await client.PostAsync("https://www.gmbradar.com/api/v1/AddGroupBusinesses", content);
var responseText = await response.Content.ReadAsStringAsync();
Console.WriteLine((int)response.StatusCode);
Console.WriteLine(responseText);
}
POST/api/v1/RemoveGroupBusinesses
15. RemoveGroupBusinesses
Required scope: `groups:write`
Remove one or more businesses from a group.
Input parameters
Parameter
Type
Requirement
Description / validation
groupId
—
Required
required parameter
businessIds
array
Required
required JSON array with at least one business GUID
Inputs as documented: groupId (required parameter); businessIds (required JSON array with at least one business GUID).
using System;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
var apiKey = Environment.GetEnvironmentVariable("GMBRADAR_API_KEY");
using (var client = new HttpClient())
{
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", apiKey);
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
var content = new StringContent("{\"businessIds\":[\"11111111-2222-3333-4444-555555555555\"]}", Encoding.UTF8, "application/json");
var response = await client.PostAsync("https://www.gmbradar.com/api/v1/RemoveGroupBusinesses", content);
var responseText = await response.Content.ReadAsStringAsync();
Console.WriteLine((int)response.StatusCode);
Console.WriteLine(responseText);
}
GET/api/v1/organic-scans
16. ListOrganicScans
Required scope: `scans:read`
List organic scan tasks owned by the authenticated account.
Input parameters
Parameter
Type
Requirement
Description / validation
page
—
Optional / conditional
default 1, >=1
pageSize
—
Optional / conditional
default 50, 1–100
businessId
GUID
Optional / conditional
optional business GUID
search
—
Optional / conditional
optional text filter
Inputs as documented: page (default 1, >=1); pageSize (default 50, 1–100); businessId (optional business GUID); search (optional text filter).
Example JSON request body
No JSON request body documented for this endpoint.
using System;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
var apiKey = Environment.GetEnvironmentVariable("GMBRADAR_API_KEY");
using (var client = new HttpClient())
{
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", apiKey);
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
var response = await client.GetAsync("https://www.gmbradar.com/api/v1/organic-scans");
var responseText = await response.Content.ReadAsStringAsync();
Console.WriteLine((int)response.StatusCode);
Console.WriteLine(responseText);
}
GET/api/v1/organic-scans/{taskId}
17. OrganicScanDetails
Required scope: `scans:read`
Retrieve one organic scan task owned by the authenticated user.
Input parameters
Parameter
Type
Requirement
Description / validation
taskId
string
Required
required path string: public task GUID
Inputs as documented: taskId (required path string): public task GUID.
Example JSON request body
No JSON request body documented for this endpoint.
using System;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
var apiKey = Environment.GetEnvironmentVariable("GMBRADAR_API_KEY");
using (var client = new HttpClient())
{
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", apiKey);
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
var response = await client.GetAsync("https://www.gmbradar.com/api/v1/organic-scans/{taskId}");
var responseText = await response.Content.ReadAsStringAsync();
Console.WriteLine((int)response.StatusCode);
Console.WriteLine(responseText);
}
GET/api/v1/organic-scans/searches
18. OrganicScanSearches
Required scope: `scans:read`
List organic search executions or group them by task. Grouped mode is the default.
Input parameters
Parameter
Type
Requirement
Description / validation
page
—
Optional / conditional
default 1
pageSize
—
Optional / conditional
default 50, 1–100
grouped
—
Optional / conditional
default true
businessId
GUID
Optional / conditional
optional business GUID
taskId
GUID
Optional / conditional
optional task GUID
search
—
Optional / conditional
optional text filter
Inputs as documented: page (default 1); pageSize (default 50, 1–100); grouped (default true); businessId (optional business GUID); taskId (optional task GUID); search (optional text filter).
Example JSON request body
No JSON request body documented for this endpoint.
using System;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
var apiKey = Environment.GetEnvironmentVariable("GMBRADAR_API_KEY");
using (var client = new HttpClient())
{
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", apiKey);
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
var response = await client.GetAsync("https://www.gmbradar.com/api/v1/organic-scans/searches");
var responseText = await response.Content.ReadAsStringAsync();
Console.WriteLine((int)response.StatusCode);
Console.WriteLine(responseText);
}
using System;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
var apiKey = Environment.GetEnvironmentVariable("GMBRADAR_API_KEY");
using (var client = new HttpClient())
{
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", apiKey);
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
var response = await client.GetAsync("https://www.gmbradar.com/api/v1/organic-scans/searches/{searchId}/status");
var responseText = await response.Content.ReadAsStringAsync();
Console.WriteLine((int)response.StatusCode);
Console.WriteLine(responseText);
}
using System;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
var apiKey = Environment.GetEnvironmentVariable("GMBRADAR_API_KEY");
using (var client = new HttpClient())
{
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", apiKey);
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
var response = await client.GetAsync("https://www.gmbradar.com/api/v1/organic-scans/searches/{searchId}/results");
var responseText = await response.Content.ReadAsStringAsync();
Console.WriteLine((int)response.StatusCode);
Console.WriteLine(responseText);
}
GET/api/v1/organic-scans/locations
21. OrganicScanLocations
Required scope: `scans:read`
Search DataForSEO's Google SERP location catalogue by name, optionally limited to a country.
Input parameters
Parameter
Type
Requirement
Description / validation
search
string
Required
required string, at least 2 chars
countryCode
—
Optional / conditional
optional 2-letter ISO country code
limit
—
Optional / conditional
default 50, 1–100
Inputs as documented: search (required string, at least 2 chars); countryCode (optional 2-letter ISO country code); limit (default 50, 1–100).
Example JSON request body
No JSON request body documented for this endpoint.
using System;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
var apiKey = Environment.GetEnvironmentVariable("GMBRADAR_API_KEY");
using (var client = new HttpClient())
{
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", apiKey);
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
var response = await client.GetAsync("https://www.gmbradar.com/api/v1/organic-scans/locations");
var responseText = await response.Content.ReadAsStringAsync();
Console.WriteLine((int)response.StatusCode);
Console.WriteLine(responseText);
}
POST/api/v1/organic-scans/create
22. CreateOrganicScan
Required scope: `scans:write`
Create one or more organic scan tasks for a domain and keyword list, either starting immediately or scheduling each task.
If `runNow=false`, each item includes `scheduleId` and `status=scheduled`. `businessId` must be a valid business GUID belonging to the authenticated user. Use a supported frequency for the selected scheduling endpoint.
using System;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
var apiKey = Environment.GetEnvironmentVariable("GMBRADAR_API_KEY");
using (var client = new HttpClient())
{
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", apiKey);
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
var content = new StringContent("{\"businessId\":\"11111111-2222-3333-4444-555555555555\",\"domain\":\"example.com\",\"keyword\":\"plumber, emergency plumber\",\"url\":\"\",\"priority\":1,\"depth\":100,\"locationName\":\"Islamabad, Pakistan\",\"locationCode\":2276,\"locationCoordinate\":\"\",\"languageName\":\"English\",\"languageCode\":\"en\",\"searchEngineDomain\":\"google.com\",\"device\":\"desktop\",\"os\":\"windows\",\"target\":\"\",\"groupOrganicResults\":false,\"calculateRectangles\":false,\"browserScreenWidth\":1920,\"browserScreenHeight\":1080,\"browserScreenResolutionRatio\":1,\"peopleAlsoAskClickDepth\":0,\"loadAsyncAiOverview\":false,\"searchParam\":\"\",\"removeFromUrl\":\"\",\"tag\":\"api\",\"runNow\":true}", Encoding.UTF8, "application/json");
var response = await client.PostAsync("https://www.gmbradar.com/api/v1/organic-scans/create", content);
var responseText = await response.Content.ReadAsStringAsync();
Console.WriteLine((int)response.StatusCode);
Console.WriteLine(responseText);
}
POST/api/v1/organic-scans/{taskId}/repeat
23. RepeatOrganicScan
Required scope: `scans:write`
Run an existing organic task again immediately, or schedule a repeat.
Input parameters
Parameter
Type
Requirement
Description / validation
taskId
GUID
Required
required path GUID: JSON body
runNow
—
Optional / conditional
default true: if false, frequency and future startDateTimeUtc are required
Inputs as documented: taskId (required path GUID); JSON body runNow (default true); if false, frequency and future startDateTimeUtc are required.
using System;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
var apiKey = Environment.GetEnvironmentVariable("GMBRADAR_API_KEY");
using (var client = new HttpClient())
{
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", apiKey);
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
var content = new StringContent("{\"runNow\":false,\"frequency\":\"weekly\",\"startDateTimeUtc\":\"2026-10-18T09:00:00Z\"}", Encoding.UTF8, "application/json");
var response = await client.PostAsync("https://www.gmbradar.com/api/v1/organic-scans/{taskId}/repeat", content);
var responseText = await response.Content.ReadAsStringAsync();
Console.WriteLine((int)response.StatusCode);
Console.WriteLine(responseText);
}
POST/api/v1/organic-scans/{taskId}/schedule
24. ScheduleExistingOrganicScan
Required scope: `scans:write`
Create a recurring schedule for an existing organic task.
Input parameters
Parameter
Type
Requirement
Description / validation
taskId
GUID
Required
required path GUID
frequency
—
Required
required: daily, weekly, monthly
startDateTimeUtc
date
Required
required future UTC date/time
Inputs as documented: taskId (required path GUID); frequency (required: daily, weekly, monthly); startDateTimeUtc (required future UTC date/time).
using System;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
var apiKey = Environment.GetEnvironmentVariable("GMBRADAR_API_KEY");
using (var client = new HttpClient())
{
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", apiKey);
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
var content = new StringContent("{\"frequency\":\"weekly\",\"startDateTimeUtc\":\"2026-10-18T09:00:00Z\"}", Encoding.UTF8, "application/json");
var response = await client.PostAsync("https://www.gmbradar.com/api/v1/organic-scans/{taskId}/schedule", content);
var responseText = await response.Content.ReadAsStringAsync();
Console.WriteLine((int)response.StatusCode);
Console.WriteLine(responseText);
}
DELETE/api/v1/organic-scans/searches/{searchId}
25. DeleteOrganicSearch
Required scope: `scans:write`
Delete an organic search execution owned by the authenticated user.
Input parameters
Parameter
Type
Requirement
Description / validation
searchId
string
Required
required path string: public search GUID
Inputs as documented: searchId (required path string): public search GUID.
Example JSON request body
No JSON request body documented for this endpoint.
using System;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
var apiKey = Environment.GetEnvironmentVariable("GMBRADAR_API_KEY");
using (var client = new HttpClient())
{
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", apiKey);
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
var response = await client.DeleteAsync("https://www.gmbradar.com/api/v1/organic-scans/searches/{searchId}");
var responseText = await response.Content.ReadAsStringAsync();
Console.WriteLine((int)response.StatusCode);
Console.WriteLine(responseText);
}
GET/api/v1/organic-scans/schedules
26. OrganicScanSchedules
Required scope: `scans:read`
List organic scan schedules, optionally filtered by status.
Input parameters
Parameter
Type
Requirement
Description / validation
page
—
Optional / conditional
default 1, >=1
pageSize
—
Optional / conditional
default 50, 1–100
status
string
Optional / conditional
optional string
Inputs as documented: page (default 1, >=1); pageSize (default 50, 1–100); status (optional string).
Example JSON request body
No JSON request body documented for this endpoint.
using System;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
var apiKey = Environment.GetEnvironmentVariable("GMBRADAR_API_KEY");
using (var client = new HttpClient())
{
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", apiKey);
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
var response = await client.GetAsync("https://www.gmbradar.com/api/v1/organic-scans/schedules");
var responseText = await response.Content.ReadAsStringAsync();
Console.WriteLine((int)response.StatusCode);
Console.WriteLine(responseText);
}
using System;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
var apiKey = Environment.GetEnvironmentVariable("GMBRADAR_API_KEY");
using (var client = new HttpClient())
{
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", apiKey);
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
var response = await client.DeleteAsync("https://www.gmbradar.com/api/v1/organic-scans/schedules/{scheduleId}");
var responseText = await response.Content.ReadAsStringAsync();
Console.WriteLine((int)response.StatusCode);
Console.WriteLine(responseText);
}
using System;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
var apiKey = Environment.GetEnvironmentVariable("GMBRADAR_API_KEY");
using (var client = new HttpClient())
{
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", apiKey);
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
var response = await client.PostAsync("https://www.gmbradar.com/api/v1/organic-scans/schedules/{scheduleId}/deactivate", new StringContent(""));
var responseText = await response.Content.ReadAsStringAsync();
Console.WriteLine((int)response.StatusCode);
Console.WriteLine(responseText);
}
using System;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
var apiKey = Environment.GetEnvironmentVariable("GMBRADAR_API_KEY");
using (var client = new HttpClient())
{
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", apiKey);
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
var response = await client.PostAsync("https://www.gmbradar.com/api/v1/organic-scans/schedules/{scheduleId}/activate", new StringContent(""));
var responseText = await response.Content.ReadAsStringAsync();
Console.WriteLine((int)response.StatusCode);
Console.WriteLine(responseText);
}
POST/api/v1/Scans
30. Scans
Required scope: `scans:read`
Search and list classic local-rank scan runs, including the history of repeated scans.
Important — scan history: Use the same keywordId to retrieve repeated scan runs for that keyword. Combine it with businessId to limit the history to one business and keyword. Results are newest first. Each result has its own Id; use that ID with GET /api/v1/ScanDetails?scanId={scanId} to retrieve the full result for that run.
Input parameters
All parameters are supplied in the JSON request body. Filters can be combined.
Parameter
Type
Requirement
Description / how it is used
businessId
GUID string
Optional
Limits results to scans for this business. Combine with keywordId for one business/keyword history.
groupId
GUID string
Optional
Limits results to businesses belonging to this group.
keywordId
GUID string
Optional
Limits results to scans for this keyword record. Reuse the same keyword ID to retrieve weekly or other repeated runs for that keyword.
status
string
Optional
Filters by the stored scan status. Use the status value returned by the API, such as Complete or Running.
dateFrom
date/time
Optional
Includes scans created on or after this date/time.
dateTo
date/time
Optional
Includes scans through the specified calendar date; the current implementation treats it as an inclusive date filter.
search
string
Optional
Searches business title, keyword text, business address, and business alias.
page
integer
Optional
Page number; defaults to 1. Values below 1 are normalized to 1.
pageSize
integer
Optional
Records per page; defaults to 50. Values below 1 become 50; values above 100 are capped at 100.
Omitting keywordId returns scans across keywords that match the other filters. Add dateFrom and dateTo to limit the history to a period.
Use each record's Id to retrieve the complete result for that individual scan, including the ranking grid and available summary, competitors, ads, and AI analysis.
GET /api/v1/ScanDetails?scanId=scan-week-3
Behavior and validation
Results are ordered by scan creation date, newest first.
data is an array; pagination is a separate top-level pagination object.
The list item is an ApiScan summary, not the full ApiScanDetails returned by GET /api/v1/ScanDetails.
ScanCount is calculated for scans sharing a keyword in the current filtered query.
using System;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
var apiKey = Environment.GetEnvironmentVariable("GMBRADAR_API_KEY");
using (var client = new HttpClient())
{
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", apiKey);
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
var content = new StringContent("{\"businessId\":\"11111111-2222-3333-4444-555555555555\",\"groupId\":null,\"keywordId\":null,\"status\":\"completed\",\"dateFrom\":\"2026-10-01T00:00:00Z\",\"dateTo\":\"2026-10-10T23:59:59Z\",\"search\":\"plumber\",\"page\":1,\"pageSize\":50}", Encoding.UTF8, "application/json");
var response = await client.PostAsync("https://www.gmbradar.com/api/v1/Scans", content);
var responseText = await response.Content.ReadAsStringAsync();
Console.WriteLine((int)response.StatusCode);
Console.WriteLine(responseText);
}
GET/api/v1/ScanDetails
31. ScanDetails
Required scope: `scans:read`
Retrieve detailed information about one classic local rank scan.
Input parameters
Parameter
Type
Requirement
Description / validation
scanId
string
Required
required string
Inputs as documented: scanId (required string).
Example JSON request body
No JSON request body documented for this endpoint.
using System;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
var apiKey = Environment.GetEnvironmentVariable("GMBRADAR_API_KEY");
using (var client = new HttpClient())
{
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", apiKey);
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
var response = await client.GetAsync("https://www.gmbradar.com/api/v1/ScanDetails");
var responseText = await response.Content.ReadAsStringAsync();
Console.WriteLine((int)response.StatusCode);
Console.WriteLine(responseText);
}
GET/api/v1/ScanRankings
32. ScanRankings
Required scope: `scans:read`
Retrieve ranking data for a scan and a Google Place ID.
Input parameters
Parameter
Type
Requirement
Description / validation
scanId
string
Required
required string
placeId
string
Required
required string
Inputs as documented: scanId (required string); placeId (required string).
Example JSON request body
No JSON request body documented for this endpoint.
using System;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
var apiKey = Environment.GetEnvironmentVariable("GMBRADAR_API_KEY");
using (var client = new HttpClient())
{
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", apiKey);
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
var response = await client.GetAsync("https://www.gmbradar.com/api/v1/ScanRankings");
var responseText = await response.Content.ReadAsStringAsync();
Console.WriteLine((int)response.StatusCode);
Console.WriteLine(responseText);
}
GET/api/v1/SearchResults
33. SearchResults
Required scope: `reports:read`
Retrieve the result rows for a search.
Input parameters
Parameter
Type
Requirement
Description / validation
searchId
string
Required
required string
Inputs as documented: searchId (required string).
Example JSON request body
No JSON request body documented for this endpoint.
using System;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
var apiKey = Environment.GetEnvironmentVariable("GMBRADAR_API_KEY");
using (var client = new HttpClient())
{
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", apiKey);
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
var response = await client.GetAsync("https://www.gmbradar.com/api/v1/SearchResults");
var responseText = await response.Content.ReadAsStringAsync();
Console.WriteLine((int)response.StatusCode);
Console.WriteLine(responseText);
}
GET/api/v1/ScheduledScans
34. ScheduledScans
Required scope: `scans:read`
List classic local rank scheduled scans, optionally filtered by status.
Input parameters
Parameter
Type
Requirement
Description / validation
status
string
Optional / conditional
optional string
Inputs as documented: status (optional string).
Example JSON request body
No JSON request body documented for this endpoint.
using System;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
var apiKey = Environment.GetEnvironmentVariable("GMBRADAR_API_KEY");
using (var client = new HttpClient())
{
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", apiKey);
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
var response = await client.GetAsync("https://www.gmbradar.com/api/v1/ScheduledScans");
var responseText = await response.Content.ReadAsStringAsync();
Console.WriteLine((int)response.StatusCode);
Console.WriteLine(responseText);
}
POST/api/v1/DeactivateScheduledScan
35. DeactivateScheduledScan
Required scope: `scans:cancel`
Disable a classic scheduled scan.
Input parameters
Parameter
Type
Requirement
Description / validation
scheduleId
string
Required
required string
Inputs as documented: scheduleId (required string).
using System;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
var apiKey = Environment.GetEnvironmentVariable("GMBRADAR_API_KEY");
using (var client = new HttpClient())
{
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", apiKey);
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
var content = new StringContent("{\"scheduleId\":\"ffffffff-aaaa-bbbb-cccc-dddddddddddd\"}", Encoding.UTF8, "application/json");
var response = await client.PostAsync("https://www.gmbradar.com/api/v1/DeactivateScheduledScan", content);
var responseText = await response.Content.ReadAsStringAsync();
Console.WriteLine((int)response.StatusCode);
Console.WriteLine(responseText);
}
POST/api/v1/ActivateScheduledScan
36. ActivateScheduledScan
Required scope: `scans:write`
Activate a classic scheduled scan and recalculate its next run if necessary.
Input parameters
Parameter
Type
Requirement
Description / validation
scheduleId
string
Required
required string
Inputs as documented: scheduleId (required string).
using System;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
var apiKey = Environment.GetEnvironmentVariable("GMBRADAR_API_KEY");
using (var client = new HttpClient())
{
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", apiKey);
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
var content = new StringContent("{\"scheduleId\":\"ffffffff-aaaa-bbbb-cccc-dddddddddddd\"}", Encoding.UTF8, "application/json");
var response = await client.PostAsync("https://www.gmbradar.com/api/v1/ActivateScheduledScan", content);
var responseText = await response.Content.ReadAsStringAsync();
Console.WriteLine((int)response.StatusCode);
Console.WriteLine(responseText);
}
POST/api/v1/CreateScheduleScan
37. CreateScheduleScan
Required scope: `scans:write`
Schedule an existing classic scan by its scan GUID, frequency, UTC date/time, and priority.
Input parameters
Parameter
Type
Requirement
Description / validation
scanId
string
Required
required string
frequency
string
Required
required string
startDate
date
Required
required date in yyyy-MM-dd
startTime
string
Required
required string HH:mm in UTC
priority
integer
Optional / conditional
integer, must be 1 or 2
Inputs as documented: scanId (required string); frequency (required string); startDate (required date in yyyy-MM-dd); startTime (required string HH:mm in UTC); priority (integer, must be 1 or 2).
using System;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
var apiKey = Environment.GetEnvironmentVariable("GMBRADAR_API_KEY");
using (var client = new HttpClient())
{
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", apiKey);
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
var content = new StringContent("{\"scanId\":\"eeeeeeee-ffff-aaaa-bbbb-cccccccccccc\",\"frequency\":\"weekly\",\"startDate\":\"2026-10-18\",\"startTime\":\"09:00\",\"priority\":1}", Encoding.UTF8, "application/json");
var response = await client.PostAsync("https://www.gmbradar.com/api/v1/CreateScheduleScan", content);
var responseText = await response.Content.ReadAsStringAsync();
Console.WriteLine((int)response.StatusCode);
Console.WriteLine(responseText);
}
POST/api/v1/CreateScan
38. CreateScan
Required scope: `scans:write`
Create classic local rank scans for one or more keywords over a generated geo-grid.
Input parameters
Parameter
Type
Requirement
Description / validation
businessId
GUID
Required
required business GUID
keywords
array
Required
required array of strings
gridCenter
object
Optional / conditional
optional object with lat/lng; defaults to business coordinates
gridShape
—
Optional / conditional
optional square/circle, default square
gridSize
—
Required
required by validation: square 3,5,7,9,11,13,15; circle 1–7
gridRadius
—
Required
required 0.20–100 miles
zoom
—
Required
required 3–21
priority
—
Required
required 1 or 2
device / os
string pair
Required
Required combination: desktop + windows/macos or mobile + android/ios. The request body sends these as separate device and os fields.
language
string
Optional / conditional
optional string
Device and OS must be a supported pair: desktop with Windows or macOS, or mobile with Android or iOS.
using System;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
var apiKey = Environment.GetEnvironmentVariable("GMBRADAR_API_KEY");
using (var client = new HttpClient())
{
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", apiKey);
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
var content = new StringContent("{\"businessId\":\"11111111-2222-3333-4444-555555555555\",\"keywords\":[\"plumber\",\"emergency plumber\"],\"gridCenter\":{\"lat\":33.7215,\"lng\":73.0433},\"gridShape\":\"square\",\"gridSize\":5,\"gridRadius\":2.0,\"zoom\":14,\"priority\":1,\"device\":\"desktop\",\"os\":\"windows\",\"language\":\"en\"}", Encoding.UTF8, "application/json");
var response = await client.PostAsync("https://www.gmbradar.com/api/v1/CreateScan", content);
var responseText = await response.Content.ReadAsStringAsync();
Console.WriteLine((int)response.StatusCode);
Console.WriteLine(responseText);
}
POST/api/v1/RepeatScan
39. RepeatScan
Required scope: `scans:write`
Run an existing classic local rank scan again using its existing keyword, priority and grid configuration.
using System;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
var apiKey = Environment.GetEnvironmentVariable("GMBRADAR_API_KEY");
using (var client = new HttpClient())
{
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", apiKey);
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
var content = new StringContent("{\"scanId\":\"eeeeeeee-ffff-aaaa-bbbb-cccccccccccc\"}", Encoding.UTF8, "application/json");
var response = await client.PostAsync("https://www.gmbradar.com/api/v1/RepeatScan", content);
var responseText = await response.Content.ReadAsStringAsync();
Console.WriteLine((int)response.StatusCode);
Console.WriteLine(responseText);
}
using System;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
var apiKey = Environment.GetEnvironmentVariable("GMBRADAR_API_KEY");
using (var client = new HttpClient())
{
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", apiKey);
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
var content = new StringContent("{\"scanId\":\"eeeeeeee-ffff-aaaa-bbbb-cccccccccccc\"}", Encoding.UTF8, "application/json");
var response = await client.PostAsync("https://www.gmbradar.com/api/v1/DeleteScan", content);
var responseText = await response.Content.ReadAsStringAsync();
Console.WriteLine((int)response.StatusCode);
Console.WriteLine(responseText);
}
POST/api/v1/ScheduleScan
41. ScheduleScan
Required scope: `scans:write`
Create a recurring schedule for an existing classic scan.
Input parameters
Parameter
Type
Requirement
Description / validation
scanId
—
Required
required parameter: body
frequency
string
Required
required string
startDate
—
Required
required yyyy-MM-dd
startTime
—
Required
required HH:mm UTC
priority
—
Required
required 1 or 2
Inputs as documented: scanId (required parameter); body frequency (required string); startDate (required yyyy-MM-dd); startTime (required HH:mm UTC); priority (required 1 or 2).
using System;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
var apiKey = Environment.GetEnvironmentVariable("GMBRADAR_API_KEY");
using (var client = new HttpClient())
{
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", apiKey);
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
var content = new StringContent("{\"frequency\":\"weekly\",\"startDate\":\"2026-10-18\",\"startTime\":\"09:00\",\"priority\":1}", Encoding.UTF8, "application/json");
var response = await client.PostAsync("https://www.gmbradar.com/api/v1/ScheduleScan", content);
var responseText = await response.Content.ReadAsStringAsync();
Console.WriteLine((int)response.StatusCode);
Console.WriteLine(responseText);
}