{"templateId":"markdown","sharedDataIds":{},"props":{"metadata":{"markdoc":{"tagList":[]},"type":"markdown"},"seo":{"title":"✅ Prerequisites","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":"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"]},{"title":"Number Lookup API","description":"The Number Lookup API is designed to provide in-depth information about phone numbers, helping enterprises enhance their communication strategies and prevent fraud. By identifying the type of phone line (for example, mobile, landline, VoIP) and the associated carrier, the API allows businesses to optimize routing, reduce unnecessary costs, and improve customer engagement.","includeFiles":["docs/number-lookup-api-v2/**/*.md","docs/number-lookup-api-v2/**/*.yaml"],"excludeFiles":["docs/number-lookup-api-v2/index.md"]},{"title":"Functions","description":"Serverless compute for voice and messaging. Deploy your code and Sinch routes live calls and messages to it — no infrastructure to run.","includeFiles":["docs/functions/functions/**/*.md","docs/functions/concepts/**/*.md","docs/functions/reference/**/*.md"],"excludeFiles":["docs/functions/functions/index.md"]},{"title":"CLI","description":"One command line for every Sinch API and the full Functions lifecycle — scaffold, run locally, deploy, and manage.","includeFiles":["docs/functions/cli/**/*.md"],"excludeFiles":["docs/functions/cli/index.md"]}]}},"dynamicMarkdocComponents":[],"compilationErrors":[],"ast":{"$$mdtype":"Tag","name":"article","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This guide explains how to set up your development environment and how to use the Chatlayer CLI ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["cldk"]}," which is"," ","available as a command line app."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":1,"id":"-prerequisites","__idx":0},"children":["✅ Prerequisites"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["To use the App Integration framework, you should be familiar with the following:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Node.js"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Javascript"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Knowledge of ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"https://www.typescriptlang.org/"},"children":["Typescript"]}," is helpful but not required."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["To install CLI on your local system, you need the following:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Node.js App Integration requires ",{"$$mdtype":"Tag","name":"em","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"https://nodejs.org/download/release/latest-v14.x/"},"children":["version 14"]}]}," of Node.js. For"," ","more information on installing Node.js, see ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"https://nodejs.org/en/"},"children":["nodejs.org"]},". If you are unsure what version"," ","of ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Node.js"]}," runs on your system, run ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["node -v"]}," in a terminal window."]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["npm"]}," package manager App Integration CLI and the App you develop with this framework depends on many features and"," ","functions. To download and install Node.js packages, you need the  ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"https://docs.npmjs.com/about-npm"},"children":["npm"]},"  package"," ","manager. This guide uses the ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"https://docs.npmjs.com/cli/v8/commands/npm-install"},"children":["npm client"]}," command line interface,"," ","which is installed with ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Node.js"]}," by default. To check that you have installed the npm client installed, run ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["npm -v"]}," ","in the terminal window."]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":1,"id":"-install-the-chatlayer-cli--cldk-for-short","__idx":1},"children":["🔧 Install the Chatlayer CLI (",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["cldk"]}," for short)"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["You use the App Integration CLI to create project, generate a templated app and perform variety of ongoing development"," ","tasks such as testing, building, validating and deploying."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["To install the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["cldk"]},", open a terminal window and run the following command"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"shell","header":{"controls":{"copy":{}}},"source":"npm install -g @chatlayer/app-platform\n","lang":"shell"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["To know about all the commands that will be accessible after installing it, please refer to"," ","the ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/docs/chatlayer/cli-tools"},"children":["detailed documentation of the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["cldk"]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":1,"id":"-create-a-workspace-and-scaffold-a-new-app","__idx":2},"children":["🎉 Create a workspace and scaffold a new app"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["You develop apps in the context of an App Integration workspace."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["To create a new workspace and initial starter app:"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Run the command ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["cldk scaffold"]}," and provide the name ",{"$$mdtype":"Tag","name":"em","attributes":{},"children":["my-first-app,"]}," as shown below:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"shell","header":{"controls":{"copy":{}}},"source":"cldk scaffold my-first-app\n","lang":"shell"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["After a while it installs the necessary Node.js packages and other dependencies."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The CLI creates a new workspace and a simple app where you can fill in your code."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Once the above command is run, you should have the following directory structure:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"shell","header":{"controls":{"copy":{}}},"source":"apps\n  my-first-app\n    README.md\n    index.js\n    package.json\n","lang":"shell"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Navigate to the app directory and run"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"shell","header":{"controls":{"copy":{}}},"source":"npm install\n","lang":"shell"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["To install the required dependencies."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Have a look at the ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/docs/chatlayer/app-schema"},"children":["App Schema"]}," to have a look at what is possible with the app"," ","integrations"]}]},"headings":[{"value":"✅ Prerequisites","id":"-prerequisites","depth":1},{"value":"🔧 Install the Chatlayer CLI ( cldk for short)","id":"-install-the-chatlayer-cli--cldk-for-short","depth":1},{"value":"🎉 Create a workspace and scaffold a new app","id":"-create-a-workspace-and-scaffold-a-new-app","depth":1}],"frontmatter":{"title":"Setup","slug":"setup","hidden":true,"createdAt":"2022-02-01T10:26:08.802Z","updatedAt":"2022-02-10T19:04:37.647Z","weight":1,"seo":{"title":"✅ Prerequisites"}},"lastModified":"2025-09-05T14:04:57.000Z","pagePropGetterError":{"message":"","name":""}},"slug":"/setup","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}