> ## Documentation Index
> Fetch the complete documentation index at: https://mintlify.com/aiven/aiven-docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Quickstart

> Create your first Aiven service in minutes with this step-by-step guide

This quickstart guide walks you through creating your first Aiven service. You'll set up billing, create a project, and deploy a service using the Aiven Console.

<Note>
  **Time to complete:** 5-10 minutes

  **Prerequisites:** An email address to create your Aiven account
</Note>

## Step 1: Sign up for Aiven

Create your free Aiven account to get started:

<Steps>
  <Step title="Create your account">
    Go to [console.aiven.io/signup](https://console.aiven.io/signup) and sign up with your email address.

    Alternatively, you can sign up through a [cloud marketplace](/marketplace-setup) (AWS, Azure, or Google Cloud).
  </Step>

  <Step title="Verify your email">
    Check your inbox for a verification email and click the confirmation link.
  </Step>

  <Step title="Complete your profile">
    Enter your name and organization details when prompted.
  </Step>
</Steps>

<Tip>
  New accounts receive free trial credits to explore Aiven services at no cost.
</Tip>

## Step 2: Set up billing

Before creating services, you need to configure a payment method:

<Steps>
  <Step title="Navigate to billing">
    In the Aiven Console, go to **Billing** in the left navigation menu.
  </Step>

  <Step title="Add payment method">
    Click **Add payment method** and enter your credit card details.

    <Note>
      You won't be charged until you exceed your free trial credits. All services are billed per hour based on actual usage.
    </Note>
  </Step>

  <Step title="Configure billing group">
    Your default billing group is automatically created. You can add additional details like:

    * Billing contact email
    * Company information
    * Billing address
    * Tax ID (if applicable)
  </Step>
</Steps>

For more details, see the [billing and payment guide](/platform/billing-and-payment).

## Step 3: Create a project

Projects organize your services and resources:

<Steps>
  <Step title="Access projects">
    Click **Projects** in the left navigation, then click **Create project**.
  </Step>

  <Step title="Name your project">
    Enter a descriptive name like `my-first-project` or `development`.

    <Tip>
      Use projects to separate environments (dev, staging, production) or organize services by application.
    </Tip>
  </Step>

  <Step title="Select billing group">
    Choose your default billing group or create a new one.
  </Step>

  <Step title="Create the project">
    Click **Create project** to finish.
  </Step>
</Steps>

## Step 4: Create your first service

Let's deploy a PostgreSQL database as an example:

<Steps>
  <Step title="Start service creation">
    From your project dashboard, click **Create service**.
  </Step>

  <Step title="Choose a service type">
    Select **PostgreSQL** from the list of available services.

    <Note>
      You can choose any service type. PostgreSQL is used here as an example, but the process is similar for Kafka, MySQL, OpenSearch, and other services.
    </Note>
  </Step>

  <Step title="Select cloud provider and region">
    Choose where to deploy your service:

    * **Cloud provider:** AWS, Azure, or Google Cloud
    * **Region:** Pick a region close to your users for better performance

    Example: `AWS - us-east-1` or `Google Cloud - europe-west1`
  </Step>

  <Step title="Choose a service plan">
    Select a plan based on your needs:

    * **Hobbyist:** Single-node for development and testing
    * **Startup:** High availability with automatic failover
    * **Business:** Production-ready with enhanced resources
    * **Premium:** Maximum performance and features

    <Tip>
      Start with the **Hobbyist** plan for testing. You can upgrade to a higher plan later without downtime.
    </Tip>
  </Step>

  <Step title="Name your service">
    Give your service a descriptive name like `demo-postgres` or `app-database`.
  </Step>

  <Step title="Review and create">
    Review your configuration and click **Create service**.

    The service will start provisioning. This typically takes 2-5 minutes.
  </Step>
</Steps>

## Step 5: Connect to your service

Once your service is running, you can connect to it:

<Steps>
  <Step title="View service details">
    Click on your service name to open the service overview page.
  </Step>

  <Step title="Get connection information">
    Find your connection details in the **Connection information** section:

    * Service URI
    * Host and port
    * Username and password

    <Note>
      Keep your credentials secure. Never commit them to version control.
    </Note>
  </Step>

  <Step title="Connect to your database">
    Use the connection information with your preferred client.
  </Step>
</Steps>

### Example: Connect to PostgreSQL

<Accordion title="Using psql command-line">
  Copy the Service URI from the console and use it with psql:

  ```bash theme={null}
  psql "postgres://avnadmin:password@demo-postgres-project.aivencloud.com:12345/defaultdb?sslmode=require"
  ```

  Replace the URI with your actual connection string from the console.
</Accordion>

<Accordion title="Using a connection string in your application">
  Most PostgreSQL libraries accept the Service URI directly:

  ```python theme={null}
  import psycopg2

  conn = psycopg2.connect(
      "postgres://avnadmin:password@demo-postgres-project.aivencloud.com:12345/defaultdb?sslmode=require"
  )
  ```

  ```javascript theme={null}
  const { Client } = require('pg');

  const client = new Client({
    connectionString: 'postgres://avnadmin:password@demo-postgres-project.aivencloud.com:12345/defaultdb?sslmode=require'
  });

  await client.connect();
  ```
</Accordion>

## Create services with CLI or API

You can also create services programmatically:

<Accordion title="Using Aiven CLI">
  Install the Aiven CLI:

  ```bash theme={null}
  pip install aiven-client
  ```

  Log in to your account:

  ```bash theme={null}
  avn user login your-email@example.com --token
  ```

  Create a service:

  ```bash theme={null}
  avn service create demo-postgres \
    --service-type pg \
    --cloud aws-us-east-1 \
    --plan hobbyist \
    --project my-first-project
  ```

  Check service status:

  ```bash theme={null}
  avn service list --project my-first-project
  ```

  Get connection details:

  ```bash theme={null}
  avn service get demo-postgres --project my-first-project --format json
  ```

  For more CLI commands, see the [CLI documentation](/tools/cli).
</Accordion>

<Accordion title="Using Aiven API">
  Create a service using the REST API:

  ```bash theme={null}
  curl -X POST https://api.aiven.io/v1/project/my-first-project/service \
    -H "Authorization: Bearer YOUR_API_TOKEN" \
    -H "Content-Type: application/json" \
    -d '{
      "service_name": "demo-postgres",
      "service_type": "pg",
      "cloud": "aws-us-east-1",
      "plan": "hobbyist"
    }'
  ```

  Get service information:

  ```bash theme={null}
  curl -X GET https://api.aiven.io/v1/project/my-first-project/service/demo-postgres \
    -H "Authorization: Bearer YOUR_API_TOKEN"
  ```

  The API returns detailed service information including connection details, status, and configuration.

  For complete API documentation, see the [API reference](/api-reference/services).
</Accordion>

<Accordion title="Using Terraform">
  Create a service using the Aiven Terraform Provider:

  ```hcl theme={null}
  terraform {
    required_providers {
      aiven = {
        source  = "aiven/aiven"
        version = "~> 4.0"
      }
    }
  }

  provider "aiven" {
    api_token = var.aiven_api_token
  }

  resource "aiven_pg" "demo_postgres" {
    project      = "my-first-project"
    service_name = "demo-postgres"
    cloud_name   = "aws-us-east-1"
    plan         = "hobbyist"
  }

  output "service_uri" {
    value     = aiven_pg.demo_postgres.service_uri
    sensitive = true
  }
  ```

  Apply the configuration:

  ```bash theme={null}
  terraform init
  terraform apply
  ```

  For more examples, see the [Terraform documentation](/tools/terraform).
</Accordion>

## Next steps

Congratulations! You've created your first Aiven service. Here's what to explore next:

<CardGroup cols={2}>
  <Card title="Explore your service" icon="magnifying-glass" href="/services/overview">
    Learn about service features, backups, and configuration options
  </Card>

  <Card title="Set up your organization" icon="users" href="/platform/organizations-and-projects">
    Invite team members and configure access controls
  </Card>

  <Card title="Configure integrations" icon="plug" href="/platform/service-integrations">
    Connect services together or integrate with external tools
  </Card>

  <Card title="Secure your services" icon="lock" href="/platform/security">
    Set up VPC peering, IP filtering, and authentication policies
  </Card>
</CardGroup>

<Tip>
  **Need help?** Check out our documentation or contact [support@aiven.io](mailto:support@aiven.io) for assistance.
</Tip>
