---
title: Dokploy API
description: How to interact with the dokploy API for administrators and users
---

In some cases, you may need to interact directly with the dokploy API. Here's how both administrators and users can do this.

## For Administrators

1. Access the Swagger UI by navigating to `your-vps-ip:3000/swagger`.
2. Use the Swagger interface to interact with the API.
3. By default, access to the Swagger UI is restricted, and only authenticated administrators can access the API.

## For Users

1. By default, users do not have direct access to the API.
2. Administrators can grant users access to:
   - Generate access tokens
   - Access the Swagger UI
3. If you need access, contact your administrator.

Note: The API provides advanced functionalities. Make sure you understand the operations you're performing to avoid unintended changes to the system.

## Usage

By default the OpenApi base url is `http://localhost:3000/api`, you need to replace with the ip of your dokploy instance or the domain name.

### Authentication

The API uses JWT tokens for authentication. You can generate a token by going to the `/settings/profile` page and go to API/CLI Section and generate the token.

Let's take a example of authenticated request:
```bash
curl -X 'GET' \
  'https://dokploy.com/api/project.all' \
  -H 'accept: application/json'
  -H 'Authorization: Bearer YOUR-TOKEN'
```
then you will get the something like this:

```json
[
  {
    "projectId": "klZKsyw5g-QT_jrWJ5T-w",
    "name": "Random",
    "description": "",
    "createdAt": "2024-06-19T15:05:58.785Z",
    "adminId": "_WrKZbs7iJAA3p4N2Yfyu",
    "applications": [],
    "mariadb": [],
    "mongo": [],
    "mysql": [
      {
        "mysqlId": "N3cudwO46TiDXzBm4SaQ1",
        "name": "mysql",
        "appName": "random-mysql-924715",
        "description": "",
        "databaseName": "mysql",
        "databaseUser": "mysql",
        "databasePassword": "h13BzO6y3KYSHaQg",
        "databaseRootPassword": "mM1b7JeoPA7jArxj",
        "dockerImage": "mysql:8",
        "command": null,
        "env": null,
        "memoryReservation": null,
        "memoryLimit": null,
        "cpuReservation": null,
        "cpuLimit": null,
        "externalPort": null,
        "applicationStatus": "done",
        "createdAt": "2024-06-24T01:55:40.378Z",
        "projectId": "klZKsyw5g-QT_jrWJ5T-w"
      }
    ],
    "postgres": [],
    "redis": [
      {
        "redisId": "TtFK5S4QFaIjaNGOb8Ku-",
        "name": "redis",
        "appName": "random-redis-7eec62",
        "description": "",
        "databasePassword": "Yvb8gqClfomjcue8",
        "dockerImage": "redis:7",
        "command": null,
        "env": null,
        "memoryReservation": null,
        "memoryLimit": null,
        "cpuReservation": null,
        "cpuLimit": null,
        "externalPort": 6379,
        "createdAt": "2024-06-26T06:43:20.570Z",
        "applicationStatus": "done",
        "projectId": "klZKsyw5g-QT_jrWJ5T-w"
      }
    ],
    "compose": []
  },
]
```