API reference

Projects

Projects, milestones, document checklists and tasks.

List projects

GET /projects Projects and tasks: read

Example

curl https://app.msmepulse.com/api/v1/projects \
  -H "Authorization: Bearer $MSMEPULSE_TOKEN"

Response 200

FieldTypeNotes
projectsarray of object
projects[].idstring
projects[].namestring
projects[].codestring or null
projects[].clientIdstring or null
projects[].clientNamestring or null
projects[].billingTypestring
projects[].statusstring
projects[].startDatestring or null
projects[].endDatestring or null
projects[].currencystring
projects[].managerIdstring or null
projects[].managerNamestring or null
projects[].tasksTotalnumber
projects[].tasksDonenumber
projects[].tasksOverduenumber
projects[].archivedboolean

Create a project (optionally from a template)

POST /projects Projects and tasks: read and write

Request body

FieldTypeRequiredNotes
namestringYes2–120 characters
codestringup to 20 characters
clientIdstring 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
budgetHoursnumber or null0 to 1000000
budgetAmountinteger or null0 to …
currency"INR" | "SGD" | "USD" | "EUR" | "GBP" | "AED" | "AUD" | "MYR" | "CAD" | "CHF" | "HKD" | "NZD"
managerIdstring or null
memberIdsarray of stringat most 200 items
descriptionstringup 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

FieldTypeNotes
idstringThe 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.

FieldTypeRequiredNotes
namestring2–120 characters
codestringup to 20 characters
clientIdstring 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
budgetHoursnumber or null0 to 1000000
budgetAmountinteger or null0 to …
currency"INR" | "SGD" | "USD" | "EUR" | "GBP" | "AED" | "AUD" | "MYR" | "CAD" | "CHF" | "HKD" | "NZD"
managerIdstring or null
memberIdsarray of stringat most 200 items
descriptionstringup 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

FieldTypeRequiredNotes
columnsarray of objectYesat most 12 items
columns[].keystringYes1–40 characters
columns[].namestringYes1–40 characters
columns[].donebooleanYes

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

FieldTypeRequiredNotes
namestringYes2–120 characters
dueDate"" or string or null
amountinteger or null0 to …
billablebooleandefault true
clientVisiblebooleandefault 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

FieldTypeRequiredNotes
namestring2–120 characters
dueDate"" or string or null
amountinteger or null0 to …
billablebooleandefault true
clientVisiblebooleandefault true
status"pending" | "completed"
overrideReasonstringup 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

FieldTypeRequiredNotes
titlestringYes2–150 characters
aboutstringup to 1000 characters
compulsorybooleandefault false
providedBy"client" | "internal"default "client"
milestoneIdstring 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

FieldTypeRequiredNotes
titlestring2–150 characters
aboutstringup to 1000 characters
compulsorybooleandefault false
providedBy"client" | "internal"default "client"
milestoneIdstring 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

FieldTypeRequiredNotes
status"pending" | "received" | "verified" | "not_applicable"Yes
notestringup 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

FieldTypeRequiredNotes
titlestringYes1–200 characters
descriptionstringup to 10000 characters
columnKeystringup to 40 characters
assigneeIdsarray of stringat most 20 items
dueDate"" or string or null
startDate"" or string or null
priority"low" | "medium" | "high" | "urgent"default "medium"
labelsarray of stringat most 10 items
estimateHoursnumber or null0 to 10000
clientVisiblebooleandefault false
dependsOnarray of stringat most 20 items
parentIdstring or null
milestoneIdstring 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.