One advertising API for your code and your agents
The REST API v1 and the MCP server run off the same vk_live_… key and the same set of scopes: 31 tools for an assistant and endpoints for campaigns, analytics, Meta leads and rules. A key can be issued read-only, and any write without its scope answers 403.
01What hurts
Why an advertising integration costs more than it looks
A homemade wrapper per platform
Google Ads and Meta speak different languages: their own fields, statuses and limits. The shim written for one report outlives the report it was written for.
The assistant has nowhere to plug in
Claude or ChatGPT can reason about campaigns perfectly well, but it has neither access nor boundaries — the usual choice is a key to everything or nothing.
The key everyone forgot about
A token sits in an environment variable with no expiry, no scope and no trail: nobody knows who uses it, or what happens the day it leaks.
Scroll to see it work
API & MCP in four moves
- 01Scattered
Without API & MCP, this work is spread across spreadsheets and tabs.
- 02Connected
API & MCP reads the accounts and data you have already connected.
- 03Found
It highlights what matters now, with the evidence behind it.
- 04Approved
You decide what happens next: what applies on its own and what waits for approval.
02How it works
Three steps from key to first call
- 01
Create the key
In the developer keys section, give it a name, tick the scopes it needs and optionally an expiry in days. The key is shown once; only a SHA-256 hash is stored.
- 02
Point a client at it
REST calls go to /api/v1 with an Authorization: Bearer, x-api-key or apikey header. An assistant connects to the MCP endpoint /mcp with that same key.
- 03
Work inside the key's scopes
Only granted scopes resolve: without campaigns:write a write returns 403 insufficient_scope, and a campaign created this way lands as a draft, not live.
03What you get
What the developer gets, and what the agent gets
31 MCP tools
Campaigns, analytics, Meta leads, rules, health scores and copy generation, exposed to an assistant as ordinary tools behind one key.
01REST API v1
Campaigns with pause, resume, performance and a health score, plus analytics, Meta leads, an account overview and automation rules.
02Nine access scopes
campaigns, analytics, rules, health, leads and ai:generate — a dashboard key can be strictly read-only without ever opening writes.
03Keys you do not lose track of
A prefix in the list, a request counter, a last-used timestamp and an expiry; revoking one shuts it off across every integration at once.
04An OpenAPI 3.0 spec
The schema is served at /api/docs/openapi.json with interactive docs beside it, so a client is generated rather than hand-written.
05The same safety rules
Campaigns created through the API or MCP arrive as drafts, writes require a write scope, and live edits stay off until you switch them on for an account.
0604In numbers
- 31
- MCP tools available behind one developer key
- 9
- access scopes that can be granted to a key individually
- 100
- requests per minute per key by default
Who gets what
What each type of client takes away
What you connect
- Ad accounts
- Analytics
- Website
- Bank & invoices
What Valkiria does
- 01Collect spend and results
- 02Find leaks and gaps
- 03Propose next steps
What you get
- Action plan
- Owner report
- Spend control
See every ad budget and what it returns, without opening five dashboards
Google, Meta, TikTok and the rest in one view, in your currency, with results next to costs.
Findings turn into a prioritised list of next steps with the evidence behind each one.
New campaigns are created paused. Edits to live campaigns stay off until you switch them on for an account; deletions and new spend always wait for approval.
Modules that do the work
05FAQ
Developer questions
06See also
All modulesStart now
Issue your first key in a minute
A key is created with the scopes and expiry you choose and revoked in one click. Start read-only and widen the scopes once you have watched it behave.


