# Get Started

The Bettermile product suite offers unified authentication. Whether you need geolocation services or route optimization
algorithms, you can seamlessly access them once your client is authenticated and the correct scopes are assigned.

## Machine to Machine (M2M) Communcation

For secure, automated interactions between devices or systems, Bettermile uses machine-to-machine (M2M) authentication.
This process verifies the identity of each communicating party, eliminating the need for human involvement.

## Step 1: Credentials

To authenticate your machine, you must first create it. Please follow these steps to get started:

1. **Log in to [Bettermile Backoffice](https://backoffice.bettermile.com)**.
2. **Navigate to Tenant Machine Management**.
3. **Create a New Tenant Machine**.
4. **Save Your Credentials**


Credentials are provided only at the time of creation. Make sure to copy and securely store them.

These steps assume the user has already been onboarded.

## Step 2: Authentication

Now that the **Tenant Machine** has been created, you can authenticate it using the `id` and `secret` returned during the creation process.

For detailed instructions on using the Authentication API, please refer to the [Authentication API Documentation](/get-started/machines/apis/authentication).

## Step 3: Authorization - Product Access

Once authenticated, you can start making requests to Bettermile's Product Suite.

Be sure to include the `bearerToken` provided in the *Authentication* response as a header, using `Authorization` as the key.

## Best Practices

To ensure smooth, secure, and efficient usage of our APIs, follow these best practices:

- **Rate Limiting**: Stay within the configured rate limits and quota for each API. Exceeding these limits will result
in a `429 Too Many Requests` response.
- **Error Handling**: Always check the response status codes. If an error occurs, handle it gracefully with appropriate
fallback mechanisms.
- **Secure Your API Key**: Never expose your API key in public repositories, front-end code, or in any client-side
environment.