Skip to content

TIMIFY Developer API GraphQL Proxy (0.0.4)

HTTP proxy API in front of TIMIFY GraphQL services. Generated from Express routes and route analysis docs.

Download OpenAPI description
Overview
TIMIFY API Team
Languages
Servers
Mock server
https://docs2.timify.com/_mock/apis/openapi
Production
https://api.timify.com
Staging
https://api-stg.timify.com
Local development
http://localhost:3030

Auth

Endpoints from auth routes module.

Operations

Appointments

Endpoints from appointments routes module.

Operations

Availability

Endpoints from availability routes module.

Operations

Booker Services

Endpoints from booker-services routes module.

Operations

Timeshifts

Endpoints from timeshifts routes module.

Operations

List timeshifts

Request

Filter timeshifts: - By resource ids or external ids - For a specific time interval use from and to parameters - For specific days use day[] parameter, day format is YYYY-MM-DD These filters are mutually exclusive and cannot be used at the same time, if fields from and to are sent, day[] will be ignored

Security
BearerAuth
Query
fromstring

Filter timeshifts from start date (format: YYYY-MM-DD). Mutually exclusive with day parameter.

tostring

Filter timeshifts to end date (format: YYYY-MM-DD). Mutually exclusive with day parameter.

daystring

Filter timeshifts for a specific day (format: YYYY-MM-DD). Mutually exclusive with from/to parameters.

resource_idsArray of stringsnon-empty

Filter timeshifts by resource IDs. Comma-separated list of valid MongoDB IDs.

Example: resource_ids=65f4c840b6f1a10012ab34cd
resource_external_idsArray of stringsnon-empty

Filter timeshifts by resource external IDs. Comma-separated list of external identifiers.

Example: resource_external_ids=ext-resource-001
pageinteger>= 1

Page number (1-based).

Default 1
Example: page=1
limitinteger>= 1

Maximum items per page. Default: 10000 (when not provided or when provided value ≤ 0).

Default 10000
Example: limit=50
Headers
company-idstring

Company MongoDB id used in auth context.

Example: 65f4c840b6f1a10012ab34cd
curl -i -X GET \
  'https://docs2.timify.com/_mock/apis/openapi/v1/timeshifts?from=string&to=string&day=string&resource_ids=65f4c840b6f1a10012ab34cd&resource_external_ids=ext-resource-001&page=1&limit=50' \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>' \
  -H 'company-id: 65f4c840b6f1a10012ab34cd'

Responses

Returns paginated list of time shifts filtered by date range and/or resources with their details.

Bodyapplication/json
dataArray of objects(GenericRecord)required

List payload.

Example: [{"id":"65f4c840b6f1a10012ab34cd","externalId":"ext_1001","firstName":"John","lastName":"Doe","fullName":"John Doe","email":"john@example.com","totalBookings":5,"createdAt":"2024-01-15T10:30:00Z","updatedAt":"2024-02-20T14:45:30Z","ts":1708430730},{"id":"65f4c840b6f1a10012ab34ce","externalId":"ext_1002","firstName":"Jane","lastName":"Smith","fullName":"Jane Smith","email":"jane@example.com","totalBookings":3,"createdAt":"2024-01-20T11:15:00Z","updatedAt":"2024-02-25T13:22:00Z","ts":1708516200}]
data[].​property name*anyadditional property
metaobject(ApiMeta)
totalinteger

Total count used by legacy list endpoints.

Example: 182
statusinteger

Operation status flag.

Example: 1
Response
application/json
{ "data": [ {}, {} ], "total": 2, "meta": { "page": 1, "limit": 10, "totalItems": 2, "totalPages": 1 }, "status": 1 }

Create timeshift

Request

This endpoint creates shifts for a resource on a selected date. It enables the user to create work and booking shifts. There is also an option to create non-workable shifts, for example "VACATION", "SICK" or "BLOCKER" shifts If you select the "BLOCKER" as the denial_reason, parameters working_times and booking_times will be ignored Examples: - Work shift: { "from": "2023-10-02", "to": "2023-10-02", "resource_id": "64759027a6f9909999a59431", "working_times": [ { "begin": "08:00", "end": "14:40" }, { "begin": "15:00", "end": "18:00" } ], "booking_times": [ { "begin": "08:00", "end": "14:40" }, { "begin": "15:00", "end": "18:00" } ] } - Vacation: { "denial_reason": "VACATION", "from": "2020-10-20", "to": "2020-10-22", "resource_id": "5f61c6381a34817e5c7fa220", "denial_times": [ { "begin": "00:00", "end": "24:00" } ] } - Sick: { "denial_reason": "SICK", "from": "2020-10-20", "to": "2020-10-22", "resource_id": "5f61c6381a34817e5c7fa220", "denial_times": [ { "begin": "00:00", "end": "24:00" } ] } - Blocker: working_times and booking_times parameters are ignored { "denial_reason": "BLOCKER", "from": "2020-10-20", "to": "2020-10-22", "resource_id": "5f61c6381a34817e5c7fa220", "denial_times": [ { "begin": "00:00", "end": "24:00" } ] }

Security
BearerAuth
Headers
company-idstring

Company MongoDB id used in auth context.

Example: 65f4c840b6f1a10012ab34cd
Bodyapplication/json
resource_idstring

Resource id.

Example: "65f4c840b6f1a10012ab34cd"
external_resource_idstring

External resource id.

Example: "65f4c840b6f1a10012ab34cd"
fromstring(date)

Start date of the timeshift (YYYY-MM-DD).

Example: "2026-03-10"
tostring(date)

End date of the timeshift (YYYY-MM-DD, inclusive).

Example: "2026-03-11"
denial_timesArray of objects(TimeInterval)

Denial times.

working_timesArray of objects(TimeInterval)

Working times.

booking_timesArray of objects(TimeInterval)

Booking times.

denial_reasonstring

Reason for blocking the time (VACATION, SICK, BLOCKER, OTHER).

Enum"VACATION""SICK""BLOCKER""OTHER"
Example: "VACATION"
curl -i -X POST \
  https://docs2.timify.com/_mock/apis/openapi/v1/timeshifts \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>' \
  -H 'Content-Type: application/json' \
  -H 'company-id: 65f4c840b6f1a10012ab34cd' \
  -d '{
    "resource_id": "65f4c840b6f1a10012ab34cd",
    "external_resource_id": "65f4c840b6f1a10012ab34cd",
    "from": "2026-03-10",
    "to": "2026-03-11",
    "denial_times": [
      {
        "begin": "08:00",
        "end": "17:00"
      }
    ],
    "working_times": [
      {
        "begin": "08:00",
        "end": "17:00"
      }
    ],
    "booking_times": [
      {
        "begin": "08:00",
        "end": "17:00"
      }
    ],
    "denial_reason": "VACATION"
  }'

Responses

Creates new time shift and returns created record with assigned ID.

Bodyapplication/json
dataobject(GenericRecord)

Generic response data object for proxied GraphQL entities.

Example: {"id":"65f4c840b6f1a10012ab34cd","externalId":"ext_1001","name":"Demo value"}
statusinteger

Operation status flag.

Example: 1
Response
application/json
{ "data": { "id": "65f6e062d8h3c31234cd56eg", "resourceId": "62ee11a91d66269c365407b1", "resourceName": "John Smith", "days": [], "workingTimes": [], "bookingTimes": [], "shiftType": "WORKING", "createdAt": "2024-03-07T10:30:00Z", "updatedAt": "2024-03-07T10:30:00Z", "ts": 1709823000 }, "status": 1 }

Import or update timeshift

Request

This endpoint bulk imports shifts for users. It enables the user to create work and booking shifts. There is also an option to create non-workable shifts, for example "VACATION", "SICK" or "BLOCKER" shifts If you select the "BLOCKER" as the denialReason, parameters workingTimes and bookingTimes will be ignored. You have to be very careful because the variables here are sent in camelCase. Since all records from this method are not added live, but belatedly we give you the ability to receive progress information via a webhook. You will receive information at the address specified by you as soon as some of the chunks have been processed. To make it easier for you to follow what is happening for each record, you have the option of adding an additional field importShiftAllowanceId or importShiftDenialId. Shift examples: - Work shift: { "interval": { "begin": "2023-10-02", "end": "2023-10-02" }, "resourceId": "64759027a6f9909999a59431", "workingTimes": [ { "begin": "08:00", "end": "14:40" }, { "begin": "15:00", "end": "18:00" } ], "bookingTimes": [ { "begin": "08:00", "end": "14:40" }, { "begin": "15:00", "end": "18:00" } ] } - Vacation: { "denialReason": "VACATION", "interval": { "begin": "2023-10-20", "end": "2023-10-22" }, "resourceId": "5f61c6381a34817e5c7fa220", "denialTimes": [ { "begin": "00:00", "end": "24:00" } ] } - Sick: { "denialReason": "SICK", "interval": { "begin": "2023-10-20", "end": "2023-10-22" }, "resourceId": "5f61c6381a34817e5c7fa220", "denialTimes": [ { "begin": "00:00", "end": "24:00" } ] } - Blocker: workingTimes and bookingTimes parameters are ignored { "denialReason": "BLOCKER", "interval": { "begin": "2023-10-20", "end": "2023-10-22" }, "resourceId": "5f61c6381a34817e5c7fa220", "denialTimes": [ { "begin": "00:00", "end": "24:00" } ] }

Security
BearerAuth
Headers
company-idstring

Company MongoDB id used in auth context.

Example: 65f4c840b6f1a10012ab34cd
Bodyapplication/json
shiftsArray of objects

Array of timeshift objects to create or update.

urlstring(uri)

Url.

Example: "https://example.com"
secretstring

Secret.

Example: "example"
skip_emitterstring

Skip emitter.

Example: "example"
curl -i -X POST \
  https://docs2.timify.com/_mock/apis/openapi/v1/timeshifts/import/bulk \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>' \
  -H 'Content-Type: application/json' \
  -H 'company-id: 65f4c840b6f1a10012ab34cd' \
  -d '{
    "shifts": [
      {
        "resourceId": "62ee11a91d66269c365407b1",
        "externalResourceId": "string",
        "interval": {
          "begin": "08:00",
          "end": "17:00"
        },
        "workingTimes": [
          {
            "begin": "08:00",
            "end": "17:00"
          }
        ],
        "bookingTimes": [
          {
            "begin": "08:00",
            "end": "17:00"
          }
        ],
        "denialTimes": [
          {
            "begin": "08:00",
            "end": "17:00"
          }
        ],
        "denialReason": "VACATION"
      }
    ],
    "url": "https://example.com",
    "secret": "example",
    "skip_emitter": "example"
  }'

Responses

Bulk imports time shifts and returns import result with status for each record.

Bodyapplication/json
dataobject(GenericRecord)

Generic response data object for proxied GraphQL entities.

Example: {"id":"65f4c840b6f1a10012ab34cd","externalId":"ext_1001","name":"Demo value"}
statusinteger

Operation status flag.

Example: 1
Response
application/json
{ "data": { "created": 5, "updated": 2, "failed": 0, "results": [] }, "status": 1 }

Customers

Endpoints from customers routes module.

Operations

Enterprise Customers

Endpoints for enterprise-level customer management.

Operations

Companies

Endpoints from companies routes module.

Operations

Enterprises

Endpoints from enterprises routes module.

Operations

Permissions

Endpoints from permissions routes module.

Operations

Services

Endpoints from services routes module.

Operations

Enterprise Services

Endpoints for enterprise-level service management.

Operations

Group Services

Endpoints from group-services routes module.

Operations

Enterprise Group Services

Endpoints from group-services-enterprise routes module.

Operations

Resources

Endpoints from resources routes module.

Operations

Enterprise Resource Categories

Endpoints for enterprise-level resource categories.

Operations

Notifications

Endpoints from notifications routes module.

Operations

Files

Endpoints from files routes module.

Operations

ICS

Endpoints from ics routes module.

Operations

Tags

Endpoints from tags routes module.

Operations

Statistics

Endpoints from statistics routes module.

Operations

Transactions

Endpoints from transactions routes module.

Operations

Public

Endpoints from public routes module.

Operations