SafetyCulture Lone Worker API

The Lone Worker API from SafetyCulture — 2 operation(s) for lone worker.

Operations 2

GET /loneworker/v1/jobs Get jobs #
GET /loneworker/v1/jobs:GetJobEvents Get job events #

Documentation

Specifications

Schemas & Data

Other Resources

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/safetyculture:safetyculture-lone-worker-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

safetyculture-lone-worker-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Mitti Lone Worker API
  version: v1.349.8
  contact:
    name: Mitti Support
    url: https://help.mitti.com
    email: support@mitti.com
servers:
- url: https://api.mitti.com
security:
- BearerAuthentication: []
tags:
- name: Lone Worker
paths:
  /loneworker/v1/jobs:
    get:
      summary: Get jobs
      description: Retrieves all jobs in your organization.
      operationId: JobsService_GetJobs
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/s12.loneworker.v1.GetJobsResponse'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/google.rpc.Status'
      parameters:
      - name: page_size
        description: The number of results to return per page.
        in: query
        required: true
        schema:
          type: integer
          format: int32
      - name: page_token
        description: The token for the page of results to retrieve.
        in: query
        required: false
        schema:
          type: string
      - name: filter.search
        description: The key words to search for.
        in: query
        required: false
        schema:
          type: string
      - name: filter.statuses
        description: "The list of job statuses to filter by.\n\n - JOB_STATUS_ACTIVE_OK: The job is active and operating normally.\n - JOB_STATUS_OVERTIME: The job has exceeded the expected duration due to time expiry or missed check-in.\n - JOB_STATUS_IN_PANIC: The job is in a panic state.\n - JOB_STATUS_FINISHED: The job has finished.\n - JOB_STATUS_TRAVELING: The worker is traveling to the job.\n - JOB_STATUS_CANCELED: The job has been canceled."
        in: query
        required: false
        explode: true
        schema:
          type: array
          items:
            type: string
            enum:
            - JOB_STATUS_ACTIVE_OK
            - JOB_STATUS_OVERTIME
            - JOB_STATUS_IN_PANIC
            - JOB_STATUS_FINISHED
            - JOB_STATUS_TRAVELING
            - JOB_STATUS_CANCELED
      - name: filter.started_at.from
        description: The start time for the date range.
        in: query
        required: false
        schema:
          type: string
          format: date-time
      - name: filter.started_at.to
        description: The end time for the date range.
        in: query
        required: false
        schema:
          type: string
          format: date-time
      - name: filter.group_ids
        description: The list of group IDs to filter by.
        in: query
        required: false
        explode: true
        schema:
          type: array
          items:
            type: string
      - name: filter.user_ids
        description: The list of user IDs to filter by.
        in: query
        required: false
        explode: true
        schema:
          type: array
          items:
            type: string
      - name: filter.job_ids
        description: The list of job IDs to filter by.
        in: query
        required: false
        explode: true
        schema:
          type: array
          items:
            type: string
      tags:
      - Lone Worker
  /loneworker/v1/jobs:GetJobEvents:
    get:
      summary: Get job events
      description: 'Retrieves the events that occurred during a job, such as when it started, when the worker checked in, and when a panic was raised or resolved. Events are returned oldest first, ordered by `created_at`. Position updates, which together form the job''s location trail, can be included as well. Consecutive position updates recorded within 50 meters of each other are combined into a single event. Position updates carry no address of their own; the first and last events of a job''s trail are given the job''s start address and last known address. Requires the "Lone Worker: Manage" permission.'
      operationId: JobsService_GetJobEvents
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/s12.loneworker.v1.GetJobEventsResponse'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/google.rpc.Status'
      parameters:
      - name: id
        description: 'The ID of the job. If omitted, events for every job in the organization are

          returned, position updates cannot be included, and the page size is required.'
        in: query
        required: false
        schema:
          type: string
      - name: include_position_updates
        description: 'Whether to include position updates in the response, forming the job''s location

          trail. Requires the ID of the job.'
        in: query
        required: false
        schema:
          type: boolean
      - name: page_size
        description: 'The maximum number of results to return per page. Must be between 1 and 100 when

          provided. If omitted, up to 5000 events are returned in a single page.'
        in: query
        required: false
        schema:
          type: integer
          format: int32
      - name: page_token
        description: The token for the page of results to retrieve.
        in: query
        required: false
        schema:
          type: string
      tags:
      - Lone Worker
components:
  schemas:
    s12.loneworker.v1.PanicTrigger:
      type: string
      enum:
      - PANIC_TRIGGER_DURATION_EXPIRED
      - PANIC_TRIGGER_MISSED_CHECK_IN
      - PANIC_TRIGGER_BUTTON_PRESSED
      - PANIC_TRIGGER_WIDGET_PRESSED
      - PANIC_TRIGGER_MAN_DOWN
      - PANIC_TRIGGER_SHAKE
      description: "The enum representing the various reasons a job can enter a panic state.\n\n - PANIC_TRIGGER_DURATION_EXPIRED: The job entered a panic state due to duration expiry.\n - PANIC_TRIGGER_MISSED_CHECK_IN: The job entered a panic state due to a missed check-in.\n - PANIC_TRIGGER_BUTTON_PRESSED: The job entered a panic state due to panic button press.\n - PANIC_TRIGGER_WIDGET_PRESSED: The job entered a panic state due to widget button press.\n - PANIC_TRIGGER_MAN_DOWN: The job entered a panic state due to a man-down event.\n - PANIC_TRIGGER_SHAKE: The job entered a panic state due to a shake event."
    s12.common.GeoPosition:
      type: object
      properties:
        longitude:
          type: number
          format: double
          description: The geographical longitude
        latitude:
          type: number
          format: double
          description: The geographical latitude
        accuracy:
          type: integer
          format: int32
          description: The accuracy in meters
      description: A position is the fundamental geographical geometry construct.
    s12.loneworker.v1.JobStatus:
      type: string
      enum:
      - JOB_STATUS_ACTIVE_OK
      - JOB_STATUS_OVERTIME
      - JOB_STATUS_IN_PANIC
      - JOB_STATUS_FINISHED
      - JOB_STATUS_TRAVELING
      - JOB_STATUS_CANCELED
      description: "The enum representing the various states a job can be in during its lifecycle.\n\n - JOB_STATUS_ACTIVE_OK: The job is active and operating normally.\n - JOB_STATUS_OVERTIME: The job has exceeded the expected duration due to time expiry or missed check-in.\n - JOB_STATUS_IN_PANIC: The job is in a panic state.\n - JOB_STATUS_FINISHED: The job has finished.\n - JOB_STATUS_TRAVELING: The worker is traveling to the job.\n - JOB_STATUS_CANCELED: The job has been canceled."
    s12.loneworker.v1.GetJobEventsResponse:
      type: object
      properties:
        job_events:
          type: array
          items:
            type: object
            $ref: '#/components/schemas/s12.loneworker.v1.GetJobEventsResponse.JobEvent'
          description: The list of retrieved job events, oldest first.
        next_page_token:
          type: string
          description: The token for the next page of results.
      description: The response from getting job events.
    s12.loneworker.v1.GetJobEventsResponse.JobEvent.DurationExtendedEvent:
      type: object
      properties:
        duration_minutes:
          type: integer
          format: int32
          description: The duration by which the job was extended, in minutes.
      description: Details about a job duration extension event.
    google.rpc.Status:
      type: object
      properties:
        code:
          type: integer
          format: int32
        message:
          type: string
        details:
          type: array
          items:
            type: object
            $ref: '#/components/schemas/google.protobuf.Any'
    s12.loneworker.v1.GetJobEventsResponse.JobEvent.PanicCanceledEvent:
      type: object
      properties:
        panic_reason:
          description: The reason that caused the job to exit the panic state.
          allOf:
          - $ref: '#/components/schemas/s12.loneworker.v1.PanicReason'
      description: Details about a panic cancel event.
    s12.loneworker.v1.GetJobEventsResponse.JobEvent.PositionUpdatedEvent:
      type: object
      properties:
        events_count:
          type: integer
          format: int32
          description: The number of position updates combined into this event, at least one.
        duration_seconds:
          type: integer
          format: int32
          description: 'The number of seconds between the first and last of the combined position

            updates, or zero when only one was combined.'
        direction:
          type: integer
          format: int32
          description: 'The compass bearing in degrees, from 0 to 360, toward the next position, or -1

            when the worker did not move or no later event was returned.'
      description: Details about a position update event.
    s12.loneworker.v1.GetJobEventsResponse.JobEvent.PanicResolvedEvent:
      type: object
      properties:
        panic_reason:
          description: The reason that caused the job to exit the panic state.
          allOf:
          - $ref: '#/components/schemas/s12.loneworker.v1.PanicReason'
      description: Details about a panic resolve event.
    s12.loneworker.v1.GetJobEventsResponse.JobEvent.GeofenceExitedEvent:
      type: object
      properties:
        geofence_id:
          type: string
          description: The ID of the geofence that was exited.
        exit_reason:
          description: The reason for exiting the geofence.
          allOf:
          - $ref: '#/components/schemas/s12.loneworker.v1.GeofenceExitReason'
      description: Details about a geofence exited event.
    s12.loneworker.v1.TimedLocation:
      type: object
      properties:
        position:
          description: The geographical position of the location.
          allOf:
          - $ref: '#/components/schemas/s12.common.GeoPosition'
        address:
          type: string
          description: The address of the location.
        recorded_at:
          type: string
          format: date-time
          description: The timestamp when the location was recorded, in UTC.
      description: The message representing a location and time when it was recorded.
    s12.loneworker.v1.GetJobEventsResponse.JobEvent.PanicAcknowledgedEvent:
      type: object
      properties:
        acknowledged_by_user_id:
          type: string
          description: The ID of the user who acknowledged the panic.
      description: Details about a panic acknowledgement event.
    s12.loneworker.v1.GetJobEventsResponse.JobEvent.PanicStartedEvent:
      type: object
      properties:
        panic_trigger:
          description: The trigger that caused the job to enter a panic state.
          allOf:
          - $ref: '#/components/schemas/s12.loneworker.v1.PanicTrigger'
      description: Details about a panic start event.
    s12.loneworker.v1.GetJobsResponse:
      type: object
      properties:
        jobs:
          type: array
          items:
            type: object
            $ref: '#/components/schemas/s12.loneworker.v1.GetJobsResponse.Job'
          description: The list of retrieved jobs.
        next_page_token:
          type: string
          description: The token for the next page of results.
        total_count:
          type: integer
          format: int32
          description: The total number of jobs that match the filter.
      description: The message representing a location and its address.
    s12.loneworker.v1.JobEventType:
      type: string
      enum:
      - JOB_EVENT_TYPE_STARTED
      - JOB_EVENT_TYPE_FINISHED
      - JOB_EVENT_TYPE_DURATION_EXTENDED
      - JOB_EVENT_TYPE_POSITION_UPDATED
      - JOB_EVENT_TYPE_PANIC_STARTED
      - JOB_EVENT_TYPE_CHECKED_IN
      - JOB_EVENT_TYPE_PANIC_POSITION_UPDATED
      - JOB_EVENT_TYPE_CHECK_IN_MISSED
      - JOB_EVENT_TYPE_DURATION_EXPIRED
      - JOB_EVENT_TYPE_PANIC_CANCELED
      - JOB_EVENT_TYPE_PANIC_RESOLVED
      - JOB_EVENT_TYPE_PANIC_ACKNOWLEDGED
      - JOB_EVENT_TYPE_GEOFENCE_ENTERED
      - JOB_EVENT_TYPE_GEOFENCE_EXITED
      description: "The enum representing the various events that can occur during the job's lifecycle.\n\n - JOB_EVENT_TYPE_STARTED: The job has started.\n - JOB_EVENT_TYPE_FINISHED: The job has finished.\n - JOB_EVENT_TYPE_DURATION_EXTENDED: The duration of the job has been extended.\n - JOB_EVENT_TYPE_POSITION_UPDATED: The job's position has been updated.\n - JOB_EVENT_TYPE_PANIC_STARTED: The job entered a panic state.\n - JOB_EVENT_TYPE_CHECKED_IN: The worker has manually checked in.\n - JOB_EVENT_TYPE_PANIC_POSITION_UPDATED: The job's position has been updated during a panic state.\n - JOB_EVENT_TYPE_CHECK_IN_MISSED: The worker missed a scheduled check-in.\n - JOB_EVENT_TYPE_DURATION_EXPIRED: The job's duration has expired.\n - JOB_EVENT_TYPE_PANIC_CANCELED: The panic state has been canceled.\n - JOB_EVENT_TYPE_PANIC_RESOLVED: The panic state has been resolved.\n - JOB_EVENT_TYPE_PANIC_ACKNOWLEDGED: The panic has been acknowledged.\n - JOB_EVENT_TYPE_GEOFENCE_ENTERED: The worker has entered a geofence area.\n - JOB_EVENT_TYPE_GEOFENCE_EXITED: The worker has exited a geofence area."
    s12.loneworker.v1.GetJobEventsResponse.JobEvent.StartedEvent:
      type: object
      properties:
        duration_minutes:
          type: integer
          format: int32
          description: The planned duration of a job (minutes).
      description: Details about a job start event.
    s12.loneworker.v1.GeofenceExitReason:
      type: string
      enum:
      - GEOFENCE_EXIT_REASON_BOUNDARY_CROSSED
      - GEOFENCE_EXIT_REASON_GEOFENCE_DELETED
      description: "GeofenceExitReason enumerates the possible reasons for exiting a geofence.\n\n - GEOFENCE_EXIT_REASON_BOUNDARY_CROSSED: The geofence boundary was crossed.\n - GEOFENCE_EXIT_REASON_GEOFENCE_DELETED: The geofence was deleted."
    google.protobuf.Any:
      type: object
      properties:
        '@type':
          type: string
          description: "A URL/resource name that uniquely identifies the type of the serialized\nprotocol buffer message. This string must contain at least\none \"/\" character. The last segment of the URL's path must represent\nthe fully qualified name of the type (as in\n`path/google.protobuf.Duration`). The name should be in a canonical form\n(e.g., leading \".\" is not accepted).\n\nIn practice, teams usually precompile into the binary all types that they\nexpect it to use in the context of Any. However, for URLs which use the\nscheme `http`, `https`, or no scheme, one can optionally set up a type\nserver that maps type URLs to message definitions as follows:\n\n* If no scheme is provided, `https` is assumed.\n* An HTTP GET on the URL must yield a [google.protobuf.Type][]\n  value in binary format, or produce an error.\n* Applications are allowed to cache lookup results based on the\n  URL, or have them precompiled into a binary to avoid any\n  lookup. Therefore, binary compatibility needs to be preserved\n  on changes to types. (Use versioned type names to manage\n  breaking changes.)\n\nNote: this functionality is not currently available in the official\nprotobuf release, and it is not used for type URLs beginning with\ntype.googleapis.com.\n\nSchemes other than `http`, `https` (or the empty scheme) might be\nused with implementation specific semantics."
      additionalProperties: {}
      description: "`Any` contains an arbitrary serialized protocol buffer message along with a\nURL that describes the type of the serialized message.\n\nProtobuf library provides support to pack/unpack Any values in the form\nof utility functions or additional generated methods of the Any type.\n\nExample 1: Pack and unpack a message in C++.\n\n    Foo foo = ...;\n    Any any;\n    any.PackFrom(foo);\n    ...\n    if (any.UnpackTo(&foo)) {\n      ...\n    }\n\nExample 2: Pack and unpack a message in Java.\n\n    Foo foo = ...;\n    Any any = Any.pack(foo);\n    ...\n    if (any.is(Foo.class)) {\n      foo = any.unpack(Foo.class);\n    }\n\n Example 3: Pack and unpack a message in Python.\n\n    foo = Foo(...)\n    any = Any()\n    any.Pack(foo)\n    ...\n    if any.Is(Foo.DESCRIPTOR):\n      any.Unpack(foo)\n      ...\n\n Example 4: Pack and unpack a message in Go\n\n     foo := &pb.Foo{...}\n     any, err := ptypes.MarshalAny(foo)\n     ...\n     foo := &pb.Foo{}\n     if err := ptypes.UnmarshalAny(any, foo); err != nil {\n       ...\n     }\n\nThe pack methods provided by protobuf library will by default use\n'type.googleapis.com/full.type.name' as the type URL and the unpack\nmethods only use the fully qualified type name after the last '/'\nin the type URL, for example \"foo.bar.com/x/y.z\" will yield type\nname \"y.z\".\n\n\nJSON\n====\nThe JSON representation of an `Any` value uses the regular\nrepresentation of the deserialized, embedded message, with an\nadditional field `@type` which contains the type URL. Example:\n\n    package google.profile;\n    message Person {\n      string first_name = 1;\n      string last_name = 2;\n    }\n\n    {\n      \"@type\": \"type.googleapis.com/google.profile.Person\",\n      \"firstName\": <string>,\n      \"lastName\": <string>\n    }\n\nIf the embedded message type is well-known and has a custom JSON\nrepresentation, that representation will be embedded adding a field\n`value` which holds the custom JSON in addition to the `@type`\nfield. Example (for message [google.protobuf.Duration][]):\n\n    {\n      \"@type\": \"type.googleapis.com/google.protobuf.Duration\",\n      \"value\": \"1.212s\"\n    }"
    s12.loneworker.v1.PanicReason:
      type: string
      enum:
      - PANIC_REASON_NO_PANIC
      - PANIC_REASON_FALSE_ALARM
      - PANIC_REASON_INCIDENT
      - PANIC_REASON_NEAR_MISS
      description: "The enum representing the various reasons a job can resolve a panic state.\n\n - PANIC_REASON_NO_PANIC: The job did not have a panic at all.\n - PANIC_REASON_FALSE_ALARM: The panic state was a false alarm.\n - PANIC_REASON_INCIDENT: The panic state was due to an incident.\n - PANIC_REASON_NEAR_MISS: The panic state was due to a near miss."
    s12.loneworker.v1.GetJobsResponse.Job:
      type: object
      properties:
        id:
          type: string
          description: The ID of the job.
        job_number:
          type: string
          description: The number of the job.
        status:
          description: The current status of the job.
          allOf:
          - $ref: '#/components/schemas/s12.loneworker.v1.JobStatus'
        job_type_id:
          type: string
          description: The ID of the job type.
        job_type_name:
          type: string
          description: The type of the job.
        group_id:
          type: string
          description: The ID of the group associated with the job.
        user_id:
          type: string
          description: The ID of the user performing the job.
        started_at:
          type: string
          format: date-time
          description: The timestamp when the job started.
        start_location:
          description: '[Optional] The location where the job started.'
          allOf:
          - $ref: '#/components/schemas/s12.loneworker.v1.GetJobsResponse.Location'
        start_location_notes:
          type: string
          description: '[Optional] The extra details about the start location (e.g., level, office).'
        last_known_location:
          description: '[Optional] The last known location.'
          allOf:
          - $ref: '#/components/schemas/s12.loneworker.v1.GetJobsResponse.Location'
        last_located_at:
          type: string
          format: date-time
          description: '[Optional] The timestamp when the last known location was recorded.'
        panic_reason:
          description: The reason for the panic, if applicable.
          allOf:
          - $ref: '#/components/schemas/s12.loneworker.v1.PanicReason'
        finished_at:
          type: string
          format: date-time
          description: '[Optional] The timestamp when the job finished.'
      description: The message representing an active job.
    s12.loneworker.v1.GetJobEventsResponse.JobEvent:
      type: object
      description: An event that occurred during a job. At most one set of event details is present, and event types that carry no further detail, such as a check-in, have none at all.
      properties:
        id:
          type: string
          description: The ID of the job event.
        type:
          description: The type of the job event.
          allOf:
          - $ref: '#/components/schemas/s12.loneworker.v1.JobEventType'
        location:
          description: The location of the job event.
          allOf:
          - $ref: '#/components/schemas/s12.loneworker.v1.TimedLocation'
        created_at:
          type: string
          format: date-time
          description: The timestamp when the job event was created.
        job_id:
          type: string
          description: The ID of the job.
        user_id:
          type: string
          description: The ID of the user.
      anyOf:
      - type: object
        title: Job started
        description: The job started.
        properties:
          started:
            $ref: '#/components/schemas/s12.loneworker.v1.GetJobEventsResponse.JobEvent.StartedEvent'
        required:
        - started
      - type: object
        title: Duration extended
        description: The duration of the job was extended.
        properties:
          duration_extended:
            $ref: '#/components/schemas/s12.loneworker.v1.GetJobEventsResponse.JobEvent.DurationExtendedEvent'
        required:
        - duration_extended
      - type: object
        title: Panic started
        description: The job entered a panic state.
        properties:
          panic_started:
            $ref: '#/components/schemas/s12.loneworker.v1.GetJobEventsResponse.JobEvent.PanicStartedEvent'
        required:
        - panic_started
      - type: object
        title: Panic acknowledged
        description: Someone acknowledged the panic.
        properties:
          panic_acknowledged:
            $ref: '#/components/schemas/s12.loneworker.v1.GetJobEventsResponse.JobEvent.PanicAcknowledgedEvent'
        required:
        - panic_acknowledged
      - type: object
        title: Panic canceled
        description: The job left the panic state because the panic was canceled.
        properties:
          panic_canceled:
            $ref: '#/components/schemas/s12.loneworker.v1.GetJobEventsResponse.JobEvent.PanicCanceledEvent'
        required:
        - panic_canceled
      - type: object
        title: Panic resolved
        description: The job left the panic state because the panic was resolved.
        properties:
          panic_resolved:
            $ref: '#/components/schemas/s12.loneworker.v1.GetJobEventsResponse.JobEvent.PanicResolvedEvent'
        required:
        - panic_resolved
      - type: object
        title: Position updated
        description: The worker's position was updated. These events form the job's location trail.
        properties:
          position_updated:
            $ref: '#/components/schemas/s12.loneworker.v1.GetJobEventsResponse.JobEvent.PositionUpdatedEvent'
        required:
        - position_updated
      - type: object
        title: Panic position updated
        description: The worker's position was updated while the job was in a panic state.
        properties:
          panic_position_updated:
            $ref: '#/components/schemas/s12.loneworker.v1.GetJobEventsResponse.JobEvent.PanicPositionUpdatedEvent'
        required:
        - panic_position_updated
      - type: object
        title: Geofence entered
        description: The worker entered a geofenced area.
        properties:
          geofence_entered:
            $ref: '#/components/schemas/s12.loneworker.v1.GetJobEventsResponse.JobEvent.GeofenceEnteredEvent'
        required:
        - geofence_entered
      - type: object
        title: Geofence exited
        description: The worker left a geofenced area.
        properties:
          geofence_exited:
            $ref: '#/components/schemas/s12.loneworker.v1.GetJobEventsResponse.JobEvent.GeofenceExitedEvent'
        required:
        - geofence_exited
      - type: object
        title: No further detail
        description: The event type carries no further detail, such as a check-in or the job finishing.
    s12.loneworker.v1.GetJobEventsResponse.JobEvent.GeofenceEnteredEvent:
      type: object
      properties:
        geofence_id:
          type: string
          description: The ID of the geofence that was entered.
      description: Details about a geofence entered event.
    s12.loneworker.v1.GetJobEventsResponse.JobEvent.PanicPositionUpdatedEvent:
      type: object
      properties:
        events_count:
          type: integer
          format: int32
          description: The number of panic position updates combined into this event, at least one.
        duration_seconds:
          type: integer
          format: int32
          description: 'The number of seconds between the first and last of the combined panic position

            updates, or zero when only one was combined.'
        direction:
          type: integer
          format: int32
          description: 'The compass bearing in degrees, from 0 to 360, toward the next position, or -1

            when the worker did not move or no later event was returned.'
      description: Details about a panic position update event.
    s12.loneworker.v1.GetJobsResponse.Location:
      type: object
      properties:
        latitude:
          type: number
          format: double
          description: The geographical latitude.
        longitude:
          type: number
          format: double
          description: The geographical longitude.
        address:
          type: string
          description: '[Optional] The address of the location.'
      description: The message representing a location and time when it was recorded.
  securitySchemes:
    BearerAuthentication:
      type: http
      scheme: bearer
externalDocs:
  description: How to generate an API Token
  url: https://help.mitti.com/en-US/000007/
x-provenance:
  method: searched
  source: https://developer.mitti.com/reference
  harvested: '2026-10-14'
  tool: harvest-readme-openapi.py
  note: Assembled verbatim from the OpenAPI definition ReadMe embeds in each operation page of the provider's developer portal; paths and components merged by API title, nothing authored.
  assembled_from:
  - https://developer.mitti.com/reference/actionsservice_createaction.md
  - https://developer.mitti.com/reference/actionsservice_createactionschedule.md
  - https://developer.mitti.com/reference/actionsservice_createactionsharedlink.md
  - https://developer.mitti.com/reference/actionsservice_deleteactions.md
  - https://developer.mitti.com/reference/actionsservice_getaction.md
  - https://developer.mitti.com/reference/actionsservice_getactions.md
  - https://developer.mitti.com/reference/actionsservice_getactionsharedlink.md
  - https://developer.mitti.com/reference/actionsservice_revokeactionsharedlink.md
  - https://developer.mitti.com/reference/actionsservice_updateactionlabels.md
  - https://developer.mitti.com/reference/actionsservice_updateasset.md
  - https://developer.mitti.com/reference/actionsservice_updateassignees.md
  - https://developer.mitti.com/reference/actionsservice_updatedescription.md
  - https://developer.mitti.com/reference/actionsservice_updatedueat.md
  - https://developer.mitti.com/reference/actionsservice_updatepriority.md
  - https://developer.mitti.com/reference/actionsservice_updatesite.md
  - https://developer.mitti.com/reference/actionsservice_updatestatus.md
  - https://developer.mitti.com/reference/actionsservice_updatetitle.md
  - https://developer.mitti.com/reference/answerservice_answerasset.md
  - https://developer.mitti.com/reference/answerservice_answercheckbox.md
  - https://developer.mitti.com/reference/answerservice_generatedynamicfield.md
  - https://developer.mitti.com/reference/answerservice_getanswersforinspection.md
  - https://developer.mitti.com/reference/assetsservice_archiveasset.md
  - https://developer.mitti.com/reference/assetsservice_bulkcreateassets.md
  - https://developer.mitti.com/reference/assetsservice_bulkupdateassets.md
  - https://developer.mitti.com/reference/assetsservice_createasset.md
  - https://developer.mitti.com/reference/assetsservice_deleteasset.md
  - https://developer.mitti.com/reference/assetsservice_getasset.md
  - https://developer.mitti.com/reference/assetsservice_getassetbycode.md
  - https://developer.mitti.com/reference/assetsservice_listassets.md
  - https://developer.mitti.com/reference/assetsservice_lookupassetsbyfield.md
  - https://developer.mitti.com/reference/assetsservice_restorearchivedasset.md
  - https://developer.mitti.com/reference/assetsservice_setassetfieldvalues.md
  - https://developer.mitti.com/reference/assetsservice_updateasset.md
  - https://developer.mitti.com/reference/assetsservice_updateassetlocation.md
  - https://developer.mitti.com/reference/companydocumentsservice_deletecompanydocumenttype.md
  - https://developer.mitti.com/reference/companydocumentsservice_listcompanydocuments.md
  - https://developer.mitti.com/reference/companydocumentsservice_listcompanydocumenttypes.md
  - https://developer.mitti.com/reference/contractorcompanytypesservice_getcompanytype.md
  - https://developer.mitti.com/reference/contractorcompanytypesservice_listcompanytypes.md
  - https://developer.mitti.com/reference/contractorcompanytypesservice_listcompanytypesmetrics.md
  - https://developer.mitti.com/reference/contractorsservice_createcontractorcompany.md
  - https://developer.mitti.com/reference/contractorsservice_deletecontractorcompany.md
  - https://developer.mitti.com/reference/contractorsservice_getcontractorcompany.md
  - https://developer.mitti.com/reference/contractorsservice_listcompanyusermetadata.md
  - https://developer.mitti.com/reference/contractorsservice_listcontractorcompanies.md
  - https://developer.mitti.com/reference/contractorsservice_updatecontractorcompany.md
  - https://developer.mitti.com/reference/customerconfigurationservice_createcustomfield.md
  - https://developer.mitti.com/reference/customerconfigurationservice_createtasktype.md
  - https://developer.mitti.com/reference/customerconfigurationservice_deleteactionlabels.md
  - https://developer.mitti.com/reference/customerconfigurationservice_deletecustomfield.md
  - https://developer.mitti.com/reference/customerconfigurationservice_deletetasktype.md
  - https://developer.mitti.com/reference/customerconfigurationservice_getactionlabels.md
  - https://developer.mitti.com/reference/customerconfigurationservice_getcategories.md
  - https://developer.mitti.com/reference/customerconfigurationservice_getorgtasktypeunmappedfields.md
  - https://developer.mitti.com/reference/customerconfigurationservice_gettasktype.md
  - https://developer.mitti.com/reference/customerconfigurationservice_gettasktypecustomfields.md
  - https://developer.mitti.com/reference/customerconfigurationservice_gettasktypes.md
  - https://developer.mitti.com/reference/customerconfigurationservice_mapfieldtotasktype.md
  - https://developer.mitti.com/reference/customerconfigurationservice_renamecustomfield.md


# --- truncated at 32 KB (60 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/safetyculture/refs/heads/main/openapi/safetyculture-lone-worker-api-openapi.yml