= Getting Started :description: Create a free service, get its credentials, make the first request and connect your web or mobile app with the Kit. About five minutes, no card. :keywords: getting started, backend for web app, backend for mobile app, free backend, create service, MongoDB API, sign-up and login, Cloud Kit :group: Start :order: 20 In five minutes you will have a service running, its credentials in hand, and your first request answered. The free tier needs no card. == 1. Create a service Sign in at https://cloud.restheart.com and click **Create Service**. Pick a tier. **Free** is enough to build and test an app, and you can change it later. image::/assets/docs-images/create-service.png[Choosing the service tier in the console] Give the service a name. It is ready in under a minute, with an address of its own such as `https://f3a9c1.eu-central-1-free-1.restheart.com`. That address is what your app talks to. NOTE: A **Dedicated** service needs a MongoDB of yours before it can start, for example an Atlas cluster. See xref:custom-mongodb.adoc[Connecting your MongoDB]. == 2. Get the credentials The service opens on its **Overview**: the address, two credentials, and a snippet for your framework. image::/assets/docs-images/service-overview.png[The service overview: quick actions, credentials, and the Kit snippet for React, Angular or Vue] * **Basic Auth**, permanent. The `root` user of your service, which can do everything. Use it to set the service up and from your terminal. Your app's own users come from sign-up, later. * **Admin JWT**, 15 minutes. A token with root's powers for a quick test from a terminal. It expires by design; click **Refresh** for a new one. The password of `root` is not stored anywhere, so the console cannot show it. Open **Connect**, click **Reset password** and choose one. Write it down: this is the credential you will use in every example of this documentation. image::/assets/docs-images/connect-credentials.png[The Connect page: the service address, Basic Auth with the reset-password form, and the Admin JWT] == 3. Make the first request From a terminal. Put the root password in a variable once; every example in this documentation reads it from there: [source,bash] ---- export ROOT_PASSWORD='the password you set on Connect' curl -i -u root:$ROOT_PASSWORD https://f3a9c1.eu-central-1-free-1.restheart.com/ ---- It answers `200` and the list of collections, which is empty. Now create one, put a document in it and read it back: [source,bash] ---- curl -i -u root:$ROOT_PASSWORD -X PUT https://f3a9c1.eu-central-1-free-1.restheart.com/todos curl -i -u root:$ROOT_PASSWORD -X POST https://f3a9c1.eu-central-1-free-1.restheart.com/todos \ -H 'Content-Type: application/json' \ -d '{ "task": "Try RESTHeart Cloud", "completed": false }' curl -u root:$ROOT_PASSWORD https://f3a9c1.eu-central-1-free-1.restheart.com/todos ---- Three requests, and your app has a collection with data in it. Every collection works this way: `GET` to read and filter, `POST` to add, `PATCH` to change, `DELETE` to remove. See xref:managing-data.adoc[Collections and documents]. TIP: The **API Tutorial** in the console runs these steps against your service with one click each, then goes on to create an application user and give it a permission. image::/assets/docs-images/api-tutorial.png[The interactive API tutorial in the console, running the first request against the service] == 4. Connect your app Install the Kit for your framework and paste the snippet shown on the overview under **Use with your framework**: [source,bash] ---- npm install @restheart-cloud/kit-react # or kit-ng, or kit-vue ---- [source,jsx] ---- import { RhAuthProvider } from '@restheart-cloud/kit-react'; createRoot(document.getElementById('root')!).render( ); ---- From here your app has sign-up, sign-in, sessions that survive a reload, and the calls to your data. The users are the users of your service, each with their own permissions, never `root`. See xref:kit.adoc[the Cloud Kit], or start from a ready-made app: [source,bash] ---- git clone https://github.com/SoftInstigate/restheart-cloud-starter-react.git ---- A mobile app talks to the same address over HTTPS, with the user's credentials or a token. See xref:users-and-permissions.adoc[Users and permissions through the API]. == What next * **Your users.** Turn on xref:signup-mgmt.adoc[sign-up management] for registration, email verification, password reset and login with Google. Then xref:managing-users.adoc[users] and xref:managing-permissions.adoc[permissions] decide who may do what. * **Your data.** xref:schemas.adoc[Schemas] to validate documents, xref:aggregations.adoc[aggregations] for reports, xref:change-streams.adoc[change streams] for live updates in the UI. * **Payments, email, AI.** xref:stripe.adoc[Stripe billing], xref:emails.adoc[email] from your own address, and the xref:mcp.adoc[MCP server] to let an agent use your data. The free tier gives you 20 collections, 100 MB and 300 requests a minute, and a service idle for 40 days is deleted. xref:plans.adoc[What changes with Shared and Dedicated]. Stuck? Ask on https://discord.gg/tdpWwC6ng2[Discord], or open a support request from the console.