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/projectsAuthentication
β 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
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_cursorisnull, 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 indicatormessageβ usually"Success"data.dataβ array of projectsdata.next_cursorβ cursor token for the next page (ornull)errorsβnullon success
Example Response
Project Object
Each project in the list includes:
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, anddeleted_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=50for the most efficient requests (maximum allowed).Always check
data.next_cursorbefore requesting the next page.If youβre building a dashboard, you can safely rely on caching to reduce repeated calls.
Last updated