Social media, DMs, blog syndication & E.164 telecom for AI agents across 18+ networks.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Optional Nuntior Bearer API key (Bearer nnt_live_...). Call account_register first for zero-browser provisioning.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Provision a new Nuntior user account, multi-tenant workspace, default brand profile, and live Bearer API key (`ntr_live_...`) in one zero-browser call. Use this tool when an AI agent or developer needs to onboard from scratch without opening a web browser first. Returns the newly created `userId`, `workspaceId`, `defaultProfileId`, live `apiKey`, and a 1-click `claimUrl` so a human owner can optionally claim the workspace in the web console (`https://nuntior.com/app`). If the email already exists, returns a fresh session key for that workspace.
Display name for the human owner or autonomous agent operator (e.g. 'Alex Rivera' or 'Growth Agent').
Owner or developer email address used to identify the Nuntior account and receive workspace claim notifications (e.g. '[email protected]').
Identifier of the calling AI agent harness or MCP client (e.g. 'grok-bot', 'cursor', 'claude-code', 'n8n', 'openclaw', 'windsurf') for telemetry attribution.
Organization, agency, or workspace name used to label the multi-tenant workspace and default brand profile.
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
Tool list last changed Oct 27, 2026.
Provision a new Nuntior user account, multi-tenant workspace, default brand profile, and live Bearer API key (`ntr_live_...`) in one zero-browser call. Use this tool when an AI agent or developer needs to onboard from scratch without opening a web browser first. Returns the newly created `userId`, `workspaceId`, `defaultProfileId`, live `apiKey`, and a 1-click `claimUrl` so a human owner can optionally claim the workspace in the web console (`https://nuntior.com/app`). If the email already exists, returns a fresh session key for that workspace.
| Argument | Type | Description |
|---|---|---|
| name | string | Display name for the human owner or autonomous agent operator (e.g. 'Alex Rivera' or 'Growth Agent'). |
| string | Owner or developer email address used to identify the Nuntior account and receive workspace claim notifications (e.g. '[email protected]'). | |
| agentHarness | string | Identifier of the calling AI agent harness or MCP client (e.g. 'grok-bot', 'cursor', 'claude-code', 'n8n', 'openclaw', 'windsurf') for telemetry attribution. |
| organizationName | string | Organization, agency, or workspace name used to label the multi-tenant workspace and default brand profile. |
{
"type": "object",
"required": [],
"properties": {
"name": {
"type": "string",
"description": "Display name for the human owner or autonomous agent operator (e.g. 'Alex Rivera' or 'Growth Agent')."
},
"email": {
"type": "string",
"description": "Owner or developer email address used to identify the Nuntior account and receive workspace claim notifications (e.g. '[email protected]')."
},
"agentHarness": {
"type": "string",
"default": "grok-bot",
"description": "Identifier of the calling AI agent harness or MCP client (e.g. 'grok-bot', 'cursor', 'claude-code', 'n8n', 'openclaw', 'windsurf') for telemetry attribution."
},
"organizationName": {
"type": "string",
"description": "Organization, agency, or workspace name used to label the multi-tenant workspace and default brand profile."
}
},
"additionalProperties": false
}Inspect the authenticated workspace's subscription tier (`free`, `starter`, `builder`, `scale`), active social account connections versus plan quota limits (3, 12, 35, or 100), monthly posts published, API key prefix, Stripe billing status, and connected brand profiles. Use this read-only diagnostic tool before connecting new social accounts or publishing high-volume campaigns to verify quota availability and account readiness. Returns a structured summary object containing `workspace`, `planLimits`, `usage`, `billing`, `profiles`, and `connectedAccounts`.
| Argument | Type | Description |
|---|---|---|
| apiKey | string | Optional Nuntior Bearer API key (`ntr_live_...`) override when not supplied via the HTTP `Authorization` header. |
| workspaceId | string | Optional workspace identifier (`ws_...`) to inspect a specific tenant workspace when managing multiple workspaces. |
{
"type": "object",
"required": [],
"properties": {
"apiKey": {
"type": "string",
"description": "Optional Nuntior Bearer API key (`ntr_live_...`) override when not supplied via the HTTP `Authorization` header."
},
"workspaceId": {
"type": "string",
"description": "Optional workspace identifier (`ws_...`) to inspect a specific tenant workspace when managing multiple workspaces."
}
},
"additionalProperties": false
}List connected social accounts, initiate 1-click Managed OAuth 2.0 flows (`connect_oauth`), vault custom Bring-Your-Own-Keys (`connect_byok`) with zero markup and AES-256-GCM encryption, run live upstream API token health checks (`account_health`), or disconnect accounts across 18+ platforms. Use this tool whenever you need to link a new social network, verify OAuth token validity and latency, or inspect which platforms are ready for publishing. Returns account metadata, 1-click `authorizationUrl` links, or live latency/health diagnostics; if the workspace connection quota is full, returns a structured `PLAN_CONNECTION_LIMIT_REACHED` upgrade prompt.
| Argument | Type | Description |
|---|---|---|
| action* | string | Account operation: 'list' connected accounts, 'connect_oauth' to get a 1-click OAuth 2.0 authorization URL, 'connect_byok' to store custom API keys/tokens encrypted with AES-256-GCM ($0 markup), 'account_health'/'health_check' to verify live upstream token validity, or 'disconnect' to remove an account. |
| platform | string | Target social, blog, or messaging platform slug (e.g. 'x', 'linkedin', 'bluesky', 'instagram', 'threads', 'youtube', 'tiktok', 'reddit'). Required for 'connect_oauth' and 'connect_byok'. |
| username | string | Account handle, username, Bluesky ATProto handle (e.g. 'brand.bsky.social'), or Mastodon instance handle associated with the social account. |
| accountId | string | Connected social account identifier (e.g. 'acc_x_byok_01'). Required when `action` is 'disconnect' and optional filter for 'account_health'. |
| profileId | string |
Create, list, pause, resume, inspect metrics, or boost organic posts into paid social ad campaigns across LinkedIn Ads, X Ads, Meta (Facebook/Instagram) Ads, and TikTok Spark Ads with 0% Nuntior ad-spend commission. Use this tool when an organic post performs strongly and should be amplified to a targeted B2B or consumer audience with a controlled daily budget. Returns campaign configuration, status, targeting parameters, and real-time spend/conversion snapshots.
| Argument | Type | Description |
|---|---|---|
| name | string | Human-readable campaign name (e.g. 'Q4 AI Agent Launch — LinkedIn Sponsored Update'). |
| action* | string | Paid ads operation: 'list' campaigns, 'create' a new campaign, 'boost_post' to turn an existing organic post into a paid ad, 'pause' or 'resume' delivery, or fetch 'metrics'. |
| platform | string | Target ad network platform (e.g. 'linkedin', 'x', 'facebook', 'instagram', 'tiktok'). |
| objective | string | Campaign optimization objective: 'leads' (lead gen forms/signups), 'traffic' (website clicks), 'engagement' (likes/replies), or 'awareness' (reach/impressions). |
| profileId | string | Brand profile identifier (`prof_...`) linked to the ad account. |
| targeting | object | Structured audience targeting criteria such as countries, job titles, industries, or interest keywords (e.g. `{ "countries": ["US", "AE", "ES"], "titles": ["CTO", "Founder"] }`). |
Query cross-network engagement analytics (`account_overview`, `post_metrics`, `audience_growth`), compute AI-recommended optimal posting windows (`best_times`), or execute live real-time social listening (`social_listen`) across Bluesky, Hacker News, Dev.to, Reddit, and X. Use `social_listen` to discover live community threads, competitor mentions, and high-intent buyer questions matching any keyword query. Returns aggregated engagement metrics, X Smart Link cost savings, optimal CET/UTC posting slots, or live upstream social signals with direct thread URLs and author handles.
| Argument | Type | Description |
|---|---|---|
| query | string | Search keyword, brand name, competitor handle, or buyer-intent phrase when running live `action: 'social_listen'` (e.g. 'MCP server social media API' or 'n8n AI agent workflow'). |
| action* | string | Analytics or listening mode: 'account_overview' for cross-network KPIs, 'post_metrics' for individual post performance, 'audience_growth' for follower velocity, 'best_times' for highest-lift publishing windows, or 'social_listen' for live keyword/intent discovery. |
| postId | string | Optional post identifier (`post_...`) when inspecting granular metrics via `action: 'post_metrics'`. |
| platform | string | Optional social network filter to scope metrics or listening to a single platform. |
| profileId | string | Brand profile identifier (`prof_...`) to aggregate analytics for. |
Generate a live 1-click Stripe Checkout session URL or Stripe Customer Billing Portal link to upgrade a Nuntior workspace subscription. Supports upgrading to `starter` ($19/mo, 12 social connections, 1,500 posts/mo), `builder` ($35/mo, 35 social connections, 10,000 posts/mo), or `scale` ($79/mo, 100 social connections, 50,000 posts/mo + $0.50 per extra connection), plus optional `dedicated_phone` ($1.50/mo E.164 number for SMS, WhatsApp, and SIP Voice AI). Returns `checkoutUrl` (or `portalUrl`), target plan metadata, connection quotas, and user instructions.
| Argument | Type | Description |
|---|---|---|
| plan | string | Target subscription tier: 'starter' ($19/mo, 12 connections), 'builder' ($35/mo, 35 connections), or 'scale' ($79/mo, 100 connections). |
| action | string | Billing operation: 'checkout' creates a new Stripe Checkout upgrade session URL; 'portal' generates a Stripe Customer Portal link to manage existing payment methods and invoices. |
| apiKey | string | Optional Nuntior Bearer API key (`ntr_live_...`) override when not provided in the HTTP `Authorization` header. |
| dedicated_phone | boolean | When true, attaches a dedicated E.164 telecom phone number add-on ($1.50/mo) for transactional SMS, WhatsApp Business Cloud, and SIP Voice AI agents. |
{
"type": "object",
"required": [],
"properties": {
"plan": {
"enum": [
"starter",
"builder",
"scale"
],
"type": "string",
"default": "starter",
"description": "Target subscription tier: 'starter' ($19/mo, 12 connections), 'builder' ($35/mo, 35 connections), or 'scale' ($79/mo, 100 connections)."
},
"action": {
"enum": [
"checkout",
"portal"
],
"type": "string",
"default": "checkout",
"description": "Billing operation: 'checkout' creates a new Stripe Checkout upgrade session URL; 'portal' generates a Stripe Customer Portal link to manage existing payment methods and invoices."
},
"apiKey": {
"type": "string",
"description": "Optional Nuntior Bearer API key (`ntr_live_...`) override when not provided in the HTTP `Authorization` header."
},
"dedicated_phone": {
"type": "boolean",
"default": false,
"description": "When true, attaches a dedicated E.164 telecom phone number add-on ($1.50/mo) for transactional SMS, WhatsApp Business Cloud, and SIP Voice AI agents."
}
},
"additionalProperties": false
}Publish or update long-form Markdown SEO articles directly to the hosted Nuntior Live Reader (`https://nuntior.com/p/:slug`), Ghost CMS, WordPress, Webflow, Dev.to, Medium, or Hashnode. Use this tool for canonical content-first workflows: publish the full technical article first to get a live canonical URL, then pass that URL into `posts_publish` with `xLinkStrategy: 'first_reply'` to syndicate across 18 social networks. Returns the live `articleId`, `slug`, public `url`, `blogMirrorUrl`, and publication timestamp.
| Argument | Type | Description |
|---|---|---|
| slug | string | Custom URL slug (e.g. 'agent-first-social-mcp-architecture'). Auto-generated from `title` if omitted. |
| tags | array | Array of topic tags or categories attached to the article for SEO discovery (e.g. `['AI Agents', 'MCP', 'Automation']`). |
| title | string | Full headline title of the blog article (used for H1, OpenGraph tags, and automatic slug generation). |
| action* | string | CMS blog operation: 'list_sites' returns connected blog publications and existing articles, 'publish_article' publishes a new Markdown article, and 'update_article' edits an existing article by slug or ID. |
| platform | string | Destination blog or CMS engine: 'nuntior' (instant hosted reader at nuntior.com/p/:slug), 'ghost', 'wordpress', 'webflow', 'devto', 'medium', or 'hashnode'. |
| articleId | string | Existing article identifier (`art_...`) when updating an article via `action: 'update_article'`. |
List, reply to, hide, or delete public comments on published social posts, or configure an automated viral Auto-Plug reply (`auto_plug`) that triggers when a post crosses a specified like threshold. Use this tool to engage commenters, remove spam on X/LinkedIn/Instagram/YouTube, or automatically plug a newsletter or product URL underneath high-performing posts. Returns moderation execution status or the active Auto-Plug rule configuration.
| Argument | Type | Description |
|---|---|---|
| action* | string | Comment moderation action: 'list' comments on a post, 'reply' publicly to a comment, 'hide' or 'delete' spam/abusive comments, or 'auto_plug' to attach an automatic threshold-triggered reply. |
| postId | string | Target social post identifier (`post_...`) whose comments are being listed, moderated, or configured for Auto-Plug. |
| commentId | string | Specific comment identifier (`cmt_...`) when replying to, hiding, or deleting an individual comment. |
| profileId | string | Brand profile identifier (`prof_...`) that owns the social post and comments. |
| replyText | string | Public reply message text when `action` is 'reply'. |
| autoPlugMessage | string | Call-to-action comment text (e.g. link to docs, newsletter, or product page) automatically posted once the post reaches `autoPlugTriggerLikes`. |
| autoPlugTriggerLikes |
Manage the unified cross-network social and messaging inbox across LinkedIn, X DMs, Instagram, Threads, Telegram, and WhatsApp. Supports listing conversation threads (`list_threads`), reading full message history in a thread (`read_thread`), dispatching outbound replies (`reply`), and marking threads as read (`mark_read`). Returns normalized conversation objects with sender handles, timestamps, direction (`inbound`/`outbound`), and delivery confirmation.
| Argument | Type | Description |
|---|---|---|
| action* | string | Inbox operation: 'list_threads' returns recent DM conversations, 'read_thread' fetches all messages in `threadId`, 'reply' sends a direct message response, and 'mark_read' clears unread flags. |
| platform | string | Optional social or messaging platform filter (e.g. 'linkedin', 'x', 'instagram', 'telegram', 'whatsapp'). |
| threadId | string | Conversation thread identifier (`thr_...`). Required when `action` is 'reply' and optional target for 'read_thread' or 'mark_read'. |
| profileId | string | Brand profile identifier (`prof_...`) whose unified inbox should be queried or replied from. |
| replyBody | string | Text body of the outbound direct message reply when `action` is 'reply'. Required for 'reply'. |
| unreadOnly | boolean | When true, filters `list_threads` to return only unread inbound conversations requiring agent or human attention. |
Execute media ingestion, zero-egress storage uploads, automatic multi-aspect-ratio video reframing (`9:16`, `16:9`, `1:1`, `4:5`), viral short clip extraction with burned-in captions, and AI visual asset generation (`media_generate`). Use this tool before `posts_publish` whenever a campaign requires uploading video/image files or converting a single landscape video into vertical Reels, TikToks, and YouTube Shorts. Returns presigned PUT upload URLs, zero-egress CDN URLs, transcoded aspect-ratio variant maps, or extracted clip URLs.
| Argument | Type | Description |
|---|---|---|
| action* | string | Media pipeline operation: 'presign_upload' creates a direct PUT upload URL, 'auto_fit_video' reframes video into target aspect ratios with -14 LUFS audio normalization, 'extract_clips' cuts viral vertical highlights, 'media_generate' renders social visuals from a prompt, and 'check_status' polls transcode progress. |
| prompt | string | Creative prompt or visual template instructions when running `action: 'media_generate'` (e.g. 'Minimalist B2B architecture diagram for MCP server launch'). |
| fileName | string | Original file name with extension (e.g. 'keynote-demo.mp4' or 'launch-carousel.png') when requesting a presigned upload URL. |
| mimeType | string | MIME type of the media asset being uploaded or generated (e.g. 'video/mp4', 'image/png', 'image/jpeg', 'image/svg+xml'). |
| clipCount | number | Number of short highlight clips (1 to 10) to extract from a long-form source video when `action` is 'extract_clips'. |
List, inspect, update, delete, or retry scheduled, queued, and published social media posts stored in Nuntior Cloud. Use this tool to audit the content calendar, edit copy or scheduled timestamps before publication, remove cancelled posts, or automatically retry any failed platform deliveries. Returns matching `ScheduledPost` records with per-platform delivery status and timestamps.
| Argument | Type | Description |
|---|---|---|
| action* | string | Post management operation: 'list' posts (optionally filtered by status), 'get' a single post by `postId`, 'update' post content or schedule time, 'delete' a post, or 'retry_failed' to re-dispatch failed deliveries. |
| postId | string | Unique post identifier (`post_...`). Required when `action` is 'get', 'update', or 'delete'. |
| content | string | Updated post text content when executing `action: 'update'`. |
| profileId | string | Brand profile identifier (`prof_...`) used to scope the post query or mutation. |
| scheduledFor | string | Updated ISO-8601 publication timestamp when rescheduling a post via `action: 'update'`. |
| statusFilter | string | Optional status filter when listing posts (e.g. 'published', 'scheduled', 'queued', 'failed', 'draft'). |
{
"type": "object",
"required": [
"action"
],
"properties": {
"action": {
"enum": [
"list",
"get",
"update",
"delete",
"retry_failed"
],
"type": "string",
"description": "Post management operation: 'list' posts (optionally filtered by status), 'get' a single post by `postId`, 'update' post content or schedule time, 'delete' a post, or 'retry_failed' to re-dispatch failed deliveries."
},
"postId": {
"type": "string",
"description": "Unique post identifier (`post_...`). Required when `action` is 'get', 'update', or 'delete'."
},
"content": {
"type": "string",
"description": "Updated post text content when executing `action: 'update'`."
},
"profileId": {
"type": "string",
"default": "prof_allometrik",
"description": "Brand profile identifier (`prof_...`) used to scope the post query or mutation."
},
"scheduledFor": {
"type": "string",
"description": "Updated ISO-8601 publication timestamp when rescheduling a post via `action: 'update'`."
},
"statusFilter": {
"type": "string",
"description": "Optional status filter when listing posts (e.g. 'published', 'scheduled', 'queued', 'failed', 'draft')."
}
},
"additionalProperties": false
}Publish immediately (`publish_now`), schedule for a future ISO-8601 timestamp (`schedule`), enqueue into the profile slot queue (`queue`), or simultaneously cross-post (`cross_post`) content and media across 18+ social networks. Includes the built-in X Smart Link Optimizer (`xLinkStrategy: 'first_reply'`), which automatically strips external links from the main X post and publishes them in an immediate 1st reply—cutting X API link costs by 85% ($0.03 vs $0.20) while avoiding main-feed link reach penalties. Returns the persisted `postId`, per-platform delivery receipts (`platformResults`), total API cost (`totalCostUsd`), and exact dollar savings (`totalSavedViaSmartLinkUsd`).
| Argument | Type | Description |
|---|---|---|
| action* | string | Publishing mode: 'publish_now' dispatches immediately, 'cross_post' syndicates tailored variants across multiple networks at once, 'schedule' holds until `scheduledFor`, and 'queue' places the post in the next best engagement slot. |
| content* | string | Primary post body text, caption, or thread hook. May include hashtags, mentions, and URLs (external URLs on X are automatically handled according to `xLinkStrategy`). |
| platforms* | array | Non-empty array of destination social network slugs to publish or cross-post to (e.g. `['x', 'linkedin', 'bluesky', 'threads']`). |
| profileId | string | Brand profile identifier (`prof_...`) whose connected social accounts will publish the post. |
| scheduledFor | string | Optional ISO-8601 UTC or offset timestamp (e.g. '2026-10-27T08:30:00+01:00') specifying when a scheduled post should go live. |
Create, list, update, or delete isolated multi-tenant brand or client profiles within a Nuntior workspace, including default timezone, X Smart Link optimization strategy, and automatic media aspect-ratio fitting rules. Use this tool to segment social accounts by brand, business unit, or agency client so credentials and posts never mix across profiles. Returns the list of profiles or the newly created/updated/deleted `Profile` record persisted in Nuntior Cloud.
| Argument | Type | Description |
|---|---|---|
| name | string | Human-readable brand, executive, or client display name for the profile (e.g. 'Allometrik Official' or 'Acme Corp'). |
| action* | string | Profile lifecycle operation to perform: 'list' all profiles in the workspace, 'create' a new isolated brand profile, 'update' an existing profile's settings, or 'delete' a profile by ID. |
| timezone | string | IANA timezone identifier (e.g. 'Europe/Madrid', 'America/New_York', 'Asia/Dubai') used for queue scheduling and best-time-to-post analytics. |
| profileId | string | Target profile identifier (e.g. 'prof_allometrik'). Required for 'update' and 'delete' actions; optional custom ID when creating a profile. |
| handleSlug | string | URL-friendly canonical handle slug (e.g. 'allometrik') used to verify social handle consistency across connected platforms. |
| autoAdjustMedia | boolean | When true, automatically reframes and transcodes uploaded images and videos to match each destination social network's required aspect ratio (9:16, 16:9, 1:1, 4:5). |
Send transactional SMS messages ($0.004/msg), dispatch pre-approved WhatsApp Business Cloud template messages (`send_whatsapp_template`), initiate outbound AI Voice calls (`place_call`), or audit the telecom usage ledger (`logs`). Use this tool for instant out-of-band customer notifications, executive alerts, appointment reminders, or autonomous voice follow-ups. Returns dispatch confirmation, `messageId`, E.164 sender/recipient numbers, and exact per-message cost in USD.
| Argument | Type | Description |
|---|---|---|
| body | string | UTF-8 message body for SMS or parameter payload for WhatsApp messages. |
| action* | string | Telecom dispatch action: 'send_sms' sends an E.164 text message, 'send_whatsapp_template' sends a WhatsApp Business message, 'place_call' initiates an outbound AI voice call, and 'logs' retrieves the telecom billing ledger. |
| toNumber | string | Recipient E.164 phone number including country prefix (e.g. '+971500000000' or '+14155550199'). Required for 'send_sms', 'send_whatsapp_template', and 'place_call'. |
| profileId | string | Brand profile identifier (`prof_...`) associated with the sender number. |
| fromNumber | string | Sender E.164 phone number provisioned in the workspace (e.g. '+34919019988'). |
| templateName | string | Approved WhatsApp Business Cloud template identifier (e.g. 'executive_briefing_confirm' or 'order_status_update') when `action` is 'send_whatsapp_template'. |
Search available E.164 phone numbers, provision dedicated telecom numbers ($1.50/mo vs $59/mo legacy bundles), list active numbers, or bind a number to a SIP/WebRTC Voice AI Agent trunk. Use this tool when an AI agent needs a dedicated SMS, WhatsApp Business Cloud, or inbound/outbound voice phone number in the US, Spain, UAE, UK, or EU. Returns available or provisioned `TelecomNumber` records with capabilities (`sms`, `voice`, `whatsapp`) and SIP trunk URIs.
| Argument | Type | Description |
|---|---|---|
| action* | string | Telecom number operation: 'search_available' lists purchasable E.164 numbers by country, 'provision' activates a dedicated number ($1.50/mo), 'configure_sip_voice_agent' attaches a SIP URI and voice prompt, and 'list' returns active workspace numbers. |
| numberId | string | Internal telecom number identifier (`num_...`) when configuring SIP routing via `configure_sip_voice_agent`. |
| profileId | string | Brand profile identifier (`prof_...`) that owns the telecom number. |
| countryCode | string | Two-letter ISO-3166 alpha-2 country code for number search or provisioning (e.g. 'ES' for Spain +34, 'US' for United States +1, 'AE' for UAE +971, 'GB' for UK +44). |
| phoneNumber | string | Specific E.164 phone number (e.g. '+34919021101' or '+14158904321') to provision when `action` is 'provision'. |
| sipTrunkUri | string | Destination SIP or WebRTC trunk URI (e.g. 'sip:[email protected]') for routing live inbound/outbound AI voice calls. |
Query real-time web and API traffic telemetry, acquisition channel attribution (Smithery, Glama, PulseMCP, Official MCP Registry, Cursor, Claude Code, Grok Bot, n8n, Direct, X, LinkedIn, GitHub), MCP tool call volume, OAuth conversion funnel metrics, geographic distribution, and the live request stream. Use this read-only observability tool to monitor how developers and AI agents discover and invoke Nuntior in production. Returns aggregated counters, channel breakdowns, latency percentiles, and recent event logs.
| Argument | Type | Description |
|---|---|---|
| limit | number | Maximum number of recent live traffic events to return in the event stream (default: 50, max: 200). |
| eventType | string | Optional filter to restrict recent events to a specific telemetry event type (e.g. 'mcp_call', 'signup', 'checkout'). |
| windowHours | number | Lookback aggregation time window in hours (default: 168 hours = 7 days; use 24 for last 24 hours). |
| sourceChannel | string | Optional filter by acquisition source channel slug (e.g. 'glama', 'smithery', 'pulsemcp', 'mcp-registry', 'n8n', 'grok-bot', 'cursor', 'direct'). |
{
"type": "object",
"required": [],
"properties": {
"limit": {
"type": "number",
"default": 50,
"description": "Maximum number of recent live traffic events to return in the event stream (default: 50, max: 200)."
},
"eventType": {
"enum": [
"page_view",
"mcp_call",
"api_call",
"oauth_start",
"oauth_callback",
"signup",
"checkout"
],
"type": "string",
"description": "Optional filter to restrict recent events to a specific telemetry event type (e.g. 'mcp_call', 'signup', 'checkout')."
},
"windowHours": {
"type": "number",
"default": 168,
"description": "Lookback aggregation time window in hours (default: 168 hours = 7 days; use 24 for last 24 hours)."
},
"sourceChannel": {
"type": "string",
"description": "Optional filter by acquisition source channel slug (e.g. 'glama', 'smithery', 'pulsemcp', 'mcp-registry', 'n8n', 'grok-bot', 'cursor', 'direct')."
}
},
"additionalProperties": false
}| Brand profile identifier (e.g. 'prof_allometrik') that owns or filters the social account connections. |
| accessToken | string | BYOK OAuth 2.0 Bearer access token, OAuth 1.0a access token, Telegram Bot token, or Discord Webhook URL encrypted at rest. |
| refreshToken | string | Optional OAuth 2.0 refresh token or OAuth 1.0a access token secret used for automatic token rotation and health recovery. |
| customClientId | string | BYOK OAuth App Client ID, API Key, Bot ID, or Bluesky identifier encrypted at rest with AES-256-GCM in the Nuntior Vault (0% platform markup). |
| customClientSecret | string | BYOK OAuth App Client Secret, API Key Secret, or Bluesky App Password encrypted at rest with AES-256-GCM in the Nuntior Vault. |
{
"type": "object",
"required": [
"action"
],
"properties": {
"action": {
"enum": [
"list",
"connect_oauth",
"connect_byok",
"health_check",
"account_health",
"disconnect"
],
"type": "string",
"description": "Account operation: 'list' connected accounts, 'connect_oauth' to get a 1-click OAuth 2.0 authorization URL, 'connect_byok' to store custom API keys/tokens encrypted with AES-256-GCM ($0 markup), 'account_health'/'health_check' to verify live upstream token validity, or 'disconnect' to remove an account."
},
"platform": {
"enum": [
"x",
"linkedin",
"bluesky",
"instagram",
"facebook",
"threads",
"tiktok",
"youtube",
"reddit",
"pinterest",
"mastodon",
"telegram",
"discord",
"google_business",
"ghost",
"wordpress",
"webflow",
"whatsapp"
],
"type": "string",
"description": "Target social, blog, or messaging platform slug (e.g. 'x', 'linkedin', 'bluesky', 'instagram', 'threads', 'youtube', 'tiktok', 'reddit'). Required for 'connect_oauth' and 'connect_byok'."
},
"username": {
"type": "string",
"description": "Account handle, username, Bluesky ATProto handle (e.g. 'brand.bsky.social'), or Mastodon instance handle associated with the social account."
},
"accountId": {
"type": "string",
"description": "Connected social account identifier (e.g. 'acc_x_byok_01'). Required when `action` is 'disconnect' and optional filter for 'account_health'."
},
"profileId": {
"type": "string",
"description": "Brand profile identifier (e.g. 'prof_allometrik') that owns or filters the social account connections."
},
"accessToken": {
"type": "string",
"description": "BYOK OAuth 2.0 Bearer access token, OAuth 1.0a access token, Telegram Bot token, or Discord Webhook URL encrypted at rest."
},
"refreshToken": {
"type": "string",
"description": "Optional OAuth 2.0 refresh token or OAuth 1.0a access token secret used for automatic token rotation and health recovery."
},
"customClientId": {
"type": "string",
"description": "BYOK OAuth App Client ID, API Key, Bot ID, or Bluesky identifier encrypted at rest with AES-256-GCM in the Nuntior Vault (0% platform markup)."
},
"customClientSecret": {
"type": "string",
"description": "BYOK OAuth App Client Secret, API Key Secret, or Bluesky App Password encrypted at rest with AES-256-GCM in the Nuntior Vault."
}
},
"additionalProperties": false
}| campaignId |
| string |
| Ad campaign identifier (`camp_...`). Required when pausing, resuming, or querying a specific campaign. |
| postIdToBoost | string | Existing Nuntior organic post ID (`post_...`) to promote when `action` is 'boost_post'. |
| dailyBudgetUsd | number | Daily ad spend cap in USD (e.g. 25 for $25/day). Nuntior charges 0% markup on ad spend. |
{
"type": "object",
"required": [
"action"
],
"properties": {
"name": {
"type": "string",
"description": "Human-readable campaign name (e.g. 'Q4 AI Agent Launch — LinkedIn Sponsored Update')."
},
"action": {
"enum": [
"list",
"create",
"pause",
"resume",
"boost_post",
"metrics"
],
"type": "string",
"description": "Paid ads operation: 'list' campaigns, 'create' a new campaign, 'boost_post' to turn an existing organic post into a paid ad, 'pause' or 'resume' delivery, or fetch 'metrics'."
},
"platform": {
"enum": [
"x",
"linkedin",
"bluesky",
"instagram",
"facebook",
"threads",
"tiktok",
"youtube",
"reddit",
"pinterest",
"mastodon",
"telegram",
"discord",
"google_business",
"ghost",
"wordpress",
"webflow",
"whatsapp"
],
"type": "string",
"default": "linkedin",
"description": "Target ad network platform (e.g. 'linkedin', 'x', 'facebook', 'instagram', 'tiktok')."
},
"objective": {
"enum": [
"engagement",
"traffic",
"leads",
"awareness"
],
"type": "string",
"default": "leads",
"description": "Campaign optimization objective: 'leads' (lead gen forms/signups), 'traffic' (website clicks), 'engagement' (likes/replies), or 'awareness' (reach/impressions)."
},
"profileId": {
"type": "string",
"default": "prof_allometrik",
"description": "Brand profile identifier (`prof_...`) linked to the ad account."
},
"targeting": {
"type": "object",
"description": "Structured audience targeting criteria such as countries, job titles, industries, or interest keywords (e.g. `{ \"countries\": [\"US\", \"AE\", \"ES\"], \"titles\": [\"CTO\", \"Founder\"] }`)."
},
"campaignId": {
"type": "string",
"description": "Ad campaign identifier (`camp_...`). Required when pausing, resuming, or querying a specific campaign."
},
"postIdToBoost": {
"type": "string",
"description": "Existing Nuntior organic post ID (`post_...`) to promote when `action` is 'boost_post'."
},
"dailyBudgetUsd": {
"type": "number",
"default": 25,
"description": "Daily ad spend cap in USD (e.g. 25 for $25/day). Nuntior charges 0% markup on ad spend."
}
},
"additionalProperties": false
}| periodDays | number | Lookback window in days (e.g. 7, 30, 90) for aggregating impressions, engagements, and follower growth. |
{
"type": "object",
"required": [
"action"
],
"properties": {
"query": {
"type": "string",
"description": "Search keyword, brand name, competitor handle, or buyer-intent phrase when running live `action: 'social_listen'` (e.g. 'MCP server social media API' or 'n8n AI agent workflow')."
},
"action": {
"enum": [
"account_overview",
"post_metrics",
"audience_growth",
"best_times",
"social_listen"
],
"type": "string",
"description": "Analytics or listening mode: 'account_overview' for cross-network KPIs, 'post_metrics' for individual post performance, 'audience_growth' for follower velocity, 'best_times' for highest-lift publishing windows, or 'social_listen' for live keyword/intent discovery."
},
"postId": {
"type": "string",
"description": "Optional post identifier (`post_...`) when inspecting granular metrics via `action: 'post_metrics'`."
},
"platform": {
"enum": [
"x",
"linkedin",
"bluesky",
"instagram",
"facebook",
"threads",
"tiktok",
"youtube",
"reddit",
"pinterest",
"mastodon",
"telegram",
"discord",
"google_business",
"ghost",
"wordpress",
"webflow",
"whatsapp"
],
"type": "string",
"description": "Optional social network filter to scope metrics or listening to a single platform."
},
"profileId": {
"type": "string",
"default": "prof_allometrik",
"description": "Brand profile identifier (`prof_...`) to aggregate analytics for."
},
"periodDays": {
"type": "number",
"default": 30,
"description": "Lookback window in days (e.g. 7, 30, 90) for aggregating impressions, engagements, and follower growth."
}
},
"additionalProperties": false
}| profileId | string | Brand profile identifier (`prof_...`) credited as the publication author. |
| canonicalUrl | string | Optional canonical URL (`<link rel="canonical">`) when cross-syndicating an existing blog post to Dev.to, Medium, or Hashnode. |
| markdownBody | string | Complete long-form article body formatted in standard Markdown (supports headings, code blocks, tables, and links). |
| publishStatus | string | Publication visibility state: 'published' makes the article immediately live; 'draft' stages it for review. |
{
"type": "object",
"required": [
"action"
],
"properties": {
"slug": {
"type": "string",
"description": "Custom URL slug (e.g. 'agent-first-social-mcp-architecture'). Auto-generated from `title` if omitted."
},
"tags": {
"type": "array",
"items": {
"type": "string"
},
"description": "Array of topic tags or categories attached to the article for SEO discovery (e.g. `['AI Agents', 'MCP', 'Automation']`)."
},
"title": {
"type": "string",
"description": "Full headline title of the blog article (used for H1, OpenGraph tags, and automatic slug generation)."
},
"action": {
"enum": [
"list_sites",
"publish_article",
"update_article"
],
"type": "string",
"description": "CMS blog operation: 'list_sites' returns connected blog publications and existing articles, 'publish_article' publishes a new Markdown article, and 'update_article' edits an existing article by slug or ID."
},
"platform": {
"enum": [
"ghost",
"wordpress",
"webflow",
"nuntior",
"devto",
"medium",
"hashnode"
],
"type": "string",
"default": "nuntior",
"description": "Destination blog or CMS engine: 'nuntior' (instant hosted reader at nuntior.com/p/:slug), 'ghost', 'wordpress', 'webflow', 'devto', 'medium', or 'hashnode'."
},
"articleId": {
"type": "string",
"description": "Existing article identifier (`art_...`) when updating an article via `action: 'update_article'`."
},
"profileId": {
"type": "string",
"default": "prof_allometrik",
"description": "Brand profile identifier (`prof_...`) credited as the publication author."
},
"canonicalUrl": {
"type": "string",
"description": "Optional canonical URL (`<link rel=\"canonical\">`) when cross-syndicating an existing blog post to Dev.to, Medium, or Hashnode."
},
"markdownBody": {
"type": "string",
"description": "Complete long-form article body formatted in standard Markdown (supports headings, code blocks, tables, and links)."
},
"publishStatus": {
"enum": [
"draft",
"published"
],
"type": "string",
"default": "published",
"description": "Publication visibility state: 'published' makes the article immediately live; 'draft' stages it for review."
}
},
"additionalProperties": false
}| number |
| Like count threshold (e.g. 25 or 50 likes) that triggers Nuntior to automatically publish `autoPlugMessage` as a follow-up comment. |
{
"type": "object",
"required": [
"action"
],
"properties": {
"action": {
"enum": [
"list",
"reply",
"hide",
"delete",
"auto_plug"
],
"type": "string",
"description": "Comment moderation action: 'list' comments on a post, 'reply' publicly to a comment, 'hide' or 'delete' spam/abusive comments, or 'auto_plug' to attach an automatic threshold-triggered reply."
},
"postId": {
"type": "string",
"description": "Target social post identifier (`post_...`) whose comments are being listed, moderated, or configured for Auto-Plug."
},
"commentId": {
"type": "string",
"description": "Specific comment identifier (`cmt_...`) when replying to, hiding, or deleting an individual comment."
},
"profileId": {
"type": "string",
"default": "prof_allometrik",
"description": "Brand profile identifier (`prof_...`) that owns the social post and comments."
},
"replyText": {
"type": "string",
"description": "Public reply message text when `action` is 'reply'."
},
"autoPlugMessage": {
"type": "string",
"description": "Call-to-action comment text (e.g. link to docs, newsletter, or product page) automatically posted once the post reaches `autoPlugTriggerLikes`."
},
"autoPlugTriggerLikes": {
"type": "number",
"default": 25,
"description": "Like count threshold (e.g. 25 or 50 likes) that triggers Nuntior to automatically publish `autoPlugMessage` as a follow-up comment."
}
},
"additionalProperties": false
}{
"type": "object",
"required": [
"action"
],
"properties": {
"action": {
"enum": [
"list_threads",
"read_thread",
"reply",
"mark_read"
],
"type": "string",
"description": "Inbox operation: 'list_threads' returns recent DM conversations, 'read_thread' fetches all messages in `threadId`, 'reply' sends a direct message response, and 'mark_read' clears unread flags."
},
"platform": {
"enum": [
"x",
"linkedin",
"bluesky",
"instagram",
"facebook",
"threads",
"tiktok",
"youtube",
"reddit",
"pinterest",
"mastodon",
"telegram",
"discord",
"google_business",
"ghost",
"wordpress",
"webflow",
"whatsapp"
],
"type": "string",
"description": "Optional social or messaging platform filter (e.g. 'linkedin', 'x', 'instagram', 'telegram', 'whatsapp')."
},
"threadId": {
"type": "string",
"description": "Conversation thread identifier (`thr_...`). Required when `action` is 'reply' and optional target for 'read_thread' or 'mark_read'."
},
"profileId": {
"type": "string",
"default": "prof_allometrik",
"description": "Brand profile identifier (`prof_...`) whose unified inbox should be queried or replied from."
},
"replyBody": {
"type": "string",
"description": "Text body of the outbound direct message reply when `action` is 'reply'. Required for 'reply'."
},
"unreadOnly": {
"type": "boolean",
"default": false,
"description": "When true, filters `list_threads` to return only unread inbound conversations requiring agent or human attention."
}
},
"additionalProperties": false
}| profileId |
| string |
| Brand profile identifier (`prof_...`) that owns the media asset. |
| sizeBytes | number | File size in bytes used to validate upload quotas and allocate storage buffers. |
| mediaAssetId | string | Existing media asset identifier (`med_...`) to reframe, extract clips from, or inspect status. |
| targetAspectRatios | array | Target aspect ratios for automatic video/image reframing: '9:16' (Reels/TikTok/Shorts), '16:9' (X/LinkedIn/YouTube), '1:1' (Square), '4:5' (Portrait Feed). |
{
"type": "object",
"required": [
"action"
],
"properties": {
"action": {
"enum": [
"presign_upload",
"auto_fit_video",
"extract_clips",
"media_generate",
"check_status"
],
"type": "string",
"description": "Media pipeline operation: 'presign_upload' creates a direct PUT upload URL, 'auto_fit_video' reframes video into target aspect ratios with -14 LUFS audio normalization, 'extract_clips' cuts viral vertical highlights, 'media_generate' renders social visuals from a prompt, and 'check_status' polls transcode progress."
},
"prompt": {
"type": "string",
"description": "Creative prompt or visual template instructions when running `action: 'media_generate'` (e.g. 'Minimalist B2B architecture diagram for MCP server launch')."
},
"fileName": {
"type": "string",
"description": "Original file name with extension (e.g. 'keynote-demo.mp4' or 'launch-carousel.png') when requesting a presigned upload URL."
},
"mimeType": {
"type": "string",
"default": "video/mp4",
"description": "MIME type of the media asset being uploaded or generated (e.g. 'video/mp4', 'image/png', 'image/jpeg', 'image/svg+xml')."
},
"clipCount": {
"type": "number",
"default": 3,
"description": "Number of short highlight clips (1 to 10) to extract from a long-form source video when `action` is 'extract_clips'."
},
"profileId": {
"type": "string",
"default": "prof_allometrik",
"description": "Brand profile identifier (`prof_...`) that owns the media asset."
},
"sizeBytes": {
"type": "number",
"default": 10485760,
"description": "File size in bytes used to validate upload quotas and allocate storage buffers."
},
"mediaAssetId": {
"type": "string",
"description": "Existing media asset identifier (`med_...`) to reframe, extract clips from, or inspect status."
},
"targetAspectRatios": {
"type": "array",
"items": {
"enum": [
"9:16",
"16:9",
"1:1",
"4:5"
],
"type": "string"
},
"default": [
"9:16",
"16:9"
],
"description": "Target aspect ratios for automatic video/image reframing: '9:16' (Reels/TikTok/Shorts), '16:9' (X/LinkedIn/YouTube), '1:1' (Square), '4:5' (Portrait Feed)."
}
},
"additionalProperties": false
}| mediaAssetIds | array | Optional list of Nuntior media asset IDs (`med_...`) from `media_pipeline` to attach as images, carousels, or videos. |
| xLinkStrategy | string | X (Twitter) link optimization mode: 'first_reply' moves any URL to an automated 1st reply to save $0.17/post (85% X API cost reduction) and maximize organic impressions; 'inline' leaves the URL in the main tweet; 'bio' replaces the URL with a bio pointer. |
| autoAdjustMedia | boolean | When true, automatically selects the matching aspect-ratio variant (9:16 for Reels/TikTok/Shorts, 16:9 or 1:1 for X/LinkedIn) for each target platform. |
| authModeOverride | string | Optional authentication override forcing delivery through 'managed' Nuntior OAuth credentials or 'byok' customer-supplied keys. |
{
"type": "object",
"required": [
"action",
"content",
"platforms"
],
"properties": {
"action": {
"enum": [
"publish_now",
"schedule",
"queue",
"cross_post"
],
"type": "string",
"description": "Publishing mode: 'publish_now' dispatches immediately, 'cross_post' syndicates tailored variants across multiple networks at once, 'schedule' holds until `scheduledFor`, and 'queue' places the post in the next best engagement slot."
},
"content": {
"type": "string",
"description": "Primary post body text, caption, or thread hook. May include hashtags, mentions, and URLs (external URLs on X are automatically handled according to `xLinkStrategy`)."
},
"platforms": {
"type": "array",
"items": {
"enum": [
"x",
"linkedin",
"bluesky",
"instagram",
"facebook",
"threads",
"tiktok",
"youtube",
"reddit",
"pinterest",
"mastodon",
"telegram",
"discord",
"google_business",
"ghost",
"wordpress",
"webflow",
"whatsapp"
],
"type": "string"
},
"description": "Non-empty array of destination social network slugs to publish or cross-post to (e.g. `['x', 'linkedin', 'bluesky', 'threads']`)."
},
"profileId": {
"type": "string",
"default": "prof_allometrik",
"description": "Brand profile identifier (`prof_...`) whose connected social accounts will publish the post."
},
"scheduledFor": {
"type": "string",
"description": "Optional ISO-8601 UTC or offset timestamp (e.g. '2026-10-27T08:30:00+01:00') specifying when a scheduled post should go live."
},
"mediaAssetIds": {
"type": "array",
"items": {
"type": "string"
},
"description": "Optional list of Nuntior media asset IDs (`med_...`) from `media_pipeline` to attach as images, carousels, or videos."
},
"xLinkStrategy": {
"enum": [
"inline",
"first_reply",
"bio"
],
"type": "string",
"default": "first_reply",
"description": "X (Twitter) link optimization mode: 'first_reply' moves any URL to an automated 1st reply to save $0.17/post (85% X API cost reduction) and maximize organic impressions; 'inline' leaves the URL in the main tweet; 'bio' replaces the URL with a bio pointer."
},
"autoAdjustMedia": {
"type": "boolean",
"default": true,
"description": "When true, automatically selects the matching aspect-ratio variant (9:16 for Reels/TikTok/Shorts, 16:9 or 1:1 for X/LinkedIn) for each target platform."
},
"authModeOverride": {
"enum": [
"managed",
"byok"
],
"type": "string",
"description": "Optional authentication override forcing delivery through 'managed' Nuntior OAuth credentials or 'byok' customer-supplied keys."
}
},
"additionalProperties": false
}| defaultXLinkStrategy | string | Default X (Twitter) link placement policy for this profile: 'first_reply' moves external URLs to an automatic 1st reply (saving 85% in X API link fees and avoiding reach penalties), 'inline' keeps links in the main post, and 'bio' references the profile bio link. |
{
"type": "object",
"required": [
"action"
],
"properties": {
"name": {
"type": "string",
"description": "Human-readable brand, executive, or client display name for the profile (e.g. 'Allometrik Official' or 'Acme Corp')."
},
"action": {
"enum": [
"list",
"create",
"update",
"delete"
],
"type": "string",
"description": "Profile lifecycle operation to perform: 'list' all profiles in the workspace, 'create' a new isolated brand profile, 'update' an existing profile's settings, or 'delete' a profile by ID."
},
"timezone": {
"type": "string",
"default": "Europe/Madrid",
"description": "IANA timezone identifier (e.g. 'Europe/Madrid', 'America/New_York', 'Asia/Dubai') used for queue scheduling and best-time-to-post analytics."
},
"profileId": {
"type": "string",
"description": "Target profile identifier (e.g. 'prof_allometrik'). Required for 'update' and 'delete' actions; optional custom ID when creating a profile."
},
"handleSlug": {
"type": "string",
"description": "URL-friendly canonical handle slug (e.g. 'allometrik') used to verify social handle consistency across connected platforms."
},
"autoAdjustMedia": {
"type": "boolean",
"default": true,
"description": "When true, automatically reframes and transcodes uploaded images and videos to match each destination social network's required aspect ratio (9:16, 16:9, 1:1, 4:5)."
},
"defaultXLinkStrategy": {
"enum": [
"inline",
"first_reply",
"bio"
],
"type": "string",
"default": "first_reply",
"description": "Default X (Twitter) link placement policy for this profile: 'first_reply' moves external URLs to an automatic 1st reply (saving 85% in X API link fees and avoiding reach penalties), 'inline' keeps links in the main post, and 'bio' references the profile bio link."
}
},
"additionalProperties": false
}| voiceScriptOrAgentId | string | Spoken script text or Voice AI Agent ID to execute when placing an outbound call via `action: 'place_call'`. |
{
"type": "object",
"required": [
"action"
],
"properties": {
"body": {
"type": "string",
"description": "UTF-8 message body for SMS or parameter payload for WhatsApp messages."
},
"action": {
"enum": [
"send_sms",
"send_whatsapp_template",
"place_call",
"logs"
],
"type": "string",
"description": "Telecom dispatch action: 'send_sms' sends an E.164 text message, 'send_whatsapp_template' sends a WhatsApp Business message, 'place_call' initiates an outbound AI voice call, and 'logs' retrieves the telecom billing ledger."
},
"toNumber": {
"type": "string",
"description": "Recipient E.164 phone number including country prefix (e.g. '+971500000000' or '+14155550199'). Required for 'send_sms', 'send_whatsapp_template', and 'place_call'."
},
"profileId": {
"type": "string",
"default": "prof_allometrik",
"description": "Brand profile identifier (`prof_...`) associated with the sender number."
},
"fromNumber": {
"type": "string",
"default": "+34919019988",
"description": "Sender E.164 phone number provisioned in the workspace (e.g. '+34919019988')."
},
"templateName": {
"type": "string",
"description": "Approved WhatsApp Business Cloud template identifier (e.g. 'executive_briefing_confirm' or 'order_status_update') when `action` is 'send_whatsapp_template'."
},
"voiceScriptOrAgentId": {
"type": "string",
"description": "Spoken script text or Voice AI Agent ID to execute when placing an outbound call via `action: 'place_call'`."
}
},
"additionalProperties": false
}| voiceAgentPrompt | string | System instructions and persona prompt for the realtime AI Voice Agent answering or placing calls on this number. |
{
"type": "object",
"required": [
"action"
],
"properties": {
"action": {
"enum": [
"search_available",
"provision",
"configure_sip_voice_agent",
"list"
],
"type": "string",
"description": "Telecom number operation: 'search_available' lists purchasable E.164 numbers by country, 'provision' activates a dedicated number ($1.50/mo), 'configure_sip_voice_agent' attaches a SIP URI and voice prompt, and 'list' returns active workspace numbers."
},
"numberId": {
"type": "string",
"description": "Internal telecom number identifier (`num_...`) when configuring SIP routing via `configure_sip_voice_agent`."
},
"profileId": {
"type": "string",
"default": "prof_allometrik",
"description": "Brand profile identifier (`prof_...`) that owns the telecom number."
},
"countryCode": {
"type": "string",
"default": "ES",
"description": "Two-letter ISO-3166 alpha-2 country code for number search or provisioning (e.g. 'ES' for Spain +34, 'US' for United States +1, 'AE' for UAE +971, 'GB' for UK +44)."
},
"phoneNumber": {
"type": "string",
"description": "Specific E.164 phone number (e.g. '+34919021101' or '+14158904321') to provision when `action` is 'provision'."
},
"sipTrunkUri": {
"type": "string",
"description": "Destination SIP or WebRTC trunk URI (e.g. 'sip:[email protected]') for routing live inbound/outbound AI voice calls."
},
"voiceAgentPrompt": {
"type": "string",
"description": "System instructions and persona prompt for the realtime AI Voice Agent answering or placing calls on this number."
}
},
"additionalProperties": false
}