Refresh a page now
Scrape the page now and store its ads. Synchronous: up to about a minute for 50 ads. Media copies, transcripts and analysis follow in the background. At most once per page every 10 minutes and 20 manual refreshes per client per 24 hours. Deleting and re-adding a page does not reset either limit.
curl -X POST "https://mythic-analytics.gulp.workers.dev/client/v1/competitor-ads/pages/123e4567-e89b-12d3-a456-426614174000/refresh?location_id=example_string" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_TOKEN"
import requests
import json
url = "https://mythic-analytics.gulp.workers.dev/client/v1/competitor-ads/pages/123e4567-e89b-12d3-a456-426614174000/refresh?location_id=example_string"
headers = {
"Content-Type": "application/json",
"Authorization": "Bearer YOUR_API_TOKEN"
}
response = requests.post(url, headers=headers)
print(response.json())
const response = await fetch("https://mythic-analytics.gulp.workers.dev/client/v1/competitor-ads/pages/123e4567-e89b-12d3-a456-426614174000/refresh?location_id=example_string", {
method: "POST",
headers: {
"Content-Type": "application/json",
"Authorization": "Bearer YOUR_API_TOKEN"
}
});
const data = await response.json();
console.log(data);
package main
import (
"fmt"
"net/http"
)
func main() {
req, err := http.NewRequest("POST", "https://mythic-analytics.gulp.workers.dev/client/v1/competitor-ads/pages/123e4567-e89b-12d3-a456-426614174000/refresh?location_id=example_string", nil)
if err != nil {
panic(err)
}
req.Header.Set("Content-Type", "application/json")
req.Header.Set("Authorization", "Bearer YOUR_API_TOKEN")
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
fmt.Println("Response Status:", resp.Status)
}
require 'net/http'
require 'json'
uri = URI('https://mythic-analytics.gulp.workers.dev/client/v1/competitor-ads/pages/123e4567-e89b-12d3-a456-426614174000/refresh?location_id=example_string')
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
request = Net::HTTP::Post.new(uri)
request['Content-Type'] = 'application/json'
request['Authorization'] = 'Bearer YOUR_API_TOKEN'
response = http.request(request)
puts response.body
{
"success": true,
"data": {
"page": {
"id": "123e4567-e89b-12d3-a456-426614174000",
"page_id": "example_string",
"country": "USA",
"label": "example_string",
"max_ads": 42,
"active": true,
"page_name": "John Doe",
"last_refresh_at": "2024-12-25T10:00:00Z",
"last_refresh_status": "ok",
"last_refresh_error": "example_string",
"last_refresh_counts": {
"received": 42,
"inserted": 42,
"updated": 42,
"changed": 42,
"gone": 42,
"rejected": 42,
"total_results": 42,
"returned_ads": 42,
"pagination_complete": true,
"ms": 42
},
"next_refresh_at": "2024-12-25T10:00:00Z",
"refreshing": true,
"created_at": "2024-12-25T10:00:00Z",
"updated_at": "2024-12-25T10:00:00Z"
},
"status": "ok",
"counts": {
"received": 42,
"inserted": 42,
"updated": 42,
"changed": 42,
"gone": 42,
"rejected": 42,
"total_results": 42,
"returned_ads": 42,
"pagination_complete": true,
"ms": 42
}
}
}
{
"error": "Not Found",
"message": "The requested resource was not found",
"code": 404
}
{
"error": "Conflict",
"message": "The request conflicts with the current state of the resource",
"code": 409,
"details": "Resource already exists"
}
{
"error": "Too Many Requests",
"message": "Rate limit exceeded. Please try again later",
"code": 429,
"retryAfter": 3600
}
{
"error": "Error",
"message": "Error. The code names the cause, e.g. `invalid_page`, `feature_not_in_plan`, `agency_required`, `not_found`, `scraper_failed`, `no_model_key`, `no_working_ads`, `grounding_too_large`, `generation_invalid`.",
"code": 502
}
{
"error": "Service Unavailable",
"message": "The service is temporarily unavailable. Please try again later",
"code": 503
}
{
"error": "Error",
"message": "Error. The code names the cause, e.g. `invalid_page`, `feature_not_in_plan`, `agency_required`, `not_found`, `scraper_failed`, `no_model_key`, `no_working_ads`, `grounding_too_large`, `generation_invalid`.",
"code": 504
}
/client/v1/competitor-ads/pages/{id}/refreshTarget server for requests. Edit to use your own host.
Agency key (ak_), location secret key (sk_, reads only) or a scoped mcp_ key with competitor_ads:read or competitor_ads:write. See Using an mcp_ key over HTTP.
ak_), location secret key (sk_, reads only) or a scoped mcp_ key with competitor_ads:read or competitor_ads:write. See Using an mcp_ key over HTTP.The tracked page id from the list, not the Facebook page id.
Location to scope to. Required for ak_ keys or send X-Location-Id. Ignored for sk_.
Request Preview
Response
Response will appear here after sending the request
Authentication
Bearer token. Agency key (ak_), location secret key (sk_, reads only) or a scoped mcp_ key with competitor_ads:read or competitor_ads:write. See Using an mcp_ key over HTTP.
Path Parameters
The tracked page id from the list, not the Facebook page id.
Query Parameters
Location to scope to. Required for ak_ keys or send X-Location-Id. Ignored for sk_.