# Getting Started (/docs/rest-api/getting-started) > For the complete Prisma documentation index, see [llms.txt](https://www.prisma.io/docs/llms.txt). A markdown version of any docs page is available by appending `.md` to its URL. Get started with the Prisma REST API by creating your first project and database Location: REST API > Getting Started This guide walks you through setting up a basic TypeScript project that uses the REST API to create a new Prisma Console project with a Prisma Postgres database, and print out all connection details. You'll authenticate via a service token, set up your environment, and run a script to interact with the API. ## Prerequisites [#prerequisites] * Node.js and `npm` installed * A [Prisma Data Platform](https://console.prisma.io/?utm_source=docs\&utm_medium=content\&utm_content=rest-api) account ## 1. Create a service token in Prisma Console [#1-create-a-service-token-in-prisma-console] Create a service token so your script can authenticate with the REST API: 1. Open the [Prisma Console](https://console.prisma.io/?utm_source=docs\&utm_medium=content\&utm_content=rest-api) 2. Navigate to the **Settings** page of your workspace and select **Service Tokens** 3. Click **New Service Token** 4. Copy the generated service token and store it securely. You add it to `.env` in step 2.2. ## 2. Set up your project directory [#2-set-up-your-project-directory] ### 2.1. Create a basic TypeScript project [#21-create-a-basic-typescript-project] Create the project directory and move into it: ```bash mkdir rest-api-demo cd rest-api-demo ``` Next, initialize npm and install dependencies required for using TypeScript: #### bun ```bash bun init bun add tsx typescript @types/node --dev touch index.ts ``` #### pnpm ```bash pnpm init pnpm add tsx typescript @types/node --save-dev touch index.ts ``` #### yarn ```bash yarn init yarn add tsx typescript @types/node --dev touch index.ts ``` #### npm ```bash npm init npm install tsx typescript @types/node --save-dev touch index.ts ``` You now have an `index.ts` file that you can execute with `npx tsx index.ts`. It is still empty. You add code to it in step 3. ### 2.2. Configure service token environment variable [#22-configure-service-token-environment-variable] Create your `.env` file: ```bash touch .env ``` Next, install the [`dotenv`](https://github.com/motdotla/dotenv) library for loading environment variables from the `.env` file: #### bun ```bash bun add dotenv ``` #### pnpm ```bash pnpm add dotenv ``` #### yarn ```bash yarn add dotenv ``` #### npm ```bash npm install dotenv ``` Finally, add your service token (from step 1.) to `.env`: ```bash PRISMA_SERVICE_TOKEN="ey..." ``` ### 2.3. Install the `axios` library for HTTP request [#23-install-the-axios-library-for-http-request] This guide uses [`axios`](https://github.com/axios/axios/tree/main) as the HTTP client for the REST API. Install it: #### bun ```bash bun add axios ``` #### pnpm ```bash pnpm add axios ``` #### yarn ```bash yarn add axios ``` #### npm ```bash npm install axios ``` With the token, environment, and HTTP client in place, the next step creates a project and provisions a Prisma Postgres database. ## 3. Programmatically create a new project with a database [#3-programmatically-create-a-new-project-with-a-database] Paste the following code into `index.ts`: ```ts import axios from "axios"; import dotenv from "dotenv"; // Load environment variables dotenv.config(); const API_URL = "https://api.prisma.io/v1"; const SERVICE_TOKEN = process.env.PRISMA_SERVICE_TOKEN; if (!SERVICE_TOKEN) { throw new Error("PRISMA_SERVICE_TOKEN is not set in the environment"); } // Set HTTP headers to be used in this script const headers = { Authorization: `Bearer ${SERVICE_TOKEN}`, "Content-Type": "application/json", }; async function main() { // Create a new project in your Prisma Console workspace const projectName = `demo-project-${Date.now()}`; const region = "us-east-1"; const createProjectRes = await axios.post( `${API_URL}/projects`, { name: projectName, region }, { headers }, ); const project = createProjectRes.data; console.log("Created project: \n", project); // Log the database details const apiKeys = project.databases[0].apiKeys || []; for (const key of apiKeys) { console.log(`\nDatabase details`); console.log(`- ID: ${key.id}`); console.log(`- Created at: ${key.createdAt}`); console.log(`- API key: ${key.apiKey}`); console.log(`- Prisma Postgres connection string: ${key.connectionString}`); if (key.ppgDirectConnection) { console.log(`- Direct TCP connection: ${key.ppgDirectConnection.host}`); console.log(` - Host: ${key.ppgDirectConnection.host}`); console.log(` - Username: ${key.ppgDirectConnection.user}`); console.log(` - Password: ${key.ppgDirectConnection.pass}`); } } } main().catch((e) => { console.error(e.response?.data || e); process.exit(1); }); ``` Run the script: #### bun ```bash bunx tsx index.ts ``` #### pnpm ```bash pnpm dlx tsx index.ts ``` #### yarn ```bash yarn dlx tsx index.ts ``` #### npm ```bash npx tsx index.ts ``` ```text no-copy Created project: { createdAt: '2025-07-09T11:52:15.341Z', id: 'cmcvwftgs00v5zq0vh3kp7pms', name: 'demo-project-1752061932800', databases: [ { createdAt: '2025-07-09T11:52:15.341Z', id: 'cmcvwftgs00v1zq0v0qrtrg8t', name: 'demo-project-1752061932800', connectionString: 'prisma+postgres://accelerate.prisma-data.net/?api_key=', region: 'us-east-1', status: 'ready', apiKeys: [Array], isDefault: true } ] } Database details - ID: cmcvwftgs00v2zq0vj3v0104j - Created at: 2025-07-09T11:52:15.341Z - API key: ey... - Prisma Postgres connection string: prisma+postgres://accelerate.prisma-data.net/?api_key=ey... - Direct TCP connection: db.prisma.io:5432 - Host: db.prisma.io:5432 - Username: - Password: ``` The output should look similar to the above. ## Conclusion [#conclusion] You have now set up a TypeScript project that interacts with the REST API, creates a new project and database, and prints out all connection strings. You can extend this script to manage more resources or automate other tasks using the REST API. ## Related pages - [`Authentication`](https://www.prisma.io/docs/rest-api/authentication): Learn how to authenticate with the Prisma REST API using service tokens or OAuth 2.0 - [`Partner Integration`](https://www.prisma.io/docs/rest-api/partner-integration): Build partner integrations that provision and transfer Prisma Postgres databases to users - [`SDK`](https://www.prisma.io/docs/rest-api/sdk): A TypeScript SDK for the Prisma Data Platform REST API. Use the simple client for direct API access, or the full SDK with built-in OAuth authentication and automatic token refresh - [`Using API Clients`](https://www.prisma.io/docs/rest-api/api-clients): Use the REST API with popular API clients like Postman, Insomnia, and Yaak