Resolve an ad account to a client
Which of the agency's clients syncs this ad account, from the clients' Airbyte ad-platform connections. The id is matched on its digits exactly: act_1234567890 and 1234567890 are the same Meta account, 123-456-7890 and 1234567890 the same Google account, and 12 never matches 123. A connection that syncs several accounts matches each of them. Only clients on the caller's roster are returned.
An empty matches is a normal answer, not an error: a client connected before Mythic recorded account ids has no row to match, and the extension then asks the user to pick the client once. Several matches mean several clients sync the same account; active connections are listed first.
curl -X GET "https://mythic-analytics.gulp.workers.dev/client/v1/extension/resolve?platform=meta&account=act_1234567890" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_TOKEN"
import requests
import json
url = "https://mythic-analytics.gulp.workers.dev/client/v1/extension/resolve?platform=meta&account=act_1234567890"
headers = {
"Content-Type": "application/json",
"Authorization": "Bearer YOUR_API_TOKEN"
}
response = requests.get(url, headers=headers)
print(response.json())
const response = await fetch("https://mythic-analytics.gulp.workers.dev/client/v1/extension/resolve?platform=meta&account=act_1234567890", {
method: "GET",
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("GET", "https://mythic-analytics.gulp.workers.dev/client/v1/extension/resolve?platform=meta&account=act_1234567890", 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/extension/resolve?platform=meta&account=act_1234567890')
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
request = Net::HTTP::Get.new(uri)
request['Content-Type'] = 'application/json'
request['Authorization'] = 'Bearer YOUR_API_TOKEN'
response = http.request(request)
puts response.body
{
"success": true,
"data": {
"platform": "meta",
"account": "1234567890",
"matches": [
{
"location_id": "c84d700c-...",
"name": "Boundless Therapy",
"source": "airbyte",
"connection_status": "active"
}
],
"roster_size": 12
}
}
{
"error": "Bad Request",
"message": "The request contains invalid parameters or malformed data",
"code": 400,
"details": [
{
"field": "email",
"message": "Invalid email format"
}
]
}
{
"error": "Unauthorized",
"message": "Authentication required. Please provide a valid API token",
"code": 401
}
{
"error": "Forbidden",
"message": "You don't have permission to access this resource",
"code": 403
}
{
"error": "Too Many Requests",
"message": "Rate limit exceeded. Please try again later",
"code": 429,
"retryAfter": 3600
}
/client/v1/extension/resolve
Target server for requests. Edit to use your own host.
Agency-wide mcp_ key holding extension:read, or an agency key (ak_). A location secret key (sk_) or a client-bound mcp_ key gets 403 agency_key_required. See Using an mcp_ key over HTTP.
mcp_ key holding extension:read, or an agency key (ak_). A location secret key (sk_) or a client-bound mcp_ key gets 403 agency_key_required. See Using an mcp_ key over HTTP.Ad account id as the ad platform shows it.
Request Preview
Response
Response will appear here after sending the request
Authentication
Bearer token. Agency-wide mcp_ key holding extension:read, or an agency key (ak_). A location secret key (sk_) or a client-bound mcp_ key gets 403 agency_key_required. See Using an mcp_ key over HTTP.
Query Parameters
metagoogle