# List apps

> For the complete documentation index, see [llms.txt](/docs/llms.txt).

GET https://admin-api.alchemy.com/v1/apps

Retrieves a paginated list of all applications associated with your account. Each app includes its API keys, configured chain networks with RPC endpoints, and creation timestamp.

Reference: https://www.alchemy.com/docs/tutorials/tools/admin-api/admin-api-endpoints/list-apps

## Headers

| Name | Type | Required | Description |
|------|------|----------|-------------|
| Authorization | string | Yes | Bearer authentication token |

## Query Parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| cursor | string | No | Opaque cursor for fetching the next page |
| limit | integer | No | Maximum number of apps to return per page (default: 25, max: 25) |

## Code Examples

### cURL

```bash
curl --request GET \
  --url https://admin-api.alchemy.com/v1/apps \
  --header 'Authorization: Bearer <token>'
```

### JavaScript

```javascript
const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};

fetch('https://admin-api.alchemy.com/v1/apps', options)
  .then(res => res.json())
  .then(res => console.log(res))
  .catch(err => console.error(err));
```

### Python

```python
import requests

url = "https://admin-api.alchemy.com/v1/apps"

headers = {"Authorization": "Bearer <token>"}

response = requests.get(url, headers=headers)

print(response.text)
```

### Go

```go
package main

import (
	"fmt"
	"net/http"
	"io"
)

func main() {

	url := "https://admin-api.alchemy.com/v1/apps"

	req, _ := http.NewRequest("GET", url, nil)

	req.Header.Add("Authorization", "Bearer <token>")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(string(body))

}
```

### Java

```java
HttpResponse<String> response = Unirest.get("https://admin-api.alchemy.com/v1/apps")
  .header("Authorization", "Bearer <token>")
  .asString();
```

### C#

```csharp
using RestSharp;


var options = new RestClientOptions("https://admin-api.alchemy.com/v1/apps");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddHeader("Authorization", "Bearer <token>");
var response = await client.GetAsync(request);

Console.WriteLine("{0}", response.Content);

```


## Operation Specification

```yaml
path: /v1/apps
method: GET
operation:
  operationId: ListApps
  responses:
    '200':
      description: Retrieved apps successfully
      content:
        application/json:
          schema:
            description: |-
              Standard API response wrapper.
              All API responses are wrapped in this format for consistency.
            properties:
              data:
                properties:
                  apps:
                    items:
                      properties:
                        id:
                          type: string
                          description: App ID
                        name:
                          type: string
                          description: Display name
                        description:
                          type: string
                          description: Description
                        apiKey:
                          type: string
                          description: API key to access chain network
                        webhookApiKey:
                          type: string
                          description: API key used to access webhook's management API
                        chainNetworks:
                          items:
                            properties:
                              name:
                                type: string
                                description: Display name
                              id:
                                type: string
                                description: Alchemy chain network id in the form of `{chain}_{network}` (e.g. `ETH_MAINNET`)
                              networkChainId:
                                type: string
                                nullable: true
                                description: EIP-155 network chain id when available. Null for non-EVM chains.
                              rpcUrl:
                                type: string
                                description: HTTPS RPC endpoint
                              wsUrl:
                                type: string
                                description: WebSocket endpoint
                              grpcUrl:
                                type: string
                                description: gRPC endpoint (when available, e.g. Solana)
                            required:
                              - name
                              - id
                              - rpcUrl
                            type: object
                            additionalProperties: false
                          type: array
                          description: Networks configured for this app
                        createdAt:
                          type: string
                          description: Creation timestamp (ISO 8601)
                      required:
                        - id
                        - name
                        - apiKey
                        - webhookApiKey
                        - chainNetworks
                        - createdAt
                      type: object
                      additionalProperties: false
                    type: array
                    description: List of apps for the current page
                  totalCount:
                    type: integer
                    format: int32
                    description: Total number of apps matching the query
                  cursor:
                    type: string
                    description: |-
                      Opaque cursor for fetching the next page.
                      Only present if more results exist.
                required:
                  - apps
                  - totalCount
                type: object
                additionalProperties: false
            required:
              - data
            type: object
            additionalProperties: false
    '400':
      description: Invalid input
      content:
        application/json:
          schema:
            description: |-
              Standard error response wrapper.
              All error responses are wrapped in this format for consistency.
            properties:
              error:
                properties:
                  message:
                    type: string
                  code:
                    anyOf:
                      - type: integer
                        format: int32
                      - enum:
                          - 500
                          - 400
                          - 401
                          - 403
                          - 404
                          - 200
                          - 201
                          - 1000
                        type: number
                  status:
                    type: integer
                    format: int32
                  context:
                    description: Additional information about the error specific to the endpoint.
                    properties: {}
                    type: object
                    additionalProperties: {}
                required:
                  - message
                  - code
                  - status
                type: object
                additionalProperties: false
            required:
              - error
            type: object
            additionalProperties: false
          examples:
            Example 1:
              value:
                error:
                  code: 400
                  status: 400
                  message: limit must be a positive integer between 1 and 25
    '401':
      description: Requires authentication
      content:
        application/json:
          schema:
            description: |-
              Standard error response wrapper.
              All error responses are wrapped in this format for consistency.
            properties:
              error:
                properties:
                  message:
                    type: string
                  code:
                    anyOf:
                      - type: integer
                        format: int32
                      - enum:
                          - 500
                          - 400
                          - 401
                          - 403
                          - 404
                          - 200
                          - 201
                          - 1000
                        type: number
                  status:
                    type: integer
                    format: int32
                  context:
                    description: Additional information about the error specific to the endpoint.
                    properties: {}
                    type: object
                    additionalProperties: {}
                required:
                  - message
                  - code
                  - status
                type: object
                additionalProperties: false
            required:
              - error
            type: object
            additionalProperties: false
          examples:
            Example 1:
              value:
                error:
                  code: 401
                  status: 401
                  message: Requires authentication
    '403':
      description: Forbidden
      content:
        application/json:
          schema:
            description: |-
              Standard error response wrapper.
              All error responses are wrapped in this format for consistency.
            properties:
              error:
                properties:
                  message:
                    type: string
                  code:
                    anyOf:
                      - type: integer
                        format: int32
                      - enum:
                          - 500
                          - 400
                          - 401
                          - 403
                          - 404
                          - 200
                          - 201
                          - 1000
                        type: number
                  status:
                    type: integer
                    format: int32
                  context:
                    description: Additional information about the error specific to the endpoint.
                    properties: {}
                    type: object
                    additionalProperties: {}
                required:
                  - message
                  - code
                  - status
                type: object
                additionalProperties: false
            required:
              - error
            type: object
            additionalProperties: false
          examples:
            Example 1:
              value:
                error:
                  code: 403
                  status: 403
                  message: Forbidden
  description: Retrieves a paginated list of all applications associated with your account. Each app includes its API keys, configured chain networks with RPC endpoints, and creation timestamp.
  summary: List apps
  security:
    - api_key:
        - ADMIN_APPS_READ
        - ADMIN_APPS_READ_WRITE
    - user_auth:
        - developer
        - admin
  parameters:
    - description: Opaque cursor for fetching the next page
      in: query
      name: cursor
      required: false
      schema:
        type: string
    - description: 'Maximum number of apps to return per page (default: 25, max: 25)'
      in: query
      name: limit
      required: false
      schema:
        format: int32
        type: integer
```
