Call the NoddyAI platform API (graine.ai) to manage voice agents, place calls, handle telephony, and retrieve call records.
No secrets ship in this skill. This package is documentation only (markdown files). It does not contain API keys, tokens, passwords, or org_id values. Operators must supply credentials via the host (OpenClaw secrets, environment variables, or your workspace's approved credential store - see host documentation). The model must use Authorization: Bearer only with a key the user or runtime already configured, never invent or embed credentials in skill text.
Declare required configuration to the user. Before any API call, ensure a Graine/NoddyAI API key (prefix gat_) and an organization- id are available from configuration; if missing, ask the user to add them - do not proceed with placeholder secrets.
Confirm before high-impact actions. Obtain explicit user confirmation before: placing outbound or batch calls, transferring live calls, revoking API tokens, deleting agents, or changing inbound webhook URLs. Summarize the exact numbers, agent IDs, or URLs affected.
What “save IDs” means. Retain call_sid, agent IDs, and similar values only in the current task/session so follow-up calls (e.g. GET call status) work. Do not send credentials or tokens to third parties; do not store identifiers beyond what the user expects for the active workflow.
Webhooks. webhook_url and inbound webhook fields send events to URLs the user provides. They must verify those endpoints are under their control before PATCH/POST that set webhooks.
https://api.graine.ai. It does not require a local openclaw run command (many CLI versions have no run - use openclaw --help).curl or any HTTP client; see README.md for CLI troubleshooting and ClawHub publish tips (slug conflicts, network status codes).Credential source (not in repo): API key and org id come from user/host configuration only.
All requests require:
https://api.graine.ai (fixed; no other base URLs for this skill)Authorization: Bearer <API_KEY> - key prefix gat_, supplied by the user or secret storeorganization-XXXX), supplied by the user or secret storeRefer to endpoints.md for the full endpoint reference and examples.md for ready-to-use request bodies.
When the user asks you to interact with NoddyAI, identify which operation they need from the list below and construct the HTTP request using the details in endpoints.md.
#OperationMethodPath1Validate API tokenGET/api/v1/api-tokens/validate-token2List API tokensGET/api/v1/api-tokens/list-tokens3Revoke API tokenDELETE/api/v1/api-tokens/revoke-token/{token}4Create voice agentPOST/api/v1/agents5Get agent (runtime format)GET/api/v1/agents/{agent_id}6List agentsGET/api/v1/agents7Update agent voice/synthesizerPATCH/api/v1/agents/{agent_id}8Update agent system promptPATCH/api/v1/agents/{agent_id}9Add API tool/skill to agentPATCH/api/v1/agents/{agent_id}10Delete agentDELETE/api/v1/agents/{agent_id}11Make outbound callPOST/api/v1/telephony/call12Get call statusGET/api/v1/telephony/call/{call_sid}13Transfer call (human handoff)POST/api/v1/telephony/transfer14Create inbound agentPOST/api/v1/telephony/inbound-agents15Update inbound webhook URLsPATCH/api/v1/telephony/inbound-agents/webhooks16Submit batch callPOST/api/v1/batch/calls17Upload CSV batchPOST/api/v1/batch/upload18List call recordsGET/api/v1/calls19Get single call recordGET/api/v1/calls/{call_sid}
call_sid values returned from telephony, keep them in this conversation for follow-up status checks only.webhooks.md - use when the user builds or debugs their own webhook servers.