deskchime
REST API ยท v1

DeskChime Developer API

Pull feedback results, goal progress, meeting records, and team responsiveness into your own tools โ€” authenticated with a single API key.

10 endpoints60 req/minJSON responsesx-api-key auth
๐Ÿ”‘

Your API Key

Get key โ†’

Overview

The DeskChime REST API gives you read access to your organization's data โ€” feedback, goals, meetings, one-on-ones, users, and activity reports โ€” so you can push it into your own dashboards, BI tools, or HR platforms.

Base URL

https://app.deskchime.com

Format

JSON (UTF-8)

Timestamps

UTC ISO 8601

Authentication

Every request must include your organization's API key in the x-api-key header. Generate your key in Settings โ†’ Workspace โ†’ API Key (Admin role required). Regenerating a key immediately invalidates the previous one.

curl
curl "https://app.deskchime.com/api/v1/feedback" \
  -H "x-api-key: YOUR_API_KEY"
401

Missing header

x-api-key header not present

401

Invalid format

Key format is not recognized

401

Key not found

Key doesn't match any organization

403

Cross-org access

User/resource belongs to a different org

Rate Limits

All /api/v1/* endpoints allow 60 requests per 60 seconds per organization (burst-friendly โ€” not strictly 1/sec). When the limit is exceeded you receive a 429. Check Retry-After and back off.

Response headerMeaning
X-RateLimit-LimitMaximum requests allowed in the window (60)
X-RateLimit-RemainingRequests remaining in the current window
X-RateLimit-ResetISO timestamp when the window resets
Retry-AfterSeconds to wait โ€” only present on 429 responses

Organization

2 endpoints
GET/api/workspace-stats

High-level counts for your organization โ€” goals, users, teams, meetings, feedback, and more.

curl

curl "http://localhost:3000/api/workspace-stats" \
  -H "x-api-key: YOUR_API_KEY"

Example response

{
  "success": true,
  "organization": {
    "id": 1,
    "name": "Acme Inc.",
    "slug": "acme"
  },
  "stats": {
    "totalGoals": 12,
    "totalUsers": 8,
    "totalTeams": 3,
    "totalReviews": 24,
    "totalMeetings": 47
  }
}
POST/api/workspace-stats/user

Stats for a specific user โ€” feedback given/received, goals, meetings, and applaudes.

Parameters

NameInTypeRequiredDescription
emailbodystringrequiredUser email address

curl

curl -X POST "http://localhost:3000/api/workspace-stats/user" \
  -H "x-api-key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"email":"[email protected]"}'

Example response

{
  "success": true,
  "user": {
    "id": "u1",
    "email": "[email protected]",
    "name": "Jane"
  },
  "stats": {
    "feedbacksGiven": 3,
    "feedbacksReceived": 5,
    "totalGoals": 4,
    "completedGoals": 2,
    "oneOnOnes": {
      "total": 8,
      "completed": 7
    }
  }
}

Users

1 endpoint
GET/api/v1/users

All users in your organization with their roles and status. Filter by role.

Parameters

NameInTypeRequiredDescription
pagequerynumberoptionalPage number (default: 1)
limitquerynumberoptionalResults per page, max 50 (default: 20)
rolequerystringoptionalFilter by role: Admin | Manager | Member

curl

curl "http://localhost:3000/api/v1/users?page=1&limit=20&role=Manager" \
  -H "x-api-key: YOUR_API_KEY"

Example response

{
  "data": [
    {
      "id": "u1",
      "name": "Jane Smith",
      "email": "[email protected]",
      "role": "Admin",
      "status": 1,
      "isOnboarded": true,
      "joinedAt": "2024-09-01T10:00:00Z"
    },
    {
      "id": "u2",
      "name": "Bob Lee",
      "email": "[email protected]",
      "role": "Member",
      "status": 1,
      "isOnboarded": true,
      "joinedAt": "2024-10-15T09:30:00Z"
    }
  ],
  "meta": {
    "page": 1,
    "limit": 20,
    "total": 8
  }
}

Feedback

2 endpoints
GET/api/v1/feedback

Paginated list of feedback forms in your organization with assignee and response counts.

Parameters

NameInTypeRequiredDescription
pagequerynumberoptionalPage number (default: 1)
limitquerynumberoptionalResults per page, max 50 (default: 20)
statusquerystringoptionalFilter by status: pending | completed | closed

curl

curl "http://localhost:3000/api/v1/feedback?page=1&limit=20&status=pending" \
  -H "x-api-key: YOUR_API_KEY"

Example response

{
  "data": [
    {
      "id": "abc",
      "title": "Q1 Review",
      "status": "pending",
      "frequency": "Once",
      "assigneeCount": 5,
      "responseCount": 3,
      "createdAt": "2025-01-15T10:00:00Z"
    }
  ],
  "meta": {
    "page": 1,
    "limit": 20,
    "total": 42
  }
}
GET/api/v1/feedback/:id

Single feedback form with an anonymised per-question response summary (no individual names).

Parameters

NameInTypeRequiredDescription
idpathstringrequiredFeedback ID

curl

curl "http://localhost:3000/api/v1/feedback/abc123" \
  -H "x-api-key: YOUR_API_KEY"

Example response

{
  "data": {
    "id": "abc",
    "title": "Q1 Review",
    "status": "completed",
    "assigneeCount": 8,
    "responseCount": 6,
    "questions": [
      {
        "id": 1,
        "question": "Rate communication",
        "type": "scale",
        "responseCount": 6,
        "averageScore": 4.2,
        "scale": {
          "min": "1",
          "max": "5"
        }
      },
      {
        "id": 2,
        "question": "What's working well?",
        "type": "textarea",
        "responseCount": 5
      }
    ]
  }
}

Goals

2 endpoints
GET/api/v1/goals

Paginated list of goals with progress and assignees. Filter by status or type.

Parameters

NameInTypeRequiredDescription
pagequerynumberoptionalPage number
limitquerynumberoptionalMax 50
statusquerystringoptionalOnTrack | Completed | Delayed | AtRisk | Abandoned
typequerystringoptionalOrganization | Individual | Team | Self

curl

curl "http://localhost:3000/api/v1/goals?page=1&limit=20&status=OnTrack&type=Individual" \
  -H "x-api-key: YOUR_API_KEY"

Example response

{
  "data": [
    {
      "id": "g1",
      "title": "Grow ARR by 30%",
      "type": "Organization",
      "status": "OnTrack",
      "progress": 45,
      "assignees": [
        {
          "name": "Jane",
          "email": "[email protected]"
        }
      ]
    }
  ],
  "meta": {
    "page": 1,
    "limit": 20,
    "total": 8
  }
}
GET/api/v1/goals/:id

Single goal with full timeline of progress updates and actionable items.

Parameters

NameInTypeRequiredDescription
idpathstringrequiredGoal ID

curl

curl "http://localhost:3000/api/v1/goals/g1" \
  -H "x-api-key: YOUR_API_KEY"

Example response

{
  "data": {
    "id": "g1",
    "title": "Grow ARR by 30%",
    "status": "OnTrack",
    "progress": 45,
    "timeline": [
      {
        "status": "OnTrack",
        "comment": "Closed 3 new accounts",
        "date": "2025-03-10T09:00:00Z"
      }
    ],
    "actionItems": [
      {
        "id": "a1",
        "title": "Close enterprise deal",
        "status": "OnTrack"
      }
    ]
  }
}

Meetings

1 endpoint
GET/api/v1/meetings

Paginated list of meetings. Filter by type or date range.

Parameters

NameInTypeRequiredDescription
pagequerynumberoptionalPage number
limitquerynumberoptionalMax 50
typequerystringoptionalGoal | Review | Casual | ONE_ON_ONE
fromquerystringoptionalISO date โ€” start of range
toquerystringoptionalISO date โ€” end of range

curl

curl "http://localhost:3000/api/v1/meetings?page=1&limit=20&type=Review&from=2025-01-01&to=2025-03-31" \
  -H "x-api-key: YOUR_API_KEY"

Example response

{
  "data": [
    {
      "id": "m1",
      "title": "Sprint Retro",
      "type": "Casual",
      "scheduledAt": "2025-03-15T14:00:00Z",
      "isCompleted": true,
      "attendeeCount": 6
    }
  ],
  "meta": {
    "page": 1,
    "limit": 20,
    "total": 47
  }
}

One-on-Ones

1 endpoint
GET/api/v1/one-on-ones

Paginated list of one-on-one meetings with organizer and participant details.

Parameters

NameInTypeRequiredDescription
pagequerynumberoptionalPage number
limitquerynumberoptionalMax 50
fromquerystringoptionalISO date
toquerystringoptionalISO date

curl

curl "http://localhost:3000/api/v1/one-on-ones?page=1&limit=20&from=2025-01-01&to=2025-03-31" \
  -H "x-api-key: YOUR_API_KEY"

Example response

{
  "data": [
    {
      "id": "o1",
      "title": "Weekly check-in",
      "scheduledAt": "2025-03-12T10:00:00Z",
      "isCompleted": false,
      "organizer": {
        "name": "Jane",
        "email": "[email protected]"
      },
      "participant": {
        "name": "Bob",
        "email": "[email protected]"
      }
    }
  ],
  "meta": {
    "page": 1,
    "limit": 20,
    "total": 18
  }
}

User Activity

1 endpoint
POST/api/v1/users/activity

Detailed activity stats and responsiveness rates for a team member โ€” feedback response rate, goal completion, meeting attendance.

Parameters

NameInTypeRequiredDescription
emailbodystringrequiredUser email address

curl

curl -X POST "http://localhost:3000/api/v1/users/activity" \
  -H "x-api-key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"email":"[email protected]"}'

Example response

{
  "user": {
    "id": "u1",
    "name": "Jane",
    "email": "[email protected]"
  },
  "stats": {
    "feedback": {
      "given": 3,
      "received": 10,
      "answered": 8
    },
    "goals": {
      "total": 5,
      "completed": 3
    },
    "meetings": {
      "created": 4,
      "assigned": 12,
      "attended": 11
    },
    "oneOnOnes": {
      "total": 8,
      "completed": 7
    }
  },
  "responsiveness": {
    "feedbackResponseRate": 80,
    "goalCompletionRate": 60,
    "meetingAttendanceRate": 92,
    "oneOnOneCompletionRate": 88
  }
}