App functions endpoint
POST /v1/app/{name} runs one app function. Send IDs in params, filters in query and data in body. GET /v1/app lists all functions and whether your key may use them.
The technical reference below is in English, exactly as the names and fields appear in the API and in Claude.
curl -X POST https://api.smartchat.marketing/v1/app/reply_in_conversation \
-H "Authorization: Bearer sk_live_..." \
-H "Content-Type: application/json" \
-d '{"params": {"conversation_id": "..."}, "body": {"text": "Thanks, see you tomorrow."}}'
84 functions
POST/v1/app/delete_media · Delete a media file
media:deleteDeletes an image, video or file from the media library. media_id from list_media.
| Field | Type | Required | Description |
|---|---|---|---|
params.media_id | string | yes | ID |
POST/v1/app/get_upload_cost · Get upload cost
media:readReturns what an upload costs in credits and time (for example for video processing).
| Field | Type | Required | Description |
|---|---|---|---|
query.kind | string | no | |
query.size | string | no |
POST/v1/app/get_profile_media · Get profile media
media:readReturns the profile media: logo and avatar of the business.
No input fields.
POST/v1/app/update_profile_media · Change profile media
media:writeSets logo or avatar of the business to an image from the media library.
| Field | Type | Required | Description |
|---|---|---|---|
body | object | no | Fields as in the app, e.g. { logo_media_id } or { avatar_media_id }. |
POST/v1/app/set_whatsapp_profile_photo · Set WhatsApp profile photo
settings:writeSets the profile photo of the connected WhatsApp number from an image in the media library.
| Field | Type | Required | Description |
|---|---|---|---|
body | object | no | { media_id } |
POST/v1/app/list_ai_conversations · List SmartChat AI conversations
ai:chatLists the conversations with SmartChat AI (the chat inside the app).
No input fields.
POST/v1/app/get_ai_conversation_messages · Read a SmartChat AI conversation
ai:chatReturns all messages of one SmartChat AI conversation.
| Field | Type | Required | Description |
|---|---|---|---|
params.conversation_id | string | yes | ID |
POST/v1/app/get_last_import · Get last contact import
contacts:readReturns the status and result of the last contact import.
No input fields.
POST/v1/app/preview_unconfirmed_contacts · Preview unconfirmed contacts
contacts:readShows how many contacts have not confirmed their WhatsApp sign-up yet and would get the confirmation again.
No input fields.
POST/v1/app/resend_to_unconfirmed_contacts · Resend confirmation to all unconfirmed
messages:writeSends the confirmation message again to all contacts who have not confirmed yet. Sends real WhatsApp messages.
| Field | Type | Required | Description |
|---|---|---|---|
body | object | no | Same fields as the app sends (usually none). |
POST/v1/app/get_optin_queue · Get opt-in queue
contacts:readReturns confirmation messages that are waiting to be sent.
No input fields.
POST/v1/app/send_optin_queue · Send opt-in queue
messages:writeSends the waiting confirmation messages now. Sends real WhatsApp messages.
| Field | Type | Required | Description |
|---|---|---|---|
body | object | no |
POST/v1/app/get_consent_check · Get consent proof check
contacts:readReturns the result of the consent proof check for imported contacts.
No input fields.
POST/v1/app/start_consent_check · Start consent proof check
contacts:writeStarts or answers the consent proof check for imported contacts.
| Field | Type | Required | Description |
|---|---|---|---|
body | object | no | Same fields as the app (answer of the check). |
POST/v1/app/unsubscribe_contact · Unsubscribe a contact
contacts:writeUnsubscribes a contact: they get no more marketing messages. contact_id from search_contacts.
| Field | Type | Required | Description |
|---|---|---|---|
params.contact_id | string | yes | ID |
body | object | no |
POST/v1/app/remove_contact_tag · Remove a tag from a contact
contacts:writeRemoves one tag from a contact.
| Field | Type | Required | Description |
|---|---|---|---|
params.contact_id | string | yes | ID |
params.tag | string | yes | ID |
POST/v1/app/delete_contact · Delete a contact
contacts:deleteDeletes a contact completely. Cannot be undone.
| Field | Type | Required | Description |
|---|---|---|---|
params.contact_id | string | yes | ID |
POST/v1/app/export_all_data · Export all account data
account:readReturns the complete data export of the account (as in Settings).
No input fields.
POST/v1/app/mark_conversation_read · Mark conversation as read
inbox:writeMarks an inbox conversation as read.
| Field | Type | Required | Description |
|---|---|---|---|
params.conversation_id | string | yes | ID |
body | object | no |
POST/v1/app/reply_in_conversation · Reply in an inbox conversation
inbox:writeSends a reply inside an inbox conversation (text, or an image/video from the media library). Sends a real WhatsApp message.
| Field | Type | Required | Description |
|---|---|---|---|
params.conversation_id | string | yes | ID |
body | object | no | { text } and optional { media_id } - same fields as the app. |
POST/v1/app/save_reply_as_learned · Save reply as learned answer
ai:settingsSaves an answer from a conversation so the AI reply uses it next time.
| Field | Type | Required | Description |
|---|---|---|---|
params.conversation_id | string | yes | ID |
body | object | no |
POST/v1/app/get_conversation_ai_mode · Get AI mode of a conversation
inbox:readReturns whether the AI answers in this conversation or a human took over.
| Field | Type | Required | Description |
|---|---|---|---|
params.conversation_id | string | yes | ID |
POST/v1/app/set_conversation_ai_mode · Set AI mode of a conversation
ai:settingsSwitches the AI reply on or off for one conversation (take over / hand back).
| Field | Type | Required | Description |
|---|---|---|---|
params.conversation_id | string | yes | ID |
body | object | no | { enabled: true|false } - same fields as the app. |
POST/v1/app/get_ai_reply_settings · Get AI reply settings
settings:readReturns the AI reply settings: on/off, name of the AI, delays, confidence.
No input fields.
POST/v1/app/update_ai_reply_settings · Change AI reply settings
ai:settingsSwitches the AI reply on or off and changes its name and settings.
| Field | Type | Required | Description |
|---|---|---|---|
body | object | no | Fields as in the app, e.g. { enabled, name }. |
POST/v1/app/analyze_reply_style · Analyze reply style
ai:settingsAnalyzes the answer style of the business from past messages.
| Field | Type | Required | Description |
|---|---|---|---|
body | object | no |
POST/v1/app/approve_reply_style · Approve reply style
ai:settingsApproves the analyzed answer style so the AI uses it.
| Field | Type | Required | Description |
|---|---|---|---|
body | object | no |
POST/v1/app/discard_reply_style · Discard reply style
ai:settingsDiscards the analyzed answer style.
| Field | Type | Required | Description |
|---|---|---|---|
body | object | no |
POST/v1/app/list_learned_answers · List learned answers
settings:readLists the answers the AI reply has learned.
No input fields.
POST/v1/app/update_learned_answer · Change a learned answer
ai:settingsChanges one learned answer.
| Field | Type | Required | Description |
|---|---|---|---|
params.answer_id | string | yes | ID |
body | object | no |
POST/v1/app/delete_learned_answer · Delete a learned answer
ai:settingsDeletes one learned answer.
| Field | Type | Required | Description |
|---|---|---|---|
params.answer_id | string | yes | ID |
POST/v1/app/get_auto_reply_faq · Get auto-reply FAQ
settings:readReturns the FAQ and settings of the automatic reply.
No input fields.
POST/v1/app/update_auto_reply_faq · Change auto-reply FAQ
ai:settingsChanges the FAQ and settings of the automatic reply.
| Field | Type | Required | Description |
|---|---|---|---|
body | object | no |
POST/v1/app/list_knowledge_documents · List knowledge documents
settings:readLists the documents the AI knows about the business (PDF, text).
No input fields.
POST/v1/app/delete_knowledge_document · Delete a knowledge document
knowledge:writeDeletes a knowledge document.
| Field | Type | Required | Description |
|---|---|---|---|
params.document_id | string | yes | ID |
POST/v1/app/count_newsletter_recipients · Count newsletter recipients
newsletters:readReturns how many contacts a newsletter would reach.
| Field | Type | Required | Description |
|---|---|---|---|
body | object | no |
POST/v1/app/preview_newsletter · Preview a newsletter
newsletters:readReturns exactly how the newsletter arrives on the phone.
| Field | Type | Required | Description |
|---|---|---|---|
params.newsletter_id | string | yes | ID |
POST/v1/app/get_newsletter_progress · Get newsletter sending progress
newsletters:readReturns the sending state of a newsletter (sent, waiting, stopped).
| Field | Type | Required | Description |
|---|---|---|---|
params.newsletter_id | string | yes | ID |
POST/v1/app/resume_newsletter · Resume a newsletter
newsletters:scheduleContinues sending a newsletter that stopped (for example after credits ran out). Sends real WhatsApp messages.
| Field | Type | Required | Description |
|---|---|---|---|
params.newsletter_id | string | yes | ID |
body | object | no |
POST/v1/app/pause_newsletter · Pause a newsletter
newsletters:scheduleStops a newsletter that is being sent right now.
| Field | Type | Required | Description |
|---|---|---|---|
params.newsletter_id | string | yes | ID |
body | object | no |
POST/v1/app/delete_newsletter · Delete a newsletter
newsletters:deleteDeletes a newsletter from the list.
| Field | Type | Required | Description |
|---|---|---|---|
params.newsletter_id | string | yes | ID |
POST/v1/app/get_test_number · Get test phone number
settings:readReturns the phone number that receives test newsletters.
No input fields.
POST/v1/app/set_test_number · Set test phone number
settings:writeSets the phone number that receives test newsletters.
| Field | Type | Required | Description |
|---|---|---|---|
body | object | no | { phone } in international format. |
POST/v1/app/get_landing_page · Get landing page
landing:readReturns the landing page with its settings, address and publish state.
No input fields.
POST/v1/app/preview_landing_page · Preview landing page HTML
landing:readReturns the rendered HTML of the landing page.
No input fields.
POST/v1/app/unpublish_landing_page · Unpublish landing page
landing:writeTakes the landing page offline.
| Field | Type | Required | Description |
|---|---|---|---|
body | object | no |
POST/v1/app/get_website_popup · Get website popup
landing:readReturns the settings and texts of the website sign-up popup.
No input fields.
POST/v1/app/get_popup_stats · Get popup statistics
stats:readReturns how often the website popup was seen and how many signed up.
No input fields.
POST/v1/app/get_automation_connection · Get automation connection status
automations:readReturns whether an automation receives data (webhook, calendar).
| Field | Type | Required | Description |
|---|---|---|---|
params.automation_id | string | yes | ID |
POST/v1/app/get_automation_endpoint · Get automation endpoint
automations:readReturns the webhook address and setup of an automation.
| Field | Type | Required | Description |
|---|---|---|---|
params.automation_id | string | yes | ID |
POST/v1/app/get_automation_timeline · Get automation timeline
automations:readReturns the timeline of what an automation did.
| Field | Type | Required | Description |
|---|---|---|---|
params.automation_id | string | yes | ID |
POST/v1/app/check_automation_calendar · Check automation calendar
automations:writeChecks the connected calendar of an automation.
| Field | Type | Required | Description |
|---|---|---|---|
params.automation_id | string | yes | ID |
body | object | no |
POST/v1/app/get_calendar_guides · Get calendar guides
automations:readReturns how to find the private calendar address in Google, Outlook and Apple.
No input fields.
POST/v1/app/list_widgets · List website widgets
account:readLists the website widgets (popup and chat button).
No input fields.
POST/v1/app/get_widget_snippet · Get widget embed code
account:readReturns the code to paste into the website.
| Field | Type | Required | Description |
|---|---|---|---|
params.widget_id | string | yes | ID |
POST/v1/app/update_widget · Change a widget
account:writeChanges a website widget, for example the WhatsApp number or allowed domains.
| Field | Type | Required | Description |
|---|---|---|---|
params.widget_id | string | yes | ID |
body | object | no |
POST/v1/app/rotate_widget_token · Renew widget token
account:writeRenews the token of a widget. The old embed code stops working.
| Field | Type | Required | Description |
|---|---|---|---|
params.widget_id | string | yes | ID |
body | object | no |
POST/v1/app/get_whatsapp_link · Get WhatsApp link
account:readReturns the wa.me link of the business.
No input fields.
POST/v1/app/get_whatsapp_qr · Get WhatsApp QR code
account:readReturns the QR code for the WhatsApp number.
No input fields.
POST/v1/app/get_notifications · Get notification settings
account:readReturns which emails the account gets (new messages, problems, reports).
No input fields.
POST/v1/app/update_notifications · Change notification settings
account:writeSwitches notification emails on or off.
| Field | Type | Required | Description |
|---|---|---|---|
body | object | no |
POST/v1/app/invite_team_member · Invite a team member
account:writeInvites a person to the team by email.
| Field | Type | Required | Description |
|---|---|---|---|
body | object | no | { email, role } - same fields as the app. |
POST/v1/app/change_team_role · Change a team role
account:writeChanges the role of a team member.
| Field | Type | Required | Description |
|---|---|---|---|
params.member_id | string | yes | ID |
body | object | no | { role } |
POST/v1/app/remove_team_member · Remove a team member
account:writeRemoves a person from the team.
| Field | Type | Required | Description |
|---|---|---|---|
params.member_id | string | yes | ID |
POST/v1/app/get_billing · Get plan and subscription
account:readReturns the current plan and subscription state.
No input fields.
POST/v1/app/list_invoices · List invoices
account:readLists the invoices of the account.
No input fields.
POST/v1/app/get_credits · Get credits
account:readReturns the credit balance.
No input fields.
POST/v1/app/get_credit_history · Get credit history
account:readReturns the history of credits used and added.
No input fields.
POST/v1/app/list_rewards · List rewards
account:readLists the bonus tasks and their state.
No input fields.
POST/v1/app/claim_reward · Claim a reward
account:writeClaims a finished bonus task.
| Field | Type | Required | Description |
|---|---|---|---|
params.reward_id | string | yes | ID |
body | object | no |
POST/v1/app/get_referral · Get referral program
account:readReturns the referral link and its results.
No input fields.
POST/v1/app/list_domains · List domains
account:readLists the domains and subdomain of the landing page.
No input fields.
POST/v1/app/check_subdomain · Check a subdomain
account:readChecks if a subdomain (name.smartchat.marketing) is free.
| Field | Type | Required | Description |
|---|---|---|---|
query.name | string | no |
POST/v1/app/suggest_subdomain · Suggest subdomains
account:readSuggests free subdomains for the business.
No input fields.
POST/v1/app/set_subdomain · Set the subdomain
account:writeSets the subdomain of the landing page. The old address stops working.
| Field | Type | Required | Description |
|---|---|---|---|
body | object | no | { name } |
POST/v1/app/connect_own_domain · Connect an own domain
account:writeConnects a domain the business already owns. Returns the DNS entries to set.
| Field | Type | Required | Description |
|---|---|---|---|
body | object | no | { connect: "example.com" } - same fields as the app. Buying a domain is not possible here. |
POST/v1/app/verify_domain · Verify a domain
account:writeChecks the DNS entries of a connected domain.
| Field | Type | Required | Description |
|---|---|---|---|
body | object | no |
POST/v1/app/set_domain_auto_renew · Switch domain auto-renew
account:writeSwitches the automatic renewal of a domain on or off.
| Field | Type | Required | Description |
|---|---|---|---|
params.domain_id | string | yes | ID |
body | object | no | { auto_renew: true|false } |
POST/v1/app/delete_domain · Remove a domain
account:writeRemoves a connected domain from the account.
| Field | Type | Required | Description |
|---|---|---|---|
params.domain_id | string | yes | ID |
POST/v1/app/list_connected_ai_apps · List connected AI apps
account:readLists the AI apps (like Claude) connected to the account.
No input fields.
POST/v1/app/list_tutorials · List tutorials
account:readLists the tutorial videos.
No input fields.
POST/v1/app/send_feedback · Send feedback
account:writeSends feedback, a bug report or a suggestion to the SmartChat team.
| Field | Type | Required | Description |
|---|---|---|---|
body | object | no | Same fields as the app, e.g. { type, message }. |
POST/v1/app/get_onboarding_status · Get setup status
account:readReturns the setup state of the account (what is done, what is missing).
No input fields.
POST/v1/app/set_areas · Choose areas
account:writeChooses which areas the account uses (marketing, automations, AI reply).
| Field | Type | Required | Description |
|---|---|---|---|
body | object | no | { areas: [...] } - same fields as the app. |
Questions?
Email us at support@smartchat.marketing