Getting Started
The ZenML OSS server is a FastAPI application, therefore the OpenAPI-compliant docs are available at /docs
or /redoc
of your ZenML server:


Accessing the ZenML OSS API
For OSS users: The server_url
is the root URL of your ZenML server deployment.
If you are using the ZenML OSS server API using the methods displayed above, it is enough to be logged in to your ZenML account in the same browser session. However, in order to do this programmatically, you can use one of the methods documented in the following sections.
Using a short-lived API token
You can generate a short-lived (1 hour) API token from your ZenML dashboard. This is useful when you need a fast way to make authenticated HTTP requests to the ZenML API endpoints and you don't need a long-term solution.
Generate a short-lived API token through the API Tokens page under your ZenML dashboard server settings, as documented in the Using an API token guide.
Use the API token as the bearer token in your HTTP requests. For example, you can use the following command to check your current user:
using
curl
:curl -H "Authorization: Bearer YOUR_API_TOKEN" https://your-zenml-server/api/v1/current-user
using
wget
:wget -qO- --header="Authorization: Bearer YOUR_API_TOKEN" https://your-zenml-server/api/v1/current-user
using Python:
import requests response = requests.get( "https://your-zenml-server/api/v1/current-user", headers={"Authorization": f"Bearer YOUR_API_TOKEN"} ) print(response.json())
Using a service account and an API key
You can use a service account's API key to obtain short-lived API tokens for programmatic access to the ZenML server's REST API. This is particularly useful when you need a long-term, secure way to make authenticated HTTP requests to the ZenML API endpoints.
Create a service account:
zenml service-account create myserviceaccount
This will print out the <ZENML_API_KEY>
, you can use in the next steps.
To obtain an API token using your API key, send a POST request to the
/api/v1/login
endpoint. Here are examples using common HTTP clients:using curl:
curl -X POST -d "password=<YOUR_API_KEY>" https://your-zenml-server/api/v1/login
using wget:
wget -qO- --post-data="password=<YOUR_API_KEY>" \ --header="Content-Type: application/x-www-form-urlencoded" \ https://your-zenml-server/api/v1/login
using python:
import requests import json response = requests.post( "https://your-zenml-server/api/v1/login", data={"password": "<YOUR_API_KEY>"}, headers={"Content-Type": "application/x-www-form-urlencoded"} ) print(response.json())
This will return a response like this:
{
"access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiI3MGJjZTg5NC1hN2VjLTRkOTYtYjE1Ny1kOTZkYWY5ZWM2M2IiLCJpc3MiOiJmMGQ5NjI1Ni04YmQyLTQxZDctOWVjZi0xMmYwM2JmYTVlMTYiLCJhdWQiOiJmMGQ5NjI1Ni04YmQyLTQxZDctOWVjZi0xMmYwM2JmYTVlMTYiLCJleHAiOjE3MTk0MDk0NjAsImFwaV9rZXlfaWQiOiIzNDkyM2U0NS0zMGFlLTRkMjctODZiZS0wZGRhNTdkMjA5MDcifQ.ByB1ngCPtBenGE6UugsWC6Blga3qPqkAiPJUSFDR-u4",
"token_type": "bearer",
"expires_in": 3600,
"refresh_token": null,
"scope": null
}
Once you have obtained an API token, you can use it to authenticate your API requests by including it in the
Authorization
header. For example, you can use the following command to check your current user:using curl:
curl -H "Authorization: Bearer YOUR_API_TOKEN" https://your-zenml-server/api/v1/current-user
using wget:
wget -qO- --header="Authorization: Bearer YOUR_API_TOKEN" https://your-zenml-server/api/v1/current-user
using python:
import requests response = requests.get( "https://your-zenml-server/api/v1/current-user", headers={"Authorization": f"Bearer {YOUR_API_TOKEN}"} ) print(response.json())
Last updated
Was this helpful?