Support article
API and Integrations
Finalizo provides a REST API and Zapier-compatible endpoints so you can connect project closeout work to your CRM, project management tool, or interna...
Overview
Finalizo provides a REST API and Zapier-compatible endpoints so you can connect project closeout work to your CRM, project management tool, or internal systems.
Full REST API access is available on the Agency plan. Zapier setup is available on Pro and Agency and uses the same scoped API key system for Zapier endpoints.
API key setup
- Open Settings inside Finalizo.
- Go to the Security section.
- Create a dedicated API key.
- Copy the token immediately. Finalizo only shows it once.
- Test it with
GET /api/v1/authbefore wiring production automations.
If you use Postman, Insomnia, or a generated SDK, import the live OpenAPI document:
https://finalizo.com/api/v1/openapi.jsonUse the narrowest scope possible:
read: list and inspect projects, clients, packs, templates, and sign-offs.write: create projects and send packs.admin: reserved for broader internal workflows.
Base URL
https://finalizo.com/api/v1Every request must include:
Authorization: Bearer fz_live_your_key_hereResponse format
Most API responses use:
{
"data": {},
"meta": {
"request_id": "req_abc123",
"timestamp": "2026-05-27T12:00:00.000Z"
},
"error": null
}Validation, authentication, plan, and rate-limit failures return data: null with an error object.
Core endpoints
Authentication
GET /auth
GET /meClients
GET /clients
POST /clients
GET /clients/:idProjects
GET /projects
POST /projects
GET /projects/:id
PATCH /projects/:idProject creation accepts either an existing clientId or a new clientName and clientEmail.
{
"name": "Website closeout",
"clientName": "Jane Smith",
"clientEmail": "jane@example.com",
"projectType": "Web Design",
"launchDate": "2026-06-01"
}For an existing client profile, send clientId instead of clientName and clientEmail.
Handover packs
GET /projects/:id/pack
POST /projects/:id/pack/sendCredentials returned by the pack endpoint are masked. Password reveal is not exposed through the public API.
Sign-offs
GET /projects/:id/signoff
GET /signoffsTemplates
GET /templatesZapier endpoints
Zapier actions:
POST /zapier/actions/create-project
POST /zapier/actions/send-packZapier actions use snake_case fields:
{
"project_name": "Website closeout",
"client_name": "Jane Smith",
"client_email": "jane@example.com",
"project_type": "Web Design",
"launch_date": "2026-06-01"
}{
"project_id": "project_abc123",
"personal_message": "The handover pack is ready for review."
}Zapier polling triggers:
GET /zapier/triggers/pack-sent
GET /zapier/triggers/pack-viewed
GET /zapier/triggers/client-signed-offCommon checks
- If
GET /authreturnsPLAN_LIMIT, the workspace is not on an API-enabled plan. - If a write request returns
FORBIDDEN, the key needswriteoradminscope. - If project creation creates a duplicate client, check that the client email matches the saved client profile. Finalizo normalizes email case, but different aliases are treated as different clients.
- Save the
X-Request-IDresponse header when asking support to investigate an API issue.
Still need help?
Send the project name, client email, and what you expected to happen. We will help you get unstuck.
Contact support