MCP server: all tools
Every tool exposed by @centerfy/mcp (222 in all), grouped by resource and linked to its endpoint.
Tools are named centerfy_<resource>_<action>; agency tools are centerfy_agency_* and appear only when CENTERFY_AGENCY_API_KEY is set (see MCP server for setup). Each tool’s input schema mirrors the parameters on its endpoint page.
Contacts
| Tool | Endpoint | What it does |
|---|---|---|
centerfy_contacts_list | List contacts | list contacts, newest first, paginated. |
centerfy_contacts_get | Get a contact | get a single contact by id. |
centerfy_contacts_create | Create a contact | create (or match and update) a contact. |
centerfy_contacts_update | Update a contact | update a contact; only fields present in the body are changed. |
centerfy_contacts_delete | Delete a contact | permanently delete a contact. |
Tags
| Tool | Endpoint | What it does |
|---|---|---|
centerfy_tags_list | List all tags | list contact tags. |
centerfy_contacts_add_tags | Add tags to a contact | add (merge) one or more tags to a contact; existing tags are preserved. |
centerfy_contacts_remove_tags | Remove tags from a contact | remove tags from a contact. |
Notes
| Tool | Endpoint | What it does |
|---|---|---|
centerfy_contacts_create_note | Create a contact note | create a note on a contact (local note only, not mirrored to GHL/HubSpot/Salesforce). |
centerfy_contacts_list_notes | List contact notes | list a contact’s active notes, newest first. |
centerfy_contacts_delete_note | Delete a contact note | soft-delete a contact’s note. |
AI Calls
| Tool | Endpoint | What it does |
|---|---|---|
centerfy_contacts_make_ai_call | Make an AI call to a contact | place an outbound AI phone call to a contact. Dials the contact’s phone on file. |
Phone numbers
| Tool | Endpoint | What it does |
|---|---|---|
centerfy_phone_numbers_list | List owned numbers | list your owned phone numbers. |
centerfy_phone_numbers_get | Get a phone number | get a single owned phone number by id. |
centerfy_phone_numbers_assign_agent | Assign to an agent | assign a phone number to an agent. |
centerfy_phone_numbers_unassign_agent | Remove from agent | remove the agent from a phone number. |
Number pools
| Tool | Endpoint | What it does |
|---|---|---|
centerfy_number_pools_list | List number pools | list your number pools. |
centerfy_number_pools_create | Create a number pool | create a number pool. |
centerfy_number_pools_get | Get a number pool | get a single number pool. |
centerfy_number_pools_delete | Delete a number pool | delete a number pool. |
centerfy_number_pools_update | Update a number pool | update a number pool. Rename the pool and/or replace its complete member set. |
centerfy_number_pools_add_number | Add a number to a pool | add a single owned number to a pool. Idempotent. |
centerfy_number_pools_remove_number | Remove a number from a pool | remove a single number from a pool. The number stays in your inventory. |
Voices
| Tool | Endpoint | What it does |
|---|---|---|
centerfy_voices_list | List voices | list available AI voices. |
centerfy_voices_preview | Preview a voice | preview a voice by name. |
Agents
| Tool | Endpoint | What it does |
|---|---|---|
centerfy_agents_create | Create an agent | create an AI agent. |
centerfy_agents_list | List AI agents | list your AI agents. Read-only; useful to discover agent_id values to pass to the make-AI-call and send-message webhooks. Optional active filter. |
centerfy_agents_get | Get an agent | get a single AI agent by id. Returns the same safe field set as the list endpoint. |
centerfy_agents_update | Update an agent | update an AI agent. |
centerfy_agents_duplicate | Duplicate an agent | duplicate an AI agent. |
centerfy_agents_archive | Archive an agent | delete (archive and deactivate) an AI agent. |
Agent folders
| Tool | Endpoint | What it does |
|---|---|---|
centerfy_agent_folders_create | Create a folder | create an agent folder. |
centerfy_agent_folders_list | List folders | list agent folders. |
centerfy_agent_folders_update | Update a folder | update an agent folder. |
centerfy_agent_folders_add_agent | Assign an agent | assign an agent to a folder. |
centerfy_agent_folders_remove_agent | Remove an agent | remove an agent from a folder. |
centerfy_agent_folders_delete | Delete a folder | delete an empty agent folder. |
Tools
| Tool | Endpoint | What it does |
|---|---|---|
centerfy_agents_list_custom_tools | List agent custom tools | list an agent’s custom tools. |
centerfy_agents_assign_custom_tool | Assign a tool to an agent | assign a custom tool to an agent. |
centerfy_agents_remove_custom_tool | Remove a tool from an agent | remove a custom tool from an agent. |
centerfy_custom_tools_create | Create a custom tool | create a custom tool. |
centerfy_custom_tools_get | Get a custom tool | get a single custom tool. |
centerfy_custom_tools_update | Update a custom tool | update a custom tool. |
centerfy_custom_tools_delete | Delete a custom tool | delete a custom tool. |
Knowledge bases
| Tool | Endpoint | What it does |
|---|---|---|
centerfy_knowledge_bases_list | List knowledge bases | List your knowledge bases, newest-first, each with its document and text-entry source counts. |
centerfy_knowledge_bases_create | Create a knowledge base | Create a knowledge base. The knowledge base starts empty. |
centerfy_knowledge_bases_delete | Delete a knowledge base | Delete a knowledge base, including its documents and text entries. |
centerfy_knowledge_bases_enable | Enable a knowledge base | Enable a knowledge base so its agents can retrieve from it. Idempotent. |
centerfy_knowledge_bases_disable | Disable a knowledge base | Disable a knowledge base so its agents stop retrieving from it. The knowledge base and its data are kept. Idempotent. |
centerfy_knowledge_bases_add_text | Add a text source | Add a plain-text source to a knowledge base. The entry is queued and embedded asynchronously, not inline. |
centerfy_knowledge_bases_add_faq | Add an FAQ source | Add an FAQ source to a knowledge base. The faq_pairs are combined into one entry, queued, and embedded asynchronously. |
centerfy_knowledge_bases_add_url | Add a URL source | Add a URL source to a knowledge base. The page is fetched, chunked, and embedded asynchronously, not inline. |
centerfy_knowledge_bases_add_file | Add a file source | add a file source to a knowledge base (multipart). |
centerfy_knowledge_bases_delete_source | Delete a source | delete a source from a knowledge base. |
centerfy_agents_assign_knowledge_base | Assign to an agent | Assign (connect) a knowledge base to an agent, enforcing the one-knowledge-base-per-agent policy. |
centerfy_agents_remove_knowledge_base | Remove from an agent | Remove (disconnect) a knowledge base from an agent. The knowledge base and its data are untouched; only the link is deleted. |
Appointments
| Tool | Endpoint | What it does |
|---|---|---|
centerfy_appointments_list | List appointments (date range) | list appointments in a date range. |
centerfy_appointments_create | Create an appointment | create an appointment. |
centerfy_appointments_get | Get an appointment | get a single appointment. |
centerfy_appointments_update | Update an appointment | update an appointment. |
centerfy_appointments_delete | Delete an appointment | delete an appointment. |
Messages
| Tool | Endpoint | What it does |
|---|---|---|
centerfy_messages_send | Send a message to a contact | send a caller-supplied message to a contact on a channel. Channels: email, sms, whatsapp, facebook, instagram. |
centerfy_messages_send_ai | Send an AI message to a contact | send an AI-generated message to a contact on a channel. The agent writes the text, then it is delivered. |
centerfy_messages_list_for_contact | Fetch a contact’s messages | fetch a contact’s messages. Returns the most recent messages across every channel and conversation for the contact, in chronological order (oldest → newest). |
Conversations
| Tool | Endpoint | What it does |
|---|---|---|
centerfy_conversations_list | List conversations | list conversations. The same set the inbox shows, newest first by updated_at, with offset-based pagination. |
centerfy_conversations_get | Get a conversation | get a single conversation. Returns the same shape as a list row. |
centerfy_conversations_list_messages | List messages in a conversation | list a conversation’s messages. Returns the most recent messages for the conversation, oldest → newest. |
Calls
| Tool | Endpoint | What it does |
|---|---|---|
centerfy_calls_list | List call history | list call history. The same records the Call History page shows, newest first by started_at, with offset-based pagination and resolved agent and contact names. |
centerfy_calls_stats | Call stats for the sub-account | call stats. Aggregate call metrics over an optional date range (default: the last 30 days): totals by direction and status, completed vs missed, calls with recordings, and total and average talk time. |
centerfy_calls_get | Get a call (rich detail) | get a single call with full detail. Extends the list shape with the heavy fields: transcript, AI summary, and recording URL or number used. |
Pipelines
| Tool | Endpoint | What it does |
|---|---|---|
centerfy_pipelines_list | List pipelines | List the sub-account’s pipelines, oldest first, each with its stages ordered by position. |
centerfy_pipelines_create | Create a pipeline | Create a pipeline, optionally with its stages in display order. Stage colours are assigned automatically, the same way the app does. |
centerfy_pipelines_get | Get a pipeline | Get one pipeline with its stages ordered by position. |
centerfy_pipelines_update | Rename a pipeline | Rename a pipeline. |
centerfy_pipelines_delete | Delete a pipeline | Delete a pipeline and its stages. |
centerfy_pipelines_create_stage | Add a stage | Add a stage to a pipeline — appended to the end, or inserted at a position (later stages shift down). |
centerfy_pipelines_update_stage | Update a stage | Rename, recolour or move a stage. Moving renumbers the other stages so positions stay contiguous. |
centerfy_pipelines_delete_stage | Delete a stage | Delete a stage. Remaining stages are renumbered. |
Opportunities
| Tool | Endpoint | What it does |
|---|---|---|
centerfy_opportunities_list | List opportunities | List opportunities, newest first, with optional filters. |
centerfy_opportunities_create | Create an opportunity | Create an opportunity. Fires your “opportunity created” workflows, exactly like creating one in the app. |
centerfy_opportunities_get | Get an opportunity | Get one opportunity. |
centerfy_opportunities_update | Update an opportunity | Update an opportunity — only the fields you send change. Changing the stage fires your “pipeline stage changed” workflows. |
centerfy_opportunities_move | Move an opportunity to a stage | Move an opportunity to another stage, optionally in another pipeline. Fires your “pipeline stage changed” workflows. |
centerfy_opportunities_delete | Delete an opportunity | Permanently delete an opportunity. |
Companies
| Tool | Endpoint | What it does |
|---|---|---|
centerfy_companies_list | List companies | List the sub-account’s companies alphabetically by name, each with its contact count. |
centerfy_companies_create | Create a company | Create a company. Values are trimmed; empty strings are stored as null. |
centerfy_companies_get | Get a company | Get one company with its contact count. |
centerfy_companies_update | Update a company | Update a company — only the fields you send change. Send null (or an empty string) to clear an optional field. |
centerfy_companies_delete | Delete a company | Permanently delete a company. Its contacts and opportunities are kept and simply unlinked from it. |
centerfy_companies_list_contacts | List a company’s contacts | List the contacts linked to a company, newest first. |
Smart Lists
| Tool | Endpoint | What it does |
|---|---|---|
centerfy_smart_lists_list | List smart lists | List the sub-account’s smart lists in the app’s display order. Smart lists are read-only through the API. |
centerfy_smart_lists_get | Get a smart list | Get one smart list. |
centerfy_smart_lists_list_contacts | List a smart list’s contacts | List the contacts in a smart list, most recently added first — the same members the app’s list view, bulk SMS/email and campaigns use. |
Custom Fields
| Tool | Endpoint | What it does |
|---|---|---|
centerfy_custom_fields_list | List custom fields | List the sub-account’s contact custom field definitions, ordered by sort_order then name. |
centerfy_custom_fields_create | Create a custom field | Create a contact custom field. The field_key (the key values are stored under) is derived from field_name the same way the app does, unless you pass one. |
centerfy_custom_fields_get | Get a custom field | Get one custom field definition. |
centerfy_custom_fields_update | Update a custom field | Update a custom field definition — only the fields you send change. field_key cannot be changed, because stored values are keyed by it. |
centerfy_custom_fields_delete | Delete a custom field | Permanently delete a custom field definition. Values already stored on contacts are left in place, as in the app. |
centerfy_contacts_get_custom_fields | Get a contact’s custom field values | Get a contact’s custom field values: the raw values keyed by field_key, plus every active (non-archived) definition paired with its value. |
centerfy_contacts_set_custom_fields | Set a contact’s custom field values | Merge custom field values into a contact. Keys you don’t send are left unchanged; null clears a value. |
Contact Consent
| Tool | Endpoint | What it does |
|---|---|---|
centerfy_contacts_set_dnc | Set DNC bypass | Turn the per-contact DNC bypass on or off — the same toggle as on the contact profile. While bypass is true, the Do Not Call check is skipped before outbound AI calls to this contact. |
centerfy_contacts_unsubscribe | Unsubscribe a contact | Unsubscribe a contact from SMS and/or email — the same toggles as on the contact profile. Bulk SMS and email sends skip unsubscribed contacts. |
centerfy_contacts_resubscribe | Re-subscribe a contact | Re-subscribe a contact to SMS and/or email, clearing the unsubscribe flag for those channels. |
Lead Scoring
| Tool | Endpoint | What it does |
|---|---|---|
centerfy_lead_scoring_list_rules | List lead scoring rules | List the sub-account’s lead scoring rules, ordered by sort_order. Rules are managed in the app (Settings) and are read-only through the API. |
centerfy_lead_scoring_get_contact_score | Get a contact’s lead score | Get a contact’s current lead score, lead quality and latest sentiment, plus its most recent scoring events (newest first). |
centerfy_lead_scoring_recompute | Recompute a lead score | Rebuild a contact’s lead score from its baseline and all of its scoring events, and save it on the contact. |
Analytics
| Tool | Endpoint | What it does |
|---|---|---|
centerfy_analytics_overview | Insights overview | The Reports › Insights overview: wallet balance, cost per message compared with the previous period of equal length, a daily series (spend, contacts touched, spend per contact, tool uses) and a bookings heatmap. |
centerfy_analytics_agents | Agent performance | Per-agent performance: contacts first touched in the range, how many became leads, calls, spend and cost per lead. Agents with no activity are left out. |
centerfy_analytics_usage | Usage summary | Resource counts (contacts, active users, phone numbers and agents) plus usage billed in the range, grouped by service type at your sub-account prices. |
centerfy_analytics_email | Email performance | Outbound emails sent in the range and their tracking events (delivered, opened, clicked, bounced, complained, unsubscribed), with rates. |
Call Recordings
| Tool | Endpoint | What it does |
|---|---|---|
centerfy_call_recordings_get | Get a recording URL | Get a short-lived signed URL to play or download a call’s recording. |
Wallet
| Tool | Endpoint | What it does |
|---|---|---|
centerfy_wallet_get | Get the wallet balance | Get the sub-account’s current wallet balance — the same figure the app shows. Read-only. |
centerfy_wallet_usage | List billed usage | List the usage records billed to the wallet (calls, messages, etc.), newest first, at your sub-account prices. |
Calendars
| Tool | Endpoint | What it does |
|---|---|---|
centerfy_calendars_list | List calendars | List the sub-account’s calendars, sorted by name. |
centerfy_calendars_create | Create a calendar | Create a calendar. Integration fields can’t be set through the API. |
centerfy_calendars_get | Get a calendar | Get one calendar. |
centerfy_calendars_update | Update a calendar | Update a calendar — only the fields you send change. |
centerfy_calendars_delete | Delete a calendar | Permanently delete a calendar. Its appointments are kept but no longer linked to a calendar. |
centerfy_calendars_free_slots | List free slots | List open booking slots on a calendar between two dates, using the same availability check your AI agents use (business hours, existing appointments and connected calendars). |
centerfy_calendars_assign_agent | Assign a calendar to an agent | Give an agent a calendar it can check and book on, the same as adding it in the agent editor. Posting an already-assigned calendar updates its tool name/description. |
centerfy_calendars_remove_agent | Remove a calendar from an agent | Remove a calendar from an agent. The agent can no longer check or book on it; the calendar itself is not deleted. |
Scheduled Calls
| Tool | Endpoint | What it does |
|---|---|---|
centerfy_scheduled_calls_create | Schedule a call | Schedule an outbound AI call: once scheduled_at passes, the agent calls the contact’s phone number on file. The call is billed like any outbound call when it runs. |
centerfy_scheduled_calls_list | List scheduled calls | List scheduled calls, soonest first, with optional filters. |
centerfy_scheduled_calls_get | Get a scheduled call | Get one scheduled call. |
centerfy_scheduled_calls_cancel | Cancel a scheduled call | Cancel a scheduled call that hasn’t started yet. The row is deleted. |
Scheduled Messages
| Tool | Endpoint | What it does |
|---|---|---|
centerfy_scheduled_messages_create | Schedule a message | Schedule an AI-written follow-up: once scheduled_at passes, the agent writes a message from context and sends it to the contact through your connected messaging account. Messages are billed when sent. |
centerfy_scheduled_messages_list | List scheduled messages | List scheduled messages, soonest first, with optional filters. |
centerfy_scheduled_messages_get | Get a scheduled message | Get one scheduled message, including what was sent once it has run. |
centerfy_scheduled_messages_cancel | Cancel a scheduled message | Cancel a scheduled message that hasn’t started yet. The row is deleted. |
Workflows
| Tool | Endpoint | What it does |
|---|---|---|
centerfy_workflows_list | List workflows | List the sub-account’s workflows, newest first. Deleted workflows are not returned. |
centerfy_workflows_get | Get a workflow | Get one workflow, optionally with its definition. |
centerfy_workflows_enroll | Enroll contacts | Enroll up to 100 contacts into an active workflow. Enrollment is asynchronous: each contact gets a pending execution that the workflow engine then runs. Running the workflow can send emails and texts and place AI calls, which cost money. |
centerfy_workflows_remove_contact | Remove a contact | Remove a contact from a workflow by cancelling all of its live executions (pending, running, waiting, waiting_for_reply or paused). No further steps run for that contact. |
centerfy_workflows_activate | Activate a workflow | Activate a workflow. Executions paused by a deactivation resume, so messages and calls may go out right away. |
centerfy_workflows_deactivate | Deactivate a workflow | Deactivate a workflow. Its live executions are paused and new enrollments are refused until it is activated again. |
centerfy_workflows_list_executions | List executions | List a workflow’s executions (one per enrollment), most recently started first. |
Reminder Templates
| Tool | Endpoint | What it does |
|---|---|---|
centerfy_reminder_templates_list | List reminder templates | List the sub-account’s appointment reminder templates, ordered by name. |
centerfy_reminder_templates_create | Create a reminder template | Create an appointment reminder template. created_by is set to the user who created the API key. |
centerfy_reminder_templates_get | Get a reminder template | Get one reminder template. |
centerfy_reminder_templates_update | Update a reminder template | Update a reminder template. Only the fields you send change. |
centerfy_reminder_templates_delete | Delete a reminder template | Permanently delete a reminder template. |
Forms
| Tool | Endpoint | What it does |
|---|---|---|
centerfy_forms_list | List forms | List the sub-account’s forms and surveys, newest first. Fields and settings are not included — get a form for those. |
centerfy_forms_get | Get a form | Get one form with its fields and settings. Use the field labels as keys when submitting. |
centerfy_forms_list_submissions | List form submissions | List a form’s submissions, newest first. |
centerfy_forms_submit | Submit a form | Submit a form on a lead’s behalf, exactly like a visitor would. The contact is matched by email, then phone, or created (lead source form). The submission fires the form’s “form submitted” workflows, which can send messages and place AI calls that cost money, and sends the form’s notification email if one is set. |
centerfy_forms_list_contact_submissions | List a contact’s submissions | List every form submission linked to a contact, newest first. |
Voice Widget
| Tool | Endpoint | What it does |
|---|---|---|
centerfy_agent_widget_get | Get widget settings | Get an agent’s website voice widget settings (orb or button), with defaults filled in. |
centerfy_agent_widget_update | Update widget settings | Update an agent’s widget settings. Top-level keys you send replace the stored ones; orb, button and sandbox (including sandbox.style) are merged one level deep, so you can change a single colour. Changes apply to the live widget on every site where it’s embedded. |
centerfy_agent_widget_embed | Get embed code | Get the HTML snippet to paste on a website to show the agent’s widget — the same iframe code the agent page copies. |
Outbound Webhook Subscriptions
| Tool | Endpoint | What it does |
|---|---|---|
centerfy_outbound_webhooks_list | List subscriptions | List the sub-account’s outbound webhook subscriptions, oldest first. Secrets are never returned here — only has_secret. |
centerfy_outbound_webhooks_create | Create a subscription | Subscribe a URL to one or more events. From then on, each matching change in this sub-account is POSTed to the URL as JSON. A secret token is generated and returned in this response only — store it now; it is sent with every delivery as Authorization: Bearer <token> and X-Webhook-Token. |
centerfy_outbound_webhooks_get | Get a subscription | Get one subscription. The secret is not returned — only has_secret. |
centerfy_outbound_webhooks_update | Update a subscription | Update a subscription. Only the fields you send change. Set is_active to false to pause deliveries without deleting the subscription. |
centerfy_outbound_webhooks_delete | Delete a subscription | Delete a subscription. Deliveries stop immediately and its delivery history is deleted too. |
centerfy_outbound_webhooks_rotate_secret | Rotate the secret | Replace the subscription’s secret token with a new one. The new token is returned in this response only, and the old one stops being sent immediately — update your receiver first. |
centerfy_outbound_webhooks_test | Send a test event | Send an example payload for an event to the subscription’s URL right now, with the same token headers real deliveries carry plus X-Webhook-Test: true. Works even while the subscription is paused. |
centerfy_outbound_webhooks_list_deliveries | List deliveries | List the subscription’s delivery attempts, newest first, with the payload sent and your endpoint’s response. |
centerfy_outbound_webhooks_redeliver | Redeliver a delivery | Queue a failed or unknown delivery to be sent again within a few seconds. The stored payload is re-sent to the stored URL with the subscription’s current secret. If the delivery had used all its attempts, one more is allowed. |
Team Users
| Tool | Endpoint | What it does |
|---|---|---|
centerfy_users_list | List team members | List the sub-account’s active team members, oldest first, with their role and profile name and email. |
centerfy_users_change_role | Change a member’s role | Change a member’s sub-account role. |
centerfy_users_remove | Remove a member | Remove a member from the sub-account. Their login itself is not deleted — they just lose access to this sub-account. |
centerfy_users_invite | Invite a user | Invite someone to the sub-account. Sends an invitation email that is valid for 7 days. Inviting an email that already has an invitation here refreshes that invitation (new link, new 7-day expiry, new role) and emails it again. |
centerfy_users_list_invitations | List invitations | List invitations that have not been accepted yet, newest first. |
centerfy_users_resend_invitation | Resend an invitation | Send the invitation email again. An expired invitation first gets a new link and a fresh 7-day expiry. |
centerfy_users_delete_invitation | Cancel an invitation | Cancel an invitation. Its link stops working immediately. |
Campaigns
| Tool | Endpoint | What it does |
|---|---|---|
centerfy_campaigns_list | List campaigns | List SMS and email campaigns, newest first. |
centerfy_campaigns_create | Create a campaign | Create a campaign. It is always created as a draft — nothing is sent until you start or schedule it. |
centerfy_campaigns_get | Get a campaign | Get one SMS or email campaign, including its delivery counters. |
centerfy_campaigns_update | Update a campaign | Update a draft or scheduled campaign — only the fields you send change. Set contact_ids or smart_list_id to null to switch recipient source. |
centerfy_campaigns_delete | Delete a campaign | Permanently delete a campaign. |
centerfy_campaigns_start | Send a campaign now | Start sending a draft or scheduled campaign immediately to its contact_ids, or to the smart list’s current members. Real messages go out and usage is charged to the wallet. |
centerfy_campaigns_schedule | Schedule a campaign | Schedule a draft campaign, or reschedule a scheduled one, to send automatically at a future time. Messages are sent and charged to the wallet when it goes out. |
centerfy_campaigns_stats | Get campaign stats | Delivery and engagement stats for a campaign. Rates are percentages rounded to one decimal. |
Contract Templates
| Tool | Endpoint | What it does |
|---|---|---|
centerfy_contract_templates_list | List contract templates | List contract templates, newest first. Use Get a contract template for the content and field placements. |
centerfy_contract_templates_get | Get a contract template | Get one contract template, including its builder content and field placements. |
Contracts
| Tool | Endpoint | What it does |
|---|---|---|
centerfy_contracts_list | List contracts | List contracts, newest first, each with its recipients in signing order. |
centerfy_contracts_create | Create a contract | Create a draft contract from a template: copies its title, content, field placements and prepared PDF, and creates one recipient per template role. Nothing is emailed until you send it. |
centerfy_contracts_get | Get a contract | Get one contract with its content, field placements, recipients and signing status. |
centerfy_contracts_send | Send for signature | Send the contract for signature: marks it sent and emails a signing link to every signer who hasn’t signed (with sequential signing, only the first signing-order group). Can also re-send a contract that is already sent. |
centerfy_contracts_remind | Remind signers | Email a reminder to signers who haven’t signed yet (with sequential signing, only the current signing-order group), or to one recipient. |
centerfy_contracts_void | Void a contract | Void a contract. Its signing links stop working. This can’t be undone. |
centerfy_contracts_audit | Get the audit trail | Get the contract’s audit trail, oldest event first. |
centerfy_contracts_pdf | Download the signed PDF | Get a short-lived download link for the signed PDF. |
Reviews
| Tool | Endpoint | What it does |
|---|---|---|
centerfy_reviews_list | List reviews | List reviews imported from your connected review platforms, most recently reviewed first. Read-only. |
centerfy_reviews_get | Get a review | Get one review. |
Review Requests
| Tool | Endpoint | What it does |
|---|---|---|
centerfy_review_requests_list | List review requests | List review requests that were sent or attempted (from the app or the API), newest first. |
centerfy_review_requests_send | Send a review request | Send a contact a “please review us” SMS or email right away, using the review link and message templates from your Reviews settings. A real message is sent; SMS usage is charged to the wallet. |
Invoices
| Tool | Endpoint | What it does |
|---|---|---|
centerfy_invoices_list | List invoices | List invoices, newest first, with optional filters. |
centerfy_invoices_create | Create an invoice | Create a pending invoice from line items. The invoice number (INV-YYYY-NNNN) is assigned automatically. Nothing is emailed. |
centerfy_invoices_get | Get an invoice | Get one invoice. |
centerfy_invoices_update | Update an invoice | Update an invoice — only the fields you send change. Changing the line items recalculates the amount, and a changed amount clears the existing payment link. |
centerfy_invoices_delete | Delete an invoice | Permanently delete a void invoice. A quote it was generated from stays, unlinked from the invoice. |
centerfy_invoices_mark_paid | Mark an invoice paid | Record a payment received outside Centerfy: sets the invoice to paid and adds its amount to the contact’s revenue. No money is moved. |
centerfy_invoices_send | Email an invoice | Email the invoice to its contact, including its line items, total, due date and payment link (if any). The invoice’s status is not changed. |
Quotes
| Tool | Endpoint | What it does |
|---|---|---|
centerfy_quotes_list | List quotes | List quotes and estimates, newest first. |
centerfy_quotes_create | Create a quote | Create an open quote or estimate from line items. The number (QUO-YYYY-NNN or EST-YYYY-NNN) is assigned automatically. Nothing is emailed. |
centerfy_quotes_get | Get a quote | Get one quote or estimate. |
centerfy_quotes_update | Update a quote | Update a quote — only the fields you send change. Setting status to accepted or won creates a pending invoice for the quote total (if it doesn’t have one yet) and fires your quote status workflows. A changed total clears the payment link. |
centerfy_quotes_delete | Delete a quote | Permanently delete a quote. Deleting a quote also deletes every invoice generated from it. |
centerfy_quotes_create_payment_link | Create a payment link | Create a Stripe checkout link for the quote total on the sub-account’s connected Stripe account. Every call also creates a new pending invoice. The link is saved on the quote and included when you email it. |
centerfy_quotes_send | Email a quote | Email the quote or estimate to its contact (with its payment link, if any) and set its status to sent. |
centerfy_quotes_pdf | Get the printable quote | Get the printable quote document as an HTML string — the same page the app opens to print or save as PDF. |
Phone Number Purchasing
| Tool | Endpoint | What it does |
|---|---|---|
centerfy_phone_numbers_search_available | Search available numbers | Search US local numbers you can buy. Read-only — nothing is reserved or charged. Numbers already on the platform are left out. |
centerfy_phone_numbers_purchase | Buy a phone number | Buy a phone number for this sub-account. This costs money: the purchase is charged to the wallet (your saved card may be charged to cover it), and the number renews and is billed every 30 days until released. Optionally assign it to an agent in the same call. |
centerfy_phone_numbers_import | Import a number (SIP) | Bring a number you already own from another provider, connected over SIP. Not charged. The SIP credentials are stored for outbound calling and are never returned. |
centerfy_phone_numbers_release | Release a phone number | Release a phone number — permanent and cannot be undone. A purchased number goes back to the carrier and stops renewing (it may not be possible to buy it back); an imported number has its SIP setup removed. Any agent loses the number immediately. |
Agency · Sub-Accounts
| Tool | Endpoint | What it does |
|---|---|---|
centerfy_agency_sub_accounts_list | List sub-accounts | List the agency’s sub-accounts, newest first. Deleted sub-accounts are never returned. |
centerfy_agency_sub_accounts_create | Create a sub-account | Provision a sub-account and email its owner a sub_account_owner invitation (valid 7 days). Limits and features come from the agency defaults, or from the named agency pricing plan; the agency’s signup credit (if any) is added to the new wallet. |
centerfy_agency_sub_accounts_get | Get a sub-account | Get one sub-account, including its features and settings. |
centerfy_agency_sub_accounts_update | Update sub-account settings | Merge keys into the sub-account’s settings object. Keys you send overwrite existing ones; keys you don’t send are kept. |
centerfy_agency_sub_accounts_archive | Archive a sub-account | DESTRUCTIVE. Archive a sub-account and its direct child sub-accounts (sets archived_at, is_active = false), then release and delete their platform phone numbers and stop knowledge-base rebilling — the same flow as the agency Sub-Accounts page. |
centerfy_agency_sub_accounts_unarchive | Unarchive a sub-account | Restore an archived sub-account and its archived direct children (archived_at cleared, is_active = true). |
centerfy_agency_sub_accounts_pause | Pause a sub-account | Pause a sub-account on the agency’s behalf (paused_reason = manual_agency). Its users see the paused screen in the app. |
centerfy_agency_sub_accounts_unpause | Unpause a sub-account | Lift an agency pause (paused_reason = manual_agency) and clear the pause fields. |
centerfy_agency_sub_accounts_usage | Get sub-account usage | Usage counts, limits and current wallet balance of a sub-account. |
Agency · Sub-Account Users
| Tool | Endpoint | What it does |
|---|---|---|
centerfy_agency_sub_account_users_list | List members and invitations | List a sub-account’s active members (oldest first) plus its pending invitations (unaccepted and unexpired). |
centerfy_agency_sub_account_users_invite | Invite a user | Invite a user to a sub-account and send the invitation email (valid 7 days). Inviting an email that already has a pending invitation refreshes it (new token and expiry) and re-sends it instead of creating a duplicate. |
centerfy_agency_sub_account_users_remove | Remove a member | DESTRUCTIVE. Remove a member from a sub-account (deletes their membership; the user account itself is kept). |
Agency · Sub-Account API Keys
| Tool | Endpoint | What it does |
|---|---|---|
centerfy_agency_sub_account_api_keys_list | List API keys | List a sub-account’s API keys, newest first. Keys are masked — the full key is never returned here. |
centerfy_agency_sub_account_api_keys_create | Create an API key | Create a sub-account API key (cfy_ followed by 32 random bytes, base64url). The full key is returned in this response only — it is not stored (only a SHA-256 hash, prefix and last four are) and can’t be retrieved again. |
centerfy_agency_sub_account_api_keys_revoke | Revoke an API key | DESTRUCTIVE. Revoke a sub-account API key by deleting it. Integrations using it stop working immediately. |
Agency · Agency Wallet
| Tool | Endpoint | What it does |
|---|---|---|
centerfy_agency_wallet_get | Get the agency wallet balance | The agency’s own (organization-level) wallet balance — not a sub-account wallet. |