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

# First API Call 🚀

> Set up your Authlete account and make your first API call in just a few minutes.

<Note>
  This page is for Authlete 3.0. For 2.x, see [Getting Started (2.x)](/v2/get-started/quickstarts/getting-started).
</Note>

## 1. Create an Authlete Account

To use Authlete, you need an account. Once registered, you can configure all features through the management console.

[Visit the Authlete website](https://www.authlete.com) and click [Free Trial](https://console.authlete.com/register) in the upper-right corner.

<Frame className="mx-auto" style={{ maxWidth: '75%' }}>
  <img src="https://storage.googleapis.com/authlete-website/resources/tutorial-getting-started-images/1.png" alt="Authlete website homepage with Free Trial button prominently displayed in the upper-right corner" />
</Frame>

Choose your preferred registration method. You can use **social login (Google or GitHub)** or sign up with your **email address**.

<Frame className="mx-auto" style={{ maxWidth: '75%' }}>
  <img src="https://storage.googleapis.com/authlete-website/resources/tutorial-getting-started-images/2.png" alt="Signup page showing registration options: social login with Google and GitHub buttons, and an email address signup field" />
</Frame>

After verifying your social login or email address, complete the profile page by entering your **first name**, **last name**, and **organization name** (and **Password** if using email registration). Review Authlete’s Privacy Policy and Terms of Service, then click **Register** to agree and complete your signup.

<Frame className="mx-auto" style={{ maxWidth: '25%' }}>
  <img src="https://storage.googleapis.com/authlete-website/resources/tutorial-getting-started-images/6.png" alt="User profile form with input fields for first name, last name, and organization name, with checkboxes to review Privacy Policy and Terms of Service, and a blue Register button" />
</Frame>

***

## 2. Create a Service

Immediately after signing up, you will be directed to the **Services** page. This page displays all services under your organization (which was created during the signup process).

A **Service** represents the backend of your Authorization Server. It contains all the configurations required to operate a production-grade authorization server, including OAuth/OIDC settings, token management, and security policies.

Click **Create Service** to add a new Authlete service to your organization.

<Frame className="mx-auto" style={{ maxWidth: '75%' }}>
  <img src="https://storage.googleapis.com/authlete-website/resources/tutorial-getting-started-images/104.png" alt="Services page showing a list of existing services under the organization with a blue Create Service button in the upper right" />
</Frame>

1. Select your preferred **API Cluster** location (e.g., `US`). All service data will be stored in this selected cluster. Choose the cluster based on your data residency and environment isolation requirements.
2. Enter a **Service Name** (e.g., `Sample Service`).
3. Click **Create** to complete the setup.

<Frame className="mx-auto" style={{ maxWidth: '75%' }}>
  <img src="https://storage.googleapis.com/authlete-website/resources/tutorial-getting-started-images/105.png" alt="Create service form with dropdown menu to select API cluster location such as US, input field for service name, and a blue Create button" />
</Frame>

Now you have completed to create a new Service.

***

## 3. Create a Service Access Token

You will need a **Service Access Token** to authenticate your Authlete API calls.

Click **Service Settings** for your newly created service.

<Frame className="mx-auto" style={{ maxWidth: '75%' }}>
  <img src="https://storage.googleapis.com/authlete-website/resources/tutorial-getting-started-images/106.png" alt="Service overview page with Service Settings option displayed for the newly created service" />
</Frame>

1. Note down the **Service Identifier** value (e.g., `3615784225`), which is required when making requests in many Authlete APIs.
2. Click **Create Token** to create a new Service Access Token.

<Frame className="mx-auto" style={{ maxWidth: '75%' }}>
  <img src="https://storage.googleapis.com/authlete-website/resources/tutorial-getting-started-images/107.png" alt="Service settings page displaying the Service Identifier value and a blue Create Token button to generate a new Service Access Token" />
</Frame>

1. Enter a **token Name** (e.g., `oauth-server-token`).
2. Specify the **Expiration Date**.
3. Select the appropriate **Permissions** (e.g., **Authorization Server** preset).
4. Click **Create Token**.

<Frame className="mx-auto" style={{ maxWidth: '75%' }}>
  <img src="https://storage.googleapis.com/authlete-website/resources/tutorial-getting-started-images/108.png" alt="Add a Service Access Token dialog showing Token Name field with oauth-server-token, Expiration Date field with date picker, Permission Presets section with Authorization Server option highlighted in orange, Custom Token Permissions checkboxes below, and a blue Create Token button at the bottom" />
</Frame>

The new Service Access Token will appear in the list.

1. Click the **Copy** or **Show** icon to retrieve the token value, as it is required for most Authlete API requests. Please note that this value is only displayed once upon creation.
2. Click **Back to Service Overview** to return to the main Service page.

<Frame className="mx-auto" style={{ maxWidth: '75%' }}>
  <img src="https://storage.googleapis.com/authlete-website/resources/tutorial-getting-started-images/109.png" alt="Service Access Token list showing the newly created token with Copy and Show buttons next to it, and a Back to Service Overview link to return to the main service page" />
</Frame>

*Now you are ready to test the Authlete API!*

***

## 4. Call the Authlete API

Let’s make your first API request to Authlete’s [/service/configuration](/api-reference/service-management/get-service-configuration) API, which acts as the backend for the OIDC discovery endpoint, generating OpenID provider metadata so that the endpoint can return in response to requests from clients (OIDC relying parties).

```mermaid placement="top-right" theme={null}

%%{init: {
  'themeVariables': {
    'fontSize': '20px',
    'nodeTextMargin': 40
  },
  'flowchart': {
    'nodeSpacing': 40,
    'rankSpacing': 40,
    'padding': 5
  }
}}%%

graph LR

client[OIDC RP]

subgraph as[OIDC IdP]
    direction TB
    disco[Discovery<br/>Endpoint]
end

subgraph authlete[Authlete]
    direction TB
    config["/service/configuration<br/>API"]
end

client -- Metadata<br/>Request --> disco
disco -- Service<br/>Configuration<br/>Request<br/> --> config
```

Below are examples using **curl** and the **API Explorer**. Please replace the placeholder values with your actual environment details.

| Item                     | Value                                         |
| :----------------------- | :-------------------------------------------- |
| **API Cluster Hostname** | `https://us.authlete.com`                     |
| **Service Access Token** | `qwEF2t8gxW9MerraRyVtscDTKVPa66kjBBPUpBduvXw` |
| **Service ID**           | `3615784225`                                  |

### Using curl

Run the following command in your terminal to send an HTTP GET request:

<CodeGroup>
  ```bash For Linux/MacOS theme={null}
  curl -X GET "https://us.authlete.com/api/3615784225/service/configuration" \
   -H "Authorization: Bearer qwEF2t8gxW9MerraRyVtscDTKVPa66kjBBPUpBduvXw"
  ```

  ```powershell For Windows theme={null}
  curl.exe -X GET "https://us.authlete.com/api/3615784225/service/configuration" `
   -H "Authorization: Bearer qwEF2t8gxW9MerraRyVtscDTKVPa66kjBBPUpBduvXw" | ConvertFrom-Json
  ```
</CodeGroup>

If successful, the API will return OpenID Provider Metadata similar to this:

```json theme={null}
{
  "issuer": "https://authlete.com",
    [...]
  "scopes_supported": [
    "address",
    "email",
    "openid",
    "offline_access",
    "phone",
    "profile",
    "grant_management_query",
    "grant_management_revoke"
  ],
  "response_types_supported": [
    "none",
    "code",
    "id_token",
    "code id_token"
  ],
[...]
}
```

### Using API Explorer

Open the [/service/configuration API reference page](/api-reference/service-management/get-service-configuration) and click the **Try it** button.

<Frame className="mx-auto" style={{ maxWidth: '75%' }}>
  <img src="https://storage.googleapis.com/authlete-website/resources/tutorial-getting-started-images/110.png" alt="API Explorer interface for the /service/configuration endpoint with Try it button ready to be clicked to test the API" />
</Frame>

1. Choose the **API Cluster Hostname**.
2. Enter the **Service Access Token**.
3. Enter the **Service ID**.
4. Click **Send**.

<Frame className="mx-auto" style={{ maxWidth: '75%' }}>
  <img src="https://storage.googleapis.com/authlete-website/resources/tutorial-getting-started-images/111.png" alt="API Explorer form with input fields for Service ID and Service Access Token, and a blue Send button to execute the API request" />
</Frame>

The API response will be displayed in the Response section.

<Frame className="mx-auto" style={{ maxWidth: '75%' }}>
  <img src="https://storage.googleapis.com/authlete-website/resources/tutorial-getting-started-images/112.png" alt="API response displayed in the Response section of the API Explorer showing JSON data with service configuration details including issuer, supported scopes, and response types" />
</Frame>

***

## Next Steps

Now that your Authlete account is set up and your service is configured, it's time to explore further:

* [**OAuth 2.0 Basics - API Tutorials**](/get-started/quickstarts/oauth-2-0-basics): Learn how Authlete works under the hood by calling the APIs directly using curl and other tools.
* [**Using Demo Authorization Server**](/get-started/quickstarts/using-demo-authorization-server): Deploy an open-source authorization server frontend that integrates with Authlete APIs to test live OAuth/OIDC flows.

***

## Extra: OAuth/OIDC Processing

Let's explore Authlete's OAuth/OIDC protocol processing by testing a sample authorization request.

### Create a Client

A **Client** represents an application that interacts with the Authorization Server to request tokens, or with the Resource Server to access protected resources. Clients are managed within the context of a specific Authlete Service.

On the Service page, click the **Create Client** button at the top-right of the screen.

<Frame className="mx-auto" style={{ maxWidth: '75%' }}>
  <img src="https://storage.googleapis.com/authlete-website/resources/tutorial-getting-started-images/113.png" alt="Service page with Create Client button located in the upper-right corner of the screen ready to be clicked" />
</Frame>

Enter a **Client Name** and click **Create**.

<Frame className="mx-auto" style={{ maxWidth: '75%' }}>
  <img src="https://storage.googleapis.com/authlete-website/resources/tutorial-getting-started-images/114.png" alt="Create client dialog form with input field for Client Name and a blue Create button to add the new client" />
</Frame>

Once created, the client details will be displayed. Make a note of the **Client ID** and **Client Secret** if needed. In the **Redirect URIs** section, click **Add** to register your application's redirect URIs.

<Frame className="mx-auto" style={{ maxWidth: '75%' }}>
  <img src="https://storage.googleapis.com/authlete-website/resources/tutorial-getting-started-images/115.png" alt="Client details page showing Client ID and Client Secret values, with a Redirect URIs section and an Add button to register application redirect URIs" />
</Frame>

For example, enter `https://client.example.org/cb/example.com` and click **Save Changes**.

<Frame className="mx-auto" style={{ maxWidth: '75%' }}>
  <img src="https://storage.googleapis.com/authlete-website/resources/tutorial-getting-started-images/116.png" alt="Redirect URI input form with example value https://client.example.org/cb/example.com and a blue Save Changes button to confirm the entry" />
</Frame>

### Call "Process Authorization Request" API

Navigate to the [Try /auth/authorization API](/api-reference/authorization-endpoint/process-authorization-request?playground=open) tool.

1. Choose the **API Cluster Hostname**.
2. Enter the **Service Access Token**.
3. Enter the **Service ID**.
4. Enter the authorization request content below into the **parameters** field. Please note that you must replace the example `client_id` value (`2329821874`) with the one you created in the previous step.
5. Click **Send**.

| Parameter      | Value                                                                                            |
| :------------- | ------------------------------------------------------------------------------------------------ |
| **parameters** | `redirect_uri=https://client.example.org/cb/example.com&client_id=2329821874&response_type=code` |

<Frame className="mx-auto" style={{ maxWidth: '75%' }}>
  <img src="https://storage.googleapis.com/authlete-website/resources/tutorial-getting-started-images/119.png" alt="API Explorer showing the /auth/authorization endpoint with parameters entered" />
</Frame>

You will see the API response in the Response section.

<Frame className="mx-auto" style={{ maxWidth: '75%' }}>
  <img src="https://storage.googleapis.com/authlete-website/resources/tutorial-getting-started-images/120.png" alt="API Explorer showing the /auth/authorization endpoint with parameters entered and the JSON response displayed in the Response section showing authorization request results" />
</Frame>
