For the complete documentation index, see llms.txt. This page is also available as Markdown.

Dashboards

get

API endpoint for dashboard operations

Authorizations
AuthorizationstringRequired

JWT token obtained from /api/login/. Pass as: Authorization: Bearer

Responses
200Success
application/json

Main dashboard serializer

dashboard_idstring · max: 25Required
dashboard_namestring · max: 100Required
descriptionstringOptional
dashboard_typestring · enumOptional
  • overview - overview
  • deals - deals
  • projects - projects
  • revenue - revenue
  • activities - activities
  • custom - custom
Possible values:
is_system_definedbooleanOptionalDefault: true
is_defaultbooleanOptional
visibilitystring · enumOptional
  • public - public
  • private - private
  • restricted - restricted
Possible values:
access_countintegerOptional
cache_ttlintegerOptionalDefault: 300
time_range_defaultstring · max: 20OptionalDefault: 30_days
get/api/dashboards/info/
GET /api/dashboards/info/ HTTP/1.1
Host: api.app.projetly.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
200Success
[
  {
    "dashboard_id": "text",
    "dashboard_name": "text",
    "description": "text",
    "dashboard_type": "overview",
    "is_system_defined": true,
    "is_default": true,
    "visibility": "public",
    "widgets": [
      {
        "widget_id": "text",
        "widget_type": "text",
        "position": {
          "ANY_ADDITIONAL_PROPERTY": "anything"
        },
        "config": {
          "ANY_ADDITIONAL_PROPERTY": "anything"
        },
        "is_visible": true,
        "refresh_interval": 300,
        "last_refreshed": "2026-01-01T00:00:00.000Z"
      }
    ],
    "access_list": [
      {
        "access_type": "user",
        "access_id": "text",
        "permission_level": "view",
        "granted_by": "text",
        "granted_at": "2026-07-01T11:44:45.305634Z"
      }
    ],
    "access_count": 1,
    "cache_ttl": 300,
    "layout_config": {
      "ANY_ADDITIONAL_PROPERTY": "anything"
    },
    "theme_config": {
      "ANY_ADDITIONAL_PROPERTY": "anything"
    },
    "time_range_default": "30_days"
  }
]
post

API endpoint for dashboard operations

Authorizations
AuthorizationstringRequired

JWT token obtained from /api/login/. Pass as: Authorization: Bearer

Body

Main dashboard serializer

dashboard_idstring · max: 25Required
dashboard_namestring · max: 100Required
descriptionstringOptional
dashboard_typestring · enumOptional
  • overview - overview
  • deals - deals
  • projects - projects
  • revenue - revenue
  • activities - activities
  • custom - custom
Possible values:
is_system_definedbooleanOptionalDefault: true
is_defaultbooleanOptional
visibilitystring · enumOptional
  • public - public
  • private - private
  • restricted - restricted
Possible values:
access_countintegerOptional
cache_ttlintegerOptionalDefault: 300
time_range_defaultstring · max: 20OptionalDefault: 30_days
Responses
201Success
application/json

Main dashboard serializer

dashboard_idstring · max: 25Required
dashboard_namestring · max: 100Required
descriptionstringOptional
dashboard_typestring · enumOptional
  • overview - overview
  • deals - deals
  • projects - projects
  • revenue - revenue
  • activities - activities
  • custom - custom
Possible values:
is_system_definedbooleanOptionalDefault: true
is_defaultbooleanOptional
visibilitystring · enumOptional
  • public - public
  • private - private
  • restricted - restricted
Possible values:
access_countintegerOptional
cache_ttlintegerOptionalDefault: 300
time_range_defaultstring · max: 20OptionalDefault: 30_days
post/api/dashboards/info/
POST /api/dashboards/info/ HTTP/1.1
Host: api.app.projetly.io
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 718

{
  "dashboard_id": "text",
  "dashboard_name": "text",
  "description": "text",
  "dashboard_type": "overview",
  "is_system_defined": true,
  "is_default": true,
  "visibility": "public",
  "widgets": [
    {
      "widget_id": "text",
      "widget_type": "text",
      "position": {
        "ANY_ADDITIONAL_PROPERTY": "anything"
      },
      "config": {
        "ANY_ADDITIONAL_PROPERTY": "anything"
      },
      "is_visible": true,
      "refresh_interval": 300,
      "last_refreshed": "2026-01-01T00:00:00.000Z"
    }
  ],
  "access_list": [
    {
      "access_type": "user",
      "access_id": "text",
      "permission_level": "view",
      "granted_by": "text",
      "granted_at": "2026-07-01T11:44:45.305634Z"
    }
  ],
  "access_count": 1,
  "cache_ttl": 300,
  "layout_config": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  },
  "theme_config": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  },
  "time_range_default": "30_days"
}
201Success
{
  "dashboard_id": "text",
  "dashboard_name": "text",
  "description": "text",
  "dashboard_type": "overview",
  "is_system_defined": true,
  "is_default": true,
  "visibility": "public",
  "widgets": [
    {
      "widget_id": "text",
      "widget_type": "text",
      "position": {
        "ANY_ADDITIONAL_PROPERTY": "anything"
      },
      "config": {
        "ANY_ADDITIONAL_PROPERTY": "anything"
      },
      "is_visible": true,
      "refresh_interval": 300,
      "last_refreshed": "2026-01-01T00:00:00.000Z"
    }
  ],
  "access_list": [
    {
      "access_type": "user",
      "access_id": "text",
      "permission_level": "view",
      "granted_by": "text",
      "granted_at": "2026-07-01T11:44:45.305634Z"
    }
  ],
  "access_count": 1,
  "cache_ttl": 300,
  "layout_config": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  },
  "theme_config": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  },
  "time_range_default": "30_days"
}
get

API endpoint for dashboard operations

Authorizations
AuthorizationstringRequired

JWT token obtained from /api/login/. Pass as: Authorization: Bearer

Path parameters
idstringRequired
Responses
200Success
application/json

Main dashboard serializer

dashboard_idstring · max: 25Required
dashboard_namestring · max: 100Required
descriptionstringOptional
dashboard_typestring · enumOptional
  • overview - overview
  • deals - deals
  • projects - projects
  • revenue - revenue
  • activities - activities
  • custom - custom
Possible values:
is_system_definedbooleanOptionalDefault: true
is_defaultbooleanOptional
visibilitystring · enumOptional
  • public - public
  • private - private
  • restricted - restricted
Possible values:
access_countintegerOptional
cache_ttlintegerOptionalDefault: 300
time_range_defaultstring · max: 20OptionalDefault: 30_days
get/api/dashboards/info/{id}/
GET /api/dashboards/info/{id}/ HTTP/1.1
Host: api.app.projetly.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
200Success
{
  "dashboard_id": "text",
  "dashboard_name": "text",
  "description": "text",
  "dashboard_type": "overview",
  "is_system_defined": true,
  "is_default": true,
  "visibility": "public",
  "widgets": [
    {
      "widget_id": "text",
      "widget_type": "text",
      "position": {
        "ANY_ADDITIONAL_PROPERTY": "anything"
      },
      "config": {
        "ANY_ADDITIONAL_PROPERTY": "anything"
      },
      "is_visible": true,
      "refresh_interval": 300,
      "last_refreshed": "2026-01-01T00:00:00.000Z"
    }
  ],
  "access_list": [
    {
      "access_type": "user",
      "access_id": "text",
      "permission_level": "view",
      "granted_by": "text",
      "granted_at": "2026-07-01T11:44:45.305634Z"
    }
  ],
  "access_count": 1,
  "cache_ttl": 300,
  "layout_config": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  },
  "theme_config": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  },
  "time_range_default": "30_days"
}
put

API endpoint for dashboard operations

Authorizations
AuthorizationstringRequired

JWT token obtained from /api/login/. Pass as: Authorization: Bearer

Path parameters
idstringRequired
Body

Main dashboard serializer

dashboard_idstring · max: 25Required
dashboard_namestring · max: 100Required
descriptionstringOptional
dashboard_typestring · enumOptional
  • overview - overview
  • deals - deals
  • projects - projects
  • revenue - revenue
  • activities - activities
  • custom - custom
Possible values:
is_system_definedbooleanOptionalDefault: true
is_defaultbooleanOptional
visibilitystring · enumOptional
  • public - public
  • private - private
  • restricted - restricted
Possible values:
access_countintegerOptional
cache_ttlintegerOptionalDefault: 300
time_range_defaultstring · max: 20OptionalDefault: 30_days
Responses
200Success
application/json

Main dashboard serializer

dashboard_idstring · max: 25Required
dashboard_namestring · max: 100Required
descriptionstringOptional
dashboard_typestring · enumOptional
  • overview - overview
  • deals - deals
  • projects - projects
  • revenue - revenue
  • activities - activities
  • custom - custom
Possible values:
is_system_definedbooleanOptionalDefault: true
is_defaultbooleanOptional
visibilitystring · enumOptional
  • public - public
  • private - private
  • restricted - restricted
Possible values:
access_countintegerOptional
cache_ttlintegerOptionalDefault: 300
time_range_defaultstring · max: 20OptionalDefault: 30_days
put/api/dashboards/info/{id}/
PUT /api/dashboards/info/{id}/ HTTP/1.1
Host: api.app.projetly.io
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 718

{
  "dashboard_id": "text",
  "dashboard_name": "text",
  "description": "text",
  "dashboard_type": "overview",
  "is_system_defined": true,
  "is_default": true,
  "visibility": "public",
  "widgets": [
    {
      "widget_id": "text",
      "widget_type": "text",
      "position": {
        "ANY_ADDITIONAL_PROPERTY": "anything"
      },
      "config": {
        "ANY_ADDITIONAL_PROPERTY": "anything"
      },
      "is_visible": true,
      "refresh_interval": 300,
      "last_refreshed": "2026-01-01T00:00:00.000Z"
    }
  ],
  "access_list": [
    {
      "access_type": "user",
      "access_id": "text",
      "permission_level": "view",
      "granted_by": "text",
      "granted_at": "2026-07-01T11:44:45.305634Z"
    }
  ],
  "access_count": 1,
  "cache_ttl": 300,
  "layout_config": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  },
  "theme_config": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  },
  "time_range_default": "30_days"
}
200Success
{
  "dashboard_id": "text",
  "dashboard_name": "text",
  "description": "text",
  "dashboard_type": "overview",
  "is_system_defined": true,
  "is_default": true,
  "visibility": "public",
  "widgets": [
    {
      "widget_id": "text",
      "widget_type": "text",
      "position": {
        "ANY_ADDITIONAL_PROPERTY": "anything"
      },
      "config": {
        "ANY_ADDITIONAL_PROPERTY": "anything"
      },
      "is_visible": true,
      "refresh_interval": 300,
      "last_refreshed": "2026-01-01T00:00:00.000Z"
    }
  ],
  "access_list": [
    {
      "access_type": "user",
      "access_id": "text",
      "permission_level": "view",
      "granted_by": "text",
      "granted_at": "2026-07-01T11:44:45.305634Z"
    }
  ],
  "access_count": 1,
  "cache_ttl": 300,
  "layout_config": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  },
  "theme_config": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  },
  "time_range_default": "30_days"
}
delete

API endpoint for dashboard operations

Authorizations
AuthorizationstringRequired

JWT token obtained from /api/login/. Pass as: Authorization: Bearer

Path parameters
idstringRequired
Responses
204

No response body

No content

delete/api/dashboards/info/{id}/
DELETE /api/dashboards/info/{id}/ HTTP/1.1
Host: api.app.projetly.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
204

No response body

No content

patch

API endpoint for dashboard operations

Authorizations
AuthorizationstringRequired

JWT token obtained from /api/login/. Pass as: Authorization: Bearer

Path parameters
idstringRequired
Body

Main dashboard serializer

dashboard_idstring · max: 25Optional
dashboard_namestring · max: 100Optional
descriptionstringOptional
dashboard_typestring · enumOptional
  • overview - overview
  • deals - deals
  • projects - projects
  • revenue - revenue
  • activities - activities
  • custom - custom
Possible values:
is_system_definedbooleanOptionalDefault: true
is_defaultbooleanOptional
visibilitystring · enumOptional
  • public - public
  • private - private
  • restricted - restricted
Possible values:
access_countintegerOptional
cache_ttlintegerOptionalDefault: 300
time_range_defaultstring · max: 20OptionalDefault: 30_days
Responses
200Success
application/json

Main dashboard serializer

dashboard_idstring · max: 25Required
dashboard_namestring · max: 100Required
descriptionstringOptional
dashboard_typestring · enumOptional
  • overview - overview
  • deals - deals
  • projects - projects
  • revenue - revenue
  • activities - activities
  • custom - custom
Possible values:
is_system_definedbooleanOptionalDefault: true
is_defaultbooleanOptional
visibilitystring · enumOptional
  • public - public
  • private - private
  • restricted - restricted
Possible values:
access_countintegerOptional
cache_ttlintegerOptionalDefault: 300
time_range_defaultstring · max: 20OptionalDefault: 30_days
patch/api/dashboards/info/{id}/
PATCH /api/dashboards/info/{id}/ HTTP/1.1
Host: api.app.projetly.io
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 718

{
  "dashboard_id": "text",
  "dashboard_name": "text",
  "description": "text",
  "dashboard_type": "overview",
  "is_system_defined": true,
  "is_default": true,
  "visibility": "public",
  "widgets": [
    {
      "widget_id": "text",
      "widget_type": "text",
      "position": {
        "ANY_ADDITIONAL_PROPERTY": "anything"
      },
      "config": {
        "ANY_ADDITIONAL_PROPERTY": "anything"
      },
      "is_visible": true,
      "refresh_interval": 300,
      "last_refreshed": "2026-01-01T00:00:00.000Z"
    }
  ],
  "access_list": [
    {
      "access_type": "user",
      "access_id": "text",
      "permission_level": "view",
      "granted_by": "text",
      "granted_at": "2026-07-01T11:44:45.305634Z"
    }
  ],
  "access_count": 1,
  "cache_ttl": 300,
  "layout_config": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  },
  "theme_config": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  },
  "time_range_default": "30_days"
}
200Success
{
  "dashboard_id": "text",
  "dashboard_name": "text",
  "description": "text",
  "dashboard_type": "overview",
  "is_system_defined": true,
  "is_default": true,
  "visibility": "public",
  "widgets": [
    {
      "widget_id": "text",
      "widget_type": "text",
      "position": {
        "ANY_ADDITIONAL_PROPERTY": "anything"
      },
      "config": {
        "ANY_ADDITIONAL_PROPERTY": "anything"
      },
      "is_visible": true,
      "refresh_interval": 300,
      "last_refreshed": "2026-01-01T00:00:00.000Z"
    }
  ],
  "access_list": [
    {
      "access_type": "user",
      "access_id": "text",
      "permission_level": "view",
      "granted_by": "text",
      "granted_at": "2026-07-01T11:44:45.305634Z"
    }
  ],
  "access_count": 1,
  "cache_ttl": 300,
  "layout_config": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  },
  "theme_config": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  },
  "time_range_default": "30_days"
}

Get customer activity heatmap data

get

Get customer activity heatmap data

Authorizations
AuthorizationstringRequired

JWT token obtained from /api/login/. Pass as: Authorization: Bearer

Query parameters
project_idsstringOptional

Comma-separated project IDs to filter

time_rangestring · enumOptional

Time range for activity calculation

Default: last_30_daysPossible values:
Responses
200Success
application/json

Unspecified response body

Other propertiesanyOptional
get/api/dashboards/info/customer-activity/
GET /api/dashboards/info/customer-activity/ HTTP/1.1
Host: api.app.projetly.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
200Success
{
  "ANY_ADDITIONAL_PROPERTY": "anything"
}

Get customer activity details for specific project and bucket

get

Get detailed user list for specific project and idle bucket

Authorizations
AuthorizationstringRequired

JWT token obtained from /api/login/. Pass as: Authorization: Bearer

Query parameters
idle_bucketstringRequired

Idle bucket (3, 5, 7, 10, 15, 20, 25, 30+)

project_idstringRequired

Project ID

Responses
200Success
application/json

Unspecified response body

Other propertiesanyOptional
get/api/dashboards/info/customer-activity-detail/
GET /api/dashboards/info/customer-activity-detail/?idle_bucket=text&project_id=text HTTP/1.1
Host: api.app.projetly.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
200Success
{
  "ANY_ADDITIONAL_PROPERTY": "anything"
}

Get deals dashboard data

get

Get deals dashboard data

Authorizations
AuthorizationstringRequired

JWT token obtained from /api/login/. Pass as: Authorization: Bearer

Query parameters
force_refreshbooleanOptional

Force refresh cache

time_filterstring · enumOptional

Time filter (last_7_days, last_30_days, last_90_days)

Possible values:
Responses
200Success
application/json

Unspecified response body

Other propertiesanyOptional
get/api/dashboards/info/deals/
GET /api/dashboards/info/deals/ HTTP/1.1
Host: api.app.projetly.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
200Success
{
  "ANY_ADDITIONAL_PROPERTY": "anything"
}

Get default dashboard tab preference

get

Get user's default dashboard tab preference

Authorizations
AuthorizationstringRequired

JWT token obtained from /api/login/. Pass as: Authorization: Bearer

Responses
200Success
application/json

Unspecified response body

Other propertiesanyOptional
get/api/dashboards/info/default-tab/
GET /api/dashboards/info/default-tab/ HTTP/1.1
Host: api.app.projetly.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
200Success
{
  "ANY_ADDITIONAL_PROPERTY": "anything"
}

Get projects dashboard data

get

Get projects dashboard data

Authorizations
AuthorizationstringRequired

JWT token obtained from /api/login/. Pass as: Authorization: Bearer

Query parameters
force_refreshbooleanOptional

Force refresh cache

time_filterstring · enumOptional

Time filter (last_7_days, last_30_days, last_90_days)

Possible values:
Responses
200Success
application/json

Unspecified response body

Other propertiesanyOptional
get/api/dashboards/info/projects/
GET /api/dashboards/info/projects/ HTTP/1.1
Host: api.app.projetly.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
200Success
{
  "ANY_ADDITIONAL_PROPERTY": "anything"
}

Save default dashboard tab preference

post

Save user's default dashboard tab preference

Authorizations
AuthorizationstringRequired

JWT token obtained from /api/login/. Pass as: Authorization: Bearer

Body

Unspecified request body

Other propertiesanyOptional
Responses
200Success
application/json

Unspecified response body

Other propertiesanyOptional
post/api/dashboards/info/save-default-tab/
POST /api/dashboards/info/save-default-tab/ HTTP/1.1
Host: api.app.projetly.io
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: type
Accept: */*
Content-Length: 38

{
  "ANY_ADDITIONAL_PROPERTY": "anything"
}
200Success
{
  "ANY_ADDITIONAL_PROPERTY": "anything"
}

Update task status from dashboard

post

API endpoint for dashboard operations

Authorizations
AuthorizationstringRequired

JWT token obtained from /api/login/. Pass as: Authorization: Bearer

Body

Unspecified request body

Other propertiesanyOptional
Responses
200Success
application/json

Unspecified response body

Other propertiesanyOptional
post/api/dashboards/info/update-task-status/
POST /api/dashboards/info/update-task-status/ HTTP/1.1
Host: api.app.projetly.io
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: type
Accept: */*
Content-Length: 38

{
  "ANY_ADDITIONAL_PROPERTY": "anything"
}
200Success
{
  "ANY_ADDITIONAL_PROPERTY": "anything"
}

Last updated