Skip to main content

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:

FieldTypeDescription
idstringUnique project identifier
namestringProject display name
descriptionstring (optional)Optional project description
is_defaultbooleanIndicates whether this is the user's default project
has_custom_domainbooleanWhether this project currently uses a custom domain
created_viastringSource of creation ("api" or "dashboard")
created_attimestampISO‑8601 creation time
updated_attimestampISO‑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.