Projects API
Projects in QRForge provide a way to organize QR codes into logical workspaces within a single account.
They help teams structure their QR code assets by campaigns, clients, departments, or use cases.
The Projects API enables you to list, create, and retrieve project resources associated with your account.
Base Path
All Project API endpoints are prefixed with:
/v1/projects
Example:
GET https://api.qrforge.link/v1/projects
Object: Project
A project resource has the following shape:
{
"id": "sGzjb6FdGCWBP8focJ6T",
"name": "API Project Bravo",
"description": "Second test project created via API.",
"is_default": false,
"has_custom_domain": false,
"created_via": "api",
"created_at": "2025-11-19T14:45:29.750Z",
"updated_at": "2025-11-19T14:45:29.750Z"
}
Fields:
| Field | Type | Description |
|---|---|---|
id | string | Unique project identifier |
name | string | Project display name |
description | string (optional) | Optional project description |
is_default | boolean | Indicates whether this is the user's default project |
has_custom_domain | boolean | Whether this project currently uses a custom domain |
created_via | string | Source of creation ("api" or "dashboard") |
created_at | timestamp | ISO‑8601 creation time |
updated_at | timestamp | ISO‑8601 last update time |
List Projects
Retrieve all projects associated with the authenticated workspace.
GET /v1/projects
Example — cURL
curl -X GET "https://api.qrforge.link/v1/projects" \
-H "Authorization: Bearer api_live_xxxxxxxxxxxxxxxxxxxxx"
Example — Response
{
"success": true,
"data": [
{
"id": "sGzjb6FdGCWBP8focJ6T",
"name": "API Project Bravo",
"description": "Second test project created via API.",
"is_default": false,
"has_custom_domain": false,
"created_via": "api",
"created_at": "2025-11-19T14:45:29.750Z",
"updated_at": "2025-11-19T14:45:29.750Z"
},
{
"id": "NDcK35kvVopZCn26gTm3",
"name": "Default Project",
"description": "This is your initial workspace. You can rename or organize your QR codes here.",
"is_default": true,
"has_custom_domain": false,
"created_via": null,
"created_at": "2025-07-27T12:34:14.438Z",
"updated_at": "2025-07-27T12:34:14.438Z"
}
]
}
Create a Project
Create a new project in your workspace.
POST /v1/projects
Content-Type: application/json
Body
{
"name": "Client A",
"description": "QR codes for Client A marketing materials"
}
Example — cURL
curl -X POST "https://api.qrforge.link/v1/projects" \
-H "Authorization: Bearer api_live_xxxxxxxxxxxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"name": "Client A",
"description": "QR codes for Client A marketing materials"
}'
Example — Response
{
"success": true,
"data": {
"id": "sGzjb6FdGCWBP8focJ6T",
"name": "API Project Bravo",
"description": "Second test project created via API.",
"is_default": false,
"has_custom_domain": false,
"created_via": "api",
"created_at": "2025-11-19T14:45:29.750Z",
"updated_at": "2025-11-19T14:45:29.750Z"
}
}
Notes & Best Practices
- A project typically corresponds to a client, campaign, or team.
- We recommend keeping project names short and descriptive.
- All QR code creation endpoints require a
project_id(optional if you allow “default project” behavior). - Projects do not support status changes; only QR codes have active/archived lifecycle.
You can now continue to the next section: QR Codes API.