{"templateId":"markdown","sharedDataIds":{"sidebar":"sidebar-docs/functions/sidebars.yaml"},"props":{"metadata":{"markdoc":{"tagList":["partial"]},"type":"markdown"},"seo":{"title":"Developer Documentation","siteUrl":"https://developers.sinch.com","llmstxt":{"title":"Sinch Developer Documentation","description":"LLMs.txt containing a map of all the documentation files for Sinch.","sections":[{"title":"SMS API","description":"The SMS API allows you to send and receive SMS messages with a few easy steps. You can also send bulk SMS messages to multiple customers using the Sinch SMS service.","includeFiles":["docs/sms/**/*.md","docs/sms/**/*.yaml"],"excludeFiles":["docs/sms/index.md"]},{"title":"Numbers API","description":"The Numbers API enables you to search for, view, and activate numbers. It's considered a precursor to other APIs in the Sinch product family. The numbers API can be used in tandem with any of our APIs that perform messaging or calling.","includeFiles":["docs/numbers/**/*.md","docs/numbers/**/*.yaml"],"excludeFiles":["docs/numbers/index.md"]},{"title":"Conversation API","description":"Send and receive messages globally on many popular channels with ease and confidence when using Sinch's Conversation API. Conversation API is the preferred API for sending mobile messages on SMS and other social channels with Sinch. It is a simple API with unified error messages, consistent request payloads, and common webhook payloads that are channel-agnostic.","includeFiles":["docs/conversation/**/*.md","docs/conversation/**/*.yaml"],"excludeFiles":["docs/conversation/index.md"]},{"title":"Voice API","description":"The Voice API works as a big telephony switch. The Voice API handles incoming phone calls (also known as incoming call “legs”), sets up outgoing phone calls (or outgoing call “legs”), and bridges the two. The incoming call leg may come in over a data connection (from a smartphone or web application using the Sinch SDKs) or through a local phone number (from the PSTN network). Similarly, the outgoing call leg can be over data (to another smartphone or web application using the Sinch SDKs) or the PSTN network.","includeFiles":["docs/voice/**/*.md","docs/voice/**/*.yaml"],"excludeFiles":["docs/voice/index.md"]},{"title":"Verification API","description":"The Verification API is a platform for phone number verification. It consists of the API and different software development kits (the Sinch SDKs) that you integrate with your smartphone or web application and cloud based back-end services. Together they enable SMS, Flashcall, Phone Call and Data verification in your application.","includeFiles":["docs/verification/**/*.md","docs/verification/**/*.yaml"],"excludeFiles":["docs/verification/index.md"]},{"title":"Provisioning API","description":"Provisioning API allows you to programmatically set up your senders, accounts and templates on your favorite messaging platforms on the Conversation API. For now, you can create your first WhatsApp channel through Meta's Embedded sign up, you can configure your first SMS App and configure your webhooks. As development continues, we will be adding the most commonly used channels.","includeFiles":["docs/provisioning-api/**/*.md","docs/provisioning-api/**/*.json"],"excludeFiles":["docs/provisioning-api/index.md"]},{"title":"Elastic SIP Trunking API","description":"With Elastic SIP Trunking you can create and manage your SIP trunks and phone numbers programmatically.","includeFiles":["docs/est/**/*.md","docs/est/**/*.yaml"],"excludeFiles":["docs/est/index.md"]},{"title":"Fax API","description":"Send and receive HIPAA compliant faxes on our modern fax platform using our developer-friendly API.","includeFiles":["docs/fax/**/*.md","docs/fax/**/*.yaml"],"excludeFiles":["docs/fax/index.md"]},{"title":"In-app Voice and Video SDK","description":"The In-app Voice and Video SDK enables you to add voice and video calling capabilities directly into your mobile or web application using the Sinch SDKs.","includeFiles":["docs/in-app-calling/**/*.md"],"excludeFiles":["docs/in-app-calling/index.md"]}],"hide":false,"excludeFiles":[]}},"dynamicMarkdocComponents":[],"compilationErrors":[],"ast":{"$$mdtype":"Tag","name":"article","attributes":{},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":1,"id":"function-utilities","__idx":0},"children":["Function utilities"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Commands for inspecting and managing your function after it's deployed — database contents, storage files, deployment status, generated documentation, and developer skills for AI coding assistants."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Run any command with ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["--help"]}," for the full flag list."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"sinch-status","__idx":1},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["sinch status"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Show the current status and details of a deployed function."]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"bash","header":{"controls":{"copy":{}}},"source":"sinch status                     # show status of the function in cwd\nsinch status --name my-function  # target a specific function\n","lang":"bash"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Prints deployment state (",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Running"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Building"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Failed"]},", etc.), function URL, environment, runtime, and last deploy time. Use this when ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["sinch functions logs"]}," shows nothing — first check that the function is actually up."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"sinch-docs","__idx":2},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["sinch docs"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Generate a README.md from the current function's metadata and detected handlers."]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"bash","header":{"controls":{"copy":{}}},"source":"sinch docs\n","lang":"bash"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Inspects ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["sinch.json"]},", the exported handlers (Node) or controllers (C#), and writes a README.md that explains what the function does, which callbacks it implements, and how to invoke them locally. Safe to re-run — it regenerates from source each time."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["sinch functions deploy"]}," prompts to run this automatically unless you pass ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["--no-docs"]},"."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"sinch-db","__idx":3},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["sinch db"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Download and upload the function's SQLite database. Useful for pulling production data down to inspect locally, or pushing a seeded database up."]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"bash","header":{"controls":{"copy":{}}},"source":"sinch db download                     # download the deployed db to ./function.db\nsinch db download --output backup.db  # custom local path\nsinch db upload ./seed.db             # upload a local SQLite file to the deployed function\nsinch db upload ./seed.db --force     # overwrite the existing database\n","lang":"bash"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Both commands target the deployed function by default (looks up the function ID in ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["sinch.json"]},"). Pass a ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["[function-id]"]}," positional to target a different function."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["For interactive querying, download the database and use ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["sqlite3"]}," or any SQLite client locally."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"sinch-storage","__idx":4},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["sinch storage"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Manage the function's blob storage. Useful for inspecting recordings, reports, or other files your function wrote to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["context.storage"]},"."]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"bash","header":{"controls":{"copy":{}}},"source":"sinch storage list                             # list all files\nsinch storage list recordings/                 # list under a prefix\nsinch storage download reports/daily.json      # download a file\nsinch storage download reports/daily.json ./local.json  # with a local path\nsinch storage upload ./data.json reports/new.json       # upload a local file\nsinch storage delete reports/old.json          # delete a file\nsinch storage delete reports/old.json --force  # skip the confirmation\n","lang":"bash"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The commands target the deployed function's blob storage."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"sinch-skills","__idx":5},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["sinch skills"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Install and manage Sinch developer skills for AI coding assistants (Claude Code, Cursor, Copilot, etc.). Skills give the assistant structured knowledge of how to build and debug Sinch Functions without you having to paste docs into the prompt."]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"bash","header":{"controls":{"copy":{}}},"source":"sinch skills list                   # show installed and available skills\nsinch skills install functions-dev  # install a skill\nsinch skills update                 # pull latest versions\nsinch skills uninstall functions-dev\n","lang":"bash"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Skills are distributed as part of the Sinch ecosystem and installed into the appropriate config directory for your AI assistant of choice."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"related","__idx":6},"children":["Related"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"a","attributes":{"href":"/docs/functions/cli/commands/functions"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["sinch functions"]}," commands"]}," — init, dev, deploy, download, delete, list, logs"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"a","attributes":{"href":"#"},"children":["Monitoring"]}," — streaming logs with the interactive TUI"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"a","attributes":{"href":"#"},"children":["Deployment concept"]}," — what ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Running"]}," / ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Building"]}," / ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Failed"]}," actually mean"]}]}]},"headings":[{"value":"Function utilities","id":"function-utilities","depth":1},{"value":"sinch status","id":"sinch-status","depth":2},{"value":"sinch docs","id":"sinch-docs","depth":2},{"value":"sinch db","id":"sinch-db","depth":2},{"value":"sinch storage","id":"sinch-storage","depth":2},{"value":"sinch skills","id":"sinch-skills","depth":2},{"value":"Related","id":"related","depth":2}],"frontmatter":{"seo":{"title":""}},"lastModified":"2026-04-15T14:23:23.000Z","pagePropGetterError":{"message":"","name":""}},"slug":"/docs/functions/cli/commands/function-utilities","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}