C2 Personnel API (1.33.0)

Download OpenAPI specification:

API for accessing data related to Schedule, Work Rest, Timesheets.

Timesheets

Operations related to timesheet entries

Retrieve timesheet entries

Fetch timesheet entries with various filtering options. Data is always paginated. All parameters are optional.

query Parameters
page
integer
Default: 1
Example: page=1

Page number for pagination.

from
string <date>
Example: from=2024-01-01

Only include entries ON OR AFTER this date.

to
string <date>
Example: to=2024-01-31

Only include entries BEFORE this date.

crew
Array of strings <uuid> [ items <uuid > ]

Only includes entries where PersonId is in this list.

assets
Array of strings <uuid> [ items <uuid > ]

Only include entries where AssetId is in this list.

trips
Array of strings <uuid> [ items <uuid > ]

Only include entries where TripId is in this list.

earningCodes
Array of strings <uuid> [ items <uuid > ]

Only include entries where EarningCodeId is in this list.

costCenters
Array of strings <uuid> [ items <uuid > ]

Only include entries where CostCenterId is in this list.

positions
Array of strings <uuid> [ items <uuid > ]

Only include entries where PositionId is in this list.

Responses

Response samples

Content type
application/json
{
  • "TotalCount": 0,
  • "Page": 0,
  • "Results": [
    ]
}

Get user-defined fields for timesheets

Returns a list of user-defined fields configured specifically for timesheet entries. Only fields where the entity type is "TimesheetEntry" are included. Fields from other entities are not returned.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Schedule

Operations related to schedule (time off & states)

Retrieve time off records

Fetch "time off"" with various filtering options. Data is always paginated. All parameters are optional.

query Parameters
page
integer
Default: 1
Example: page=1

Page number for pagination.

from
string <date>
Example: from=2024-01-01

Lower bound for date filtration. Use both from and to to fetch entries that intersect a time period.

to
string <date>
Example: to=2024-01-31

Upper bound for date filtration. Use both from and to to fetch entries that intersect a time period.

crew
Array of strings <uuid> [ items <uuid > ]

Only includes entries where PersonId is in this list. Use a comma separated list of GUIDs.

Responses

Response samples

Content type
application/json
{
  • "TotalCount": 0,
  • "Page": 0,
  • "Results": [
    ]
}

Retrieve time off states

Fetches all time off states without any filters. The list should always be small and safe to read all at once.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get crew requirement types for assets

Returns a list of crew requirement types linked to the given assets. Each item shows which trips it's used for and which positions are included. You can filter the list using asset IDs or specific requirement IDs (up to 20 per filter).

query Parameters
assetIds
string
Example: assetIds=a1,b2,c3

Optional – comma-separated list of asset GUIDs to filter by. Max 20. If omitted, no asset filter is applied.

ids
string
Example: ids=id1,id2

Optional – comma-separated list of specific requirement type GUIDs. Max 20. Use to fetch specific entries only.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get scheduled crew requirements

Returns a list of scheduled crew requirements for the given assets and time range.Each item shows which requirement is scheduled, when it starts and ends, what it's for, and which asset it belongs to.

query Parameters
assetIds
string
Example: assetIds=asset-guid-1,asset-guid-2

Optional – comma-separated list of asset GUIDs to filter by. Max 20. If not provided, returns all scheduled requirements within the time range.

from
required
string <date-time>
Example: from=2024-06-01T00:00:00Z

Start of the time window (inclusive).

to
required
string <date-time>
Example: to=2024-06-30T00:00:00Z

End of the time window (exclusive).

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Work Rest

Operations related to work rest

Get work rest records

Returns a list of work rest records. The results can be filtered by date range, crew IDs, division IDs, and a flag to include only active employees. All filters are optional.

query Parameters
from
string <date>
Example: from=2024-01-01

Only include entries on or after this date.

to
string <date>
Example: to=2024-01-31

Only include entries before this date.

crewIds
string
Example: crewIds=guid1,guid2,guid3

Comma-separated list of crew member GUIDs to filter by. A maximum of 50 IDs is allowed.

divisionIds
string
Example: divisionIds=guidA,guidB,guidC

Comma-separated list of division GUIDs to filter by. A maximum of 50 IDs is allowed.

activeEmployeesOnly
boolean
Example: activeEmployeesOnly=true

If true, only return records for active employees.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get work rest types

Returns a list of work rest types configured for the current tenant and asset context.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Feed

Operations related to unified feed of plugin data

Retrieve a mixed plugin data feed

Returns a paginated list of plugin documents (e.g. timesheet entries, time off, work rest data). This is primarily intended for syncing or mirroring data between systems. Each result contains a Type string and a Data object. The shape of the Data depends on the Type. Instead of documenting every object shape again, refer to the specific public endpoints:

  • TimesheetEntry → /api/public/timesheets/timesheetentries
  • ScheduleRangeEvent → /api/public/schedule/timeoff
  • ScheduleTimeOffWorkflowState → /api/public/schedule/timeoffstates
  • ScheduleRequirement → /api/public/schedule/crewrequirements
  • ScheduleScheduledRequirement → /api/public/schedule/scheduledcrewrequirements
  • UserDefinedField → /api/public/timesheets/userdefinedfields
  • WorkRestData → /api/public/workrest/data
  • WorkRestType → /api/public/workrest/types

The Data field matches the structure returned by the corresponding endpoint.

query Parameters
page
integer
Default: 1
Example: page=1

Page number for pagination. Starts at 1.

sinceVersion
integer
Example: sinceVersion=1024

Optional – only return records with Version greater than this. Useful for incremental syncing.

Responses

Response samples

Content type
application/json
{
  • "TotalCount": 0,
  • "Page": 0,
  • "Results": [
    ]
}