API Token Generator

The API Token Generator is the fastest way to get working credentials for trying out the ezeep API — no OAuth implementation required. It is a small web app that signs you in with your ezeep account and hands you a refresh token for the public demo Client ID used throughout this documentation.

The idea: your application keeps the refresh token as a secret credential (like a password) and exchanges it for a short-lived access token (a JWT, valid for about one hour) whenever it needs to call the API.

Note: The demo Client ID is meant for evaluation and prototyping only. It must not be used in production code and may be changed at any time without prior notice. For production use, request your own Client ID via the API Contact Form — see Obtaining a ClientID for your Application.

Generate a Refresh Token

  1. Open https://app.ezeep.com/api-token-generator/.
  2. Click Sign in & authorize and complete the ezeep login in the new tab. (Under the hood the generator uses the Pairing Code Grant.)
  3. Return to the generator tab. It detects the completed authorization automatically and displays the Client ID and your refresh token, together with a ready-to-use curl command for the next step.

The refresh token is issued for the demo Client ID yjavNwKpd4HgbQes0ekYHBGjxIoszJgayIc0JkdB with scope printing and is tied to the ezeep account you signed in with: everything your application does with it happens on behalf of that account.

Refresh token rotation is switched off for the demo Client ID. The refresh token stays valid until it is revoked, and the same token can be exchanged for new access tokens any number of times. Your application can ignore the refresh_token field returned by the exchange — the stored token keeps working. (See Refresh Token Rotation Explained for how this differs from clients with rotation enabled.)

Use the Refresh Token to Get an Access Token

Whenever your application needs to call the API, it exchanges the stored refresh token for an access token using grant_type=refresh_token (the Basic authorization header value is the base64-encoded demo Client ID — see ClientID/Secret Encoding):

curl -X POST "https://account.ezeep.com/oauth/access_token/" \
     --header "Authorization: Basic eWphdk53S3BkNEhnYlFlczBla1lIQkdqeElvc3pKZ2F5SWMwSmtkQjo=" \
     --header "Content-Type: application/x-www-form-urlencoded" \
     --data "grant_type=refresh_token" \
     --data "scope=printing" \
     --data-urlencode "refresh_token=<your refresh token>"

Example Response

{
  "access_token": "eyJ0eXAiOiJ...",
  "token_type": "Bearer",
  "expires_in": 3600,
  "scope": "printing",
  "refresh_token": "qX5HTLt4..."
}

The access_token is a JWT valid for expires_in seconds (one hour). Send it with every API request in the Authorization header:

curl --header "Authorization: Bearer <access_token>" "https://api.ezeep.com/..."

It is bad practice to request a new access token for every API call — reuse the access token until it expires. See the Printing Quick Guide for a complete first API workflow.

Keep the Refresh Token Secret

  • Anyone who has the refresh token can use the API on behalf of your ezeep account — treat it like a password.
  • Store it in an environment variable or secret store; never embed it in client-side code or commit it to a repository.
  • If the token is exposed or no longer needed, invalidate it via Token Revocation.