jeCheckDevelopers
Get an API key
Developers/API reference

API reference

Base URL https://app.jecheck.io/api/ext/v1. Authenticate every request with Authorization: Bearer <token>; requests and responses are JSON. Each endpoint is also available as an MCP tool. Download the OpenAPI 3.1 spec.

Account

Identify the token: the acting user, the company, the plan and the effective permissions. Call GET /me first to check that a key works.

Locations

Locations (venues, stores, branches) and regions: the list the token can see, location cards, staff and managers. Location ids are used as filters across the whole API. Creating and editing locations needs locations.manage; staff and managers — locations.staff.

Employees

Employees of the company: list with filters, employee cards, adding and editing employees, deactivation, passwords and invitations, the positions directory. Visibility follows users.view (employees of the locations where it applies); email and phone are returned only with users.contacts.

Checklists

Audit checklists and their folders: list, read the full structure (sections, questions, answer types, weights, photo requirements, display conditions), create a checklist from a JSON structure, edit, duplicate, move, delete and restore, and control who may run a checklist in the mobile app.

Audits

Conducted audits (inspections by checklist): the audit journal with filters, the result card with sections, failed questions, comments and photos, PDF reports, deletion and submitting a new audit. Visibility follows the web journal — audits of the locations where the token has audits.view.

Analytics

Audit analytics with the same numbers as the web analytics pages: company overview, location ranking and drill-down, checklist and question statistics, top violations, auditor strictness, plan fulfilment, corrective tasks, the AI control brief and employee tests. Figures cover only the locations where the token has analytics.view. Long lists end with an item {"_truncated": N} saying how many rows were cut.

Audit planner

Planned audits: the calendar of scheduled inspections with computed statuses (planned, in progress, overdue, missed, done), audit plans and recurring series across locations, rescheduling, reassigning, cancelling and marking as done, and plan templates.

Tasks

Tasks and corrective actions: create, assign, comment, attach files, move through statuses. Visibility follows the web app: the token sees tasks of its locations (tasks.view_all), its teams, its projects and the tasks it is involved in.

Projects

Projects with task numbers (KEY-N), sections, board columns, milestones, custom fields, members with project roles, external guests, status updates and automation rules. Access follows the project role (viewer, commenter, editor, admin); projects.manage acts as admin in every project. Tasks themselves are managed in the Tasks section with project_id.

GET/projectsList projects GET/projects/templatesList project templates GET/projects/{uuid}Retrieve a project POST/projectsCreate a project PATCH/projects/{uuid}Update a project POST/projects/{uuid}/archiveArchive a project DELETE/projects/{uuid}Delete a project POST/projects/{uuid}/duplicateDuplicate a project POST/projects/{uuid}/templateSave a project as a company template DELETE/projects/templates/{template_uuid}Delete a company template POST/projects/{uuid}/starStar or unstar a project POST/projects/{uuid}/joinJoin a project GET/projects/{uuid}/statsGet project statistics GET/projects/{uuid}/activityList project activity GET/projects/{uuid}/membersList project members POST/projects/{uuid}/membersAdd project members PATCH/projects/{uuid}/members/{user_id}Change a member's project role DELETE/projects/{uuid}/members/{user_id}Remove a project member GET/projects/{uuid}/guestsList project guests POST/projects/{uuid}/guestsInvite a project guest PATCH/projects/{uuid}/guests/{guest_id}Update a project guest DELETE/projects/{uuid}/guests/{guest_id}Revoke a guest link GET/projects/{uuid}/tasksList project tasks (board) POST/projects/{uuid}/tasks/{task_uuid}/moveMove a task on the board GET/projects/tasks/{uuid}Get the project part of a task PATCH/projects/tasks/{uuid}Update the project part of a task POST/projects/tasks/{uuid}/linksLink two tasks DELETE/projects/tasks/{uuid}/links/{id}Remove a task link POST/projects/tasks/{uuid}/timeLog time on a task DELETE/projects/tasks/{uuid}/time/{id}Delete a time log GET/projects/{uuid}/updatesList status updates POST/projects/{uuid}/updatesPost a status update DELETE/projects/{uuid}/updates/{id}Delete a status update GET/projects/{uuid}/rulesList automation rules POST/projects/{uuid}/rulesCreate an automation rule PUT/projects/{uuid}/rules/{id}Replace an automation rule POST/projects/{uuid}/rules/{id}/toggleEnable or disable a rule DELETE/projects/{uuid}/rules/{id}Delete an automation rule GET/projects/{uuid}/rules/{id}/runsList rule runs POST/projects/{uuid}/sectionsCreate a section PATCH/projects/{uuid}/sections/{id}Update a section DELETE/projects/{uuid}/sections/{id}Delete a section PUT/projects/{uuid}/sections/orderReorder sections POST/projects/{uuid}/columnsCreate a column PATCH/projects/{uuid}/columns/{id}Update a column DELETE/projects/{uuid}/columns/{id}Delete a column PUT/projects/{uuid}/columns/orderReorder columns POST/projects/{uuid}/milestonesCreate a milestone PATCH/projects/{uuid}/milestones/{id}Update a milestone DELETE/projects/{uuid}/milestones/{id}Delete a milestone PUT/projects/{uuid}/milestones/orderReorder milestones POST/projects/{uuid}/fieldsCreate a field PATCH/projects/{uuid}/fields/{id}Update a field DELETE/projects/{uuid}/fields/{id}Delete a field PUT/projects/{uuid}/fields/orderReorder fields

Processes & requests

Business processes (purchase, repair, refund…) with a request form and an approval route. Submit requests, see what waits for your decision, approve, return, reject, delegate, complete and track the route. Managing process definitions requires processes.manage; analytics — processes.reports.

Teams

Departments and teams (maintenance, IT, cleaning…): members and heads, served locations, task queue and its distribution, team schedule, QR request points. org.view sees all teams, a team head sees own teams, members see their teams and queue; changes require org.manage. Taking a queued task — tasks.take.

Automation

Closed-loop automation: scenarios that turn audit violations into corrective tasks (who fixes, deadline, photo "after", confirmation, reminders, escalation), and the loop steps of such tasks — upload a photo "after", submit, accept or return. Scenarios require automation.manage and the paid feature automation.

Routines

Shift routines (SOPs without scores): routine templates with sections, steps and schedules; runs at locations with step marks, photos, completion and manager review. Visibility follows location permissions (routines.view, routines.fill, routines.control).

HACCP

Food-safety journals (HACCP): today's checks per location, journal entries with automatic limit checks, deviations with corrective actions, registries (equipment, suppliers, verification, medical books) and the HACCP plan. Locations follow haccp.view; medical books require the sensitive haccp.medical permission.

Schedule & attendance

Staff schedule: shifts, publishing, open shifts, clock-in/out with breaks, who is on shift now, attendance records, timesheet, absences and shift swaps, availability, KPI and payroll. Location permissions follow schedule.*; pay rates and payroll require pay.* and are omitted otherwise.

GET/schedule/shiftsList shifts GET/schedule/boardGet the schedule board of a location POST/schedule/shiftsCreate a shift PATCH/schedule/shifts/{id}Update a shift DELETE/schedule/shifts/{id}Delete a shift POST/schedule/publishPublish the schedule POST/schedule/copyCopy shifts to another period POST/schedule/autofillAuto-fill the schedule POST/schedule/clearClear shifts of a period GET/schedule/templatesList shift templates GET/schedule/my/shiftsList my shifts GET/schedule/my/monthGet my hours for a month GET/schedule/open-shiftsList open shifts I can take POST/schedule/open-shifts/{uuid}/claimClaim an open shift GET/schedule/clockGet my clock state POST/schedule/clock/inClock in POST/schedule/clock/outClock out POST/schedule/clock/break-startStart a break POST/schedule/clock/break-endEnd a break POST/schedule/mediaUpload a clock photo or request file GET/schedule/attendanceGet who is on shift GET/schedule/attendance/recordsList attendance records POST/schedule/attendance/recordsAdd an attendance record PATCH/schedule/attendance/records/{id}Correct an attendance record DELETE/schedule/attendance/records/{id}Delete an attendance record POST/schedule/attendance/records/approveApprove attendance records GET/schedule/timesheetGet the timesheet GET/schedule/payrollGet the payroll POST/schedule/payroll/approveApprove the payroll POST/schedule/payroll/reopenReopen the payroll POST/schedule/payroll/paidMark the payroll as paid POST/schedule/payroll/adjustmentsAdd a payroll adjustment DELETE/schedule/payroll/adjustments/{id}Delete a payroll adjustment GET/schedule/kpiGet the KPI scorecard POST/schedule/kpi/valuesSet a KPI value GET/schedule/requestsList absence and swap requests GET/schedule/my/requestsList my requests POST/schedule/absencesCreate an absence POST/schedule/absences/{uuid}/cancelCancel an absence POST/schedule/absences/{uuid}/decideApprove or reject an absence request POST/schedule/swapsRequest a shift swap POST/schedule/swaps/{uuid}/answerAnswer a swap request POST/schedule/swaps/{uuid}/cancelCancel a swap request POST/schedule/swaps/{uuid}/decideApprove or reject a swap request GET/schedule/availabilityGet availability PUT/schedule/availabilityReplace availability

HR

Employee HR records: the HR card, personal data, HR documents, hiring with onboarding checklists, transfers, dismissal and absences (vacations, sick leave). Permissions apply to the employee's locations; personal data, documents and pay rates are returned only with their own permissions and every view is written to the access log.

GET/hr/employees/{uuid}Retrieve an employee HR card PATCH/hr/employees/{uuid}/profileUpdate personal data PATCH/hr/employees/{uuid}/workUpdate work data POST/hr/hireHire an employee POST/hr/employees/{uuid}/transferTransfer an employee POST/hr/employees/{uuid}/dismissDismiss an employee POST/hr/employees/{uuid}/cancel-dismissalCancel a dismissal POST/hr/employees/{uuid}/rehireRehire a former employee POST/hr/employees/{uuid}/checklistsStart a checklist for an employee POST/hr/employees/{uuid}/notesAdd a note to the HR history DELETE/hr/employees/{uuid}/notes/{id}Delete a note from the HR history GET/hr/employees/{uuid}/documentsList HR documents of an employee POST/hr/employees/{uuid}/documentsAdd an HR document PATCH/hr/employees/{uuid}/documents/{id}Update an HR document DELETE/hr/employees/{uuid}/documents/{id}Delete an HR document GET/hr/employees/{uuid}/documents/{id}/fileDownload an HR document file GET/hr/absencesList absences GET/hr/absences/balancesGet vacation balances POST/hr/absencesAdd an absence PATCH/hr/absences/{uuid}Update an absence POST/hr/absences/{uuid}/decideApprove or reject an absence request POST/hr/absences/{uuid}/cancelCancel an absence GET/hr/checklistsList onboarding and offboarding checklists GET/hr/checklists/{uuid}Retrieve a checklist POST/hr/checklists/{uuid}/itemsAdd a checklist item PATCH/hr/checklist-items/{id}Update a checklist item POST/hr/checklist-items/{id}/statusComplete, skip or reopen a checklist item DELETE/hr/checklist-items/{id}Delete a checklist item POST/hr/checklists/{uuid}/cancelCancel a checklist POST/hr/checklists/{uuid}/rescheduleMove the start date of a checklist GET/hr/templatesList checklist templates GET/hr/templates/{id}Retrieve a checklist template POST/hr/templatesCreate a checklist template PUT/hr/templates/{id}Replace a checklist template POST/hr/templates/{id}/duplicateDuplicate a checklist template DELETE/hr/templates/{id}Delete a checklist template GET/hr/settingsGet HR settings PATCH/hr/settingsUpdate HR settings

Instructions

Company knowledge base: folders, documents with published versions, read acknowledgements and editing. Visibility follows the document and folder permissions of the acting user ("who can view / who can edit"); content is returned as Markdown, HTML or plain text and accepted as Markdown or HTML.

GET/instructionsList instructions GET/instructions/badgeGet my reading counters GET/instructions/searchSearch instructions GET/instructions/treeGet the library tree GET/instructions/changesList instruction changes GET/instructions/by-ref/{ref}Find an instruction by external reference GET/instructions/{uuid}Retrieve an instruction GET/instructions/{uuid}/versionsList versions of an instruction GET/instructions/{uuid}/diffCompare versions GET/instructions/{uuid}/filesList instruction files POST/instructions/{uuid}/acknowledgeAcknowledge an instruction GET/instructions/{uuid}/acknowledgementsGet the acknowledgement report POST/instructions/{uuid}/remindRemind employees to read an instruction POST/instructionsCreate an instruction PATCH/instructions/{uuid}Update an instruction POST/instructions/{uuid}/publishPublish an instruction POST/instructions/{uuid}/discardDiscard draft changes POST/instructions/{uuid}/restoreRestore an old version to the draft POST/instructions/{uuid}/archiveArchive or unarchive an instruction POST/instructions/{uuid}/duplicateDuplicate an instruction POST/instructions/{uuid}/reviewedMark an instruction as reviewed DELETE/instructions/{uuid}Delete an instruction POST/instructions/{uuid}/filesUpload a file to an instruction GET/instructions/{uuid}/accessGet instruction permissions PUT/instructions/{uuid}/accessSet instruction permissions GET/instructions/foldersList folders POST/instructions/foldersCreate a folder PATCH/instructions/folders/{id}Update a folder DELETE/instructions/folders/{id}Delete a folder GET/instructions/folders/{id}/accessGet folder permissions PUT/instructions/folders/{id}/accessSet folder permissions

Employee testing

Knowledge tests for employees: build tests and questions, assign them to people, positions or locations, read results, grade open answers — and take assigned tests as the acting user. Results are limited to employees of the locations of the testing.results / testing.review permissions.

GET/testing/testsList tests GET/testing/tests/{id}Retrieve a test POST/testing/testsCreate a test PATCH/testing/tests/{id}Update test settings POST/testing/tests/{id}/publishPublish a test POST/testing/tests/{id}/statusChange test status POST/testing/tests/{id}/public-linkRegenerate the public link POST/testing/tests/{id}/duplicateDuplicate a test DELETE/testing/tests/{id}Delete a test GET/testing/tests/{id}/analyticsGet test analytics POST/testing/tests/{id}/sectionsAdd a section PATCH/testing/tests/{id}/sections/{section_id}Update a section DELETE/testing/tests/{id}/sections/{section_id}Delete a section POST/testing/tests/{id}/questionsAdd a question POST/testing/tests/{id}/questions/batchAdd questions in bulk PATCH/testing/tests/{id}/questions/{question_id}Update a question POST/testing/tests/{id}/questions/{question_id}/duplicateDuplicate a question DELETE/testing/tests/{id}/questions/{question_id}Delete a question POST/testing/tests/{id}/imagesUpload a question image GET/testing/tests/{id}/assignmentsList assignments of a test POST/testing/tests/{id}/assignmentsAssign a test GET/testing/assignments/{id}Retrieve an assignment PATCH/testing/assignments/{id}Update an assignment POST/testing/assignments/{id}/syncAdd new matching employees POST/testing/assignments/{id}/remindRemind assignees DELETE/testing/assignments/{id}Delete an assignment POST/testing/assignees/{id}/restartReset attempts of an employee POST/testing/assignees/{id}/remindRemind an employee PATCH/testing/assignees/{id}Change the deadline of an employee DELETE/testing/assignees/{id}Remove an employee from an assignment GET/testing/attemptsList attempts GET/testing/attempts/{uuid}Retrieve an attempt POST/testing/attempts/{uuid}/gradeGrade an open answer POST/testing/attempts/{uuid}/annulAnnul an attempt POST/testing/attempts/{uuid}/confirmConfirm an attempt result GET/testing/myList my assigned tests GET/testing/my/historyList my finished attempts POST/testing/my/startStart or continue my test GET/testing/my/attempts/{uuid}Get my attempt state POST/testing/my/attempts/{uuid}/answerSave an answer POST/testing/my/attempts/{uuid}/finishFinish my attempt GET/testing/my/attempts/{uuid}/resultGet my attempt result

Mystery shopper

Mystery shopper visits without an app: create visits with a personal link for a guest, review submitted questionnaires with automatic fraud flags, accept a visit into a regular audit, manage the guest pool and payouts, and order turnkey checks performed by jeCheck guests.

GET/mystery/visitsList mystery shopper visits GET/mystery/visits/{id}Retrieve a visit POST/mystery/visitsCreate visits PATCH/mystery/visits/{id}Update a visit POST/mystery/visits/{id}/approveAccept a visit POST/mystery/visits/{id}/returnReturn a visit to the guest POST/mystery/visits/{id}/rejectReject a visit POST/mystery/visits/{id}/cancelCancel a visit POST/mystery/visits/{id}/reopenReopen a visit POST/mystery/visits/{id}/inviteSend the link to the guest POST/mystery/visits/{id}/recheckRe-run fraud checks POST/mystery/visits/{id}/ai-reviewRun the AI review of a visit POST/mystery/visits/{id}/payoutSet the payout of a visit DELETE/mystery/visits/{id}Delete a visit GET/mystery/media/{id}Download a private visit file GET/mystery/locationsGet mystery shopper scores by location GET/mystery/shoppersList guests POST/mystery/shoppersAdd a guest PATCH/mystery/shoppers/{id}Update a guest DELETE/mystery/shoppers/{id}Delete a guest GET/mystery/ordersList turnkey orders GET/mystery/orders/catalogGet turnkey pricing catalog POST/mystery/orders/quoteCalculate a turnkey quote GET/mystery/orders/{uuid}Retrieve a turnkey order POST/mystery/ordersCreate a turnkey order draft PATCH/mystery/orders/{uuid}Update a turnkey order draft POST/mystery/orders/{uuid}/submitSubmit a turnkey order POST/mystery/orders/{uuid}/acceptAccept the offer of a turnkey order POST/mystery/orders/{uuid}/cancelCancel a turnkey order POST/mystery/orders/{uuid}/messagesWrite to the jeCheck manager DELETE/mystery/orders/{uuid}Delete a turnkey order draft

Dashboards

Custom dashboards of cards built from the metrics catalog (audits, tasks, HACCP, schedule…). List and read dashboards, get computed card data (always limited by the viewer's permissions and locations), create and edit dashboards and cards, share them with colleagues or the whole company (dashboards.company).

Notifications

In-app notifications of the acting user (the bell in the web app and the Notifications screen in the mobile app): list, unread count, mark as read, and personal notification settings. A company key sees the notifications of its service user.

Guest feedback

Guest reviews of locations collected from map services (Yandex Maps, 2GIS, TripAdvisor, Delivery Club) with sentiment analysis, and customer appeals from the company Telegram / WhatsApp bot with replies. Reviews need reviews.view (limited to its locations); appeals need appeals.view.

Roles & permissions

The permission catalog, company roles, effective permissions of an employee and the access log. Changes follow the delegation rules of the web app: a non-administrator can grant only permissions they hold themselves, only on their own locations, and cannot change administrators.

Help center

Search and read the jeCheck help center (jecheck.io/docs): how features work, where settings are, rules for scores, permissions and plans. Articles are returned in Markdown, in English by default. Available to every token.