पब्लिक API रेफ़रेंस

Workify360 Focus पब्लिक API से आपकी अपनी स्क्रिप्ट और टूल रिपोर्ट और समय का डेटा पढ़ सकते हैं और डैशबोर्ड वाले ही नियमों के साथ बदलाव कर सकते हैं। पब्लिक API, API कुंजियाँ और वेबहुक Premium प्लान का हिस्सा हैं।

इस पेज के ऑपरेशन बैकवर्ड कम्पैटिबल रखे जाते हैं। इन्हीं ऑपरेशनों का मशीन-रीडेबल OpenAPI दस्तावेज़:

https://api.focus.workify360.com/v1/openapi/public.json

API कॉन्ट्रैक्ट वर्ज़न 0.1.0 (c95fb97bb49a) से जनरेट किया गया।

ऑथेंटिकेशन

हर रिक्वेस्ट के Authorization हेडर में एक पर्सनल API कुंजी भेजें। कुंजी उसी व्यक्ति की होती है जिसने उसे बनाया, उसी व्यक्ति की तरह काम करती है और कभी भी उसकी मौजूदा भूमिका की अनुमति से ज़्यादा नहीं करती। गायब, ग़लत, एक्सपायर या रद्द की गई कुंजी वाली रिक्वेस्ट को unauthorized कोड के साथ 401 मिलता है।

curl https://api.focus.workify360.com/v1/me \
  -H "Authorization: Bearer w360_pat_…"

कुंजियाँ कैसे बनाएँ, उनका स्कोप तय करें और उन्हें रद्द करें: API कुंजियाँ और पब्लिक API

स्कोप

हर ऑपरेशन को एक स्कोप चाहिए, जो उसके बगल में दिखाया गया है। कोई कुंजी किसी ऑपरेशन तक तब पहुँचती है जब उसके पास वह स्कोप हो और उसके ओनर की मौजूदा भूमिका, टीमें और प्लान उस रिक्वेस्ट की अनुमति दें — ठीक डैशबोर्ड की तरह।

स्कोपयह क्या अनुमति देता है
meआपकी अपनी प्रोफ़ाइल और आपका टाइमर
reports:readरिपोर्ट, टाइम एंट्री, अनुपस्थिति, शिफ़्ट, टीमें, प्रोजेक्ट, टास्क और एक्सपोर्ट पढ़ना
time:writeटाइम एंट्री, अनुपस्थिति, शिफ़्ट, टास्क और टास्क को असाइन किया गया समय जोड़ना और बदलना, और अनुरोधों पर फ़ैसला करना
org:adminसदस्यों, टीमों, आमंत्रणों और प्रोजेक्ट्स को मैनेज करना
webhooks:manageवेबहुक एंडपॉइंट मैनेज करना

रेट लिमिट

हर कुंजी प्रति मिनट 600 यूनिट भेज सकती है और एक संगठन अपनी सभी कुंजियों को मिलाकर 1,800। कुछ बदलने वाली रिक्वेस्ट (GET और HEAD के अलावा कुछ भी) दो यूनिट गिनी जाती है, बाकी हर रिक्वेस्ट एक। कोई कुंजी एक साथ अधिकतम 60 यूनिट भी भेज सकती है, जो 10 प्रति सेकंड की दर से फिर भरती हैं: एक झटके में 60 से ज़्यादा रीड (या 30 बदलाव) पर 429 मिलता है, भले ही प्रति मिनट 600 से कम हों।

हेडरमतलब
RateLimit: "key";r=598;t=2हर गिने गए जवाब पर: कुंजी के पास बची यूनिट और उनके पूरी तरह फिर से भरने तक के सेकंड
RateLimit-Policy: "key";q=600;w=60, "tenant";q=1800;w=60हर गिने गए जवाब पर: कुंजी और संगठन की प्रति मिनट सीमाएँ
Retry-After: 12429 (कोड rate_limited) के साथ: अगली रिक्वेस्ट से पहले इंतज़ार के सेकंड

एरर

एरर एक RFC 9457 प्रॉब्लम डॉक्यूमेंट (Content-Type: application/problem+json) होता है। code एक स्थिर snake_case कोड है जिसके आधार पर आप प्रोग्राम लिख सकते हैं; title लॉग के लिए अंग्रेज़ी टेक्स्ट है। type कोड का हेल्प पता है — https://workify360.com/help/errors/<code>/, जिसमें हर _ को - लिखा जाता है — और अगर उस कोड के लिए हेल्प आर्टिकल है, तो यह पता उसी आर्टिकल को खोलता है।

HTTP/1.1 403 Forbidden
Content-Type: application/problem+json

{
  "type": "https://workify360.com/help/errors/forbidden/",
  "title": "Forbidden",
  "status": 403,
  "code": "forbidden",
  "action": "webhooks.manage",
  "traceId": "4bf92f3577b34da6a3ce929d0e0e4736"
}

कुछ प्रॉब्लम में और फ़ील्ड होते हैं: errors (422 validation_failed के फ़ील्ड एरर), action (वह अनुमति जिसका 403 forbidden ज़िक्र करता है), requiredPlan (402 feature_not_in_plan), retryAfterSeconds (429 और 503) और traceId (सपोर्ट से संपर्क करते समय इसे बताएँ)।

स्टेटसकोडकब
400 invalid_request कोई पैरामीटर ग़लत फ़ॉर्मैट में है या गायब है
401 unauthorized कुंजी गायब, ग़लत, एक्सपायर या रद्द है, या उसका ओनर संगठन छोड़ चुका है
402 feature_not_in_plan, subscription_read_only प्लान में यह फ़ीचर शामिल नहीं है, या सब्सक्रिप्शन रीड-ओनली है
403 forbidden, feature_not_enabled कुंजी के पास स्कोप नहीं है, या उसके ओनर की मौजूदा भूमिका, टीमें या सेटिंग्स रिक्वेस्ट की अनुमति नहीं देतीं
412 version_conflict If-Match वर्ज़न अब मौजूदा नहीं है; रिसोर्स को फिर से पढ़ें
422 validation_failed बॉडी अमान्य है; errors फ़ील्ड की सूची देता है
428 precondition_required ऑपरेशन को आपके पढ़े गए वर्ज़न के साथ If-Match हेडर चाहिए
429 rate_limited बहुत ज़्यादा रिक्वेस्ट; Retry-After में दिए सेकंड तक इंतज़ार करें

जिन कोड का हेल्प आर्टिकल है, वे ऑपरेशन सूची में लिंक हैं।

वेबहुक

API से बार-बार पूछने के बजाय, कुछ बदलने पर आपका एक एंडपॉइंट साइन की गई HTTPS रिक्वेस्ट पा सकता है। इवेंट, रिक्वेस्ट फ़ॉर्मैट, Node.js और Python में सिग्नेचर कैसे वेरिफ़ाई करें, रीट्राई और सीक्रेट रोटेशन हेल्प आर्टिकल में समझाए गए हैं: वेबहुक

ऑपरेशन

क्षेत्र के अनुसार समूहित। सारांश और फ़ील्ड विवरण API कॉन्ट्रैक्ट से आते हैं।

अनुपस्थिति

GET /v1/absences स्कोप: reports:read

List absences overlapping a range.

पैरामीटर
नामकहाँटाइपविवरण
from क्वेरी string (date)
to क्वेरी string (date) At most 366 days after from.
userId क्वेरी string (uuid)
teamId क्वेरी string (uuid)
status क्वेरी string
typeId क्वेरी string (uuid)
cursor क्वेरी string
limit क्वेरी integer (int32)
रिस्पॉन्स
200 AbsencePage
एरर

POST /v1/absences स्कोप: time:write

Request (or record) an absence.

पैरामीटर
नामकहाँटाइपविवरण
Idempotency-Keyज़रूरी हेडर string Required: the same key and body return the first answer
रिक्वेस्ट बॉडी
AbsenceRequest
रिस्पॉन्स
201 AbsenceDto
एरर

POST /v1/absences/{id}/decision स्कोप: time:write

Approve or reject an absence (the G1 endpoint of the calendar).

पैरामीटर
नामकहाँटाइपविवरण
idज़रूरी पाथ string (uuid) Id
If-Matchज़रूरी हेडर string ETag of the resource ("v<n>"); missing: 428, stale: 412
रिक्वेस्ट बॉडी
CalendarDecisionRequest
रिस्पॉन्स
200 AbsenceDto
एरर

गतिविधि

GET /v1/activity/day स्कोप: reports:read

One user's local day (My Focus, the timeline): totals, productivity, attendance, day plan, slots, apps, time entries.

पैरामीटर
नामकहाँटाइपविवरण
date क्वेरी string (date) The user's local day (required).
userId क्वेरी string (uuid) Default: the caller; another user must be visible (else 403).
रिस्पॉन्स
200 ActivityDayDto
एरर

समय आवंटन

GET /v1/allocations स्कोप: reports:read

A person's allocations of a range of local days (the caller's, the people they manage, and the time on the projects they manage).

पैरामीटर
नामकहाँटाइपविवरण
userId क्वेरी string (uuid) Default: the caller.
from क्वेरी string (date) Local date, included.
to क्वेरी string (date) Local date, included; at most 93 days after from.
projectId क्वेरी string (uuid)
cursor क्वेरी string
limit क्वेरी integer (int32) 1–200 (default 200).
रिस्पॉन्स
200 AllocationPage
एरर

POST /v1/allocations स्कोप: time:write

Put time on a project: entered (manual) or tracked time assigned afterwards (assignment); for another person with allocations.write.

पैरामीटर
नामकहाँटाइपविवरण
Idempotency-Key हेडर string | null The same key and body return the first answer (a different body: 422 idempotency_key_reused)
रिक्वेस्ट बॉडी
AllocationCreateRequest
रिस्पॉन्स
201 AllocationCreatedDto
एरर

एक्सपोर्ट

POST /v1/exports स्कोप: reports:read

Request an export: the file is produced by a worker job with the requester's current role.

पैरामीटर
नामकहाँटाइपविवरण
Idempotency-Keyज़रूरी हेडर string Required: the same key and body return the first answer
रिक्वेस्ट बॉडी
CreateExportRequest
रिस्पॉन्स
202 ExportJobDto
एरर

GET /v1/exports/{id} स्कोप: reports:read

One export job (poll every 2 s).

पैरामीटर
नामकहाँटाइपविवरण
idज़रूरी पाथ string (uuid) Id
रिस्पॉन्स
200 ExportJobDto
एरर

मैं

GET /v1/me स्कोप: me

The signed-in person, their membership, organization, rights and session.

रिस्पॉन्स
200 MeDto
एरर

सदस्य

POST /v1/invitations स्कोप: org:admin

Invite a person.

पैरामीटर
नामकहाँटाइपविवरण
Idempotency-Keyज़रूरी हेडर string Required: 1–255 printable ASCII characters
रिक्वेस्ट बॉडी
CreateInvitation
रिस्पॉन्स
201 InvitationResult
एरर

GET /v1/members स्कोप: org:admin

List members.

पैरामीटर
नामकहाँटाइपविवरण
status क्वेरी string Comma-separated statuses (default active,invited,suspended)
teamId क्वेरी string (uuid) Primary team
role क्वेरी string owner, admin, team_admin, manager or employee
q क्वेरी string Part of the name or e-mail (Turkish case folding)
cursor क्वेरी string Opaque cursor of the next page
limit क्वेरी integer (int32) 1–200, default 50
रिस्पॉन्स
200 MemberPage
एरर
  • 403 No right

GET /v1/members/{id} स्कोप: org:admin

One member.

पैरामीटर
नामकहाँटाइपविवरण
idज़रूरी पाथ string (uuid) Membership id
रिस्पॉन्स
200 MemberDto
एरर
  • 404 member_not_found

PATCH /v1/members/{id} स्कोप: org:admin

Change a member's role, team, viewer teams, zone or tracking.

पैरामीटर
नामकहाँटाइपविवरण
idज़रूरी पाथ string (uuid) Membership id
If-Matchज़रूरी हेडर string ETag of the member ("v<n>")
रिक्वेस्ट बॉडी
PatchMember
रिस्पॉन्स
200 MemberDto
एरर

POST /v1/members/{id}/reactivate स्कोप: org:admin

Reactivate a suspended member.

पैरामीटर
नामकहाँटाइपविवरण
idज़रूरी पाथ string (uuid) Membership id
रिस्पॉन्स
200 MemberDto

POST /v1/members/{id}/suspend स्कोप: org:admin

Suspend a member: the membership is suspended and every session of it in this organization ends.

पैरामीटर
नामकहाँटाइपविवरण
idज़रूरी पाथ string (uuid) Membership id
रिस्पॉन्स
200 MemberDto
एरर
  • 409 conflict (an invitation is revoked instead)

प्रोजेक्ट

GET /v1/projects स्कोप: reports:read

The projects the caller sees (Owners and Admins: all; others: open ones, their teams and, read only, the projects of the people they manage).

पैरामीटर
नामकहाँटाइपविवरण
status क्वेरी string active, on_hold or completed.
clientId क्वेरी string (uuid)
q क्वेरी string Name or code search (case-insensitive).
includeArchived क्वेरी boolean
mine क्वेरी boolean Only the projects the caller may track time on.
cursor क्वेरी string
limit क्वेरी integer (int32) 1–200 (default 50).
रिस्पॉन्स
200 ProjectPage
एरर

POST /v1/projects स्कोप: org:admin

Add a project (Owners and Admins).

पैरामीटर
नामकहाँटाइपविवरण
Idempotency-Key हेडर string | null The same key and body return the first answer (a different body: 422 idempotency_key_reused)
रिक्वेस्ट बॉडी
ProjectRequest
रिस्पॉन्स
201 ProjectDto
एरर

GET /v1/projects/{id} स्कोप: reports:read

One project (invisible projects are 404).

पैरामीटर
नामकहाँटाइपविवरण
idज़रूरी पाथ string (uuid) Project id
रिस्पॉन्स
200 ProjectDto
एरर

PUT /v1/projects/{id} स्कोप: org:admin

Change a project (Owners and Admins; the whole body).

पैरामीटर
नामकहाँटाइपविवरण
idज़रूरी पाथ string (uuid) Project id
If-Matchज़रूरी हेडर string The ETag the caller read (412 version_conflict when it changed)
रिक्वेस्ट बॉडी
ProjectRequest
रिस्पॉन्स
200 ProjectDto
एरर

रिपोर्ट

GET /v1/reports/productivity स्कोप: reports:read

Productivity by day, week, month or range for the company, a team or a user.

पैरामीटर
नामकहाँटाइपविवरण
from क्वेरी string (date)
to क्वेरी string (date) day 93 days, week, month and range 366.
groupBy क्वेरी string day, week, month or range.
teamId क्वेरी string (uuid)
userId क्वेरी string (uuid)
रिस्पॉन्स
200 PeriodReportDto
एरर

GET /v1/reports/projects स्कोप: reports:read

Allocated time, billable time and the rate-layered amounts (Owners and Admins) of projects in a range, grouped by one or two of project, task, user, client and day, with the projects' budget use.

पैरामीटर
नामकहाँटाइपविवरण
from क्वेरी string (date) Local date, included.
to क्वेरी string (date) Local date, included; at most 366 days after from.
groupBy क्वेरी string One or two of project (default), task, user, client, day, comma separated.
projectIds क्वेरी string Comma-separated project ids.
clientId क्वेरी string (uuid)
userIds क्वेरी string Comma-separated user ids (visible people only).
teamId क्वेरी string (uuid)
billable क्वेरी string all (default), billable or nonBillable.
includeProductive क्वेरी boolean Also compute the productive time within the allocations (costly; default false).
रिस्पॉन्स
200 ProjectReportDto
एरर

GET /v1/reports/summary स्कोप: reports:read

The summary of the visible users over a range.

पैरामीटर
नामकहाँटाइपविवरण
from क्वेरी string (date)
to क्वेरी string (date) At most 93 days after from.
teamId क्वेरी string (uuid) Only the team's current members; the team must be visible (else 403).
रिस्पॉन्स
200 SummaryDto
एरर

GET /v1/reports/targets स्कोप: reports:read

The apps, domains or hosts of the visible users over a range (Apps & URLs).

पैरामीटर
नामकहाँटाइपविवरण
from क्वेरी string (date)
to क्वेरी string (date)
type क्वेरी string app, domain or host.
teamId क्वेरी string (uuid)
userId क्वेरी string (uuid)
q क्वेरी string Search in the key and the name (.NET search).
level क्वेरी string productive, unproductive or neutral.
categoryKey क्वेरी string
unclassified क्वेरी boolean Only targets without a category.
cursor क्वेरी string
limit क्वेरी integer (int32) 1–200, default 50.
रिस्पॉन्स
200 TargetListDto
एरर

GET /v1/reports/users/{userId}/daily स्कोप: reports:read

A user's days of a range (computed days and the workdays without activity).

पैरामीटर
नामकहाँटाइपविवरण
userIdज़रूरी पाथ string (uuid) User
from क्वेरी string (date)
to क्वेरी string (date) At most 93 days after from.
रिस्पॉन्स
200 UserDailyDto
एरर

शिफ़्ट

GET /v1/shifts स्कोप: reports:read

List the shifts starting in a range.

पैरामीटर
नामकहाँटाइपविवरण
from क्वेरी string (date)
to क्वेरी string (date)
teamId क्वेरी string (uuid)
userId क्वेरी string (uuid)
includeOpen क्वेरी boolean Also open shifts (default true).
रिस्पॉन्स
200 ShiftListDto
एरर

POST /v1/shifts स्कोप: time:write

Create a shift (assigned or open).

पैरामीटर
नामकहाँटाइपविवरण
Idempotency-Keyज़रूरी हेडर string Required: the same key and body return the first answer
रिक्वेस्ट बॉडी
ShiftBody
रिस्पॉन्स
201 ShiftDto
एरर

टास्क

GET /v1/projects/{id}/tasks स्कोप: reports:read

A visible project's tasks, by sort order.

पैरामीटर
नामकहाँटाइपविवरण
idज़रूरी पाथ string (uuid) Project id
status क्वेरी string open, in_progress or done.
assigneeUserId क्वेरी string (uuid)
includeArchived क्वेरी boolean
cursor क्वेरी string
limit क्वेरी integer (int32) 1–500 (default 200).
रिस्पॉन्स
200 TaskPage
एरर

POST /v1/projects/{id}/tasks स्कोप: time:write

Add a task (an Admin or the project's manager).

पैरामीटर
नामकहाँटाइपविवरण
idज़रूरी पाथ string (uuid) Project id
Idempotency-Key हेडर string | null The same key and body return the first answer (a different body: 422 idempotency_key_reused)
रिक्वेस्ट बॉडी
TaskRequest
रिस्पॉन्स
201 TaskDto
एरर

GET /v1/tasks/{id} स्कोप: reports:read

One task of a visible project.

पैरामीटर
नामकहाँटाइपविवरण
idज़रूरी पाथ string (uuid) Task id
रिस्पॉन्स
200 TaskDto
एरर

PUT /v1/tasks/{id} स्कोप: time:write

Change a task (the whole body).

पैरामीटर
नामकहाँटाइपविवरण
idज़रूरी पाथ string (uuid) Task id
If-Matchज़रूरी हेडर string The ETag the caller read (412 version_conflict when it changed)
रिक्वेस्ट बॉडी
TaskRequest
रिस्पॉन्स
200 TaskDto
एरर

टीमें

GET /v1/teams स्कोप: reports:read

List teams.

पैरामीटर
नामकहाँटाइपविवरण
includeArchived क्वेरी boolean Also archived teams (default false)
cursor क्वेरी string Opaque cursor of the next page
limit क्वेरी integer (int32) 1–200, default 50
रिस्पॉन्स
200 TeamPage

POST /v1/teams स्कोप: org:admin

Create a team (the G1 endpoint).

रिक्वेस्ट बॉडी
CreateTeam
रिस्पॉन्स
201 TeamDto
एरर
  • 403 forbidden (action teams.create)
  • 409 team_name_taken

PATCH /v1/teams/{id} स्कोप: org:admin

Rename a team or change its description.

पैरामीटर
नामकहाँटाइपविवरण
idज़रूरी पाथ string (uuid) Team id
If-Matchज़रूरी हेडर string ETag of the team
रिक्वेस्ट बॉडी
PatchTeam
रिस्पॉन्स
200 TeamDto
एरर
  • 409 team_name_taken

टाइम एंट्री

GET /v1/time-entries स्कोप: reports:read

List a user's time entries of a range (by start).

पैरामीटर
नामकहाँटाइपविवरण
userId क्वेरी string (uuid) Default: the caller.
from क्वेरी string (date) The entry's local day, required.
to क्वेरी string (date) At most 93 days after from.
kind क्वेरी string offline or deletion.
status क्वेरी string pending, approved or rejected.
cursor क्वेरी string
limit क्वेरी integer (int32) 1–500.
रिस्पॉन्स
200 TimeEntryPage
एरर

POST /v1/time-entries स्कोप: time:write

Add offline time or a deletion (for oneself, or for a user one manages: TimeEntryPolicy in the handler).

पैरामीटर
नामकहाँटाइपविवरण
Idempotency-Keyज़रूरी हेडर string Required: the same key and body return the first answer
रिक्वेस्ट बॉडी
CreateTimeEntryRequest
रिस्पॉन्स
201 TimeEntryDto
एरर

GET /v1/time-entries/{id} स्कोप: reports:read

One time entry (invisible, missing and other tenants' entries are all 404).

पैरामीटर
नामकहाँटाइपविवरण
idज़रूरी पाथ string (uuid) Entry id
रिस्पॉन्स
200 TimeEntryDto
एरर

PUT /v1/time-entries/{id} स्कोप: time:write

Replace an entry's editable fields.

पैरामीटर
नामकहाँटाइपविवरण
idज़रूरी पाथ string (uuid) Entry id
If-Matchज़रूरी हेडर string ETag of the resource ("v<n>"); missing: 428, stale: 412
रिक्वेस्ट बॉडी
UpdateTimeEntryRequest
रिस्पॉन्स
200 TimeEntryDto
एरर

DELETE /v1/time-entries/{id} स्कोप: time:write

Delete an entry (deleting a deletion restores the tracked time).

पैरामीटर
नामकहाँटाइपविवरण
idज़रूरी पाथ string (uuid) Entry id
If-Matchज़रूरी हेडर string ETag of the resource ("v<n>"); missing: 428, stale: 412
रिस्पॉन्स
204 (कोई बॉडी नहीं)
एरर

POST /v1/time-entries/{id}/decision स्कोप: time:write

Approve or reject a pending offline entry (the G1 endpoint of the time module).

पैरामीटर
नामकहाँटाइपविवरण
idज़रूरी पाथ string (uuid) Entry id
If-Matchज़रूरी हेडर string ETag of the resource ("v<n>"); missing: 428, stale: 412
रिक्वेस्ट बॉडी
TimeEntryDecisionRequest
रिस्पॉन्स
200 TimeEntryDto
एरर

टाइमर

GET /v1/me/timer स्कोप: me

The caller's timer (a segment due after 24 hours is stopped first).

पैरामीटर
नामकहाँटाइपविवरण
If-None-Match हेडर string | null The ETag the caller holds (304 when unchanged)
रिस्पॉन्स
200 TimerDto · 304 (कोई बॉडी नहीं)
एरर

POST /v1/me/timer/start स्कोप: me

Start the timer, or switch the running one to another project or task, at at (the client's clock).

पैरामीटर
नामकहाँटाइपविवरण
Idempotency-Key हेडर string | null The client's command id; a retry returns the first answer
रिक्वेस्ट बॉडी
TimerStartRequest
रिस्पॉन्स
200 TimerCommandResultDto
एरर

POST /v1/me/timer/stop स्कोप: me

Stop the running timer at at; its segment becomes allocations.

पैरामीटर
नामकहाँटाइपविवरण
Idempotency-Key हेडर string | null The client's command id; a retry returns the first answer
रिक्वेस्ट बॉडी
TimerAtRequest
रिस्पॉन्स
200 TimerCommandResultDto
एरर

वेबहुक

POST /v1/webhook-endpoints स्कोप: webhooks:manage

Add a webhook endpoint (its signing secret is in this answer only; no Idempotency-Key: the answer holds a secret).

रिक्वेस्ट बॉडी
CreateWebhookEndpointRequest
रिस्पॉन्स
201 CreatedWebhookEndpointDto
एरर

GET /v1/webhook-endpoints/{id} स्कोप: webhooks:manage

One webhook endpoint.

पैरामीटर
नामकहाँटाइपविवरण
idज़रूरी पाथ string (uuid) The endpoint
रिस्पॉन्स
200 WebhookEndpointDto
एरर

PATCH /v1/webhook-endpoints/{id} स्कोप: webhooks:manage

Change an endpoint: URL, description, events, pause or resume (active also opens a disabled endpoint), take it over.

पैरामीटर
नामकहाँटाइपविवरण
idज़रूरी पाथ string (uuid) The endpoint
If-Matchज़रूरी हेडर string The endpoint's ETag ("v<n>")
रिक्वेस्ट बॉडी
UpdateWebhookEndpointRequest
रिस्पॉन्स
200 WebhookEndpointDto
एरर

DELETE /v1/webhook-endpoints/{id} स्कोप: webhooks:manage

Delete an endpoint and its deliveries.

पैरामीटर
नामकहाँटाइपविवरण
idज़रूरी पाथ string (uuid) The endpoint
रिस्पॉन्स
204 (कोई बॉडी नहीं)
एरर

GET /v1/webhook-endpoints/{id}/deliveries स्कोप: webhooks:manage

The deliveries of an endpoint, newest first.

पैरामीटर
नामकहाँटाइपविवरण
idज़रूरी पाथ string (uuid) The endpoint
status क्वेरी string pending, succeeded, failed, dead.
eventType क्वेरी string
cursor क्वेरी string Opaque cursor of the next page.
limit क्वेरी integer (int32) 1–200, default 50.
रिस्पॉन्स
200 WebhookDeliveryPage
एरर

GET /v1/webhook-endpoints/{id}/deliveries/{deliveryId} स्कोप: webhooks:manage

One delivery with the body that was sent.

पैरामीटर
नामकहाँटाइपविवरण
idज़रूरी पाथ string (uuid) The endpoint
deliveryIdज़रूरी पाथ string The delivery (a 64-bit integer)
रिस्पॉन्स
200 WebhookDeliveryDetailDto
एरर

POST /v1/webhook-endpoints/{id}/deliveries/{deliveryId}/retry स्कोप: webhooks:manage

Queue a failed or dead delivery again (attempts start over).

पैरामीटर
नामकहाँटाइपविवरण
idज़रूरी पाथ string (uuid) The endpoint
deliveryIdज़रूरी पाथ string The delivery (a 64-bit integer)
रिस्पॉन्स
202 AcceptedDto
एरर

POST /v1/webhook-endpoints/{id}/rotate-secret स्कोप: webhooks:manage

A new signing secret (the previous one still signs for 24 hours).

पैरामीटर
नामकहाँटाइपविवरण
idज़रूरी पाथ string (uuid) The endpoint
रिस्पॉन्स
200 RotatedWebhookSecretDto
एरर

POST /v1/webhook-endpoints/{id}/test स्कोप: webhooks:manage

Send the webhook.test event (also to a paused endpoint).

पैरामीटर
नामकहाँटाइपविवरण
idज़रूरी पाथ string (uuid) The endpoint
रिस्पॉन्स
202 WebhookTestDto
एरर

स्कीमा

ऑपरेशनों द्वारा इस्तेमाल की जाने वाली रिक्वेस्ट और रिस्पॉन्स बॉडी। ज़रूरी फ़ील्ड चिह्नित हैं।

AbsenceDto

An absence.

फ़ील्डटाइपविवरण
createdAtज़रूरी string (date-time)
createdByज़रूरी CalendarUserRefDto
daysज़रूरी number (double) Σ deductionByYear; for types that do not deduct, the planned workdays (information only).
decidedAt string (date-time) | null
decidedBy CalendarUserRefDto | null
decisionNote string | null
deductionByYearज़रूरी object The balance deduction per year, e.g. {"2026": 3.5}; empty for types that do not deduct.
endज़रूरी string (date-time)
endDateज़रूरी string (date)
endTime string | null
half string | null
idज़रूरी string (uuid)
note string | null
permissionsज़रूरी AbsencePermissionsDto
startज़रूरी string (date-time) UTC coverage start.
startDateज़रूरी string (date)
startTime string | null
statusज़रूरी string
timeZoneज़रूरी string
typeज़रूरी AbsenceTypeRefDto
unitज़रूरी string
updatedAtज़रूरी string (date-time)
userज़रूरी CalendarPersonDto
userIdज़रूरी string (uuid)

AbsencePage

GET /v1/absences.

फ़ील्डटाइपविवरण
itemsज़रूरी AbsenceDto[]
nextCursor string | null

AbsencePermissionsDto

फ़ील्डटाइपविवरण
canApproveज़रूरी boolean
canCancelज़रूरी boolean
canEditज़रूरी boolean

AbsenceRequest

POST /v1/absences, PUT /v1/absences/{id} (the user never changes).

फ़ील्डटाइपविवरण
endDate string (date) | null
endTime string | null
half string | null am or pm for a half day.
note string | null
startDate string (date) | null
startTime string | null Local HH:mm for hours.
typeId string (uuid) | null
unit string | null days, half_day or hours.
userId string (uuid) | null null = the caller.

AbsenceTypeRefDto

The absence's type as the absence shows it; name translated for a built-in type that was not renamed.

फ़ील्डटाइपविवरण
colorज़रूरी string
countsAsWorkedज़रूरी boolean
deductsFromBalanceज़रूरी boolean
idज़रूरी string (uuid)
key string | null
nameज़रूरी string
paidज़रूरी boolean
timeEffectज़रूरी string

AcceptedDto

202 Accepted of a queued job.

फ़ील्डटाइपविवरण
acceptedज़रूरी boolean Always true.

AccessDto

What the person may see and manage (FAZ1 AccessDto; focus_contracts::access::policy).

फ़ील्डटाइपविवरण
assignableRolesज़रूरी string[]
canManageCompanySettingsज़रूरी boolean
canManageTeamsज़रूरी boolean
canManageUsersज़रूरी boolean
manageTeamIdsज़रूरी string[]
scopeज़रूरी string company, teams or self.
unassignedFallbackज़रूरी boolean
viewTeamIdsज़रूरी string[]

ActivityDayDto

One user's local day. A day without activity is a 200 with zero totals, null arrival/leave and empty lists.

फ़ील्डटाइपविवरण
absenceCreditMsज़रूरी integer (int64) A worked absence tops the worked time up to the expected work.
activeMsज़रूरी integer (int64) Window time ∩ not AFK (computer time only).
afkCoverageज़रूरी boolean False when no device reported AFK data (idle unknown).
appsज़रूरी AppUsageDto[] Daily totals, largest first.
arrivalAt string (date-time) | null
atWorkMsज़रूरी integer (int64)
attendance DayAttendanceDto | null
categoriesज़रूरी CategoryUsageDto[] Active time per category (null key = uncategorized); offline time is in no category.
classifiedज़रूरी boolean False for a day written before the Phase 2 classification (all neutral).
dateज़रूरी string (date)
dayEndज़रूरी string (date-time)
dayStartज़रूरी string (date-time) The day's window: local midnight, or the end of the previous day's night shift window.
deletedMsज़रूरी integer (int64) Tracked time removed by approved deletions (part of idle).
domainsज़रूरी DomainUsageDto[]
hostsज़रूरी HostUsageDto[] Hosts with a URL, at most 50, largest first.
idleMsज़रूरी integer (int64)
leftAt string (date-time) | null
meetingMsज़रूरी integer (int64) Active time the meeting apps exception turned from idle into active.
offlineMsज़रूरी integer (int64) Approved offline time outside the tracked active time.
pendingOfflineMsज़रूरी integer (int64) Pending offline entries of the day (information only).
plan DayPlanDto | null
privateIntervalsज़रूरी TimeIntervalDto[] Private intervals of the day, merged and clipped, without detail.
privateMsज़रूरी integer (int64) Private time outside active and offline time.
productivityज़रूरी DayProductivityDto
recomputingज़रूरी boolean The day waits in the recompute queue (the UI refetches every 15 s).
slotsज़रूरी ActivitySlotDto[] One entry per 5-minute UTC slot with activity, by time.
teamId string (uuid) | null The user's current primary team (its rules classify the day).
timeEntriesज़रूरी TimeEntryDto[] Offline and deletion entries of every status overlapping the day's window, by start; the caller's permissions.
timeZoneज़रूरी string The zone the day was computed in; the UI draws slots at their wall-clock time in it.
userIdज़रूरी string (uuid)
workedMsज़रूरी integer (int64) activeMs + offlineMs: the denominator of productivity.productivityPct.

ActivitySlotDto

Time in one 5-minute slot; activeMs includes approved offline time (offlineMs).

फ़ील्डटाइपविवरण
activeMsज़रूरी integer (int64)
appsज़रूरी AppUsageDto[]
neutralMsज़रूरी integer (int64)
offlineMsज़रूरी integer (int64)
productiveMsज़रूरी integer (int64)
slotStartज़रूरी string (date-time)
unproductiveMsज़रूरी integer (int64)

AffectedAllocationDto

An allocation replace changed.

फ़ील्डटाइपविवरण
changeज़रूरी string trimmed, split or deleted.
idज़रूरी string (uuid)

AllocationCreateRequest

POST /v1/allocations (Idempotency-Key).

फ़ील्डटाइपविवरण
endedAt string (date-time) | null At most 24 hours after startedAt, at most 5 minutes in the future.
isBillable boolean | null
note string | null
projectId string (uuid) | null
replace boolean | null Trim, split or delete the person's (unbilled) allocations it overlaps; otherwise an overlap is 409 allocation_overlaps.
source string | null manual or assignment (timer only through the timer).
startedAt string (date-time) | null
taskId string (uuid) | null
userId string (uuid) | null null = the caller; another person needs allocations.write and to be managed by the caller.

AllocationCreatedDto

POST /v1/allocations → 201.

फ़ील्डटाइपविवरण
affectedज़रूरी AffectedAllocationDto[]
allocationज़रूरी AllocationDto

AllocationDto

Time on a project.

फ़ील्डटाइपविवरण
createdAtज़रूरी string (date-time)
createdByज़रूरी NamedRefDto
durationMsज़रूरी integer (int64)
effectiveBillableज़रूरी boolean
endedAtज़रूरी string (date-time)
idज़रूरी string (uuid)
invoiceId string (uuid) | null Set once the time is on an invoice.
isBillable boolean | null null takes the task's, then the project's value.
localDateज़रूरी string (date) The start's day in the person's zone (rates, reports).
note string | null
permissionsज़रूरी AllocationPermissionsDto
projectज़रूरी ProjectRefDto
sourceज़रूरी string timer, manual or assignment.
startedAtज़रूरी string (date-time)
task NamedRefDto | null
timeZoneज़रूरी string
updatedAtज़रूरी string (date-time)
userIdज़रूरी string (uuid)
versionज़रूरी integer (int64) The row version: If-Match: "v<version>" of a change (the same value as the resource's ETag).

AllocationPage

GET /v1/allocations.

फ़ील्डटाइपविवरण
itemsज़रूरी AllocationDto[]
nextCursor string | null

AllocationPermissionsDto

What the caller may do with an allocation (a billed one is locked).

फ़ील्डटाइपविवरण
deleteज़रूरी boolean
editज़रूरी boolean

AppTotalDto

फ़ील्डटाइपविवरण
activeMsज़रूरी integer (int64)
appKeyज़रूरी string
categoryKey string | null
level string | null Level in the response's levelContext.
nameज़रूरी string
percentageज़रूरी number (double) Share of the range's worked time (0–100, one decimal).

AppUsageDto

An app's time; offline rows use the reserved keys _offline_<level> with name: "Offline time" and levelSource: "offline".

फ़ील्डटाइपविवरण
activeMsज़रूरी integer (int64)
appKeyज़रूरी string
categoryKey string | null
level string | null The app's own rule (productive, unproductive, neutral).
levelSource string | null team, company, default or offline.
nameज़रूरी string

BudgetDto

A project's budget: hours (minutes) or an amount in the project's currency (amountMinor).

फ़ील्डटाइपविवरण
amountMinor integer (int64) | null
kind string | null hours or amount.
minutes integer (int64) | null

BudgetRequest

The budget of a project request (kind hours with minutes, or amount with amountMinor).

फ़ील्डटाइपविवरण
amountMinor integer (int64) | null
kind string | null
minutes integer (int64) | null

CalendarDecisionRequest

{decision, note?} of the decision endpoints (approve or reject; the note at most 500 characters).

फ़ील्डटाइपविवरण
decision string | null
note string | null

CalendarPersonDto

A user with the current team.

फ़ील्डटाइपविवरण
fullName string | null
idज़रूरी string (uuid)
teamId string (uuid) | null
teamName string | null

CalendarUserRefDto

A user reference (names from the directory; null when unknown).

फ़ील्डटाइपविवरण
fullName string | null
idज़रूरी string (uuid)

CapabilitiesDto

Subscription capabilities.

फ़ील्डटाइपविवरण
featuresज़रूरी string[]
readOnlyज़रूरी boolean

CategoryUsageDto

फ़ील्डटाइपविवरण
activeMsज़रूरी integer (int64)
categoryKey string | null null = uncategorized.

CreateExportRequest

POST /v1/exports: definition is the full definition the dialog shows; without it the saved template (templateId) or the built-in one (templateKey) gives it.

फ़ील्डटाइपविवरण
definition ExportDefinitionDto | null
from string (date) | null
locale string | null tr or en.
templateId string (uuid) | null
templateKey string | null
to string (date) | null

CreateInvitation

POST /v1/invitations.

फ़ील्डटाइपविवरण
emailज़रूरी string
fullNameज़रूरी string
locale string | null Language of the e-mail and the acceptance page (tr, en); the organization's default otherwise.
roleज़रूरी string admin, team_admin, manager or employee.
teamId string (uuid) | null
timeZone string | null
viewerTeamIds string (uuid)[]

CreateTeam

POST /v1/teams.

फ़ील्डटाइपविवरण
description string | null At most 500 characters.
nameज़रूरी string 1–100 characters, unique among active teams (Turkish case folding).

CreateTimeEntryRequest

POST /v1/time-entries (the .NET CreateTimeEntryRequest).

फ़ील्डटाइपविवरण
description string | null Offline: 1–500 characters; deletion: optional reason (at most 500).
end string (date-time) | null
kind string | null offline or deletion.
level string | null Offline only (default productive).
projectId string (uuid) | null Must be null (400 project_not_supported).
start string (date-time) | null
userId string (uuid) | null null = the caller; a manager may add time for a user it manages.

CreateWebhookEndpointRequest

POST /v1/webhook-endpoints.

फ़ील्डटाइपविवरण
description string | null ≤ 200 characters.
eventTypesज़रूरी string[] 1–50 catalog event types of the tenant's plan.
urlज़रूरी string https://… (≤ 2048; no user info, no fragment; every resolved address public).

CreatedWebhookEndpointDto

CreatedWebhookEndpointDto: the endpoint and its signing secret, shown once.

फ़ील्डटाइपविवरण
endpointज़रूरी WebhookEndpointDto
secretज़रूरी string whsec_<base64>: shown once, never again.

DailyHolidayDto

A holiday of a daily report day.

फ़ील्डटाइपविवरण
half string | null
keyज़रूरी string
nameज़रूरी string English name; nameTr is the Turkish one.
nameTrज़रूरी string

DayAbsenceDto

The dominant absence of a day (/v1/reports/users/{userId}/daily days[].absence).

फ़ील्डटाइपविवरण
colorज़रूरी string
fractionज़रूरी number (double) The day's approved absence coverage (0–1).
half string | null
typeKey string | null
typeName string | null
unitज़रूरी string

DayAttendanceDto

Attendance of the day on the day plan.

फ़ील्डटाइपविवरण
expectedEnd string (date-time) | null
expectedStart string (date-time) | null
flexibleज़रूरी boolean
lateByMsज़रूरी integer (int64)
lateToleranceMinutesज़रूरी integer (int32)
leftEarlyज़रूरी boolean
leftEarlyByMsज़रूरी integer (int64)
statusज़रूरी string onTime, late, absent, notStarted, dayOff, onLeave, holiday.
targetMsज़रूरी integer (int64) The plan's target (the Effectiveness % denominator).
workdayज़रूरी boolean

DayPlanDto

The day plan of one user's day.

फ़ील्डटाइपविवरण
absencesज़रूरी PlanAbsenceDto[] Approved and pending absences covering the day (only approved ones change the numbers).
expectedEnd string (date-time) | null
expectedStart string (date-time) | null
expectedWorkMsज़रूरी integer (int64) Overtime target (base × (1 − fLeave)).
holiday HolidayRefDto | null
kindज़रूरी string schedule, shift, dayOff or holiday.
leaveFractionज़रूरी number (double) The approved absence coverage f (0–1).
shiftsज़रूरी PlanShiftDto[] Shifts starting on the day, by start.
targetMsज़रूरी integer (int64) Effectiveness % denominator (base × (1 − f)).
workdayज़रूरी boolean

DayProductivityDto

A day's time by productivity level (productive + unproductive + neutral = workedMs).

फ़ील्डटाइपविवरण
effectivenessPct number (double) | null productive ÷ target × 100 (not capped); null without a target.
neutralMsज़रूरी integer (int64)
productiveMsज़रूरी integer (int64)
productivityPct number (double) | null productive ÷ worked × 100, one decimal; null without worked time.
targetMsज़रूरी integer (int64)
unproductiveMsज़रूरी integer (int64)

DayTotalDto

One local day of a summary.

फ़ील्डटाइपविवरण
activeMsज़रूरी integer (int64)
activeUserCountज़रूरी integer (int32)
atWorkMsज़रूरी integer (int64)
dateज़रूरी string (date)
idleMsज़रूरी integer (int64)
neutralMsज़रूरी integer (int64)
offlineMsज़रूरी integer (int64)
privateMsज़रूरी integer (int64)
productiveMsज़रूरी integer (int64)
productivityPct number (double) | null
unproductiveMsज़रूरी integer (int64)

DomainTotalDto

फ़ील्डटाइपविवरण
activeMsज़रूरी integer (int64)
categoryKey string | null
domainज़रूरी string
level string | null
percentageज़रूरी number (double)

DomainUsageDto

फ़ील्डटाइपविवरण
activeMsज़रूरी integer (int64)
categoryKey string | null
domainज़रूरी string
level string | null
levelSource string | null

EmailVerificationDto

Where the person stands with the e-mail verification (owner decision 3 Oct 2026, focus_auth::email_gate).

फ़ील्डटाइपविवरण
dueAt string (date-time) | null The deadline of an unverified account (Identity__EmailVerificationGraceHours after its creation).
stateज़रूरी string verified, not_required (an account that never has to verify: invited, imported, SCIM, IdP-verified), pending (unverified, before dueAt) or overdue (after dueAt: every request but a few answers 403 email_verification_required).

ExportDefinitionDto

What an export contains (FAZ4 §6.1; focus_contracts::reports::export::ExportDefinition on the wire); a saved template stores it without the date range. Every field is optional so that the validator reports what is wrong (422 validation_failed with errors[{field, code}]).

फ़ील्डटाइपविवरण
columns string[] | null Column keys of the dataset in file order (1–40; a PDF at most 12).
csvDialect string | null standard (default) or excel-tr (csv only).
dataset string | null
durationFormat string | null hms (default), hours or minutes.
filters ExportFiltersDto | null
format string | null xlsx, csv or pdf.
groupBy string | null day, week, month, range or none (the dataset decides).
options ExportOptionsDto | null

ExportFiltersDto

Who is exported: a team, some users, or (neither) everyone the requester can see.

फ़ील्डटाइपविवरण
includeInactiveUsers boolean
teamId string | null
userIds string | null[] | null

ExportJobDto

An export job as the panel lists and polls it.

फ़ील्डटाइपविवरण
createdAtज़रूरी string (date-time)
datasetज़रूरी string
errorCode string | null too_many_rows, too_many_rows_for_pdf, access_lost, feature_not_in_plan, canceled, internal_error.
expiresAt string (date-time) | null
fileName string | null
fileSize integer (int64) | null
finishedAt string (date-time) | null
formatज़रूरी string
fromज़रूरी string (date)
groupBy string | null
idज़रूरी string (uuid)
localeज़रूरी string
progressज़रूरी integer (int32) 0–100.
rowCount integer (int32) | null
startedAt string (date-time) | null
statusज़रूरी string queued, running, succeeded, failed, canceled, expired.
templateId string (uuid) | null
templateKey string | null
templateName string | null The saved template's name, while it still exists.
toज़रूरी string (date)

ExportOptionsDto

Dataset options; each applies to one dataset and is ignored by the others.

फ़ील्डटाइपविवरण
include string | null titles: titles, urls or both (default).
includeCosts boolean | null projects (Faz 6): fill the rate, amount and currency columns (needs projects.costs.read, else 403).
includeOpen boolean | null shifts: also open shifts.
splitByUser boolean | null applications: one row per user and target.
statuses string | null[] | null offline_time / absence: status filter (default approved).
targetType string | null applications: app (default), domain or host.

FieldError

One field error of a 400/422 body.

फ़ील्डटाइपविवरण
codeज़रूरी string Stable snake_case code (required, too_long, invalid, ...).
fieldज़रूरी string JSON path of the field in camelCase (name, items[2].start), or the parameter/header name.
message string | null

HolidayRefDto

A holiday of a day (both names; name is the English one).

फ़ील्डटाइपविवरण
half string | null
keyज़रूरी string Built-in key (republic_day, …) or custom.
nameज़रूरी string
nameEnज़रूरी string
nameTrज़रूरी string
source string | null builtin or tenant.

HostUsageDto

फ़ील्डटाइपविवरण
activeMsज़रूरी integer (int64)
domain string | null
hostज़रूरी string
levelज़रूरी string
levelSourceज़रूरी string
matchedKey string | null Key of the matching domain rule; null for the default.

InvitationEmail

What happened to the invitation e-mail.

फ़ील्डटाइपविवरण
acceptUrl string | null The acceptance link, only when no e-mail is sent (not_configured, suppressed_reserved) and only in the fresh answer (share it by hand).
statusज़रूरी string queued; not_configured when no e-mail provider is set up; suppressed_reserved when the address is an RFC 2606 / RFC 6761 reserved name (example.com, *.test, …) that is never e-mailed. Clients treat suppressed_reserved like not_configured: nothing arrives, share acceptUrl by hand.

InvitationRef

{"id","expiresAt"} of a created or re-sent invitation.

फ़ील्डटाइपविवरण
expiresAtज़रूरी string
idज़रूरी string (uuid)

InvitationResult

The answer of POST /v1/invitations and POST /v1/invitations/{id}/resend.

फ़ील्डटाइपविवरण
emailज़रूरी InvitationEmail
invitationज़रूरी InvitationRef
memberज़रूरी MemberDto

LevelContextDto

Which rules the single level of an aggregate list follows (FAZ2 §5 "Listelerde hangi kural").

फ़ील्डटाइपविवरण
kindज़रूरी string user (a userId filter: that user's current team), team (a teamId filter) or company.
teamId string (uuid) | null

MeDto

GET /v1/me.

फ़ील्डटाइपविवरण
accessज़रूरी AccessDto
capabilitiesज़रूरी CapabilitiesDto
effectiveTimeZoneज़रूरी string
membershipज़रूरी MeMembership
organizationज़रूरी MeOrganization
organizationsज़रूरी OrganizationChoice[]
session MeSession | null
userज़रूरी MeUser

MeMembership

The membership in the current organization.

फ़ील्डटाइपविवरण
idज़रूरी string (uuid)
isTrackedज़रूरी boolean
joinedAt string | null
roleज़रूरी string
statusज़रूरी string
teamId string (uuid) | null
teamName string | null
timeZone string | null
viewerTeamIdsज़रूरी string (uuid)[]

MeOrganization

The current organization.

फ़ील्डटाइपविवरण
defaultLocaleज़रूरी string
idज़रूरी string (uuid)
nameज़रूरी string
slugज़रूरी string
statusज़रूरी string
timeZoneज़रूरी string

MeSession

The current session.

फ़ील्डटाइपविवरण
absoluteExpiresAtज़रूरी string
amrज़रूरी string[]
authTimeज़रूरी string
clientIdज़रूरी string
idज़रूरी string (uuid)
idleExpiresAtज़रूरी string

MeUser

The person (GET /v1/me → user).

फ़ील्डटाइपविवरण
emailज़रूरी string
emailVerificationज़रूरी EmailVerificationDto The e-mail verification gate (owner decision 3 Oct 2026).
emailVerifiedज़रूरी boolean
fullName string | null
idज़रूरी string (uuid)
localeज़रूरी string

MemberDto

A membership with its person (MemberDto).

फ़ील्डटाइपविवरण
createdAtज़रूरी string
emailज़रूरी string
emailVerifiedज़रूरी boolean
fullName string | null
idज़रूरी string (uuid)
invitation MemberInvitationDto | null
isTrackedज़रूरी boolean
joinedAt string | null
localeज़रूरी string
roleज़रूरी string owner, admin, team_admin, manager, employee.
statusज़रूरी string invited, active, suspended, left.
teamId string (uuid) | null
teamName string | null
timeZone string | null
unassignedManagerज़रूरी boolean A Manager with neither a team nor viewer teams (sees the whole company until assigned).
userIdज़रूरी string (uuid)
viewerTeamIdsज़रूरी string (uuid)[]

MemberInvitationDto

The invitation of an invited member.

फ़ील्डटाइपविवरण
emailStatus string | null queued, sending, sent, failed, suppressed, not_configured, suppressed_reserved (an RFC 2606 / RFC 6761 reserved domain, never e-mailed), or null before the first e-mail.
expiresAtज़रूरी string
idज़रूरी string (uuid)
lastSentAtज़रूरी string
sentCountज़रूरी integer (int32)

MemberPage

A page of members (OpenAPI).

फ़ील्डटाइपविवरण
itemsज़रूरी MemberDto[]
nextCursor string | null

MemberRefDto

A member as a reference (current row): the connecting Admin of a connection, the owner of a webhook endpoint.

फ़ील्डटाइपविवरण
activeज़रूरी boolean The membership is active and (for an endpoint or a tenant connection) still an Owner or Admin.
name string | null
userIdज़रूरी string (uuid)

NamedRefDto

A reference by id and display name (a client, a person, a task).

फ़ील्डटाइपविवरण
idज़रूरी string (uuid)
nameज़रूरी string

OrganizationChoice

One organization of the person (sec.user_memberships).

फ़ील्डटाइपविवरण
currentज़रूरी boolean
idज़रूरी string (uuid)
nameज़रूरी string
roleज़रूरी string
selectableज़रूरी boolean Can this session's sign-in method open it (design §4.5.3)?

PatchMember

PATCH /v1/members/{id}.

फ़ील्डटाइपविवरण
isTracked boolean | null
role string | null admin, team_admin, manager or employee (the Owner is only transferred).
teamId string (uuid) | null Primary team; null removes it.
timeZone string | null IANA zone of the membership; null follows the organization.
viewerTeamIds string (uuid)[] | null Extra read-only teams (Manager and TeamAdmin only).

PatchTeam

PATCH /v1/teams/{id}.

फ़ील्डटाइपविवरण
description string | null
name string | null

PeriodReportDto

GET /v1/reports/productivity.

फ़ील्डटाइपविवरण
fromज़रूरी string (date)
groupByज़रूरी string
levelContextज़रूरी LevelContextDto
periodsज़रूरी ReportPeriodDto[]
subjectज़रूरी ReportSubjectDto
teamsज़रूरी TeamPeriodsDto[] Only for the company subject: every visible team over its current members.
toज़रूरी string (date)
totalsज़रूरी ReportFiguresDto

PlanAbsenceDto

फ़ील्डटाइपविवरण
colorज़रूरी string
countsAsWorkedज़रूरी boolean timeEffect == worked.
endTime string | null
half string | null
idज़रूरी string (uuid)
startTime string | null Local start and end of an hours absence.
statusज़रूरी string approved or pending.
timeEffectज़रूरी string leave, worked or none.
typeKey string | null
typeName string | null null for a built-in type that was not renamed (the UI translates typeKey).
unitज़रूरी string days, half_day or hours.

PlanShiftDto

फ़ील्डटाइपविवरण
color string | null
endज़रूरी string (date-time)
endTimeज़रूरी string Local end; before the start for a night shift.
idज़रूरी string (uuid)
locationज़रूरी string
minMinutesज़रूरी integer (int32)
startज़रूरी string (date-time)
startTimeज़रूरी string Local start (HH:mm, the shift's zone).

Problem

RFC 9457 problem details (application/problem+json).

फ़ील्डटाइपविवरण
action string | null Permission key of a 403 (teams.create).
codeज़रूरी string Stable snake_case error code (catalog error-codes.json).
detail string | null
errors FieldError[] | null
requiredPlan string | null Lowest plan that includes the feature (402 feature_not_in_plan).
retryAfterSeconds integer (int32) | null Seconds to wait (429, 503; also the Retry-After header).
statusज़रूरी integer (int32)
titleज़रूरी string English title of the code (clients translate code).
traceId string | null W3C trace id of the request.
typeज़रूरी string Help page of the error code: https://workify360.com/help/errors/<code>/.

ProjectAmountDto

The amounts of one currency (rates are applied per allocation day and layer).

फ़ील्डटाइपविवरण
billableMinorज़रूरी integer (int64) The billable hours at their rate.
costMinorज़रूरी integer (int64) Every allocated hour at its rate.
currencyज़रूरी string

ProjectBudgetUsageDto

The use of a project's budget, all time.

फ़ील्डटाइपविवरण
budgetMinor integer (int64) | null null unless costsIncluded.
budgetMinutes integer (int64) | null
kindज़रूरी string hours or amount.
projectIdज़रूरी string (uuid)
usedMinor integer (int64) | null The cost in the project's currency; null unless costsIncluded.
usedMsज़रूरी integer (int64)
usedRatio string | null Used / budget, 4 decimals (null for an amount budget without costsIncluded).

ProjectDto

A project.

फ़ील्डटाइपविवरण
accessज़रूरी string everyone or members.
archivedज़रूरी boolean
budget BudgetDto | null
client NamedRefDto | null
code string | null
color string | null
createdAtज़रूरी string (date-time)
currencyज़रूरी string The currency of the project's rates and amount budget.
description string | null
endDate string (date) | null
idज़रूरी string (uuid)
isBillableज़रूरी boolean
memberCountज़रूरी integer (int64)
myRole string | null The caller's role in the project team (member, manager), null outside it.
nameज़रूरी string
permissionsज़रूरी ProjectPermissionsDto
spentMsज़रूरी integer (int64) Every allocation of the project, all time.
startDate string (date) | null
statusज़रूरी string active, on_hold or completed.
taskCountज़रूरी integer (int64)
updatedAtज़रूरी string (date-time)

ProjectPage

GET /v1/projects.

फ़ील्डटाइपविवरण
itemsज़रूरी ProjectDto[]
nextCursor string | null

ProjectPermissionsDto

What the caller may do with a project (decided from the current rows, §5.3).

फ़ील्डटाइपविवरण
archiveज़रूरी boolean
deleteज़रूरी boolean Only a project without time.
editज़रूरी boolean The project's fields (Owners and Admins).
manageMembersज़रूरी boolean The team (an Admin or the project's manager; only an Admin changes managers).
manageTasksज़रूरी boolean Tasks (an Admin or the project's manager).
trackज़रूरी boolean The caller may track time on it now.

ProjectRefDto

A project reference of an allocation.

फ़ील्डटाइपविवरण
color string | null #RRGGBB.
idज़रूरी string (uuid)
nameज़रूरी string

ProjectReportDto

GET /v1/reports/projects.

फ़ील्डटाइपविवरण
budgetsज़रूरी ProjectBudgetUsageDto[]
costsIncludedज़रूरी boolean The caller sees rates and amounts (projects.costs.read).
fromज़रूरी string (date)
groupByज़रूरी string[]
rowsज़रूरी ProjectReportRowDto[]
toज़रूरी string (date)
totalsज़रूरी ProjectReportTotalsDto

ProjectReportKeysDto

The dimensions of a row (the ones not grouped by are null).

फ़ील्डटाइपविवरण
clientId string (uuid) | null
clientName string | null
date string (date) | null The allocation's local day (groupBy day).
projectId string (uuid) | null
projectName string | null
taskId string (uuid) | null
taskName string | null
userId string (uuid) | null
userName string | null

ProjectReportRowDto

One row of the project report.

फ़ील्डटाइपविवरण
allocatedMsज़रूरी integer (int64)
amounts ProjectAmountDto[] | null null unless costsIncluded.
billableMsज़रूरी integer (int64)
keysज़रूरी ProjectReportKeysDto
nonBillableMsज़रूरी integer (int64)
productiveMs integer (int64) | null With includeProductive only.
unratedMsज़रूरी integer (int64) Time without any rate (it is left out of the amounts).

ProjectReportTotalsDto

The totals of the report.

फ़ील्डटाइपविवरण
allocatedMsज़रूरी integer (int64)
amounts ProjectAmountDto[] | null
billableMsज़रूरी integer (int64)
nonBillableMsज़रूरी integer (int64)
productiveMs integer (int64) | null
unratedMsज़रूरी integer (int64)

ProjectRequest

POST /v1/projects; PUT /v1/projects/{id} sends the whole body.

फ़ील्डटाइपविवरण
access string | null everyone (default) or members.
budget BudgetRequest | null
clientId string (uuid) | null
code string | null [A-Za-z0-9._-]{1,32}, unique among active projects.
color string | null #RRGGBB.
currency string | null TRY, USD or EUR; locked once the project has rates or invoice lines (409 project_currency_locked).
description string | null
endDate string (date) | null
isBillable boolean | null Default true.
name string | null
startDate string (date) | null
status string | null active (default), on_hold or completed.

ReportFiguresDto

Figures of a group of users over a period (sums raw, percentages the users' average, counters user-days).

फ़ील्डटाइपविवरण
absenceCreditMsज़रूरी integer (int64)
absentDaysज़रूरी integer (int32)
activeMsज़रूरी integer (int64)
activeUserCountज़रूरी integer (int32)
effectivenessPct number (double) | null
idleMsज़रूरी integer (int64)
lateDaysज़रूरी integer (int32)
leaveDaysज़रूरी number (double)
leftEarlyDaysज़रूरी integer (int32)
neutralMsज़रूरी integer (int64)
offlineMsज़रूरी integer (int64)
overtimeDaysज़रूरी integer (int32)
overtimeMsज़रूरी integer (int64)
productiveMsज़रूरी integer (int64)
productivityPct number (double) | null
targetMsज़रूरी integer (int64)
unproductiveMsज़रूरी integer (int64)
userCountज़रूरी integer (int32)
workedMsज़रूरी integer (int64)

ReportPeriodDto

One period of a grouped report: its key and bounds, then the figures.

ReportScopeDto

What the caller can see (FAZ1 AccessPolicy.ScopeOf).

फ़ील्डटाइपविवरण
kindज़रूरी string company, teams or self.
teamIdsज़रूरी string (uuid)[] The visible teams of a teams scope, sorted; empty otherwise (company = all).
unassignedFallbackज़रूरी boolean A Manager without teams who sees the whole company until assigned.

ReportSubjectDto

Whom a report is about.

फ़ील्डटाइपविवरण
id string (uuid) | null
kindज़रूरी string company, team or user.
name string | null

RotatedWebhookSecretDto

RotatedWebhookSecretDto: the new signing secret, shown once.

फ़ील्डटाइपविवरण
previousSecretExpiresAtज़रूरी string Until then deliveries carry both signatures.
secretज़रूरी string whsec_<base64>: shown once, never again.

ShiftBody

ShiftBody of POST /v1/shifts, the bulk items and PUT /v1/shifts/{id} (the whole body). Fields left null are filled from templateId.

फ़ील्डटाइपविवरण
breakMinutes integer (int32) | null
color string | null
date string (date) | null
endTime string | null
location string | null
minMinutes integer (int32) | null null = the template's, else duration − break.
note string | null
startTime string | null
teamId string (uuid) | null Required for an open shift; ignored for an assigned one (the user's current team is written).
templateId string (uuid) | null
userId string (uuid) | null null = an open shift.

ShiftDto

A shift: local fields, UTC instants, the caller's permissions.

फ़ील्डटाइपविवरण
breakMinutesज़रूरी integer (int32)
color string | null
createdAtज़रूरी string (date-time)
createdByज़रूरी CalendarUserRefDto
crossesMidnightज़रूरी boolean
dateज़रूरी string (date)
durationMinutesज़रूरी integer (int32)
endज़रूरी string (date-time)
endTimeज़रूरी string
idज़रूरी string (uuid)
locationज़रूरी string
minMinutesज़रूरी integer (int32)
note string | null
openज़रूरी boolean No user assigned.
permissionsज़रूरी ShiftPermissionsDto
sourceज़रूरी string manual, template, copy or request.
startज़रूरी string (date-time)
startTimeज़रूरी string
teamId string (uuid) | null Open shift: its team; assigned: the user's team when it was written.
teamName string | null
templateId string (uuid) | null
templateName string | null
timeZoneज़रूरी string
updatedAtज़रूरी string (date-time)
user CalendarUserRefDto | null
userId string (uuid) | null null for an open shift.

ShiftListDto

GET /v1/shifts (the shifts **starting** in the range).

फ़ील्डटाइपविवरण
itemsज़रूरी ShiftDto[]

ShiftPermissionsDto

फ़ील्डटाइपविवरण
canDeleteज़रूरी boolean
canEditज़रूरी boolean
canPickUpज़रूरी boolean
canRequestSwapज़रूरी boolean

SummaryDto

The summary of the visible users over a range.

फ़ील्डटाइपविवरण
absenceCreditMsज़रूरी integer (int64)
absentDaysज़रूरी integer (int32)
activeMsज़रूरी integer (int64)
activeUserCountज़रूरी integer (int32)
atWorkMsज़रूरी integer (int64)
daysज़रूरी DayTotalDto[]
deletedMsज़रूरी integer (int64)
domainsज़रूरी DomainTotalDto[] Top 10.
effectivenessPct number (double) | null Average of the users' range Effectiveness % (inactive tracked users included).
fromज़रूरी string (date)
holidayDaysज़रूरी number (double)
idleMsज़रूरी integer (int64)
inactiveUsersज़रूरी UserTotalDto[] Tracked users without activity in the range (zero totals, attendance fields), by user id.
lateDaysज़रूरी integer (int32)
leaveDaysज़रूरी number (double)
leftEarlyDaysज़रूरी integer (int32)
levelContextज़रूरी LevelContextDto
meetingMsज़रूरी integer (int64)
neutralMsज़रूरी integer (int64)
offlineMsज़रूरी integer (int64)
overtimeMsज़रूरी integer (int64)
privateMsज़रूरी integer (int64)
productiveMsज़रूरी integer (int64)
productivityPct number (double) | null Average of the users' range Productivity %.
scopeज़रूरी ReportScopeDto
shiftDaysज़रूरी integer (int32)
teamsज़रूरी TeamTotalDto[] By current team: named teams by name, the teamId: null row last.
toज़रूरी string (date)
topAppsज़रूरी AppTotalDto[] Top 10; name is "Offline time" for the reserved offline keys.
unproductiveMsज़रूरी integer (int64)
usersज़रूरी UserTotalDto[] One row per user with a computed day in the range, by activeMs.
workedMsज़रूरी integer (int64)

TargetItemDto

फ़ील्डटाइपविवरण
activeMsज़रूरी integer (int64)
categoryKey string | null
categorySourceज़रूरी string tenant, builtin or none.
domain string | null
levelज़रूरी string
levelSourceज़रूरी string team, company or default.
matchedKey string | null
nameज़रूरी string
percentageज़रूरी number (double)
targetKeyज़रूरी string
targetTypeज़रूरी string app for apps, domain for domains and hosts.
userCountज़रूरी integer (int32)

TargetListDto

The "Apps & URLs" list.

फ़ील्डटाइपविवरण
fromज़रूरी string (date)
itemsज़रूरी TargetItemDto[] By active time descending, then key.
levelContextज़रूरी LevelContextDto
nextCursor string | null
toज़रूरी string (date)
totalज़रूरी integer (int32) Targets matching the filters (before paging).
totalActiveMsज़रूरी integer (int64) Active time over every target of the type before the filters (the percentage base).
typeज़रूरी string app, domain or host.

TaskDto

A task.

फ़ील्डटाइपविवरण
archivedज़रूरी boolean
assignee NamedRefDto | null
createdAtज़रूरी string (date-time)
description string | null
dueDate string (date) | null
effectiveBillableज़रूरी boolean
estimateMinutes integer (int64) | null
idज़रूरी string (uuid)
isBillable boolean | null null takes the project's value.
nameज़रूरी string
permissionsज़रूरी TaskPermissionsDto
projectIdज़रूरी string (uuid)
sortOrderज़रूरी integer (int64)
spentMsज़रूरी integer (int64)
statusज़रूरी string open, in_progress or done.
updatedAtज़रूरी string (date-time)

TaskPage

GET /v1/projects/{id}/tasks.

फ़ील्डटाइपविवरण
itemsज़रूरी TaskDto[]
nextCursor string | null

TaskPermissionsDto

What the caller may do with a task.

फ़ील्डटाइपविवरण
deleteज़रूरी boolean Only a task without time.
editज़रूरी boolean

TaskRequest

POST /v1/projects/{id}/tasks; PUT /v1/tasks/{id} sends the whole body.

फ़ील्डटाइपविवरण
assigneeUserId string (uuid) | null Must be able to track time on the project (422 project_not_trackable).
description string | null
dueDate string (date) | null
estimateMinutes integer (int64) | null 1–1 000 000.
isBillable boolean | null null takes the project's value.
name string | null
sortOrder integer (int64) | null
status string | null open (default), in_progress or done.

TeamDto

A team with its size and leads (TeamDto).

फ़ील्डटाइपविवरण
archivedAt string | null
createdAtज़रूरी string
description string | null
idज़रूरी string (uuid)
leadsज़रूरी object[] TeamAdmins and Managers of the team: [{membershipId, userId, fullName, role}].
memberCountज़रूरी integer (int64) Members whose primary team this is (left members excluded).
nameज़रूरी string
updatedAtज़रूरी string

TeamPage

A page of teams (OpenAPI).

फ़ील्डटाइपविवरण
itemsज़रूरी TeamDto[]
nextCursor string | null

TeamPeriodsDto

फ़ील्डटाइपविवरण
periodsज़रूरी ReportPeriodDto[]
teamIdज़रूरी string (uuid)
teamName string | null
totalsज़रूरी ReportFiguresDto

TeamTotalDto

One team row of a summary (current teams; percentages the members' average).

फ़ील्डटाइपविवरण
absenceCreditMsज़रूरी integer (int64)
absentDaysज़रूरी integer (int32)
activeMsज़रूरी integer (int64)
activeUserCountज़रूरी integer (int32)
effectivenessPct number (double) | null
holidayDaysज़रूरी number (double)
idleMsज़रूरी integer (int64)
lateDaysज़रूरी integer (int32)
leaveDaysज़रूरी number (double)
leftEarlyDaysज़रूरी integer (int32)
memberCountज़रूरी integer (int32)
neutralMsज़रूरी integer (int64)
offlineMsज़रूरी integer (int64)
overtimeMsज़रूरी integer (int64)
productiveMsज़रूरी integer (int64)
productivityPct number (double) | null
shiftDaysज़रूरी integer (int32)
teamId string (uuid) | null null for the users without a team.
teamName string | null
unproductiveMsज़रूरी integer (int64)
workedMsज़रूरी integer (int64)

TimeEntryDecisionRequest

POST /v1/time-entries/{id}/decision.

फ़ील्डटाइपविवरण
decision string | null approve or reject.
note string | null At most 500 characters.

TimeEntryDto

An offline entry or a deletion (design §8.2).

फ़ील्डटाइपविवरण
createdAtज़रूरी string (date-time)
createdByज़रूरी TimeEntryUserRefDto
dateज़रूरी string (date) The user's local day of the entry, in the zone effective when it was written.
decidedAt string (date-time) | null
decidedBy TimeEntryUserRefDto | null
decisionNote string | null
description string | null
durationMsज़रूरी integer (int64)
endज़रूरी string (date-time)
idज़रूरी string (uuid)
kindज़रूरी string offline or deletion.
level string | null Offline: productive, neutral or unproductive; deletion: null.
permissionsज़रूरी TimeEntryPermissionsDto
projectId string (uuid) | null Always null until projects (Phase 6).
sourceज़रूरी string manual (Phase 8 adds calendar).
startज़रूरी string (date-time)
statusज़रूरी string pending, approved or rejected.
timeZoneज़रूरी string
updatedAtज़रूरी string (date-time)
userIdज़रूरी string (uuid)

TimeEntryPage

GET /v1/time-entries: by start.

फ़ील्डटाइपविवरण
itemsज़रूरी TimeEntryDto[]
nextCursor string | null

TimeEntryPermissionsDto

What the caller may do with the entry (TimeEntryPolicy.PermissionsFor), the same on every endpoint.

फ़ील्डटाइपविवरण
canApproveज़रूरी boolean
canDeleteज़रूरी boolean
canEditज़रूरी boolean

TimeEntryUserRefDto

A user reference of an entry (fullName from the directory; null when unknown).

फ़ील्डटाइपविवरण
fullName string | null
idज़रूरी string (uuid)

TimeIntervalDto

A UTC interval without any detail (e.g. a private interval).

फ़ील्डटाइपविवरण
endज़रूरी string (date-time)
startज़रूरी string (date-time)

TimerAtRequest

POST /v1/me/timer/stop and /discard.

फ़ील्डटाइपविवरण
at string (date-time) | null

TimerCommandResultDto

The result of a command (200 also when it did not apply).

फ़ील्डटाइपविवरण
appliedज़रूरी boolean
closedज़रूरी AllocationDto[] The allocations written from the segment this command closed (may be empty).
reason string | null stale, not_running or unchanged; null when applied.
timerज़रूरी TimerDto

TimerDto

GET /v1/me/timer (ETag: "v<rowVersion>", "v0" before the first command).

फ़ील्डटाइपविवरण
autoStopAt string (date-time) | null startedAt + 24 hours.
effectiveBillable boolean | null
isBillable boolean | null
last TimerLastDto | null
note string | null
project TimerProjectDto | null
segmentId string (uuid) | null
serverTimeज़रूरी string (date-time) The server's clock (clients compute the elapsed time against it).
source string | null web, desktop or api.
startedAt string (date-time) | null
stateज़रूरी string running or stopped.
task NamedRefDto | null

TimerLastDto

The segment that ended last.

फ़ील्डटाइपविवरण
endReasonज़रूरी string stop, switch, autostop or discard.
endedAtज़रूरी string (date-time)
segmentIdज़रूरी string (uuid)
startedAtज़रूरी string (date-time)

TimerProjectDto

The project of the running segment.

फ़ील्डटाइपविवरण
clientName string | null
color string | null
idज़रूरी string (uuid)
nameज़रूरी string

TimerStartRequest

POST /v1/me/timer/start (Idempotency-Key: the client's command id): start, or switch while running.

फ़ील्डटाइपविवरण
at string (date-time) | null The client's clock when the command was given (default: the server's now; at most 5 minutes ahead, at most 7 days back).
isBillable boolean | null
note string | null
projectId string (uuid) | null
source string | null web (default), desktop or api.
taskId string (uuid) | null

UpdateTimeEntryRequest

PUT /v1/time-entries/{id}: the whole editable body (kind and user never change; If-Match instead of version).

फ़ील्डटाइपविवरण
description string | null
end string (date-time) | null
level string | null
projectId string (uuid) | null
start string (date-time) | null

UpdateWebhookEndpointRequest

PATCH /v1/webhook-endpoints/{id} (If-Match).

फ़ील्डटाइपविवरण
description string | null null clears it.
eventTypes string[] | null
status string | null active (also opens a disabled endpoint and resets its failure counters) or paused.
takeOver boolean | null true: the caller becomes the endpoint's owner (lifts an owner_inactive pause).
url string | null

UserDailyDto

A user's days: computed days plus the workdays without activity up to the user's today.

फ़ील्डटाइपविवरण
daysज़रूरी UserDayDto[]
fromज़रूरी string (date)
teamId string (uuid) | null The user's current primary team (its rules classify every day).
timeZoneज़रूरी string
toज़रूरी string (date)
userIdज़रूरी string (uuid)

UserDayDto

फ़ील्डटाइपविवरण
absence DayAbsenceDto | null
absenceCreditMsज़रूरी integer (int64)
activeMsज़रूरी integer (int64)
afkCoverageज़रूरी boolean
arrivalAt string (date-time) | null
atWorkMsज़रूरी integer (int64)
attendanceStatus string | null onTime, late, absent, notStarted, dayOff, onLeave, holiday; null outside the directory.
classifiedज़रूरी boolean
dateज़रूरी string (date)
dayOffWorkedMsज़रूरी integer (int64)
deletedMsज़रूरी integer (int64)
effectivenessPct number (double) | null
eventCountज़रूरी integer (int64)
expectedWorkMsज़रूरी integer (int64)
holiday DailyHolidayDto | null
idleMsज़रूरी integer (int64)
lateByMsज़रूरी integer (int64)
leftAt string (date-time) | null
leftEarlyज़रूरी boolean
leftEarlyByMsज़रूरी integer (int64)
meetingMsज़रूरी integer (int64)
neutralMsज़रूरी integer (int64)
offlineMsज़रूरी integer (int64)
overtimeMsज़रूरी integer (int64)
planKind string | null schedule, shift, dayOff or holiday.
privateMsज़रूरी integer (int64)
productiveMsज़रूरी integer (int64)
productivityPct number (double) | null
shiftCountज़रूरी integer (int32)
targetMsज़रूरी integer (int64)
topApp string | null Display name of the app with the most active time.
unproductiveMsज़रूरी integer (int64)
workday boolean | null
workedMsज़रूरी integer (int64)

UserTotalDto

One user of a summary.

फ़ील्डटाइपविवरण
absenceCreditMsज़रूरी integer (int64)
absentDays integer (int32) | null Only for tracked users.
activeDaysज़रूरी integer (int32) Local days with active time.
activeMsज़रूरी integer (int64)
arrivalAt string (date-time) | null Earliest arrival and latest leave in the range.
atWorkMsज़रूरी integer (int64)
classifiedDaysज़रूरी integer (int32)
dayOffWorkedMsज़रूरी integer (int64)
deletedMsज़रूरी integer (int64)
effectivenessPct number (double) | null null without a target and for users missing from the directory.
email string | null
eventCountज़रूरी integer (int64)
fullName string | null
holidayDaysज़रूरी number (double)
idleMsज़रूरी integer (int64)
lateDays integer (int32) | null
leaveDaysज़रूरी number (double)
leftAt string (date-time) | null
leftEarlyDays integer (int32) | null
meetingMsज़रूरी integer (int64)
neutralMsज़रूरी integer (int64)
offlineMsज़रूरी integer (int64)
overtimeDaysज़रूरी integer (int32)
overtimeMsज़रूरी integer (int64)
privateMsज़रूरी integer (int64)
productiveMsज़रूरी integer (int64)
productivityPct number (double) | null
shiftDaysज़रूरी integer (int32)
targetMs integer (int64) | null
teamId string (uuid) | null
teamName string | null
timeZoneज़रूरी string
unproductiveMsज़रूरी integer (int64)
userIdज़रूरी string (uuid)
workdays integer (int32) | null
workedMsज़रूरी integer (int64)

WebhookDeliveryDetailDto

GET /v1/webhook-endpoints/{id}/deliveries/{deliveryId}: the delivery and the body that was (or is) sent.

WebhookDeliveryDto

WebhookDeliveryDto.

फ़ील्डटाइपविवरण
attemptsज़रूरी integer (int32)
createdAtज़रूरी string
deliveredAt string | null
eventIdज़रूरी string (uuid) The webhook-id header.
eventTypeज़रूरी string
idज़रूरी string A 64-bit integer as a string.
lastDurationMs integer (int32) | null
lastError string | null timeout, connect, tls, not_allowed, http_<code>, not_in_plan, owner_inactive.
lastStatusCode integer (int32) | null
nextAttemptAt string | null
statusज़रूरी string pending, succeeded, failed, dead.

WebhookDeliveryPage

GET /v1/webhook-endpoints/{id}/deliveries (newest first).

फ़ील्डटाइपविवरण
itemsज़रूरी WebhookDeliveryDto[]
nextCursor string | null

WebhookEndpointDto

WebhookEndpointDto.

फ़ील्डटाइपविवरण
createdAtज़रूरी string
description string | null
eventTypesज़रूरी string[]
idज़रूरी string (uuid)
ownerज़रूरी MemberRefDto The member who owns the endpoint (G1: a delivery needs an active Owner or Admin owner).
previousSecretExpiresAt string | null After a rotation the previous secret still signs until then (24 hours).
secretPrefixज़रूरी string The first 8 characters of the signing secret (whsec_Kx); never the secret.
statsज़रूरी WebhookEndpointStatsDto
statusज़रूरी string active, paused, disabled.
statusReason string | null manual, owner_inactive, failing, gone; null while active.
updatedAtज़रूरी string
urlज़रूरी string
versionज़रूरी integer (int64) row_version (ETag: "v<n>", If-Match of PATCH).

WebhookEndpointPage

GET /v1/webhook-endpoints.

फ़ील्डटाइपविवरण
itemsज़रूरी WebhookEndpointDto[]
nextCursor string | null

WebhookEndpointStatsDto

The delivery statistics of an endpoint.

फ़ील्डटाइपविवरण
consecutiveFailuresज़रूरी integer (int32)
lastFailureAt string | null
lastSuccessAt string | null

WebhookEventDto

One event type of GET /v1/webhook-events.

फ़ील्डटाइपविवरण
availableज़रूरी boolean The tenant's plan has the feature: an endpoint may subscribe.
descriptionज़रूरी string One English sentence (the panel translates by type).
feature string | null The plan feature the event needs (null: every plan with api_access).
objectज़रूरी string The data.object of the delivery body.
typeज़रूरी string <object>.<verb>, e.g. time_entry.approved.

WebhookEventsDto

GET /v1/webhook-events.

फ़ील्डटाइपविवरण
itemsज़रूरी WebhookEventDto[]

WebhookTestDto

202 of POST /v1/webhook-endpoints/{id}/test.

फ़ील्डटाइपविवरण
deliveryIdज़रूरी string The delivery of the test event (a string: the deliveries' id is a 64-bit integer).