Docs
Connect your AI to Amaware.
Claude, ChatGPT, Claude Code and Cursor can read what AI says about you, pick what to publish and write it. Connecting takes about two minutes.
MCP is the plug that connects your Claude or ChatGPT to your Amaware workspace. This page shows you how to connect, what each of the 42 tools does, what costs credits and where the limits are.
Connect
Connect in about two minutes.
Claude.ai and ChatGPT
You sign in to Amaware once, pick the workspace, and it is connected.
- 1Open the connector settings in Claude or ChatGPT and add a custom connector.
- 2Paste the connector URL.
- 3Sign in when asked, pick the workspace, and press Allow.
- 4Ask it to plan your week.
https://platform.amaware.ai/api/mcpIt reads your workspace and adds what you approve. It asks before it deletes anything, marks a page as published, or spends credits you didn't ask for.
Claude Code, Claude Desktop, Cursor and OpenClaw
You make a key on the MCP page and paste one block of config.
- 1In Amaware, open MCP in the sidebar, pick your AI and press Create my key. The key lands inside the block for you.
- 2Paste the block into your client’s MCP config, with your key in place of the placeholder.
- 3Restart the client. The Amaware tools show up in its list.
{
"mcpServers": {
"amaware": {
"type": "http",
"url": "https://platform.amaware.ai/api/mcp",
"headers": { "Authorization": "Bearer <your key>" }
}
}
}claude mcp add --transport http amaware https://platform.amaware.ai/api/mcp --header "Authorization: Bearer <your key>"Scripts and your own code
The REST API is on the Growth plan. It uses the same key and the same tools.
- 1In Amaware, open Settings, then API, and press Create my key.
- 2Send it as a bearer token to the base URL.
- 3Point a client generator at the OpenAPI file: platform.amaware.ai/openapi.json.
https://platform.amaware.ai/api/v1curl https://platform.amaware.ai/api/v1/capabilities \
-H "Authorization: Bearer <your key>"Workflows
Four things to ask for.
Plan my week
plan_my_weekRead where the brand stands, find the biggest gaps, and pick the three things to publish this week.
Write and publish an action
write_and_publishTake one item on the ranked list from brief to live page: write the piece exactly from the brief, publish it with your own connected tools, save the draft, mark it published.
action_id (required) The action to do (from list_actions).Grow the prompt list
grow_the_listGet suggestions the brand can actually get named for and add the ones the person keeps, under the plan limit.
count (optional) How many suggestions to ask for (5 to 50). Default 10.Competitor check
competitor_checkSee what a competitor wins that the brand does not, and turn it into prompts to track.
competitor (optional) A competitor domain like competitor.com. Defaults to the tracked one with the highest share of voice.Tools
Every tool, in seven groups.
Read
The workspace
get_workspaceThe brand, its plan and limits, how many prompts are tracked and how much room is left, which engines run, the time zone, the last run and the credit balance. Call this first.
Inputs
None. Call it with an empty object.
Returns
- workspace (slug, timezone, onboarded)
- brand (name, domain, aliases, owned_domains, market, answer_for)
- plan (id, label, subscription_status, limits)
- prompts (active, paused, room_left)
- competitors
- engines[] (id, label, enabled, capture)
- last_run_at
- credits (left, allowance, resets_at)
Visibility counts
get_visibilityHow often the brand is named, cited and named first across the answers in a window, with share of voice against the tracked competitors. With include_trend, the daily line and engine health too.
Inputs
| Name | Type | Required | What it is |
|---|---|---|---|
| window | number | No | Days: 7, 28 or 90. Default 28. |
| include_trend | true or false | No | Add the daily trend and engine health. |
Returns
- window
- named
- cited
- named_first (count, total, ratio, delta_vs_prior)
- share_of_voice[] (brand, you, answers, share)
- trend[]
- engine_health[]
- computed_at
The tracked prompts
list_promptsEvery prompt on the list with its latest result per engine (named, cited, missed, position), the 28-day spark, asks a month on Pro and up, and how many open actions it feeds. Filter by active, stage, engine or a search word.
Inputs
| Name | Type | Required | What it is |
|---|---|---|---|
| window | number | No | Days: 7, 28 or 90. Default 28. |
| active | true or false | No | |
| stage | choice | No | One of problem, solution, comparison, alternatives, use-case. |
| engine | text | No | An engine id from get_workspace. |
| search | text | No | |
| limit | number, 1 to 400 | No | Rows to return, up to 400. |
| offset | number, 0 or more | No |
Returns
- prompts[] (id, text, stage, active, asks_a_month, open_actions, named_on, of_engines, latest{engine: result, position, run_date}, spark_28d[])
- total
- engines[]
- computed_at
One prompt in full
get_promptOne prompt with the latest answer per engine: whether the brand was named, its position, every brand the answer named, the sources it cited with their channel, what the engine searched for, and an excerpt of the answer. Plus the 28-day history per engine.
Inputs
| Name | Type | Required | What it is |
|---|---|---|---|
| prompt_id | id | Yes | |
| window | number | No | Days: 7, 28 or 90. Default 28. |
Returns
- prompt (id, text, stage, active, source, asks_a_month, seed, why_suggested)
- open_actions
- latest_answers[] (engine, run_date, named, cited, position, named_brands[], sources[] (url, title, domain, channel), searched_for[], answer_excerpt)
- history_28d{engine: [day, mark]}
- computed_at
Prompts the brand misses
list_gapsPrompts where at least one engine did not name the brand in its latest answer, with who was named instead. The shortest route to what to fix.
Inputs
| Name | Type | Required | What it is |
|---|---|---|---|
| engine | text | No | One engine id to filter by. |
| limit | number, 1 to 200 | No | Rows to return, up to 200. |
Returns
- gaps[] (prompt_id, prompt, stage, missed_on[], named_instead[])
- total
- as_of
- computed_at
Where the engines look
list_sourcesThe domains and pages the engines cite on your prompts, classified by channel (owned, competitor, listicle, review site, community, video, editorial), and which of your own pages get cited, with the 28-day movement.
Inputs
| Name | Type | Required | What it is |
|---|---|---|---|
| window | number | No | Days: 7, 28 or 90. Default 28. |
| limit | number, 1 to 60 | No | Rows to return, up to 60. |
Returns
- where_engines_look (domains[], pages[], channels[], answers_with_sources)
- what_of_yours_is_cited (pages[], cited_answers, cited_answers_prior, named_without_a_link, unattributed)
- window
- computed_at
The tracked competitors
list_competitorsEvery competitor with its domain, aliases, chart colour and share of voice in the window, next to yours.
Inputs
| Name | Type | Required | What it is |
|---|---|---|---|
| window | number | No | Days: 7, 28 or 90. Default 28. |
Returns
- you (name, domain, answers_named, share)
- competitors[] (id, name, domain, aliases, color, series, answers_named, share)
- limit
- computed_at
The ranked list
list_actionsWhat to publish next, highest leverage first: each row says what to make (a page, a video, a reply, an email), where it goes, why the engines will pick it up and how many prompts it covers. Defaults to open items; pass a status for completed or skipped ones.
Inputs
| Name | Type | Required | What it is |
|---|---|---|---|
| status | choice | No | One of new, in_progress, completed, skipped. |
| limit | number, 1 to 100 | No | Rows to return, up to 100. |
Returns
- actions[] (id, type, format, channel, title, leverage, status, why, prompts_affected, has_brief, published_url, first_cited_at)
- computed_at
One action in full
get_actionOne item on the list with everything behind it: the prompts it covers, the engines that miss, the pages cited instead, the competitors involved, the leverage factors, and whether a brief, a draft or a published URL exists.
Inputs
| Name | Type | Required | What it is |
|---|---|---|---|
| action_id | id | Yes |
Returns
- action (id, type, format, channel, title, status, leverage, leverage_factors, target)
- evidence (line, prompts[], engines[], source_urls[], competitors[])
- brief (generated_at, edited_at, has_brief)
- draft (saved_at, saved_by, url, has_draft)
- published (url, at, first_cited_at, indexing: google and bing, each with state, reason, due_at, sent_at, indexed_at)
What agents did here
get_agent_activityThe last calls made on this workspace through any key or connection: the tool, when, whether it worked, and the credits it used. Read it before repeating work another agent already did.
Inputs
| Name | Type | Required | What it is |
|---|---|---|---|
| limit | number, 1 to 200 | No | Rows to return, up to 200. |
Returns
- calls[] (tool, source, ok, code, ms, credits, client, created_at)
- computed_at
What you can do here
list_capabilitiesThis manifest: every tool, what it reads and writes, its inputs, its credits and whether it is available on the caller's plan and balance, plus what an agent cannot do here and why.
Inputs
None. Call it with an empty object.
Returns
- capabilities[]
- excluded[] (action, why)
- plan
- credits_left
Prompts
Add prompts
add_promptsAdds prompts to the list and starts tracking them on the next run. Dedupes against what is already tracked and stops at the plan's prompt limit with the exact line the app shows, so a 50-prompt plan never gets a 51st.
Inputs
| Name | Type | Required | What it is |
|---|---|---|---|
| prompts | list of objects, up to 50 | Yes | Each has text (required) and stage. |
Returns
- added[] (id, text)
- skipped (already tracked)
- room_left
Edit a prompt
edit_promptChanges a prompt's text or stage. The old row is paused and linked so its history stays on the chart; the new one runs on the next scoped run.
Inputs
| Name | Type | Required | What it is |
|---|---|---|---|
| prompt_id | id | Yes | |
| text | text | No | |
| stage | choice | No | One of problem, solution, comparison, alternatives, use-case. |
Returns
- prompt (id, text, stage)
- replaced
- changed
Pause or resume a prompt
set_prompt_activePauses a prompt (it keeps its history and stops counting against the plan) or tracks it again.
Inputs
| Name | Type | Required | What it is |
|---|---|---|---|
| prompt_id | id | Yes | |
| active | true or false | Yes |
Returns
- prompt (id, text, active)
Delete a prompt
delete_promptRemoves a prompt for good. Pass a reason (not our buyer, wrong product, too broad, wrong competitor, we already rank) and the next suggestions steer away from it. Ask the person before calling this.
Inputs
| Name | Type | Required | What it is |
|---|---|---|---|
| prompt_id | id | Yes | |
| reason | choice | No | One of not_our_buyer, wrong_product, too_broad, wrong_competitor, already_rank. |
| note | text | No |
Returns
- deleted (id, text)
- reason
Run a prompt now
run_promptRuns one prompt on the workspace's engines right now and returns whether the brand was named and cited and the sources each answer used. Pass a prompt id, or text to add and run a new prompt (the plan's limit applies).
Twenty manual runs a day per workspace.
Inputs
| Name | Type | Required | What it is |
|---|---|---|---|
| prompt_id | id | No | |
| text | text | No |
Returns
- prompt (id, text)
- answers[] (engine, named, cited, position, sources[])
- pending
- credits_spent
- credits_left
Suggest prompts
suggest_promptsPrompts the brand can get named for, built from its site, the market's measured demand and what competitors already win, each with a reason sentence. Nothing is added; pass the ones the person keeps to add_prompts.
Charged per prompt returned; the shortfall is refunded.
Inputs
| Name | Type | Required | What it is |
|---|---|---|---|
| count | number, 1 to 50 | No | How many, up to 50. Default 10. |
| context | text | No | Customer language, call notes, anything that sharpens the read. |
Returns
- prompts[] (text, stage, play, seed, google_volume, ai_volume, difficulty, score, reason)
- credits_spent
- credits_left
Competitors
Add a competitor
add_competitorTracks a competitor by name and domain, with optional aliases and a chart colour. Takes the lowest free chart slot; twelve is the cap.
Inputs
| Name | Type | Required | What it is |
|---|---|---|---|
| name | text | Yes | |
| domain | text | Yes | A bare domain like competitor.com. |
| aliases | list of text, up to 8 | No | |
| color | text, or null | No | A hex colour like #1D4ED8. |
Returns
- competitor (id, name, domain, aliases, color, series)
- tracked
- limit
Update a competitor
update_competitorChanges a competitor's name, domain, aliases or chart colour. Pass color null to go back to the series colour.
Inputs
| Name | Type | Required | What it is |
|---|---|---|---|
| competitor_id | id | Yes | |
| name | text | No | |
| domain | text | No | A bare domain like competitor.com. |
| aliases | list of text, up to 8 | No | |
| color | text, or null | No | A hex colour like #1D4ED8. |
Returns
- competitor (id, name, domain, aliases, color, series)
- changed
Remove a competitor
remove_competitorStops tracking a competitor. Its past mentions stay in the stored answers. Ask the person before calling this.
Inputs
| Name | Type | Required | What it is |
|---|---|---|---|
| competitor_id | id | Yes |
Returns
- removed (id, name, domain)
- tracked
Brand and engines
Update the brand
update_brandChanges the brand's name, the aliases the engines might use for it, the domains you own (the main domain always stays), the voice rules briefs follow, the five phrases you want to be the answer for, and the market.
Inputs
| Name | Type | Required | What it is |
|---|---|---|---|
| name | text | No | |
| aliases | list of text, up to 12 | No | |
| owned_domains | list of text, up to 8 | No | A bare domain like competitor.com. |
| voice_rules | text, or null | No | |
| answer_for | list of text, up to 5 | No | |
| market | choice | No | One of US, UK, CA, AU, IE, NZ, DE, FR, NL, ES. |
Returns
- brand (name, domain, aliases, owned_domains, voice_rules, answer_for, market)
- changed
The brand voice
get_voiceThe voice every brief is written in: the one-line pitch, tone words, first person, sentence length, words to use and avoid, sample lines from the site, the two asks and the disclosure line for replies.
Inputs
None. Call it with an empty object.
Returns
- voice (oneLiner, tone[], person, sentenceLength, useWords[], avoidWords[], sampleLines[], directAsk, transitionalAsk, disclosure)
- generated
- generated_at
- voice_rules
Edit the brand voice
update_voiceChanges any of the voice fields. Send only the fields to change; the rest stay. Every brief from then on uses the new voice.
Inputs
| Name | Type | Required | What it is |
|---|---|---|---|
| oneLiner | text | No | |
| tone | list of text, up to 3 | No | |
| person | choice | No | One of we, I. |
| sentenceLength | choice | No | One of short, mixed. |
| useWords | list of text, up to 12 | No | |
| avoidWords | list of text, up to 12 | No | |
| sampleLines | list of text, up to 3 | No | |
| directAsk | text | No | |
| transitionalAsk | text | No | |
| disclosure | text | No |
Returns
- voice
- changed
Read the voice from the site again
refresh_voiceReads the brand's site again and rewrites the voice fields from it. Three reads a day; free of credits.
Inputs
None. Call it with an empty object.
Returns
- voice
- generated_at
Choose the engines
set_enginesSets which engines run daily. Every paid plan runs three of the five; pass the full list you want on.
Inputs
| Name | Type | Required | What it is |
|---|---|---|---|
| enabled | list of text, up to 5 | Yes | Engine ids from get_workspace. |
Returns
- enabled[] (id, label)
- limit
Actions, briefs and drafts
Refresh the ranked list
refresh_actionsRecomputes the ranked list from the stored answers (the Refresh button). Free; refuses while a run is still going.
Inputs
None. Call it with an empty object.
Returns
- inserted
- updated
- note
Set an action's status
set_action_statusMoves an item to new, in progress, completed or skipped (with a reason: not relevant, already exists, no capacity).
Inputs
| Name | Type | Required | What it is |
|---|---|---|---|
| action_id | id | Yes | |
| status | choice | Yes | One of new, in_progress, completed, skipped. |
| skip_reason | choice | No | One of not_relevant, already_exists, no_capacity. |
Returns
- action (id, title, status, skip_reason)
Mark an action published
mark_publishedRecords that the page for an action is live at a URL. Amaware widens your owned domains for a new subdomain, queues the affected prompts, and watches the daily answers for the first citation. With Google Search Console or Bing Webmaster Tools connected, the page is sent to them two hours later and checked daily until it is indexed. Ask the person before calling it.
Inputs
| Name | Type | Required | What it is |
|---|---|---|---|
| action_id | id | Yes | |
| url | URL | Yes |
Returns
- action (id, title, status, published_url, published_at)
- prompts_queued
- note
The brief for an action
get_briefThe finished kit for one action: the exact title tag, meta description, URL, headings, FAQ and schema for a page; the script, title, description and chapters for a video; the reply and disclosure for a thread; the email for a list owner or a writer. Returned as Markdown and as fields, in the brand's own voice. The first request starts writing it (about a minute) and returns status "writing" with retry_in seconds; call again after that and the kit comes back, cached from then on. Write the piece from it exactly, then ask the person to publish and call mark_published.
Credits are charged on the first generation only; reading a cached brief is free. While status is "writing", wait retry_in seconds and call again.
Inputs
| Name | Type | Required | What it is |
|---|---|---|---|
| action_id | id | Yes |
Returns
- status ("writing") and retry_in while it is being written, else:
- action (id, title, type, format, channel, leverage, status)
- evidence
- brief_markdown
- kit
- how_to_use
- brief_generated_at
- brief_edited_at
- has_draft
Write the brief again
write_briefThrows the cached brief away and starts a fresh one, charged like a first brief. Returns status "writing" with retry_in; call get_brief after that many seconds for the new kit. Use it when the evidence changed or the person asked for a different angle.
Two briefs a day for one action.
Inputs
| Name | Type | Required | What it is |
|---|---|---|---|
| action_id | id | Yes |
Returns
- status ("writing")
- retry_in
- rewritten
Edit the brief
update_briefEdits an existing brief: send kit fields to merge over the stored kit (the Markdown is re-rendered), or brief_markdown to replace the text as is. Use it after the person asks for a different title, angle or FAQ.
Inputs
| Name | Type | Required | What it is |
|---|---|---|---|
| action_id | id | Yes | |
| kit | object | No | Kit fields to merge, in the shape get_brief returns under kit. |
| brief_markdown | text | No |
Returns
- action (id, title)
- edited_at
- kit
- brief_markdown
- note
Save the written piece
save_draftStores the article, post, script, reply or email you wrote from the brief on the action, with the URL once it is live, so the person sees it in the app and other agents do not write it twice. Publishing stays with your own connected tools.
Inputs
| Name | Type | Required | What it is |
|---|---|---|---|
| action_id | id | Yes | |
| draft_markdown | text | Yes | |
| url | URL | No |
Returns
- action (id, title)
- saved_at
- characters
- note
Read the saved piece
get_draftThe draft saved on an action, who saved it and when, and its URL if it was published.
Inputs
| Name | Type | Required | What it is |
|---|---|---|---|
| action_id | id | Yes |
Returns
- action (id, title)
- draft_markdown
- saved_at
- saved_by
- url
Credits
Credit balance
get_creditsWhat is left in the workspace's credit pool, the allowance, the reset date, what used credits this period, the last twenty ledger rows and the packs on sale.
Inputs
None. Call it with an empty object.
Returns
- left
- allowance
- resets_at
- used_by_action{}
- recent[]
- packs[]
Buy credits
buy_creditsA Stripe Checkout link for a top-up pack (small, medium or large). Nothing is charged until the person finishes paying; the credits land the moment they do and never expire. Give the link to the person; never pretend the purchase happened.
Inputs
| Name | Type | Required | What it is |
|---|---|---|---|
| pack | choice | Yes | small (2,000), medium (5,000) or large (15,000). |
Returns
- checkout_url
- pack
- credits
- usd
- expires_in_hours
- note
Research
Search volume
search_volumeHow many people search each phrase a month on Google and ask it of AI assistants, with difficulty, intent and a twelve-month trend.
Inputs
| Name | Type | Required | What it is |
|---|---|---|---|
| phrases | list of text, up to 100 | Yes | |
| market | choice | No | Market to measure in. Defaults to the workspace market (US). |
Returns
- rows[] (phrase, google_volume, ai_volume, difficulty, intent, trend[])
- credits_spent
- credits_left
Discover phrases
discover_phrasesThe phrases buyers in a category actually search, grown from a few seeds, each with volume, AI volume, difficulty and intent.
Inputs
| Name | Type | Required | What it is |
|---|---|---|---|
| seeds | list of text, up to 20 | Yes | |
| limit | number, 1 to 200 | No | Rows to return, up to 200. |
| market | choice | No | Market to measure in. Defaults to the workspace market (US). |
Returns
- rows[] (phrase, google_volume, ai_volume, difficulty, intent)
- credits_spent
- credits_left
Competitor keywords
competitor_keywordsThe phrases a domain ranks for on Google, with its position, the ranking page and the demand behind each.
Inputs
| Name | Type | Required | What it is |
|---|---|---|---|
| domain | text | Yes | A bare domain like competitor.com. |
| limit | number, 1 to 200 | No | Rows to return, up to 200. |
| market | choice | No | Market to measure in. Defaults to the workspace market (US). |
Returns
- domain
- rows[] (phrase, position, url, google_volume, ai_volume, difficulty, intent)
- credits_spent
- credits_left
Keyword gap
keyword_gapThe phrases a competitor ranks for and your brand does not, with their position and the demand.
Inputs
| Name | Type | Required | What it is |
|---|---|---|---|
| competitor | text | Yes | A bare domain like competitor.com. |
| limit | number, 1 to 200 | No | Rows to return, up to 200. |
| market | choice | No | Market to measure in. Defaults to the workspace market (US). |
Returns
- competitor
- you
- rows[] (phrase, position, url, google_volume, ai_volume, difficulty, intent)
- credits_spent
- credits_left
AI Overview citations
aio_citationsThe phrases where Google's AI Overview cites a page on a domain, with the cited page. Defaults to your brand.
Inputs
| Name | Type | Required | What it is |
|---|---|---|---|
| domain | text | No | A bare domain like competitor.com. |
| limit | number, 1 to 200 | No | Rows to return, up to 200. |
| market | choice | No | Market to measure in. Defaults to the workspace market (US). |
Returns
- domain
- rows[] (phrase, url, google_volume, ai_volume)
- credits_spent
- credits_left
Who AI mentions
ai_mentionsThe domains and brands that AI answers mention for a topic or a brand, with how often, from a large sample of real prompts on ChatGPT and Google's AI Overview.
Samples cover ChatGPT and Google AI Overview, US and English.
Inputs
| Name | Type | Required | What it is |
|---|---|---|---|
| topic | text | No | |
| brand | text | No | |
| platform | choice | No | One of google, chatgpt. |
| limit | number, 1 to 100 | No | Rows to return, up to 100. |
Returns
- query
- platform
- domains[] (name, mentions, ai_volume)
- brands[] (name, mentions, ai_volume)
- credits_spent
- credits_left
Prompts naming a brand
ai_answersThe real prompts whose AI answers name a brand, each with the sources the answer cited. Sources and counts only, never the answer text.
Inputs
| Name | Type | Required | What it is |
|---|---|---|---|
| brand | text | Yes | |
| platform | choice | No | One of google, chatgpt. |
| limit | number, 1 to 50 | No | Rows to return, up to 50. |
Returns
- brand
- platform
- rows[] (prompt, platform, ai_volume, sources[] (url, domain, title))
- credits_spent
- credits_left
Credits
What costs credits, and what never does.
Your allowance
It resets on your billing date.
| Plan | Credits |
|---|---|
| Starter | 5,000 |
| Pro | 15,000 |
| Growth | 35,000 |
| Free trial (7 days) | 1,500 |
Top-up packs
Buy one from Settings, or ask your AI to call buy_credits. Packs never expire.
| Pack | Price |
|---|---|
| 2,000 credits | $25 |
| 5,000 credits | $55 |
| 15,000 credits | $150 |
What each tool costs
What each priced tool costs. A tool that returns fewer rows than it charged for gives the difference back.
| Credits | What you get |
|---|---|
| 4 credits a prompt | one suggested prompt suggest_prompts |
| 100 credits | a fresh read of your market In the app |
| 25 credits | one brief get_brief, write_brief |
| 5 credits | one prompt run now on your engines run_prompt |
| 2 credits a phrase, 10 at least | search volume, per phrase search_volume |
| 40 credits | up to 200 phrases in a category discover_phrases |
| 40 credits | up to 200 phrases a competitor ranks for competitor_keywords |
| 50 credits | up to 200 phrases they rank for and you do not keyword_gap |
| 40 credits | up to 200 phrases where Google's AI cites a site aio_citations |
| 100 credits | who AI answers mention for a topic or brand ai_mentions |
| 100 credits | the prompts and sources naming a brand ai_answers |
Rollover
Unused credits carry into the next month, up to twice your allowance in total. Purchased packs sit outside that cap and never expire.
Never costs credits
- Daily tracking on your engines
- Every read tool, from the workspace to the ranked list
- Adding, editing, pausing and deleting prompts
- Competitor, brand and engine changes
- Action statuses and refreshing the ranked list
- Saving and reading drafts
- Reading a brief that already exists
Limits
The limits.
| Limit | What it covers |
|---|---|
| 120 calls a minute | MCP, for one key or connection. |
| 60 calls a minute | API, for one key. |
| 300 research calls a day | The research tools, for one workspace. |
| 500 changes a day | Everything agents add, edit or delete on one workspace. |
| 20 manual runs a day | run_prompt, for one workspace. The daily run is separate and never counts. |
| 2 briefs a day | For one action, counting get_brief on first generation and write_brief. |
| 30 days | How long a Claude.ai or ChatGPT connection’s token lives. It refreshes on its own. You sign in again only if you revoke it. |
API
The API.
Routes
Base URL https://platform.amaware.ai/api/v1
| Method | Path | What it does |
|---|---|---|
| GET | /capabilities | Every tool your plan and balance can call right now, with its inputs and credits. |
| GET | /credits | Your balance, the allowance, the reset date, what used credits this period and the packs on sale. |
| POST | /tools/{key} | Run one tool. The body is the tool’s inputs as a JSON object. An empty body is fine for a tool with none. |
One call
curl -X POST https://platform.amaware.ai/api/v1/tools/list_gaps \
-H "Authorization: Bearer <your key>" \
-H "Content-Type: application/json" \
-d '{ "limit": 20 }'{ "ok": true, "gaps": [ ... ], "total": 14, "as_of": "2026-09-20", "computed_at": "..." }
{ "ok": false, "error": "credits", "message": "..." }Status codes
Every failure is a JSON object with ok: false, a short error code and a message you can show a person.
| Code | When |
|---|---|
| 200 | It worked. The body carries ok: true and the tool’s fields. |
| 400 | The input did not match the tool. The message names the field. |
| 401 | No key, or a key that is not live any more. |
| 402 | Not enough credits. Buy a pack or wait for the reset. |
| 403 | The API is on the Growth plan. The MCP works on every plan. |
| 404 | No tool with that name. GET /capabilities lists them. |
| 409 | Refused as asked. The plan is full, a run is still going, or the item cannot take that change yet. |
| 429 | Over a limit. The message says which one and when to try again. |
| 503 | An engine or a data source did not answer. Nothing was charged. Try again in a minute. |
| 500 | Something on our side. We have been told. Try again in a minute. |
Changelog
What shipped, by date.
20 September 2026
37 tools- get_workspace
- list_prompts
- get_prompt
- list_sources
- list_competitors
- get_action
- get_agent_activity
- list_capabilities
- add_prompts
- edit_prompt
- set_prompt_active
- delete_prompt
- run_prompt
- suggest_prompts
- add_competitor
- update_competitor
- remove_competitor
- update_brand
- get_voice
- update_voice
- refresh_voice
- set_engines
- refresh_actions
- set_action_status
- write_brief
- update_brief
- save_draft
- get_draft
- get_credits
- buy_credits
- search_volume
- discover_phrases
- competitor_keywords
- keyword_gap
- aio_citations
- ai_mentions
- ai_answers
18 September 2026
5 toolsStart showing up in AI search results.
About ten minutes to set up. Today you see what AI says about you. This week you get your first easy steps.
Free for 7 days with a card on file.