List projects

Fetch all projects available to the authenticated API key.

This endpoint is useful for:

  • showing projects in a dashboard UI

  • allowing users select a project to manage domains, licenses, or injectables

  • fetching project metadata like webhook URL, redirect URL, and payment state (has_paid)

Endpoint

GET /projects

Full URL:

https://api.devpayr.dev/api/v1/projects

Authentication

βœ… Required: API Key Send your API key using:

X-API-KEY: <your_api_key>

Access rules

  • If your API key is global (not scoped to a specific project), DevPayr returns all projects owned by the API key’s user.

  • If your API key is project-scoped, DevPayr returns only the scoped project.

This endpoint does not accept license authentication.

Query Parameters

Parameter
Type
Required
Description

per_page

integer

No

Number of records per request. Default is 50. Maximum is 50.

cursor

string

No

Cursor token for pagination (from next_cursor).

Notes on pagination

DevPayr uses cursor pagination for listing projects.

  • The response includes next_cursor.

  • If next_cursor is null, there are no more pages.

  • To fetch the next page, pass the cursor back:

Example Request

Next page example

Response

Success (200)

DevPayr returns a standard response envelope:

  • status β†’ success indicator

  • message β†’ usually "Success"

  • data.data β†’ array of projects

  • data.next_cursor β†’ cursor token for the next page (or null)

  • errors β†’ null on success

Example Response

Project Object

Each project in the list includes:

Field
Type
Description

id

integer

Project ID

name

string

Project name

slug

string

URL-friendly identifier

description

string | null

Optional description

default_redirect_url

string | null

Optional redirect destination for blocked/expired licenses

logo_url

string | null

Optional project logo URL

webhook_url

string | null

Optional webhook destination

meta

object/array

Metadata payload (freeform)

is_active

boolean

Whether the project is active

has_paid

boolean

Project payment flag (used in payment enforcement)

locked_at

string | null

If present, the project is locked

created_at

string

ISO timestamp

updated_at

string

ISO timestamp

Some internal fields are intentionally hidden (such as user_id, license_key_id, and deleted_at).

Caching Behavior

This endpoint caches the response per API key + query parameters.

  • Cache TTL: 30 minutes

  • Cache key includes the API key and the query string values (per_page, cursor, etc.)

This helps DevPayr respond quickly for repeated dashboard loads.

Errors

Missing API Key (401)

Invalid / Expired API Key (403)

Rate Limited (429)

Best Practices

  • Use per_page=50 for the most efficient requests (maximum allowed).

  • Always check data.next_cursor before requesting the next page.

  • If you’re building a dashboard, you can safely rely on caching to reduce repeated calls.

Last updated