API Token Generator

The API Token Generator provides a non-rotating refresh token for the shared public demo Client ID. It is intended only for evaluation and prototyping and must not be used for production integrations.

It 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 bound to that account and to the shared public demo Client ID used throughout this documentation.

The idea: your application keeps the refresh token as a secret credential — treat it like a password. It is an API-key-like shortcut for evaluation only; it is not an API key and behaves as a standard OAuth refresh token in every other respect. Your application exchanges it for a short-lived access token (a JWT, valid for about one hour) whenever it needs to call the API.

Not for production. The demo Client ID may be changed at any time without prior notice, and everything your application does with it happens on behalf of the ezeep account you signed in with. For production, create a dedicated OAuth client for your application 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.