List projects
GET /projects Projects and tasks: read
Example
curl https://app.msmepulse.com/api/v1/projects \
-H "Authorization: Bearer $MSMEPULSE_TOKEN"
Response 200
| Field | Type | Notes |
|---|---|---|
projects | array of object | |
projects[].id | string | |
projects[].name | string | |
projects[].code | string or null | |
projects[].clientId | string or null | |
projects[].clientName | string or null | |
projects[].billingType | string | |
projects[].status | string | |
projects[].startDate | string or null | |
projects[].endDate | string or null | |
projects[].currency | string | |
projects[].managerId | string or null | |
projects[].managerName | string or null | |
projects[].tasksTotal | number | |
projects[].tasksDone | number | |
projects[].tasksOverdue | number | |
projects[].archived | boolean |
Create a project (optionally from a template)
POST /projects Projects and tasks: read and write
Request body
| Field | Type | Required | Notes |
|---|---|---|---|
name | string | Yes | 2–120 characters |
code | string | up to 20 characters | |
clientId | string or null | ||
billingType | "time_and_materials" | "fixed_price" | "retainer" | "non_billable" | default "time_and_materials" | |
status | "planning" | "active" | "on_hold" | "completed" | "cancelled" | default "active" | |
startDate | "" or string or null | ||
endDate | "" or string or null | ||
budgetHours | number or null | 0 to 1000000 | |
budgetAmount | integer or null | 0 to … | |
currency | "INR" | "SGD" | "USD" | "EUR" | "GBP" | "AED" | "AUD" | "MYR" | "CAD" | "CHF" | "HKD" | "NZD" | ||
managerId | string or null | ||
memberIds | array of string | at most 200 items | |
description | string | up to 5000 characters |
Example
curl -X POST https://app.msmepulse.com/api/v1/projects \
-H "Authorization: Bearer $MSMEPULSE_TOKEN" \
-H "Content-Type: application/json" \
-d '{"name":"Nova Retail Pvt Ltd"}'
Response 201
| Field | Type | Notes |
|---|---|---|
id | string | The new record's id |
Get a project, with milestones and budget
GET /projects/{id} Projects and tasks: read
id
Example
curl https://app.msmepulse.com/api/v1/projects/{id} \
-H "Authorization: Bearer $MSMEPULSE_TOKEN"
Answers 200 with the same data the MSMEPulse web app shows for it.
Update a project
PATCH /projects/{id} Projects and tasks: read and write
id
Request body
Send only the fields to change.
| Field | Type | Required | Notes |
|---|---|---|---|
name | string | 2–120 characters | |
code | string | up to 20 characters | |
clientId | string or null | ||
billingType | "time_and_materials" | "fixed_price" | "retainer" | "non_billable" | default "time_and_materials" | |
status | "planning" | "active" | "on_hold" | "completed" | "cancelled" | default "active" | |
startDate | "" or string or null | ||
endDate | "" or string or null | ||
budgetHours | number or null | 0 to 1000000 | |
budgetAmount | integer or null | 0 to … | |
currency | "INR" | "SGD" | "USD" | "EUR" | "GBP" | "AED" | "AUD" | "MYR" | "CAD" | "CHF" | "HKD" | "NZD" | ||
managerId | string or null | ||
memberIds | array of string | at most 200 items | |
description | string | up to 5000 characters |
Example
curl -X PATCH https://app.msmepulse.com/api/v1/projects/{id} \
-H "Authorization: Bearer $MSMEPULSE_TOKEN" \
-H "Content-Type: application/json" \
-d '{"name":"Nova Retail Pvt Ltd","code":"code value","clientId":"65f0c2a1b4e8d9f0a1b2c3d4"}'
Answers 200 with the same data the MSMEPulse web app shows for it.
Set a project's board columns
PUT /projects/{id}/columns Projects and tasks: read and write
id
Request body
| Field | Type | Required | Notes |
|---|---|---|---|
columns | array of object | Yes | at most 12 items |
columns[].key | string | Yes | 1–40 characters |
columns[].name | string | Yes | 1–40 characters |
columns[].done | boolean | Yes |
Example
curl -X PUT https://app.msmepulse.com/api/v1/projects/{id}/columns \
-H "Authorization: Bearer $MSMEPULSE_TOKEN" \
-H "Content-Type: application/json" \
-d '{"columns":[{"key":"key value","name":"Nova Retail Pvt Ltd","done":false}]}'
Answers 200 with the same data the MSMEPulse web app shows for it.
Archive or restore a project
POST /projects/{id}/{action} Projects and tasks: read and write
id · action: archive or restore
Example
curl -X POST https://app.msmepulse.com/api/v1/projects/{id}/archive \
-H "Authorization: Bearer $MSMEPULSE_TOKEN"
Answers 200 with the same data the MSMEPulse web app shows for it.
Add a milestone
POST /projects/{id}/milestones Projects and tasks: read and write
id
Request body
| Field | Type | Required | Notes |
|---|---|---|---|
name | string | Yes | 2–120 characters |
dueDate | "" or string or null | ||
amount | integer or null | 0 to … | |
billable | boolean | default true | |
clientVisible | boolean | default true | |
status | "pending" | "completed" |
Example
curl -X POST https://app.msmepulse.com/api/v1/projects/{id}/milestones \
-H "Authorization: Bearer $MSMEPULSE_TOKEN" \
-H "Content-Type: application/json" \
-d '{"name":"Nova Retail Pvt Ltd"}'
Answers 200 with the same data the MSMEPulse web app shows for it.
Update a milestone
PATCH /projects/{id}/milestones/{mid} Projects and tasks: read and write
id · mid
Request body
| Field | Type | Required | Notes |
|---|---|---|---|
name | string | 2–120 characters | |
dueDate | "" or string or null | ||
amount | integer or null | 0 to … | |
billable | boolean | default true | |
clientVisible | boolean | default true | |
status | "pending" | "completed" | ||
overrideReason | string | up to 500 characters |
Example
curl -X PATCH https://app.msmepulse.com/api/v1/projects/{id}/milestones/{mid} \
-H "Authorization: Bearer $MSMEPULSE_TOKEN" \
-H "Content-Type: application/json" \
-d '{"name":"Nova Retail Pvt Ltd","dueDate":"2026-10-26","amount":100000}'
Answers 200 with the same data the MSMEPulse web app shows for it.
Delete a milestone
DELETE /projects/{id}/milestones/{mid} Projects and tasks: read and write
id · mid
Example
curl -X DELETE https://app.msmepulse.com/api/v1/projects/{id}/milestones/{mid} \
-H "Authorization: Bearer $MSMEPULSE_TOKEN"
Answers 200 with the same data the MSMEPulse web app shows for it.
A project's document checklist
GET /projects/{id}/documents Projects and tasks: read
id
Example
curl https://app.msmepulse.com/api/v1/projects/{id}/documents \
-H "Authorization: Bearer $MSMEPULSE_TOKEN"
Answers 200 with the same data the MSMEPulse web app shows for it.
Add an item to the document checklist
POST /projects/{id}/documents Projects and tasks: read and write
id
Request body
| Field | Type | Required | Notes |
|---|---|---|---|
title | string | Yes | 2–150 characters |
about | string | up to 1000 characters | |
compulsory | boolean | default false | |
providedBy | "client" | "internal" | default "client" | |
milestoneId | string or null | ||
dueDate | "" or string or null |
Example
curl -X POST https://app.msmepulse.com/api/v1/projects/{id}/documents \
-H "Authorization: Bearer $MSMEPULSE_TOKEN" \
-H "Content-Type: application/json" \
-d '{"title":"Website rebuild"}'
Answers 200 with the same data the MSMEPulse web app shows for it.
Update a checklist item
PATCH /projects/{id}/documents/{did} Projects and tasks: read and write
id · did
Request body
| Field | Type | Required | Notes |
|---|---|---|---|
title | string | 2–150 characters | |
about | string | up to 1000 characters | |
compulsory | boolean | default false | |
providedBy | "client" | "internal" | default "client" | |
milestoneId | string or null | ||
dueDate | "" or string or null |
Example
curl -X PATCH https://app.msmepulse.com/api/v1/projects/{id}/documents/{did} \
-H "Authorization: Bearer $MSMEPULSE_TOKEN" \
-H "Content-Type: application/json" \
-d '{"title":"Website rebuild","about":"about value","compulsory":false}'
Answers 200 with the same data the MSMEPulse web app shows for it.
Remove a checklist item
DELETE /projects/{id}/documents/{did} Projects and tasks: read and write
id · did
Example
curl -X DELETE https://app.msmepulse.com/api/v1/projects/{id}/documents/{did} \
-H "Authorization: Bearer $MSMEPULSE_TOKEN"
Answers 200 with the same data the MSMEPulse web app shows for it.
Mark a checklist item received, approved or rejected
POST /projects/{id}/documents/{did}/status Projects and tasks: read and write
id · did
Request body
| Field | Type | Required | Notes |
|---|---|---|---|
status | "pending" | "received" | "verified" | "not_applicable" | Yes | |
note | string | up to 500 characters |
Example
curl -X POST https://app.msmepulse.com/api/v1/projects/{id}/documents/{did}/status \
-H "Authorization: Bearer $MSMEPULSE_TOKEN" \
-H "Content-Type: application/json" \
-d '{"status":"pending"}'
Answers 200 with the same data the MSMEPulse web app shows for it.
Upload a file to a checklist item
POST /projects/{id}/documents/{did}/files Projects and tasks: read and write
id · did
Request body
A file upload (multipart/form-data) in the field file.
Example
curl -X POST https://app.msmepulse.com/api/v1/projects/{id}/documents/{did}/files \
-H "Authorization: Bearer $MSMEPULSE_TOKEN" \
-F "file=@receipt.pdf"
Answers 200 with the same data the MSMEPulse web app shows for it.
Download a checklist file
GET /projects/{id}/documents/{did}/files/{fid} Projects and tasks: read
id · did · fid
Example
curl https://app.msmepulse.com/api/v1/projects/{id}/documents/{did}/files/{fid} \
-H "Authorization: Bearer $MSMEPULSE_TOKEN"
Answers 200 with the same data the MSMEPulse web app shows for it.
A project's tasks
GET /projects/{id}/tasks Projects and tasks: read
id
Example
curl https://app.msmepulse.com/api/v1/projects/{id}/tasks \
-H "Authorization: Bearer $MSMEPULSE_TOKEN"
Answers 200 with the same data the MSMEPulse web app shows for it.
Add a task to a project
POST /projects/{id}/tasks Projects and tasks: read and write
id
Request body
| Field | Type | Required | Notes |
|---|---|---|---|
title | string | Yes | 1–200 characters |
description | string | up to 10000 characters | |
columnKey | string | up to 40 characters | |
assigneeIds | array of string | at most 20 items | |
dueDate | "" or string or null | ||
startDate | "" or string or null | ||
priority | "low" | "medium" | "high" | "urgent" | default "medium" | |
labels | array of string | at most 10 items | |
estimateHours | number or null | 0 to 10000 | |
clientVisible | boolean | default false | |
dependsOn | array of string | at most 20 items | |
parentId | string or null | ||
milestoneId | string or null |
Example
curl -X POST https://app.msmepulse.com/api/v1/projects/{id}/tasks \
-H "Authorization: Bearer $MSMEPULSE_TOKEN" \
-H "Content-Type: application/json" \
-d '{"title":"Website rebuild"}'
Answers 200 with the same data the MSMEPulse web app shows for it.