Sign in

API reference / ZiloProjects

ZiloProjects

Projects and tasks.

Base URL https://api.zilomail.in

List projects#

GET/v1/projects/projects
projects.read

Query

statusstring
Up to 30 characters.
limitinteger
How many to return (1–200). Default 50.
cursorstring
The next value from the previous page. Up to 500 characters.

Answer · 200 OK

dataarray of object
idstring
codestring
namestring
statusstring
customerIdstring | null
managerobject | null
idstring | null
Their ZiloOne user id.
emailstring | null
namestring
startDatestring | null
endDatestring | null
createdAtstring
ISO 8601 date and time, UTC, e.g. 2026-10-17T09:30:00.000Z.
nextstring | null
Pass as cursor for the next page; null on the last.
curl "https://api.zilomail.in/v1/projects/projects?limit=20" \
  -H "Authorization: Bearer $ZILO_TOKEN"
Answer · 200 OK
{
  "data": [
    {
      "id": "string",
      "code": "string",
      "name": "string",
      "status": "string",
      "customerId": "string",
      "manager": {
        "id": "string",
        "email": "string",
        "name": "string"
      },
      "startDate": "2026-10-17",
      "endDate": "2026-10-17",
      "createdAt": "2026-10-17T09:30:00.000Z"
    }
  ],
  "next": "string"
}
Try it

Sign in to call it as yourself.

List tasks#

GET/v1/projects/tasks
projects.read

mine=true: given to the person. Open first by due date.

Query

projectstring
Up to 64 characters.
mineboolean
statusstring
Up to 30 characters.
limitinteger
How many to return (1–200). Default 50.
cursorstring
The next value from the previous page. Up to 500 characters.

Answer · 200 OK

dataarray of object
idstring
numberstring
titlestring
descriptionstring | null
statusstring
TODO, IN_PROGRESS, REVIEW, DONE…
prioritystring
LOW, NORMAL, HIGH or URGENT.
projectIdstring | null
assigneeobject | null
idstring | null
Their ZiloOne user id.
emailstring | null
namestring
dueDatestring | null
completedAtstring | null
createdAtstring
ISO 8601 date and time, UTC, e.g. 2026-10-17T09:30:00.000Z.
updatedAtstring
ISO 8601 date and time, UTC, e.g. 2026-10-17T09:30:00.000Z.
nextstring | null
Pass as cursor for the next page; null on the last.
curl "https://api.zilomail.in/v1/projects/tasks?limit=20" \
  -H "Authorization: Bearer $ZILO_TOKEN"
Answer · 200 OK
{
  "data": [
    {
      "id": "string",
      "number": "string",
      "title": "string",
      "description": "string",
      "status": "string",
      "priority": "string",
      "projectId": "string",
      "assignee": {
        "id": "string",
        "email": "string",
        "name": "string"
      },
      "dueDate": "2026-10-17",
      "completedAt": "2026-10-17T09:30:00.000Z",
      "createdAt": "2026-10-17T09:30:00.000Z",
      "updatedAt": "2026-10-17T09:30:00.000Z"
    }
  ],
  "next": "string"
}
Try it

Sign in to call it as yourself.

Get a task#

GET/v1/projects/tasks/{id}
projects.readETag · If-Match

Path

idstringrequired
An id this API gave out. Up to 64 characters.

Answer · 200 OK

idstring
numberstring
titlestring
descriptionstring | null
statusstring
TODO, IN_PROGRESS, REVIEW, DONE…
prioritystring
LOW, NORMAL, HIGH or URGENT.
projectIdstring | null
assigneeobject | null
idstring | null
Their ZiloOne user id.
emailstring | null
namestring
dueDatestring | null
completedAtstring | null
createdAtstring
ISO 8601 date and time, UTC, e.g. 2026-10-17T09:30:00.000Z.
updatedAtstring
ISO 8601 date and time, UTC, e.g. 2026-10-17T09:30:00.000Z.
curl "https://api.zilomail.in/v1/projects/tasks/ID" \
  -H "Authorization: Bearer $ZILO_TOKEN"
Answer · 200 OK
{
  "id": "string",
  "number": "string",
  "title": "string",
  "description": "string",
  "status": "string",
  "priority": "string",
  "projectId": "string",
  "assignee": {
    "id": "string",
    "email": "string",
    "name": "string"
  },
  "dueDate": "2026-10-17",
  "completedAt": "2026-10-17T09:30:00.000Z",
  "createdAt": "2026-10-17T09:30:00.000Z",
  "updatedAt": "2026-10-17T09:30:00.000Z"
}
Try it

Sign in to call it as yourself.

Add a task#

POST/v1/projects/tasks
projects.writeIdempotency-Key

The assignee is told (the bell in every app).

Body

titlestringrequired
Up to 300 characters.
descriptionstring
Up to 8000 characters.
projectIdstring
assigneestring
Default: the person themselves when there's no project. Up to 320 characters.
dueDatestring
A calendar date, YYYY-MM-DD.
priorityenum
One of LOW, NORMAL, HIGH, URGENT.
statusstring
Up to 30 characters.

Answer · 201 Created

idstring
numberstring
titlestring
descriptionstring | null
statusstring
TODO, IN_PROGRESS, REVIEW, DONE…
prioritystring
LOW, NORMAL, HIGH or URGENT.
projectIdstring | null
assigneeobject | null
idstring | null
Their ZiloOne user id.
emailstring | null
namestring
dueDatestring | null
completedAtstring | null
createdAtstring
ISO 8601 date and time, UTC, e.g. 2026-10-17T09:30:00.000Z.
updatedAtstring
ISO 8601 date and time, UTC, e.g. 2026-10-17T09:30:00.000Z.
curl -X POST "https://api.zilomail.in/v1/projects/tasks" \
  -H "Authorization: Bearer $ZILO_TOKEN" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{
  "title": "Call Sharma Stores about the order",
  "dueDate": "2026-10-21",
  "priority": "HIGH"
}'
Answer · 201 Created
{
  "id": "string",
  "number": "string",
  "title": "string",
  "description": "string",
  "status": "string",
  "priority": "string",
  "projectId": "string",
  "assignee": {
    "id": "string",
    "email": "string",
    "name": "string"
  },
  "dueDate": "2026-10-17",
  "completedAt": "2026-10-17T09:30:00.000Z",
  "createdAt": "2026-10-17T09:30:00.000Z",
  "updatedAt": "2026-10-17T09:30:00.000Z"
}
Try it

Sign in to call it as yourself.

Change a task#

PATCH/v1/projects/tasks/{id}
projects.writeETag · If-Match

Its assignee may change its status; other changes need Tasks: edit.

Path

idstringrequired
An id this API gave out. Up to 64 characters.

Body

titlestring
Up to 300 characters.
descriptionstring
Up to 8000 characters.
projectIdstring
assigneestring
Default: the person themselves when there's no project. Up to 320 characters.
dueDatestring
A calendar date, YYYY-MM-DD.
priorityenum
One of LOW, NORMAL, HIGH, URGENT.
statusstring
Up to 30 characters.

Answer · 200 OK

idstring
numberstring
titlestring
descriptionstring | null
statusstring
TODO, IN_PROGRESS, REVIEW, DONE…
prioritystring
LOW, NORMAL, HIGH or URGENT.
projectIdstring | null
assigneeobject | null
idstring | null
Their ZiloOne user id.
emailstring | null
namestring
dueDatestring | null
completedAtstring | null
createdAtstring
ISO 8601 date and time, UTC, e.g. 2026-10-17T09:30:00.000Z.
updatedAtstring
ISO 8601 date and time, UTC, e.g. 2026-10-17T09:30:00.000Z.
curl -X PATCH "https://api.zilomail.in/v1/projects/tasks/ID" \
  -H "Authorization: Bearer $ZILO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{}'
Answer · 200 OK
{
  "id": "string",
  "number": "string",
  "title": "string",
  "description": "string",
  "status": "string",
  "priority": "string",
  "projectId": "string",
  "assignee": {
    "id": "string",
    "email": "string",
    "name": "string"
  },
  "dueDate": "2026-10-17",
  "completedAt": "2026-10-17T09:30:00.000Z",
  "createdAt": "2026-10-17T09:30:00.000Z",
  "updatedAt": "2026-10-17T09:30:00.000Z"
}
Try it

Sign in to call it as yourself.