Projects
A project is the unit of work on Frontend — a codebase with its own files, git history, environment, and (optionally) a database. Projects belong to a team; a team API key can act on any of the team’s projects.
List projects
Section titled “List projects”GET /api/v1/projectsReturns the team’s projects, newest first. Pass ?q= to search by handle or title.
curl "https://www.frontend.co/api/v1/projects?q=store" \ -H "Authorization: Bearer $FRONTEND_API_KEY"{ "projects": [ { "id": "…", "handle": "my-store", "title": "My Store", "framework": "next", "published": true, "created_at": "…", "updated_at": "…" }] }await client.projects.list()await client.projects.list({ query: 'store' })Get a project
Section titled “Get a project”GET /api/v1/projects/{id}Returns { project } including version, published, and last_deployed_at.
await client.projects.get(projectId)Create a project
Section titled “Create a project”POST /api/v1/projectsBody: title (required). Optionally seed from a source (git, zip, files, or template) and attach Shopify credentials.
curl -X POST https://www.frontend.co/api/v1/projects \ -H "Authorization: Bearer $FRONTEND_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "title": "My Store" }'await client.projects.create({ title: 'My Store' })Returns { project } with 201.
Delete a project
Section titled “Delete a project”DELETE /api/v1/projects/{id}Permanently deletes the project. Returns { deleted: id }.
await client.projects.delete(projectId)Publish & unpublish
Section titled “Publish & unpublish”POST /api/v1/projects/{id}/publish → { published: true, handle }POST /api/v1/projects/{id}/unpublish → { published: false }Publishing makes the project reachable at its public handle URL. To build and ship to production, see Deploys.
await client.projects.publish(projectId)await client.projects.unpublish(projectId)POST /api/v1/projects/{id}/lintRuns prettier + build validation across the project and returns { success, totalFiles, errors }.
const { success, errors } = await client.projects.lint(projectId)