Get API access to your agency data
On this page
The UpHex API lets your own app or script read data from your UpHex agency: clients, campaigns, metrics, leads and templates. You don't need separate Meta or Google access on each client's ad account. Your app reads the ad accounts your clients have already connected in UpHex.
This is the developer REST API at api.uphex.com. It is not the GoHighLevel client ID and secret in your UpHex settings, and it is not the Uppie MCP connector you add to Claude.
Step 1: Request access
- Go to api.uphex.com/sign-up and create a developer account.
- Enter your UpHex agency ID when asked. If you don't know it, ask Uppie "what is my agency ID?"
- Submit. This sends an access request to UpHex. It does not turn on access by itself.
UpHex reviews each request. Once it's approved, your developer profile shows the agency under granted access. Until then, API calls for that agency return 403 agency_not_allowed.
Step 2: Create an app and an API key
- Sign in to the developer portal and create an app.
- Install the app for your approved agency, if it isn't already installed.
- Issue an API key for the app and choose its scopes. To read campaign performance you need
campaigns:readandmetrics:read. Addclients:readto list clients andleads:readto read leads. - Copy the secret right away. It is shown only once.
Step 3: Make your first call
Send your key and secret as headers, plus the agency you're reading:
curl https://api.uphex.com/v1/campaigns \
-H "X-API-Key: uphex_key_..." \
-H "X-API-Secret: uphex_secret_..." \
-H "X-Agency-Id: YOUR_AGENCY_ID"
Useful endpoints:
GET /v1/clients: your clientsGET /v1/campaigns: campaigns, filterable by client, status and platform (Facebook or Google)GET /v1/metrics/summary: spend and results for a date range, optionally per client or campaignGET /v1/metrics?group_by=campaign_id: metrics grouped by campaign or clientGET /v1/leads: leads for a client
The full reference, with copy-paste examples, is at api.uphex.com/portal/docs.
What to expect
- Numbers are UpHex's figures. Metrics come from UpHex's reporting, not a live export from Meta or Google, so they may not match Ads Manager one for one.
- Clients still connect in UpHex. The API reads accounts already connected in UpHex. It doesn't connect new ad accounts or give you anyone's Meta or Google login.
- It can't launch, pause or change budgets. Template writes create drafts only. Nothing goes live through the API.
- Rate limit: 120 requests per minute per app by default.
- Webhooks are available for lead, message and appointment events, not for spend.
Troubleshooting
- 401 Unauthorized: the key or secret is wrong, revoked, or sent twice. Send exactly one way of signing in per request.
- 403 agency_not_allowed: your access request hasn't been approved yet, or
X-Agency-Idis a different agency. Check granted access on your developer profile. - 403 missing_scope: the API key doesn't have the scope that endpoint needs. Issue a key with that scope.
- Every call appears in the portal's request log. When you contact support about a failing call, include its
X-Request-ID.