NAV Navbar
Logo
http
  • Introduction
  • Accounts
  • Account Roles
  • Clients
  • Contact Addresses
  • Documents
  • File uploads
  • Metafields
  • Notifications
  • Notification Templates
  • Orders
  • Route Optimizations
  • Routes
  • Signatures
  • Tasks
  • Task Events
  • Task Event Tracks
  • Task Forms
  • Task Metadatas
  • Task Address Feature
  • Time Locations
  • Trackers
  • Users
  • Webhooks
  • Introduction

    The GSMtasks API is a RESTful web service for developers to programmatically interact with GSMtasks data, real-time delivery and task management and route optimization functionality.

    The GSMtasks API is organized around REST. Every bit of data exchanged between clients and the API is JSON over HTTPS. All API requests must be made over HTTPS. Calls made over plain HTTP will fail. You must authenticate for all requests.

    The base URL for the GSMTasks API is https://gsmtasks.com/api/tasks/.

    If you have questions about using the API, or have come across a bug you'd like to report, write us an email at info@gsmtasks.com.

    Authentication

    For clients to authenticate, the token key should be included in the Authorization HTTP header.

    The key should be prefixed by the string literal "Token", with whitespace separating the two strings.

    Authorization: Token 9944b09199c62bcf9418ad846dd0e4bbdfc6ee4b

    Unauthenticated responses that are denied permission will result in an HTTP 401 Unauthorized response with an appropriate WWW-Authenticate header.

    WWW-Authenticate: Token

    Obtaining authentication tokens

    To obtain a authentication token the fallowing HTTP request has to be performed.

    The request returns JSON structured like this:

    {
      "account": "4368ec5d-9942-4c74-90f7-eea752a6e489",
      "token": "7e9917ffg57b043b9527711395c013761b2113c7",
      "accounts": [
        "4368ec5d-9942-4c74-90f7-eea752a6e489",
        "5941c788-f162-4ad0-a43a-4af82bcb30b6"
      ],
      "user": "https://gsmtasks.com/api/tasks/users/85410f5f-ec82-4148-ba78-5be5a79f0fb1/"
    }
    

    HTTP Request

    POST https://gsmtasks.com/api/authenticate/

    Query Parameters

    Parameter Type Required Description
    username String yes The email used during signup
    password String yes The password set for that username

    Errors

    GSMtasks uses conventional HTTP response codes to indicate success or failure of an API request. In general, codes in the 2xx range indicate success, codes in the 4xx range indicate an error that resulted from the provided information (e.g. a required parameter was missing, a charge failed, etc.), and codes in the 5xx range indicate an error with GSMtasks's servers.

    Status code Status text Description
    200 OK Everything worked as expected.
    400 Bad Request Often missing a required parameter.
    401 Unauthorized No valid API key provided.
    402 Request Failed Parameters were valid but request failed.
    404 Not Found The requested item doesn't exist.
    429 Too Many Requests Too many requests hit the API too quickly.
    50* Server Errors Something went wrong on our end.

    Accounts

    This is an object representing your GSMtasks account and it's settings. On signup an account is created for the user. It's also possible to have access to other accounts through Role objects.

    List Accounts

    Returns a array of accounts that the user has access to.

    The request returns JSON structured like this:

    [
        {
            "id": "4368ec5d-9942-4c74-90f7-eea752a6e489",
            "url": "https://gsmtasks.com/api/tasks/accounts/4368ec5d-9942-4c74-90f7-eea752a6e489/",
            "name": "Fast Couriers",
            "slug": "fast-couriers",
            "timezone": "Europe/London",
            "country_code": "GB",
            "address": {
              "raw_address": "Piccadilly Circus, London, United Kingdom",
              "formatted_address": "Piccadilly Circus, London W1D 7ET, UK",
              "location": {
                "type": "Point",
                "coordinates": [
                  -0.13457340000002205,
                  51.5100974
                ]
              },
              "google_place_id": "ChIJwR8g_9MEdkgR_rI--wzfivA",
              "point_of_interest": "",
              "street": "Piccadilly Circus",
              "house_number": "",
              "apartment_number": "",
              "city": "London",
              "state": "",
              "postal_code": "W1D 7ET",
              "country": "United Kingdom",
              "country_code": "GB"
            },
            "managers": "https://gsmtasks.com/api/tasks/accounts/4368ec5d-9942-4c74-90f7-eea752a6e489/managers/",
            "workers": "https://gsmtasks.com/api/tasks/accounts/4368ec5d-9942-4c74-90f7-eea752a6e489/workers/",
            "task_duration": "00:05:00"
        }
    ]
    

    GET https://gsmtasks.com/api/tasks/accounts/

    Attributes

    Attribute Type Description
    id String Account unique identifier
    url String Unique URL for the resource
    name String Name of the account for easy reference
    slug String Machine readable account identifier
    timezone String Timezone name for dates and time
    country_code  String ISO 2 country code
    address Object Address object describing the location of the account
    managers String URL for easy access to account managers
    workers String URL for easy access to account workers
    task_duration String Default task duration in the format of HH:MM:SS

    Retrieve a specific Account

    GET https://gsmtasks.com/api/tasks/accounts/4368ec5d-9942-4c74-90f7-eea752a6e489/

    Create Account

    Request to create a new account with the parameters provided

    Example POST request JSON data:

    {
        "account": {
            "name": "Fast Couriers",
            "timezone": "Europe/London",
            "country_code": "GB"
        },
        "user": {
            "first_name": "Tom",
            "last_name": "Smith",
            "email": "tom.smith@fast.uk",
            "phone": "+447700900132",
            "password": "password"
        }
    }
    

    The request returns JSON of the created Account structured like this:

    {
        "account": {
            "id": "4368ec5d-9942-4c74-90f7-eea752a6e489",
            "url": "https://gsmtasks.com/api/tasks/accounts/4368ec5d-9942-4c74-90f7-eea752a6e489/",
            "name": "Fast Couriers",
            "timezone": "Europe/London",
            "country_code": "GB"
        },
        "user": {
            "id": "e04b279e-d8ed-4c12-b4df-698652d4c627",
            "url": "https://gsmtasks.com/api/tasks/users/e04b279e-d8ed-4c12-b4df-698652d4c627/",
            "first_name": "Tom",
            "last_name": "Smith",
            "email": "tom.smith@fast.uk",
            "phone": "++447700900132"
        },
        "token": "5dac4af44f7da18f802cfae8685c00a3de73755b"
    }
    

    POST https://gsmtasks.com/api/register/

    Request parameters

    Parameter Type Required Description
    name String Yes Name of the account for easy reference
    timezone String No Timezone name for dates and time
    country_code  String No ISO 2 country code
    user  object Yes User object

    Account Roles

    List Account Roles

    Returns a array of account roles. Account Roles define the access to a specific account the user has been given.

    Currently a very simple system is used and only two types of accesses can be given. Either manager, worker or both.

    The request returns JSON structured like this:

    [
      {
          "id": "dae7ab83-d6d9-4d83-acdf-e39890a8abe2",
          "url": "https://gsmtasks.com/api/tasks/roles/dae7ab83-d6d9-4d83-acdf-e39890a8abe2/",
          "account": "https://gsmtasks.com/api/tasks/accounts/4368ec5d-9942-4c74-90f7-eea752a6e489/",
          "user": "https://gsmtasks.com/api/tasks/users/18fb9d97-824b-4c2a-9b74-764a88a78c96/",
          "is_manager": false,
          "is_worker": true,
          "created_at": "2016-10-18T08:34:46.117131Z",
          "updated_at": "2016-10-18T08:34:46.117157Z"
      }
    ]
    

    GET https://gsmtasks.com/api/tasks/roles/

    Attributes

    Attribute Type Description
    id String Account Role unique identifier
    url String Unique URL for the resource
    account String URL of the account resource
    user String URL of the user resource
    is_manager Boolean Manager access boolean
    is_worker Boolean Worker access boolean
    created_at String The time when the account role was created
    updated_at String The time when the account role was updated

    Retrieve a specific Account Role

    GET https://gsmtasks.com/api/tasks/roles/dae7ab83-d6d9-4d83-acdf-e39890a8abe2/

    Create Account Role

    Request to create a new account role with the parameters provided

    Example POST request JSON data:

    {
        "account": "https://gsmtasks.com/api/tasks/accounts/4368ec5d-9942-4c74-90f7-eea752a6e489/",
        "user": "https://gsmtasks.com/api/tasks/users/18fb9d97-824b-4c2a-9b74-764a88a78c96/",
        "is_manager": false,
        "is_worker": true
    }
    

    The request returns JSON of the created Account Role structured like this:

    {
        "id": "dae7ab83-d6d9-4d83-acdf-e39890a8abe2",
        "url": "https://gsmtasks.com/api/tasks/roles/dae7ab83-d6d9-4d83-acdf-e39890a8abe2/",
        "account": "https://gsmtasks.com/api/tasks/accounts/4368ec5d-9942-4c74-90f7-eea752a6e489/",
        "user": "https://gsmtasks.com/api/tasks/users/18fb9d97-824b-4c2a-9b74-764a88a78c96/",
        "is_manager": false,
        "is_worker": true,
        "created_at": "2016-10-20T12:55:33.977065Z",
        "updated_at": "2016-10-20T12:55:33.977092Z"
    }
    

    POST https://gsmtasks.com/api/tasks/roles/

    Request parameters

    Parameter Type Required Description
    account String Yes Name of the account for easy reference
    user String Yes URL of the user resource
    is_manager Boolean Yes Manager access boolean
    is_worker Boolean Yes Worker access boolean

    Update Account Role

    Request to update a account role. We will change the is_manager to true and is_worker to false as an example.

    Example PUT request JSON data:

    {
        "is_manager": true,
        "is_worker": false
    }
    

    The request returns JSON of the updated Account Role structured like this:

    {
        "id": "dae7ab83-d6d9-4d83-acdf-e39890a8abe2",
        "url": "https://gsmtasks.com/api/tasks/roles/dae7ab83-d6d9-4d83-acdf-e39890a8abe2/",
        "account": "https://gsmtasks.com/api/tasks/accounts/4368ec5d-9942-4c74-90f7-eea752a6e489/",
        "user": "https://gsmtasks.com/api/tasks/users/18fb9d97-824b-4c2a-9b74-764a88a78c96/",
        "is_manager": true,
        "is_worker": false,
        "created_at": "2016-10-20T12:55:33.977065Z",
        "updated_at": "2016-10-20T12:55:33.977092Z"
    }
    

    PUT https://gsmtasks.com/api/tasks/roles/dae7ab83-d6d9-4d83-acdf-e39890a8abe2/

    Request parameters

    Parameter Type Required Description
    account object No URL of the account resource
    user object No URL of the user resource
    is_manager Boolean No Manager access boolean
    is_worker Boolean No Worker access boolean

    Clients

    List Clients

    Returns a array of clients that the user has access to.

    The request returns JSON structured like this:

    [
        {
            "id": "74c08598-08b8-46bc-9da7-8b85f7168f20",
            "url": "https://gsmtasks.com/api/tasks/clients/74c08598-08b8-46bc-9da7-8b85f7168f20/",
            "account": "https://gsmtasks.com/api/tasks/accounts/798d8fda-43d1-497a-b63b-1ad784afc117/",
            "name": "Client",
            "slug": "client",
            "archived": false,
            "created_at": "2016-10-05T13:31:10.305811Z",
            "updated_at": "2016-10-06T08:50:21.366881Z"
        }
    ]
    

    GET https://gsmtasks.com/api/tasks/clients/

    Attributes

    Attribute Type Description
    id String Client unique identifier
    url String Unique URL for the resource
    account String URL of the account resource
    name String Name of the client
    slug String Machine readable account identifier
    archived Boolean Shows whether the client is archived or not
    created_at String The time when the order was created
    updated_at String The time when the order was updated

    Retrieve a specific Client

    GET https://gsmtasks.com/api/tasks/clients/74c08598-08b8-46bc-9da7-8b85f7168f20/

    Create Client

    Request to create a new Client with the parameters provided.

    Example POST request JSON data:

    {
        "account": "https://gsmtasks.com/api/tasks/accounts/798d8fda-43d1-497a-b63b-1ad784afc117/",
        "name": "Client",
        "archived": false
    }
    

    The request returns JSON of the created Order structured like this:

    {
        "id": "74c08598-08b8-46bc-9da7-8b85f7168f20",
        "url": "https://gsmtasks.com/api/tasks/clients/74c08598-08b8-46bc-9da7-8b85f7168f20/",
        "account": "https://gsmtasks.com/api/tasks/accounts/798d8fda-43d1-497a-b63b-1ad784afc117/",
        "name": "Client",
        "slug": "client",
        "archived": false,
        "created_at": "2016-10-05T13:31:10.305811Z",
        "updated_at": "2016-10-06T08:50:21.366881Z"
    }
    

    POST https://gsmtasks.com/api/tasks/clients/

    Request parameters

    Parameter Type Required Description
    account String Yes URL of the account resource
    name String Yes Name of the client
    archived String Yes Shows whether the client is archived or not

    Update Client

    Request to update a Client. We will change the name and the archived status as an example.

    Example PUT request JSON data:

    {
        "account": "https://gsmtasks.com/api/tasks/accounts/798d8fda-43d1-497a-b63b-1ad784afc117/",
        "name": "Another client",
        "archived": true
    }
    

    The request returns JSON of the updated Order structured like this:

    {
        "id": "74c08598-08b8-46bc-9da7-8b85f7168f20",
        "url": "https://gsmtasks.com/api/tasks/clients/74c08598-08b8-46bc-9da7-8b85f7168f20/",
        "account": "https://gsmtasks.com/api/tasks/accounts/798d8fda-43d1-497a-b63b-1ad784afc117/",
        "name": "Another client",
        "slug": "client",
        "archived": true,
        "created_at": "2016-10-05T13:31:10.305811Z",
        "updated_at": "2016-10-06T08:50:21.366881Z"
    }
    

    PUT https://gsmtasks.com/api/tasks/clients/74c08598-08b8-46bc-9da7-8b85f7168f20/

    Request parameters

    Parameter Type Required Description
    account String Yes URL of the account resource
    name String Yes Name of the client
    archived String No Shows whether the client is archived or not

    Contact Addresses

    The Contact Address objects as the name describes are a combination of a Contact object and a Address object. Together they are unique. Once created they can be re-used for future tasks and autocompletion.

    List Contact Addresses

    Returns a array of Contact Addresses that the user has access to.

    The request returns JSON structured like this:

    [
      {
        "id": "a36ff250-df3d-4515-af4a-14c48558b297",
        "url": "https://gsmtasks.com/api/tasks/contact_addresses/a36ff250-df3d-4515-af4a-14c48558b297/",
        "account": "https://gsmtasks.com/api/tasks/accounts/4f946a84-fb06-43ac-b98d-d2b38bbe307a/",
        "client": "https://gsmtasks.com/api/tasks/clients/b233dd8f-aeee-4a5f-8c0e-a95657186cf9/",
        "contact": {
          "name": "Tom ",
          "company": "Smith",
          "phone": "+447700900132",
          "email": "tom.smith@fast.uk",
          "notes": "Call 5 minutes before"
        },
        "address": {
          "raw_address": "Piccadilly Circus, London, United Kingdom",
          "formatted_address": "Piccadilly Circus, London W1D 7ET, UK",
          "location": {
            "type": "Point",
            "coordinates": [
              -0.13457340000002205,
              51.5100974
            ]
          },
          "google_place_id": "ChIJwR8g_9MEdkgR_rI--wzfivA",
          "point_of_interest": "",
          "street": "Piccadilly Circus",
          "house_number": "",
          "apartment_number": "",
          "city": "London",
          "state": "",
          "postal_code": "W1D 7ET",
          "country": "United Kingdom",
          "country_code": "GB"
        },
        "created_at": "2016-10-06T11:09:52.856869Z",
        "updated_at": "2016-10-06T11:16:00.563052Z"
      }
    ]
    

    GET https://gsmtasks.com/api/tasks/contact_addresses/

    Attributes

    Attribute Type Description
    id String Contact Address unique identifier
    url String Unique URL for the resource
    account String URL of the account resource
    client String URL of the client resource
    contact Object Contact object
    address Object Address object
    created_at String The time when the contact address was created
    updated_at String The time when the contact address was updated

    Retrieve a specific Contact Address

    GET https://gsmtasks.com/api/tasks/contact_addresses/a36ff250-df3d-4515-af4a-14c48558b297/

    Create Contact Address

    Request to create a new Contact Address with the parameters provided

    Example POST request JSON data:

    {
      "account": "https://gsmtasks.com/api/tasks/accounts/4f946a84-fb06-43ac-b98d-d2b38bbe307a/",
      "client": "https://gsmtasks.com/api/tasks/clients/b233dd8f-aeee-4a5f-8c0e-a95657186cf9/",
      "contact": {
        "name": "Tom ",
        "company": "Smith",
        "phone": "+447700900132",
        "email": "tom.smith@fast.uk",
        "notes": "Call 5 minutes before"
      },
      "address": {
        "raw_address": "Piccadilly Circus, London, United Kingdom"
      }
    }
    

    The request returns JSON of the created Contact Address structured like this:

    {
      "id": "a36ff250-df3d-4515-af4a-14c48558b297",
      "url": "https://gsmtasks.com/api/tasks/contact_addresses/a36ff250-df3d-4515-af4a-14c48558b297/",
      "account": "https://gsmtasks.com/api/tasks/accounts/4f946a84-fb06-43ac-b98d-d2b38bbe307a/",
      "client": "https://gsmtasks.com/api/tasks/clients/b233dd8f-aeee-4a5f-8c0e-a95657186cf9/",
      "contact": {
        "name": "Tom ",
        "company": "Smith",
        "phone": "+447700900132",
        "email": "tom.smith@fast.uk",
        "notes": "Call 5 minutes before"
      },
      "address": {
        "raw_address": "Piccadilly Circus, London, United Kingdom",
        "formatted_address": "Piccadilly Circus, London W1D 7ET, UK",
        "location": {
          "type": "Point",
          "coordinates": [
            -0.13457340000002205,
            51.5100974
          ]
        },
        "google_place_id": "ChIJwR8g_9MEdkgR_rI--wzfivA",
        "point_of_interest": "",
        "street": "Piccadilly Circus",
        "house_number": "",
        "apartment_number": "",
        "city": "London",
        "state": "",
        "postal_code": "W1D 7ET",
        "country": "United Kingdom",
        "country_code": "GB"
      },
      "created_at": "2016-10-06T11:09:52.856869Z",
      "updated_at": "2016-10-06T11:16:00.563052Z"
    }
    

    POST https://gsmtasks.com/api/tasks/contact_addresses/

    Request parameters

    Parameter Type Required Description
    account String Yes URL of the account resource
    client String No URL of the client resource
    contact Object Yes Contact object
    address Object Yes Address object

    Update Contact Address

    Request to update a Contact Address. We will change the client and contact as an example.

    Example PUT request JSON data:

    {
      "account": "https://gsmtasks.com/api/tasks/accounts/4f946a84-fb06-43ac-b98d-d2b38bbe307a/",
      "client": "https://gsmtasks.com/api/tasks/clients/3d7cc9e6-f63f-4c85-886f-7b720939e8a6/",
      "contact": {
        "name": "James ",
        "company": "Smith",
        "phone": "+447700900132",
        "email": "James.smith@fast.uk",
        "notes": "Call 5 minutes before"
      },
      "address": {}
    }
    

    The request returns JSON of the updated Contact Address structured like this:

    {
      "id": "a36ff250-df3d-4515-af4a-14c48558b297",
      "url": "https://gsmtasks.com/api/tasks/contact_addresses/a36ff250-df3d-4515-af4a-14c48558b297/",
      "account": "https://gsmtasks.com/api/tasks/accounts/4f946a84-fb06-43ac-b98d-d2b38bbe307a/",
      "client": "https://gsmtasks.com/api/tasks/clients/3d7cc9e6-f63f-4c85-886f-7b720939e8a6/",
      "contact": {
        "name": "James ",
        "company": "Smith",
        "phone": "+447700900132",
        "email": "James.smith@fast.uk",
        "notes": "Call 5 minutes before"
      },
      "address": {
        "raw_address": "Piccadilly Circus, London, United Kingdom",
        "formatted_address": "Piccadilly Circus, London W1D 7ET, UK",
        "location": {
          "type": "Point",
          "coordinates": [
            -0.13457340000002205,
            51.5100974
          ]
        },
        "google_place_id": "ChIJwR8g_9MEdkgR_rI--wzfivA",
        "point_of_interest": "",
        "street": "Piccadilly Circus",
        "house_number": "",
        "apartment_number": "",
        "city": "London",
        "state": "",
        "postal_code": "W1D 7ET",
        "country": "United Kingdom",
        "country_code": "GB"
      },
      "created_at": "2016-10-06T11:09:52.856869Z",
      "updated_at": "2016-10-06T11:16:00.563052Z"
    }
    

    PUT https://gsmtasks.com/api/tasks/contact_addresses/a36ff250-df3d-4515-af4a-14c48558b297/

    Request parameters

    Parameter Type Required Description
    account String Yes URL of the account resource
    client String No URL of the client resource
    contact Object Yes Contact object
    address Object Yes Address object

    Documents

    Documents attach File Upload objects to a task.

    List Documents

    Returns a array of documents that the user has access to.

    The request returns JSON structured like this:

    [
      {
        "id": "c6a66d6d-76e0-4c7e-a22c-02eff4d68b59",
        "url": "https://gsmtasks.com/api/tasks/documents/c6a66d6d-76e0-4c7e-a22c-02eff4d68b591/",
        "task": "https://gsmtasks.com/api/tasks/tasks/d09b5fc0-d82f-42ed-9d5f-022d68f36df6/",
        "order": "https://gsmtasks.com/api/tasks/orders/2e627baf-dcfb-4e22-bb23-82c0670553ca/",
        "file": "https://gsmtasks.com/media/fileupload/874965eb-1de6-442a-92f0-2cadbed45716/attachment.xlsx",
        "size": 8550,
        "is_image": false,
        "description": "Attached Excel spreadsheet",
        "created_by": "https://gsmtasks.com/api/tasks/users/12d2821e-01e2-48fb-97bc-eaebca93cbdc/",
        "visible_to_worker": true,
        "visible_to_client": true,
        "created_at": "2016-10-06T11:09:52.856869Z",
        "updated_at": "2016-10-06T11:16:00.563052Z"
      }
    ]
    

    GET https://gsmtasks.com/api/tasks/documents/

    Attributes

    Attribute Type Description
    id String Document unique identifier
    url String Unique URL for the resource
    task String URL of the task resource
    order String URL of the order resource
    file String URL of the file for downloading
    size Number Size of the file uploaded in bytes
    is_image Boolean Defines if the upload is an image
    description String Description of the file attached
    created_by String URL of the user who created the upload
    visible_to_worker Boolean Defines if the document is visible for worker
    visible_to_client Boolean Defines if the document is visible to orderer / client
    created_at String The time when the document was created
    updated_at String The time when the document was updated

    Retrieve a specific Document

    GET https://gsmtasks.com/api/tasks/documents/c6a66d6d-76e0-4c7e-a22c-02eff4d68b591/

    Create Document

    Request to create a new document with the parameters provided

    Example POST request JSON data:

    {
      "task": "https://gsmtasks.com/api/tasks/tasks/d09b5fc0-d82f-42ed-9d5f-022d68f36df6/",
      "order": "https://gsmtasks.com/api/tasks/orders/4336f911-32ec-4fb4-b17a-e58aef3943e6/",
      "file_upload": "https://gsmtasks.com/api/tasks/file_uploads/874965eb-1de6-442a-92f0-2cadbed45716/",
      "description": "Attached Excel spreadsheet",
      "visible_to_worker": true,
      "visible_to_client": true
    }
    

    The request returns JSON of the created Document structured like this:

    {
      "id": "c6a66d6d-76e0-4c7e-a22c-02eff4d68b59",
      "url": "https://gsmtasks.com/api/tasks/documents/c6a66d6d-76e0-4c7e-a22c-02eff4d68b591/",
      "task": "https://gsmtasks.com/api/tasks/tasks/d09b5fc0-d82f-42ed-9d5f-022d68f36df6/",
      "order": "https://gsmtasks.com/api/tasks/orders/2e627baf-dcfb-4e22-bb23-82c0670553ca/",
      "file": "https://gsmtasks.com/media/fileupload/874965eb-1de6-442a-92f0-2cadbed45716/attachment.xlsx",
      "size": 8550,
      "is_image": false,
      "description": "Attached Excel spreadsheet",
      "created_by": "https://gsmtasks.com/api/tasks/users/12d2821e-01e2-48fb-97bc-eaebca93cbdc/",
      "visible_to_worker": true,
      "visible_to_client": true,
      "created_at": "2016-10-06T11:09:52.856869Z",
      "updated_at": "2016-10-06T11:16:00.563052Z"
    }
    

    POST https://gsmtasks.com/api/tasks/documents/

    Request parameters

    Attribute Required Type Description
    task Yes/No String URL of the task resource (either task or order is required)
    order Yes/No String URL of the order resource (either task or order is required)
    file_upload Yes String URL of the file upload object
    description  No String Description of the file attached
    visible_to_worker  Yes  Boolean Defines if the document is visible for worker
    visible_to_client  Yes Boolean Defines if the document is visible to orderer / client

    File uploads

    To attach a file to a Task or Order. The file has to be uploaded via this endpoint.

    List File Uploads

    Returns a array of file uploads that the user has access to.

    The request returns JSON structured like this:

    [
      {
            "id": "24588f76-aaf8-4d7c-9a56-385c54356eff",
            "url": "https://gsmtasks.com/api/tasks/file_uploads/874965eb-1de6-442a-92f0-2cadbed45716/",
            "file": "https://gsmtasks.com/media/fileupload/874965eb-1de6-442a-92f0-2cadbed45716/attachment.xlsx",
            "size": 8550,
            "created_by": "https://gsmtasks.com/api/tasks/users/12d2821e-01e2-48fb-97bc-eaebca93cbdc/",
            "is_image": false,
            "created_at": "2016-10-20T08:03:14.540726Z",
            "updated_at": "2016-10-20T08:03:14.540759Z"
        }
    ]
    

    GET https://gsmtasks.com/api/tasks/file_uploads/

    Attributes

    Attribute Type Description
    id String File Upload unique identifier
    url String Unique URL for the resource
    file String URL of the file for downloading
    size String Size of the file uploaded in bytes
    created_by String URL of the user who created the upload
    is_image Boolean Defines if the upload is an image
    created_at String The time when the file upload was created
    updated_at String The time when the order file upload updated

    Retrieve a specific File upload

    GET https://gsmtasks.com/api/tasks/file_uploads/874965eb-1de6-442a-92f0-2cadbed45716/

    Create a file upload

    Request to create a new file with the parameters provided and the base64 encoded file data. Or you can also do a regular multipart/form file upload.

    Example POST request base64 encoded JSON data:

    {
        "file": {
            "name": "file2",
            "contents": "data:image/gif;base64,iVBORw0KGgoAAA..."
        },
        "is_image": true
    }
    

    The request returns JSON of the created File Upload structured like this:

    
    {
        "id": "d242bb19-d273-4393-84fe-40c2314e558d",
        "url": "https://gsmtasks.com/api/tasks/file_uploads/d242bb19-d273-4393-84fe-40c2314e558d/",
        "file": "https://gsmtasks.com/media/fileupload/d242bb19-d273-4393-84fe-40c2314e558d/Important.jpg",
        "size": 141652,
        "created_by": "https://gsmtasks.com/api/tasks/users/adba000d-9f1b-4469-a2b7-7dfb7977f57b/",
        "is_image": true,
        "created_at": "2016-10-06T11:09:52.856869Z",
        "updated_at": "2016-10-06T11:16:00.563052Z"
    
    }
    

    POST https://gsmtasks.com/api/tasks/file_uploads/

    Request parameters

    Parameter Type Required Description
    file String Yes URL of the file
    is_image Boolean - Defines if the upload is an image also autodetects

    Metafields

    List Metafields

    Returns a array of metafields that the user has access to.

    The request returns JSON structured like this:

    [
        {
            "id": "b0f05cbb-4022-4cf8-b471-373b1bfbd1b5",
            "url": "https://gsmtasks.com/api/tasks/metafields/b0f05cbb-4022-4cf8-b471-373b1bfbd1b5/",
            "account": "https://gsmtasks.com/api/tasks/accounts/a6f60fdf-d87b-4c5d-b5ec-67a90cd16236/",
            "namespace": "account",
            "key": "metafield1",
            "field_name": "account:metafield1",
            "value_type": "string",
            "label": "App",
            "choices": null,
            "is_editable": true,
            "show_in_detail_view": true,
            "show_in_list_view": true,
            "show_in_mobile_app": true,
            "created_at": "2016-02-25T13:05:39.140375Z",
            "updated_at": "2016-10-05T14:17:43.191265Z"
        }
    ]
    

    GET https://gsmtasks.com/api/tasks/metafields/

    Attributes

    Attribute Type Description
    id String Client unique identifier
    url String Unique URL for the resource
    account String URL of the account resource
    namespace String Namespace of this metafield which defines the scope of the attribute, e.g. 'account'
    key String Key of this metafield, which names the attribute key in the metafields dict
    field_name String
    value_type String
    label String
    choices Array
    is_editable Boolean
    show_in_detail_view Boolean
    show_in_list_view Boolean
    show_in_mobile_app Boolean
    created_at String The time when the metafield was created
    updated_at String The time when the metafield was updated

    Retrieve a specific Metafield

    GET https://gsmtasks.com/api/tasks/metafields/b0f05cbb-4022-4cf8-b471-373b1bfbd1b5/

    Create Metafield

    Request to create a new Metafield with the parameters provided.

    Example POST request JSON data:

    {
        "account": "https://gsmtasks.com/api/tasks/accounts/a6f60fdf-d87b-4c5d-b5ec-67a90cd16236/",
        "namespace": "account",
        "key": "metafield1",
        "value_type": "string",
        "label": "App",
        "choices": ["choice 1", "choice 2"],
        "is_editable": true,
        "show_in_detail_view": true,
        "show_in_list_view": true,
        "show_in_mobile_app": true
    }
    

    The request returns JSON of the created Order structured like this:

        {
            "id": "b0f05cbb-4022-4cf8-b471-373b1bfbd1b5",
            "url": "https://gsmtasks.com/api/tasks/metafields/b0f05cbb-4022-4cf8-b471-373b1bfbd1b5/",
            "account": "https://gsmtasks.com/api/tasks/accounts/a6f60fdf-d87b-4c5d-b5ec-67a90cd16236/",
            "namespace": "account",
            "key": "metafield1",
            "field_name": "account:metafield1",
            "value_type": "string",
            "label": "App",
            "choices": null,
            "is_editable": true,
            "show_in_detail_view": true,
            "show_in_list_view": true,
            "show_in_mobile_app": true,
            "created_at": "2016-02-25T13:05:39.140375Z",
            "updated_at": "2016-10-05T14:17:43.191265Z"
        }
    

    POST https://gsmtasks.com/api/tasks/metafields/

    Request parameters

    Parameter Type Required Description
    account String Yes URL of the account resource
    namespace String Yes Namespace of this metafield which defines the scope of the attribute, e.g. 'account'
    key String Yes Key of this metafield, which names the attribute key in the metafields dict
    value_type String Yes
    label String No
    choices Array No
    is_editable Boolean No
    show_in_detail_view Boolean No
    show_in_list_view Boolean No
    show_in_mobile_app Boolean No

    Update Metafield

    Request to update a Metafield. We will change the namespace and key as an example.

    Example PUT request JSON data:

    {
        "account": "https://gsmtasks.com/api/tasks/accounts/a6f60fdf-d87b-4c5d-b5ec-67a90cd16236/",
        "namespace": "metafield",
        "key": "updated"
    }
    

    The request returns JSON of the updated Order structured like this:

    {
        "id": "b0f05cbb-4022-4cf8-b471-373b1bfbd1b5",
        "url": "https://gsmtasks.com/api/tasks/metafields/b0f05cbb-4022-4cf8-b471-373b1bfbd1b5/",
        "account": "https://gsmtasks.com/api/tasks/accounts/a6f60fdf-d87b-4c5d-b5ec-67a90cd16236/",
        "namespace": "metafield",
        "key": "updated",
        "field_name": "metafield:updated",
        "value_type": "string",
        "label": "App",
        "choices": null,
        "is_editable": true,
        "show_in_detail_view": true,
        "show_in_list_view": true,
        "show_in_mobile_app": true,
        "created_at": "2016-02-25T13:05:39.140375Z",
        "updated_at": "2016-10-05T14:17:43.191265Z"
    }
    

    PUT https://gsmtasks.com/api/tasks/clients/74c08598-08b8-46bc-9da7-8b85f7168f20/

    Request parameters

    Parameter Type Required Description
    account String Yes URL of the account resource
    namespace String Yes Namespace of this metafield which defines the scope of the attribute, e.g. 'account'
    key String Yes Key of this metafield, which names the attribute key in the metafields dict
    value_type String Yes
    label String No
    choices Array No
    is_editable Boolean No
    show_in_detail_view Boolean No
    show_in_list_view Boolean No
    show_in_mobile_app Boolean No

    Notifications

    List Notifications

    Returns a array of notifications that the user has access to.

    The request returns JSON structured like this:

    [
        {
            "id": "5bb47214-66a1-4f1e-9e00-ee287e3648ec",
            "url": "https://gsmtasks.com/api/tasks/notifications/5bb47214-66a1-4f1e-9e00-ee287e3648ec/",
            "task": "https://gsmtasks.com/api/tasks/tasks/90c65c5e-b8b8-44c9-9d8b-cb7f91b53c38/",
            "event": "create",
            "recipient": "account",
            "emails": [
                "tom.smith@fast.uk"
            ],
            "phone": "+447700900132",
            "app": false,
            "message": "Example message",
            "created_at": "2016-10-24T10:45:26.599735Z",
            "updated_at": "2016-10-24T10:45:26.599764Z"
        }
    ]
    

    GET https://gsmtasks.com/api/tasks/notifications/

    Attributes

    Attribute Type Description
    id String notification unique identifier
    url String Unique URL for the resource
    task String URL of the task resource
    event String
    recipient String
    emails Array
    phone String
    app Boolean
    message String
    created_at String The time when the notification was created
    updated_at String The time when the notification was updated

    Retrieve a specific Notification

    GET https://gsmtasks.com/api/tasks/notifications/5bb47214-66a1-4f1e-9e00-ee287e3648ec/

    Create Notification

    Request to create a new Notification with the parameters provided.

    Example POST request JSON data:

    {
        "task": "https://gsmtasks.com/api/tasks/tasks/90c65c5e-b8b8-44c9-9d8b-cb7f91b53c38/",
        "event": "create",
        "recipient": "account",
        "emails": [
            "tom.smith@fast.uk"
        ],
        "phone": "+447700900132",
        "app": false,
        "message": "Example message"
    }
    

    The request returns JSON of the created Order structured like this:

    {
        "id": "5bb47214-66a1-4f1e-9e00-ee287e3648ec",
        "url": "https://gsmtasks.com/api/tasks/notifications/5bb47214-66a1-4f1e-9e00-ee287e3648ec/",
        "task": "https://gsmtasks.com/api/tasks/tasks/90c65c5e-b8b8-44c9-9d8b-cb7f91b53c38/",
        "event": "create",
        "recipient": "account",
        "emails": [
            "tom.smith@fast.uk"
        ],
        "phone": "+447700900132",
        "app": false,
        "message": "Example message",
        "created_at": "2016-10-24T10:45:26.599735Z",
        "updated_at": "2016-10-24T10:45:26.599764Z"
    }
    

    POST https://gsmtasks.com/api/tasks/notifications/

    Request parameters

    Parameter Type Required Description
    task String Yes URL of the task resource
    event String No
    recipient String No
    emails Array No
    phone String No
    app Boolean No
    message String Yes

    Notification Templates

    List Notification Templates

    Returns a array of notification templates that the user has access to.

    The request returns JSON structured like this:

    [
        {
            "id": "8eaa96d6-e4b7-4592-ace9-aa05576c868d",
            "url": "https://gsmtasks.com/api/tasks/notification_templates/8eaa96d6-e4b7-4592-ace9-aa05576c868d/",
            "account": "https://gsmtasks.com/api/tasks/accounts/798d8fda-43d1-497a-b63b-1ad784afc117/",
            "name": "Name",
            "event": "",
            "recipient": "account",
            "via_sms": true,
            "via_email": false,
            "via_app": false,
            "is_active": false,
            "message": "message",
            "created_at": "2016-10-10T11:34:31.497853Z",
            "updated_at": "2016-10-25T07:01:13.009925Z"
        }
    ]
    

    GET https://gsmtasks.com/api/tasks/notification_templates/

    Attributes

    Attribute Type Description
    id String Notificaton template unique identifier
    url String Unique URL for the resource
    account String URL of the account resource
    name String Name of the notification template
    event String
    recipient String
    via_sms Boolean
    via_email Boolean
    via_app Boolean
    is_active Boolean
    message String
    created_at String The time when the notification template was created
    updated_at String The time when the notification template was updated

    Retrieve a specific Notification Template

    GET https://gsmtasks.com/api/tasks/notification_templates/8eaa96d6-e4b7-4592-ace9-aa05576c868d/

    Create Notification Template

    Example POST request JSON data:

    {
        "account": "https://gsmtasks.com/api/tasks/accounts/798d8fda-43d1-497a-b63b-1ad784afc117/",
        "name": "Name",
        "event": "create",
        "recipient": "account",
        "via_sms": true,
        "via_email": false,
        "via_app": false,
        "is_active": false,
        "message": "message"
    }
    

    The request returns JSON of the created Notification Template structured like this:

    {
        "id": "773ef894-290d-4ab7-ab40-c53eaa47237f",
        "url": "https://gsmtasks.com/api/tasks/notification_templates/773ef894-290d-4ab7-ab40-c53eaa47237f/",
        "account": "https://gsmtasks.com/api/tasks/accounts/798d8fda-43d1-497a-b63b-1ad784afc117/",
        "name": "Name",
        "event": "create",
        "recipient": "account",
        "via_sms": true,
        "via_email": false,
        "via_app": false,
        "is_active": false,
        "message": "message",
        "created_at": "2016-10-25T07:18:33.672215Z",
        "updated_at": "2016-10-25T07:18:33.672239Z"
    }
    

    POST https://gsmtasks.com/api/tasks/notification_templates/

    Request parameters

    Parameter Type Required Description
    account String Yes URL of the account resource
    name String Yes Name of the notification template
    event String Yes
    recipient String Yes
    via_sms Boolean No
    via_email Boolean No
    via_app Boolean No
    is_active Boolean No
    message String Yes

    Update Notification Template

    Request to update a notification template. We will change the name, via_sms status and via_email status as an example.

    Example PUT request JSON data:

    {
        "account": "https://gsmtasks.com/api/tasks/accounts/798d8fda-43d1-497a-b63b-1ad784afc117/",
        "name": "Notification template",
        "via_sms": false,
        "via_email": true,
        "message": "important"
    }
    

    The request returns JSON of the updated Order structured like this:

    {
        "id": "773ef894-290d-4ab7-ab40-c53eaa47237f",
        "url": "https://gsmtasks.com/api/tasks/notification_templates/773ef894-290d-4ab7-ab40-c53eaa47237f/",
        "account": "https://gsmtasks.com/api/tasks/accounts/798d8fda-43d1-497a-b63b-1ad784afc117/",
        "name": "Notification template",
        "event": "create",
        "recipient": "account",
        "via_sms": false,
        "via_email": true,
        "via_app": false,
        "is_active": false,
        "message": "important",
        "created_at": "2016-10-25T07:18:33.672215Z",
        "updated_at": "2016-10-25T07:27:59.460450Z"
    }
    

    PUT https://gsmtasks.com/api/tasks/notification_templates/773ef894-290d-4ab7-ab40-c53eaa47237f/

    Request parameters

    Parameter Type Required Description
    account String Yes URL of the account resource
    name String Yes Name of the notification template
    event String No
    recipient String No
    via_sms Boolean No
    via_email Boolean No
    via_app Boolean No
    is_active Boolean No
    message String Yes

    Orders

    Orders are to group together some tasks (waypoints) that need to be completed to full fill the order.

    List Orders

    Returns a array of orders that the user has access to.

    The request returns JSON structured like this:

    [
      {
        "id": "4336f911-32ec-4fb4-b17a-e58aef3943e6",
        "url": "https://gsmtasks.com/api/tasks/orders/4336f911-32ec-4fb4-b17a-e58aef3943e6/",
        "account": "https://gsmtasks.com/api/tasks/accounts/4368ec5d-9942-4c74-90f7-eea752a6e489/",
        "external_id": "123ABC",
        "reference": "ABCD",
        "client": "https://gsmtasks.com/api/tasks/clients/74c08598-08b8-46bc-9da7-8b85f7168f20/",
        "tasks": [
          "https://gsmtasks.com/api/tasks/tasks/353ce213-c649-4e4b-bbcf-a493433cee9c/"
          "https://gsmtasks.com/api/tasks/tasks/d0de6a56-e8ae-4ac9-983e-ef1486909ce7/"
        ],
        "auto_assign": true,
        "created_at": "2016-10-10T09:36:22.190884Z",
        "updated_at": "2016-10-10T09:48:19.376249Z"
      }
    ]
    

    GET https://gsmtasks.com/api/tasks/orders/

    Attributes

    Attribute Type Description
    id String Order unique identifier
    url String Unique URL for the resource
    account String URL of the account resource
    external_id String External id of the order
    reference String Reference of the order
    client String URL of the client
    tasks Array Tasks that need to be completed
    auto_assign Boolean Should the tasks be auto assigned to a driver
    created_at String The time when the order was created
    updated_at String The time when the order was updated

    Retrieve a specific Order

    GET https://gsmtasks.com/api/tasks/orders/4336f911-32ec-4fb4-b17a-e58aef3943e6/

    Create Order

    Request to create a new order with the parameters provided. The tasks that are going to be attached to the order need to be created beforehand or add the tasks later by updating the order.

    You can read more about creating tasks here.

    Example POST request JSON data:

    {
      "account": "https://gsmtasks.com/api/tasks/accounts/4368ec5d-9942-4c74-90f7-eea752a6e489/",
      "external_id": "123456",
      "reference": "reference",
      "client": "https://gsmtasks.com/api/tasks/clients/74c08598-08b8-46bc-9da7-8b85f7168f20/", 
      "tasks": [
        "https://gsmtasks.com/api/tasks/tasks/353ce213-c649-4e4b-bbcf-a493433cee9c/"
        "https://gsmtasks.com/api/tasks/tasks/d0de6a56-e8ae-4ac9-983e-ef1486909ce7/"
      ],
      "auto_assign": true
    }
    

    The request returns JSON of the created Order structured like this:

    {
      "id": "4336f911-32ec-4fb4-b17a-e58aef3943e6",
      "url": "https://gsmtasks.com/api/tasks/orders/4336f911-32ec-4fb4-b17a-e58aef3943e6/",
      "account": "https://gsmtasks.com/api/tasks/accounts/4368ec5d-9942-4c74-90f7-eea752a6e489/",
      "external_id": "123456",
      "reference": "reference",
      "client": "https://gsmtasks.com/api/tasks/clients/74c08598-08b8-46bc-9da7-8b85f7168f20/", 
      "tasks": [
        "https://gsmtasks.com/api/tasks/tasks/353ce213-c649-4e4b-bbcf-a493433cee9c/"
        "https://gsmtasks.com/api/tasks/tasks/d0de6a56-e8ae-4ac9-983e-ef1486909ce7/"
      ],
      "auto_assign": true,
      "created_at": "2016-10-18T11:27:23.043743Z",
      "updated_at": "2016-10-18T11:27:23.043774Z"
    }
    

    POST https://gsmtasks.com/api/tasks/orders/

    Request parameters

    Parameter Type Required Description
    account String Yes URL of the account resource
    external_id String No External id of the order
    reference String No Reference of the order
    client String No URL of the client
    tasks Array No Tasks that need to be completed referenced by the URLs
    auto_assign Boolean No Should the tasks be auto assigned to a driver

    Update Order

    Request to update a order. We will add a task to the tasks array as an example.

    Example PUT request JSON data:

    {
      "account": "https://gsmtasks.com/api/tasks/accounts/4368ec5d-9942-4c74-90f7-eea752a6e489/",
      "tasks": [
        "https://gsmtasks.com/api/tasks/tasks/353ce213-c649-4e4b-bbcf-a493433cee9c/"
        "https://gsmtasks.com/api/tasks/tasks/d0de6a56-e8ae-4ac9-983e-ef1486909ce7/"
        "https://gsmtasks.com/api/tasks/tasks/850b2503-6466-41ae-9073-5e994688b812/"
      ]
    }
    

    The request returns JSON of the updated Order structured like this:

    {
      "id": "4336f911-32ec-4fb4-b17a-e58aef3943e6",
      "url": "https://gsmtasks.com/api/tasks/orders/4336f911-32ec-4fb4-b17a-e58aef3943e6/",
      "account": "https://gsmtasks.com/api/tasks/accounts/4368ec5d-9942-4c74-90f7-eea752a6e489/",
      "external_id": "123456",
      "reference": "reference",
      "client": "https://gsmtasks.com/api/tasks/clients/74c08598-08b8-46bc-9da7-8b85f7168f20/", 
      "tasks": [
        "https://gsmtasks.com/api/tasks/tasks/353ce213-c649-4e4b-bbcf-a493433cee9c/"
        "https://gsmtasks.com/api/tasks/tasks/d0de6a56-e8ae-4ac9-983e-ef1486909ce7/"
        "https://gsmtasks.com/api/tasks/tasks/850b2503-6466-41ae-9073-5e994688b812/"
      ],
      "auto_assign": true,
      "created_at": "2016-10-18T11:27:23.043743Z",
      "updated_at": "2016-10-18T11:27:23.043774Z"
    }
    

    PUT https://gsmtasks.com/api/tasks/orders/4336f911-32ec-4fb4-b17a-e58aef3943e6/

    Request parameters

    Parameter Type Required Description
    account String Yes URL of the account resource
    tasks Array No Tasks that need to be completed
    external_id String No External id of the order
    reference String No Reference of the order
    client String No URL of the client resource
    auto_assigne Boolena No Should the tasks be auto assigned to a driver

    Route Optimizations

    Route optimizations are triggered to find the optimal driving route to complete the tasks given.

    States

    Each route optimization has a state. Route optimizations are queued so they are executed async.

    State Description
    pending Route optimization has just been created and queued
    started Route optimization in progress
    completed Route optimization completed and tasks reordered
    failed Route optimization failed

    List Route Optimizations

    Returns a array of route optimizations that the user has access to.

    The request returns JSON structured like this:

    [
      {
        "id": "ae0fbdc6-f4b9-4c0b-91e9-b15d333ed28d",
        "url": "https://gsmtasks.com/api/tasks/route_optimizations/ae0fbdc6-f4b9-4c0b-91e9-b15d333ed28d/",
        "account": "https://gsmtasks.com/api/tasks/accounts/4368ec5d-9942-4c74-90f7-eea752a6e489/",
        "assignee": "https://gsmtasks.com/api/tasks/users/12d2821e-01e2-48fb-97bc-eaebca93cbdc/",
        "state": "completed",
        "tasks": [
            "https://gsmtasks.com/api/tasks/tasks/d09b5fc0-d82f-42ed-9d5f-022d68f36df6/",
            "https://gsmtasks.com/api/tasks/tasks/2ab15703-6c4c-48db-b305-88c117b763db/",
            "https://gsmtasks.com/api/tasks/tasks/d6ed4d74-9a38-429c-ba1c-f9e073461ad7/"
        ],
        "start_location": null,
        "end_location": null,
        "total_distance": null,
        "total_duration": null,
        "created_at": "2016-10-10T13:26:33.979847Z",
        "updated_at": "2016-10-10T13:26:33.979877Z"
      }
    ]
    

    GET https://gsmtasks.com/api/tasks/route_optimizations/

    Attributes

    Attribute Type Description
    id String Route optimization unique identifier
    url String Unique URL for the resource
    account String URL of the account resource
    assignee String URL of the user resource
    tasks Array URLs of the task resources to be optimized
    start_location String  Starting location
    end_location String  Ending location
    total_distance String  Distance of the optimized route
    total_duration String  Duration of the optimized route
    created_at String The time when the route optimization was created
    updated_at String The time when the route optimization was updated

    Retrieve a specific Route optimization

    GET https://gsmtasks.com/api/tasks/route_optimizations/4368ec5d-9942-4c74-90f7-eea752a6e489/

    Create Route optimization

    Request to create a new route optimization with the parameters provided

    Example POST request JSON data:

    {
      "account": "https://gsmtasks.com/api/tasks/accounts/4368ec5d-9942-4c74-90f7-eea752a6e489/",
      "assignee": "https://gsmtasks.com/api/tasks/users/12d2821e-01e2-48fb-97bc-eaebca93cbdc/",
      "tasks": [
          "https://gsmtasks.com/api/tasks/tasks/d09b5fc0-d82f-42ed-9d5f-022d68f36df6/",
          "https://gsmtasks.com/api/tasks/tasks/2ab15703-6c4c-48db-b305-88c117b763db/",
          "https://gsmtasks.com/api/tasks/tasks/d6ed4d74-9a38-429c-ba1c-f9e073461ad7/"
      ]
    }
    

    The request returns JSON of the created Account structured like this:

    {
      "id": "ae0fbdc6-f4b9-4c0b-91e9-b15d333ed28d",
      "url": "https://gsmtasks.com/api/tasks/route_optimizations/ae0fbdc6-f4b9-4c0b-91e9-b15d333ed28d/",
      "account": "https://gsmtasks.com/api/tasks/accounts/4368ec5d-9942-4c74-90f7-eea752a6e489/",
      "assignee": "https://gsmtasks.com/api/tasks/users/12d2821e-01e2-48fb-97bc-eaebca93cbdc/",
      "state": "completed",
      "tasks": [
          "https://gsmtasks.com/api/tasks/tasks/d09b5fc0-d82f-42ed-9d5f-022d68f36df6/",
          "https://gsmtasks.com/api/tasks/tasks/2ab15703-6c4c-48db-b305-88c117b763db/",
          "https://gsmtasks.com/api/tasks/tasks/d6ed4d74-9a38-429c-ba1c-f9e073461ad7/"
      ],
      "start_location": null,
      "end_location": null,
      "total_distance": null,
      "total_duration": null,
      "created_at": "2016-10-10T13:26:33.979847Z",
      "updated_at": "2016-10-10T13:26:33.979877Z"
    }
    

    POST https://gsmtasks.com/api/tasks/route_optimizations/

    Request parameters

    Parameter Type Required Description
    account String Yes URL of the account resource
    assignee String Yes URL of the user resource
    tasks Array Yes URLs of the task resources to be optimized

    Routes

    Routes are to group together some tasks that need to be completed in the specified (optimized) sequence.

    List Routes

    Returns a array of routes that the user has access to.

    The request returns JSON structured like this:

    [
      {
        "id": "31601953-2355-4192-8505-7c11ba65c53e",
        "url": "https://gsmtasks.com/api/tasks/routes/31601953-2355-4192-8505-7c11ba65c53e/",
        "account": "https://gsmtasks.com/api/tasks/accounts/4368ec5d-9942-4c74-90f7-eea752a6e489/",
        "code": "123ABC",
        "description": "The route I need to take",
        "assignee": "https://gsmtasks.com/api/tasks/users/cfdf3a8e-a9d7-4878-a922-344081a1ed75/",
        "start_time": "2018-01-04T16:39:48+02:00",
        "start_location": null,
        "end_time": null,
        "end_location": null,
        "created_at": "2018-01-04T16:39:57.006745+02:00",
        "updated_at": "2018-01-04T16:39:57.006767+02:00"
      }
    ]
    

    GET https://gsmtasks.com/api/tasks/routes/

    Attributes

    Attribute Type Description
    id String Route unique identifier
    url String Unique URL for the resource
    external_id String External id of the order
    account String URL of the account resource
    code String Reference of the route
    description String Description of the route details
    assignee String URL of the assignee resource
    start_time String Start time of the route
    start_location String Start location of the in geojson coordinates
    end_time String End time of the route
    end_location String End location of the in geojson coordinates
    created_at String The time when the order was created
    updated_at String The time when the order was updated

    Retrieve a specific Route

    GET "https://gsmtasks.com/api/tasks/routes/31601953-2355-4192-8505-7c11ba65c53e/"

    Create Route

    Request to create a new route with the parameters provided.

    Example POST request JSON data:

    {
      "account": "https://gsmtasks.com/api/tasks/accounts/4368ec5d-9942-4c74-90f7-eea752a6e489/",
      "code": "123ABC",
      "description": "The route I need to take",
      "assignee": "https://gsmtasks.com/api/tasks/users/cfdf3a8e-a9d7-4878-a922-344081a1ed75/",
      "start_time": "2018-01-04T16:39:48+02:00"
    }
    

    The request returns JSON of the created Order structured like this:

    {
      "id": "31601953-2355-4192-8505-7c11ba65c53e",
      "url": "https://gsmtasks.com/api/tasks/routes/31601953-2355-4192-8505-7c11ba65c53e/",
      "account": "https://gsmtasks.com/api/tasks/accounts/4368ec5d-9942-4c74-90f7-eea752a6e489/",
      "code": "123ABC",
      "description": "The route I need to take",
      "assignee": "https://gsmtasks.com/api/tasks/users/cfdf3a8e-a9d7-4878-a922-344081a1ed75/",
      "start_time": "2018-01-04T16:39:48+02:00",
      "start_location": null,
      "end_time": null,
      "end_location": null,
      "created_at": "2018-01-04T16:39:57.006745+02:00",
      "updated_at": "2018-01-04T16:39:57.006767+02:00"
    }
    

    POST https://gsmtasks.com/api/tasks/orders/

    Request parameters

    Parameter Type Required Description
    account String Yes URL of the account resource
    external_id String No External id of the order
    code String Yes Route reference code
    description String No Description of the route details
    assignee String Yes URL of the assignee
    start_time String Yes Start time of the route

    Update Route

    Request to update a route.

    Example PUT request JSON data:

    {
      "account": "https://gsmtasks.com/api/tasks/accounts/4368ec5d-9942-4c74-90f7-eea752a6e489/",
      "descripion": "Some new description of route details"
    }
    

    The request returns JSON of the updated Order structured like this:

    {
      "id": "31601953-2355-4192-8505-7c11ba65c53e",
      "url": "https://gsmtasks.com/api/tasks/routes/31601953-2355-4192-8505-7c11ba65c53e/",
      "account": "https://gsmtasks.com/api/tasks/accounts/4368ec5d-9942-4c74-90f7-eea752a6e489/",
      "code": "123ABC",
      "descripion": "Some new description of route details",
      "assignee": "https://gsmtasks.com/api/tasks/users/cfdf3a8e-a9d7-4878-a922-344081a1ed75/",
      "start_time": "2018-01-04T16:39:48+02:00",
      "start_location": null,
      "end_time": null,
      "end_location": null,
      "created_at": "2018-01-04T16:39:57.006745+02:00",
      "updated_at": "2018-01-04T16:39:57.006767+02:00"
    }
    

    PUT "https://gsmtasks.com/api/tasks/routes/31601953-2355-4192-8505-7c11ba65c53e/"

    Request parameters

    Parameter Type Required Description
    account String Yes URL of the account resource
    external_id String No External id of the order
    code String Yes Route reference code
    description String No Description of the route details
    assignee String Yes URL of the assignee
    start_time String Yes Start time of the route

    Signatures

    Signatures attach File Upload objects to a task and are meant to separate leagal signatures from documents.

    List Signatures

    Returns a array of signatures that the user has access to.

    The request returns JSON structured like this:

    [
      {
        "id": "c6a66d6d-76e0-4c7e-a22c-02eff4d68b59",
        "url": "https://gsmtasks.com/api/tasks/signatures/c6a66d6d-76e0-4c7e-a22c-02eff4d68b591/",
        "task": "https://gsmtasks.com/api/tasks/tasks/d09b5fc0-d82f-42ed-9d5f-022d68f36df6/",
        "file": "https://gsmtasks.com/media/fileupload/874965eb-1de6-442a-92f0-2cadbed45716/attachment.xlsx",
        "size": 8550,
        "is_image": false,
        "signer": {
          "name": "Tom ",
          "company": "Smith",
          "phone": "+447700900132",
          "email": "tom.smith@fast.uk",
          "notes": "All good"
        },
        "location": {
          "type": "Point",
          "coordinates": [
            -0.13457340000002205,
            51.5100974
          ]
        },
        "created_by": "https://gsmtasks.com/api/tasks/users/12d2821e-01e2-48fb-97bc-eaebca93cbdc/",
        "created_at": "2016-10-18T08:34:46.117131Z",
        "updated_at": "2016-10-18T08:34:46.117157Z"
      }
    ]
    

    GET https://gsmtasks.com/api/tasks/signatures/

    Attributes

    Attribute Type Description
    id String Signature unique identifier
    url String Unique URL for the resource
    task String URL of the task resource
    file String URL of the file for downloading
    size Number Size of the file in bytes
    signer  Object Signer object of the signature
    location  GeoJSON Location of the signing event
    created_by String URL of the user who created the signature
    created_at String The time when the signature was created
    updated_at String The time when the signature was updated

    Retrieve a specific Signature

    GET https://gsmtasks.com/api/tasks/signatures/c6a66d6d-76e0-4c7e-a22c-02eff4d68b591/

    Create Signature

    Request to create a new document with the parameters provided

    Example POST request JSON data:

    {
      "task": "https://gsmtasks.com/api/tasks/tasks/d09b5fc0-d82f-42ed-9d5f-022d68f36df6/",
      "file_upload": "https://gsmtasks.com/api/tasks/file_uploads/874965eb-1de6-442a-92f0-2cadbed45716/",
      "signer": {
        "name": "Tom ",
        "company": "Smith",
        "phone": "+447700900132",
        "email": "tom.smith@fast.uk",
        "notes": "Call 5 minutes before"
      },
      "location": {
        "type": "Point",
        "coordinates": [
          -0.13457340000002205,
          51.5100974
        ]
      }
    }
    

    The request returns JSON of the created Signature structured like this:

    {
      "id": "c6a66d6d-76e0-4c7e-a22c-02eff4d68b59",
      "url": "https://gsmtasks.com/api/tasks/documents/c6a66d6d-76e0-4c7e-a22c-02eff4d68b591/",
      "task": "https://gsmtasks.com/api/tasks/tasks/d09b5fc0-d82f-42ed-9d5f-022d68f36df6/",
      "file": "https://gsmtasks.com/media/fileupload/874965eb-1de6-442a-92f0-2cadbed45716/attachment.xlsx",
      "size": 8550,
      "is_image": false,
      "signer": {
        "name": "Tom ",
        "company": "Smith",
        "phone": "+447700900132",
        "email": "tom.smith@fast.uk",
        "notes": "All good"
      },
      "location": {
        "type": "Point",
        "coordinates": [
          -0.13457340000002205,
          51.5100974
        ]
      },
      "created_by": "https://gsmtasks.com/api/tasks/users/12d2821e-01e2-48fb-97bc-eaebca93cbdc/",
      "created_at": "2016-10-18T08:34:46.117131Z",
      "updated_at": "2016-10-18T08:34:46.117157Z"
    }
    

    POST https://gsmtasks.com/api/tasks/signatures/

    Request parameters

    Attribute Required Type Description
    task Yes String URL of the task resource
    file_upload Yes String URL of the file upload object
    signer  Yes Oject Signer object
    location  GeoJSON Location of the signing event

    Tasks

    All orders consist of tasks. Task is a waypoint that has to be completed in order to full fill the order. There are three categories of tasks - the category is for general reference and also taken into account when tasks are optimized to find the optimal driving route for the driver.

    Category Description
    assignment Assignment task with no dependencies
    pick_up Pick up task (dependency - always before drop offs)
    drop_off Drop off task (dependency - always after pick ups)

    States

    Each task has a property state to help you understand the task's most recent status.

    State Color Description
    unassigned white Task has not yet been assigned to a worker
    assigned ligth blue Task has been assigned to a worker
    accepted dark blue Worker has accepted the task
    transit purple Worker is driving to the location of the task
    active light green Worker at location and performing the task
    completed dark green Task has been completed
    Failed yellow Task has failed - waiting to be rescheduled or reattempted
    Cancelled red The task has been cancelled and will not be reattempted

    List Tasks

    Returns a array of tasks.

    The request returns JSON structured like this:

    [
      {
        "id": "d09b5fc0-d82f-42ed-9d5f-022d68f36df6",
        "url": "https://gsmtasks.com/api/tasks/tasks/d09b5fc0-d82f-42ed-9d5f-022d68f36df6/",
        "account": "https://gsmtasks.com/api/tasks/accounts/4368ec5d-9942-4c74-90f7-eea752a6e489/",
        "order": "https://gsmtasks.com/api/tasks/orders/7050443e-4637-4c3a-ade8-1592c308785c/",
        "external_id": "7869",
        "category": "assignment",
        "orderer": null,
        "receiver": null,
        "contact": {
          "name": "Tom ",
          "company": "Smith",
          "phone": "+447700900132",
          "email": "tom.smith@fast.uk",
          "notes": "Call 5 minutes before"
        },
        "address": {
          "raw_address": "Piccadilly Circus, London, United Kingdom",
          "formatted_address": "Piccadilly Circus, London W1D 7ET, UK",
          "location": {
            "type": "Point",
            "coordinates": [
              -0.13457340000002205,
              51.5100974
            ]
          },
          "google_place_id": "ChIJwR8g_9MEdkgR_rI--wzfivA",
          "point_of_interest": "",
          "street": "Piccadilly Circus",
          "house_number": "",
          "apartment_number": "",
          "city": "London",
          "state": "",
          "postal_code": "W1D 7ET",
          "country": "United Kingdom",
          "country_code": "GB"
        },
        "description": "Description of what should the driver do or deliver to that location.",
        "reference": "O-112",
        "complete_after": "2015-09-08T04:51:36.732219Z",
        "complete_before": null,
        "scheduled_time": null,
        "state": "completed",
        "completed_at": "2015-09-10T10:25:34.898560Z",
        "cancelled_at": null,
        "assignee": "https://gsmtasks.com/api/tasks/users/cfdf3a8e-a9d7-4878-a922-344081a1ed75/",
        "auto_assign": false,
        "assignee_proximity": "away",
        "position": "2015-09-08T04:51:36.732219Z",
        "duration": "00:15:00",
        "is_full_load": false,
        "metafields": {},
        "issues": [],
        "created_at": "2015-09-08T04:51:36.732219Z",
        "updated_at": "2015-12-17T06:35:42.007643Z",
        "events": "https://gsmtasks.com/api/tasks/tasks/d09b5fc0-d82f-42ed-9d5f-022d68f36df6/events/",
        "documents": "https://gsmtasks.com/api/tasks/tasks/d09b5fc0-d82f-42ed-9d5f-022d68f36df6/documents/",
        "signatures": "https://gsmtasks.com/api/tasks/tasks/d09b5fc0-d82f-42ed-9d5f-022d68f36df6/signatures/",
        "actions": {},
        "counts": {
            "events": 4,
            "documents": 1,
            "signatures": 1,
            "forms": 0,
            "forms_completed": 0
        }
      }
    ]
    

    GET https://gsmtasks.com/api/tasks/tasks/

    It's possible to filter the tasks returned by providing the following URL query parameters with the request.

    Attribute Description
    account Filter by an account unique identifier
    state Filter by task state
    assignee Filter by whom the task has been assigned to
    category Filter by task category
    updated_at Filter by updated at
    created_at Filter by created at

    GET https://gsmtasks.com/api/tasks/tasks/?account=4368ec5d-9942-4c74-90f7-eea752a6e489

    Attributes

    Attribute Type Description
    id String Task unique identifier
    url String Unique URL for the resource
    account String URL of the account resource
    order String URL of the order resource
    external_id String Unique identifier of an external system for ease of integration
    category String Category of the task (pickup, drop_off, ...)
    orderer String URL of the orderer
    receiver String URL of the receiver
    contact  Object  Contact object describing the contact person for that task
    address Object Address object describing the location of the task
    description String Description of the task
    reference String Order reference number
    complete_after String Sets the time after what the task should be completed (if not defined it will default to creation time)
    complete_before String Sets the time before what the task should be completed
    scheduled_time  String The time scheduled by the worker from the mobile app
    state String Show the current state of the task
    completed_at String The time when the task was completed
    cancelled_at String The time when the task was cancelled
    assignee String URL of the user resource the task has been assigned to
    auto_assign Boolean Should the task be auto assigned to the best suited driver
    assignee_proximity String Whether the assignee is near this task or away
    position String Task position is the sort order in the specified assignee's task list
    duration  String  Duration planned for the completion of the task at location
    is_full_load Boolean Whether this task is a full load and the assignee cannot carry another at the same time
    metafields Object Metafields contain custom datafields that have been configured
    issues Array List of issues detected with the task, e.g. geocoding failures etc
    created_at String The time when the task was created
    updated_at String The time when the task was updated
    events String URL to fetch all the task related events
    documents String URL to fetch all the task related documents
    signatures String URL to fetch all the task related signatures
    actions Object
    counts Object

    Retrieve a specific Task

    GET https://gsmtasks.com/api/tasks/tasks/d09b5fc0-d82f-42ed-9d5f-022d68f36df6/

    Create Task

    Request to create a new task with the parameters provided

    Example POST request JSON data:

    {
      "account": "https://gsmtasks.com/api/tasks/accounts/4368ec5d-9942-4c74-90f7-eea752a6e489/",
      "external_id": "7869",
      "order": "https://gsmtasks.com/api/tasks/orders/7050443e-4637-4c3a-ade8-1592c308785c/",
      "category": "assignment",
      "reference": "O-112",
      "contact": {
        "name": "Tom ",
        "company": "Smith",
        "phone": "+447700900132",
        "email": "tom.smith@fast.uk",
        "notes": "Call 5 minutes before"
      },
      "address": {
        "raw_address": "Piccadilly Circus, London, United Kingdom"
      },
      "description": "Description of what should the driver do or deliver to that location.",
      "complete_after": "2015-09-08T10:00:00Z",
      "complete_before": "2015-09-08T11:00:00Z",
      "assignee": "https://gsmtasks.com/api/tasks/users/cfdf3a8e-a9d7-4878-a922-344081a1ed75/",
      "auto_assign": false
    }
    

    The request returns JSON of the created Task structured like this:

    {
        "id": "b779cd0b-5f32-4bb6-8d5e-d9c44535e682",
        "url": "https://gsmtasks.com/api/tasks/tasks/b779cd0b-5f32-4bb6-8d5e-d9c44535e682/",
        "account": "https://gsmtasks.com/api/tasks/accounts/4368ec5d-9942-4c74-90f7-eea752a6e489/",
        "external_id": "7869",
        "order": "https://gsmtasks.com/api/tasks/orders/7050443e-4637-4c3a-ade8-1592c308785c/",
        "category": "assignment",
        "orderer": null,
        "receiver": "https://gsmtasks.com/api/tasks/clients/fe8ad9b9-a49d-45ff-a1d9-d3325d80f236/",
        "contact": {
            "name": "Tom",
            "company": "Smith",
            "phone": "+447700900132",
            "email": "tom.smith@fast.uk",
            "notes": "Call 5 minutes before"
        },
        "address": {
            "raw_address": "Piccadilly Circus, London, United Kingdom",
            "formatted_address": "Piccadilly Circus, London, United Kingdom",
            "location": {
                "type": "Point",
                "coordinates": [
                    24.716517899999985,
                    59.4329769
                ]
            },
            "google_place_id": "",
            "point_of_interest": "",
            "street": "",
            "house_number": "",
            "apartment_number": "",
            "city": "",
            "state": "",
            "postal_code": "",
            "country": "",
            "country_code": ""
        },
        "description": "Description of what should the driver do or deliver to that location.",
        "reference": "O-112",
        "complete_after": "2015-09-08T10:00:00Z",
        "complete_before": "2015-09-08T11:00:00Z",
        "scheduled_time": null,
        "state": "assigned",
        "completed_at": null,
        "cancelled_at": null,
        "assignee": "https://gsmtasks.com/api/tasks/users/cfdf3a8e-a9d7-4878-a922-344081a1ed75/",
        "auto_assign": false,
        "assignee_proximity": "away",
        "position": "2015-09-08T10:00:00Z",
        "duration": null,
        "is_full_load": false,
        "metafields": {},
        "issues": [],
        "created_at": "2016-10-18T12:51:49.972662Z",
        "updated_at": "2016-10-18T13:00:17.957134Z",
        "events": "https://gsmtasks.com/api/tasks/tasks/b779cd0b-5f32-4bb6-8d5e-d9c44535e682/events/",
        "documents": "https://gsmtasks.com/api/tasks/tasks/b779cd0b-5f32-4bb6-8d5e-d9c44535e682/documents/",
        "signatures": "https://gsmtasks.com/api/tasks/tasks/b779cd0b-5f32-4bb6-8d5e-d9c44535e682/signatures/",
        "actions": {
            "activate": "https://gsmtasks.com/api/tasks/tasks/b779cd0b-5f32-4bb6-8d5e-d9c44535e682/activate/",
            "complete": "https://gsmtasks.com/api/tasks/tasks/b779cd0b-5f32-4bb6-8d5e-d9c44535e682/complete/",
            "transit": "https://gsmtasks.com/api/tasks/tasks/b779cd0b-5f32-4bb6-8d5e-d9c44535e682/transit/",
            "accept": "https://gsmtasks.com/api/tasks/tasks/b779cd0b-5f32-4bb6-8d5e-d9c44535e682/accept/",
            "cancel": "https://gsmtasks.com/api/tasks/tasks/b779cd0b-5f32-4bb6-8d5e-d9c44535e682/cancel/",
            "unassign": "https://gsmtasks.com/api/tasks/tasks/b779cd0b-5f32-4bb6-8d5e-d9c44535e682/unassign/",
            "reject": "https://gsmtasks.com/api/tasks/tasks/b779cd0b-5f32-4bb6-8d5e-d9c44535e682/reject/",
            "fail": "https://gsmtasks.com/api/tasks/tasks/b779cd0b-5f32-4bb6-8d5e-d9c44535e682/fail/",
            "assign": "https://gsmtasks.com/api/tasks/tasks/b779cd0b-5f32-4bb6-8d5e-d9c44535e682/assign/"
        },
        "counts": {
            "events": null,
            "documents": null,
            "signatures": null,
            "forms": null,
            "forms_completed": null
        }
    }
    

    POST https://gsmtasks.com/api/tasks/tasks/

    Request parameters

    Parameter Type Required Description
    account String Yes URL of the account resource
    order String No URL of the order
    external_id String No Unique identifier of an external system for ease of integration
    category String Yes Category of the task (pickup, drop_off, ...)
    orderer String No URL of the orderer
    receiver String No URL of the receiver
    contact Object No Contact object describing the contact person for that task
    address Object Yes Address object describing the location of the task
    description String No Description of the task
    reference String No Order reference number
    complete_after String No Sets the time after what the task should be completed (if not defined it will default to creation time)
    complete_before String No Sets the time before what the task should be completed
    scheduled_time String No The time scheduled by the worker from the mobile app
    assignee String No URL of the user resource the task has been assigned to
    auto_assign Boolean No Should the task be auto assigned to the best suited driver
    position String No Task position is the sort order in the specified assignee's task list
    duration String No Duration planned for the completion of the task at location
    metafields Object No Metafields contain custom datafields that have been configured

    Using serialized objects instead of URLs

    For the assignee field, it is possible to create a task using a short serialized representation of the user object instead of the user's hyperlink. The user will be looked up on the server side using the provided e-mail address.

    {
      "account": "https://gsmtasks.com/api/tasks/accounts/4368ec5d-9942-4c74-90f7-eea752a6e489/",
      "address": {
        "raw_address": "Piccadilly Circus, London, United Kingdom"
      },
      "assignee": {
        "email": "worker@mycompany.com"
      }
    }
    

    Update Task

    Request to update a task. We will change the order, external_id and category as an example.

    Example PUT request JSON data:

    {
      "account": "https://gsmtasks.com/api/tasks/accounts/4368ec5d-9942-4c74-90f7-eea752a6e489/",
      "order": "https://gsmtasks.com/api/tasks/orders/f779cd66-bb05-438d-80ee-ad65235cca39/",
      "external_id": "9999",
      "category": "pick_up",
      "address": {
        "raw_address": "Telliskivi 60a, Tallinn 10412, Estonia",
        "formatted_address": "Telliskivi 60a, Tallinn 10412, Estonia",
        "location": {
            "type": "Point",
            "coordinates": [
                24.716517899999985,
                59.4329769
            ]
        }
      }
    }
    

    The request returns JSON of the updated Task structured like this:

    {
        "id": "b779cd0b-5f32-4bb6-8d5e-d9c44535e682",
        "url": "https://gsmtasks.com/api/tasks/tasks/d09b5fc0-d82f-42ed-9d5f-022d68f36df6/",
        "account": "https://gsmtasks.com/api/tasks/accounts/4368ec5d-9942-4c74-90f7-eea752a6e489/",
        "external_id": "9999",
        "order": "https://gsmtasks.com/api/tasks/orders/f779cd66-bb05-438d-80ee-ad65235cca39/",
        "category": "pick_up",
        "orderer": null,
        "receiver": "https://gsmtasks.com/api/tasks/clients/fe8ad9b9-a49d-45ff-a1d9-d3325d80f236/",
        "contact": {
            "name": "Tom",
            "company": "Smith",
            "phone": "+447700900132",
            "email": "tom.smith@fast.uk",
            "notes": "Call 5 minutes before"
        },
        "address": {
            "raw_address": "Piccadilly Circus, London, United Kingdom",
            "formatted_address": "Piccadilly Circus, London, United Kingdom",
            "location": {
                "type": "Point",
                "coordinates": [
                    24.716517899999985,
                    59.4329769
                ]
            },
            "google_place_id": "",
            "point_of_interest": "",
            "street": "",
            "house_number": "",
            "apartment_number": "",
            "city": "",
            "state": "",
            "postal_code": "",
            "country": "",
            "country_code": ""
        },
        "description": "Description of what should the driver do or deliver to that location.",
        "reference": "O-112",
        "complete_after": "2015-09-08T10:00:00Z",
        "complete_before": "2015-09-08T11:00:00Z",
        "scheduled_time": null,
        "state": "assigned",
        "completed_at": null,
        "cancelled_at": null,
        "assignee": "https://gsmtasks.com/api/tasks/users/cfdf3a8e-a9d7-4878-a922-344081a1ed75/",
        "auto_assign": false,
        "assignee_proximity": "away",
        "position": "2015-09-08T10:00:00Z",
        "duration": null,
        "is_full_load": false,
        "metafields": {},
        "issues": [],
        "created_at": "2016-10-18T12:51:49.972662Z",
        "updated_at": "2016-10-18T13:00:17.957134Z",
        "events": "https://gsmtasks.com/api/tasks/tasks/b779cd0b-5f32-4bb6-8d5e-d9c44535e682/events/",
        "documents": "https://gsmtasks.com/api/tasks/tasks/b779cd0b-5f32-4bb6-8d5e-d9c44535e682/documents/",
        "signatures": "https://gsmtasks.com/api/tasks/tasks/b779cd0b-5f32-4bb6-8d5e-d9c44535e682/signatures/",
        "actions": {
            "activate": "https://gsmtasks.com/api/tasks/tasks/b779cd0b-5f32-4bb6-8d5e-d9c44535e682/activate/",
            "complete": "https://gsmtasks.com/api/tasks/tasks/b779cd0b-5f32-4bb6-8d5e-d9c44535e682/complete/",
            "transit": "https://gsmtasks.com/api/tasks/tasks/b779cd0b-5f32-4bb6-8d5e-d9c44535e682/transit/",
            "accept": "https://gsmtasks.com/api/tasks/tasks/b779cd0b-5f32-4bb6-8d5e-d9c44535e682/accept/",
            "cancel": "https://gsmtasks.com/api/tasks/tasks/b779cd0b-5f32-4bb6-8d5e-d9c44535e682/cancel/",
            "unassign": "https://gsmtasks.com/api/tasks/tasks/b779cd0b-5f32-4bb6-8d5e-d9c44535e682/unassign/",
            "reject": "https://gsmtasks.com/api/tasks/tasks/b779cd0b-5f32-4bb6-8d5e-d9c44535e682/reject/",
            "fail": "https://gsmtasks.com/api/tasks/tasks/b779cd0b-5f32-4bb6-8d5e-d9c44535e682/fail/",
            "assign": "https://gsmtasks.com/api/tasks/tasks/b779cd0b-5f32-4bb6-8d5e-d9c44535e682/assign/"
        },
        "counts": {
            "events": null,
            "documents": null,
            "signatures": null,
            "forms": null,
            "forms_completed": null
        }
    }
    

    PUT https://gsmtasks.com/api/tasks/tasks/d09b5fc0-d82f-42ed-9d5f-022d68f36df6/

    Request parameters

    Parameter Type Required Description
    account String Yes URL of the account resource
    order String No URL of the order
    external_id String No Unique identifier of an external system for ease of integration
    category String Yes Category of the task (pickup, drop_off, ...)
    orderer String No URL of the orderer
    receiver String No URL of the receiver
    contact Object No Contact object describing the contact person for that task
    address Object Yes Address object describing the location of the task
    description String No Description of the task
    reference String No Order reference number
    complete_after String No Sets the time after what the task should be completed (if not defined it will default to creation time)
    complete_before String No Sets the time before what the task should be completed
    scheduled_time String No The time scheduled by the worker from the mobile app
    assignee String No URL of the user resource the task has been assigned to
    auto_assign Boolean No Should the task be auto assigned to the best suited driver
    position String No Task position is the sort order in the specified assignee's task list
    duration String No Duration planned for the completion of the task at location
    metafields Object No Metafields contain custom datafields that have been configured

    Task Events

    A task event object is a definition of user action against one particular task. As there are many task events for each task a task event history is formed.

    It's also possible to define a callback to the clients server about the task event so it's possible to update the task states also in the CRM or any other system that for example needs to know when a task was completed.

    The following task events are registered and sent.

    State Description
    created Task has been created
    assign Task has been assigned to a worker
    unassign Task has been unassigned
    transit Task has gone into transit mode
    active Task has been activated
    completed Task has been completed
    Failed Task has failed
    Cancelled The task has been cancelled

    List Task Events

    Returns a array of accounts that the user has access to.

    The request returns JSON structured like this:

    [
      {
        "id": "d9a80a68-bf33-488b-9f8f-3da038aadea8",
        "url": "https://gsmtasks.com/api/tasks/task_events/d9a80a68-bf33-488b-9f8f-3da038aadea8/",
        "task": "https://gsmtasks.com/api/tasks/tasks/46267d9f-66cd-4fdb-9e9e-aaa63c81f29b/",
        "field": "state",
        "event": "activate",
        "from_state": "transit",
        "to_state": "active",
        "user": "https://gsmtasks.com/api/tasks/users/2e25e0c6-889c-4eda-ae3c-db27949fa05d/",
        "notes": "",
        "location": {
          "type": "Point",
          "coordinates": [
            -0.13457340000002205,
            51.5100974
          ]
        },
        "assignee": "https://gsmtasks.com/api/tasks/users/2e25e0c6-889c-4eda-ae3c-db27949fa05d/",
        "created_at": "2016-05-10T09:07:28.172058Z",
        "updated_at": "2016-05-10T09:07:39.294848Z"
      }
    ]
    

    GET https://gsmtasks.com/api/tasks/task_events/

    Attributes

    Attribute Type Description
    id String Task Event unique identifier
    url String Unique URL for the resource
    task String URL of the task resource
    field String Scope of the event: 'state' or 'assignee_proximity'
    event String Event name
    from_state String The state from where the event was triggered
    to_state  String The state to which the task was transitioned to
    user String  URL of the user who triggered the event
    notes String Any comments / notes attached to the event
    location Object A GeoJSON object that defines the location from where the task was triggered from
    assignee String URL of the user who the task was assigned to
    created_at String The time when the task event was created
    updated_at String The time when the task event was updated

    Retrieve a specific Task Event

    GET https://gsmtasks.com/api/tasks/task_events/d9a80a68-bf33-488b-9f8f-3da038aadea8/

    Task Event Tracks

    List Task Event Tracks

    Returns a array of task event tracks that the user has access to.

    The request returns JSON structured like this:

    {
        "type": "FeatureCollection",
        "features": [
            {
                "id": "d1dba784-f973-42f0-a875-7889676e077e",
                "type": "Feature",
                "geometry": {
                    "type": "LineString",
                    "coordinates": [
                        [
                            24.7773089,
                            59.4289815
                        ],
                        [
                            24.7297235,
                            59.4403178
                        ]
                    ]
                },
                "properties": {
                    "model": "task_event_track",
                    "url": "https://gsmtasks.com/api/tasks/task_event_tracks/d1dba784-f973-42f0-a875-7889676e077e/",
                    "task": "ffec72b7-8e5a-4062-b338-33fa458a497b",
                    "task_event": "https://gsmtasks.com/api/tasks/task_events/d1dba784-f973-42f0-a875-7889676e077e/",
                    "event": "unaccept",
                    "from_state": "accepted",
                    "to_state": "assigned",
                    "user": "cfdf3a8e-a9d7-4878-a922-344081a1ed75",
                    "notes": "",
                    "assignee": "cfdf3a8e-a9d7-4878-a922-344081a1ed75",
                    "created_at": "2016-10-24T05:17:39.459316Z",
                    "updated_at": "2016-10-24T05:17:50.948596Z"
                }
            }
        ]
    }
    

    GET https://gsmtasks.com/api/tasks/task_event_tracks/

    Attributes

    Attribute Type Description
    id String Task event track unique identifier
    type String Type of the task event track
    geometry object
    properties object

    Task Forms

    List Task Forms

    Returns a array of task forms that the user has access to.

    [
        {
            "id": "9d361905-6871-489e-89b8-a218178c6faa",
            "url": "https://gsmtasks.com/api/tasks/task_forms/9d361905-6871-489e-89b8-a218178c6faa/",
            "task": "https://gsmtasks.com/api/tasks/tasks/90c65c5e-b8b8-44c9-9d8b-cb7f91b53c38/",
            "name": "Name",
            "link": "https://gsmtasks.com/api/tasks/tasks/90c65c5e-b8b8-44c9-9d8b-cb7f91b53c38/",
            "edit_url": "https://gsmtasks.com/api/tasks/tasks/90c65c5e-b8b8-44c9-9d8b-cb7f91b53c38/",
            "view_url": "https://gsmtasks.com/api/tasks/tasks/90c65c5e-b8b8-44c9-9d8b-cb7f91b53c38/",
            "pdf_url": "https://gsmtasks.com/api/tasks/tasks/90c65c5e-b8b8-44c9-9d8b-cb7f91b53c38/",
            "completed": false,
            "created_at": "2016-10-07T11:12:01.237733Z",
            "updated_at": "2016-10-07T11:12:01.237761Z"
        }
    ]
    

    GET https://gsmtasks.com/api/tasks/task_forms/

    Attributes

    Attribute Type Description
    id String Task form unique identifier
    url String Unique URL for the resource
    task String URL of the task resource
    name String Name of the task form
    link String
    edit_url String
    view_url String
    pdf_url String
    completed Boolean Shows whether the task form is completed or not
    created_at String The time when the task form was created
    updated_at String The time when the task form was updated

    Retrieve a specific Task form

    GET https://gsmtasks.com/api/tasks/task_forms/9d361905-6871-489e-89b8-a218178c6faa/

    Create Task form

    Request to create a new task form with the parameters provided. The tasks that are going to be attached to the task form need to be created beforehand.

    You can read more about creating tasks here.

    Example POST request JSON data:

    {
        "task": "https://gsmtasks.com/api/tasks/tasks/90c65c5e-b8b8-44c9-9d8b-cb7f91b53c38/",
        "name": "Name",
        "edit_url": "https://gsmtasks.com/api/tasks/tasks/90c65c5e-b8b8-44c9-9d8b-cb7f91b53c38/",
        "view_url": "https://gsmtasks.com/api/tasks/tasks/90c65c5e-b8b8-44c9-9d8b-cb7f91b53c38/",
        "pdf_url": "https://gsmtasks.com/api/tasks/tasks/90c65c5e-b8b8-44c9-9d8b-cb7f91b53c38/",
        "completed": false
    }
    

    The request returns JSON of the created Order structured like this:

    {
        "id": "9d361905-6871-489e-89b8-a218178c6faa",
        "url": "https://gsmtasks.com/api/tasks/task_forms/9d361905-6871-489e-89b8-a218178c6faa/",
        "task": "https://gsmtasks.com/api/tasks/tasks/90c65c5e-b8b8-44c9-9d8b-cb7f91b53c38/",
        "name": "Name",
        "link": "https://gsmtasks.com/api/tasks/tasks/90c65c5e-b8b8-44c9-9d8b-cb7f91b53c38/",
        "edit_url": "https://gsmtasks.com/api/tasks/tasks/90c65c5e-b8b8-44c9-9d8b-cb7f91b53c38/",
        "view_url": "https://gsmtasks.com/api/tasks/tasks/90c65c5e-b8b8-44c9-9d8b-cb7f91b53c38/",
        "pdf_url": "https://gsmtasks.com/api/tasks/tasks/90c65c5e-b8b8-44c9-9d8b-cb7f91b53c38/",
        "completed": false,
        "created_at": "2016-10-07T11:12:01.237733Z",
        "updated_at": "2016-10-07T11:12:01.237761Z"
    }
    

    POST https://gsmtasks.com/api/tasks/task_forms/

    Request parameters

    Parameter Type Required Description
    task String Yes URL of the account resource
    name String Yes Name of the task form
    edit_url String Yes
    view_url String No
    pdf_url String No
    completed Boolean No Shows whether the task form is completed or not

    Update Task Form

    Request to update a Task Form. We will change the name and the completed status as an example.

    Example PUT request JSON data:

    {
        "task": "https://gsmtasks.com/api/tasks/tasks/90c65c5e-b8b8-44c9-9d8b-cb7f91b53c38/",
        "name": "Some other name",
        "edit_url": "https://gsmtasks.com/api/tasks/tasks/90c65c5e-b8b8-44c9-9d8b-cb7f91b53c38/",
        "completed": true
    }
    

    The request returns JSON of the updated Order structured like this:

    {
        "id": "9d361905-6871-489e-89b8-a218178c6faa",
        "url": "https://gsmtasks.com/api/tasks/task_forms/9d361905-6871-489e-89b8-a218178c6faa/",
        "task": "https://gsmtasks.com/api/tasks/tasks/90c65c5e-b8b8-44c9-9d8b-cb7f91b53c38/",
        "name": "Some other name",
        "link": "https://gsmtasks.com/api/tasks/tasks/90c65c5e-b8b8-44c9-9d8b-cb7f91b53c38/",
        "edit_url": "https://gsmtasks.com/api/tasks/tasks/90c65c5e-b8b8-44c9-9d8b-cb7f91b53c38/",
        "view_url": "https://gsmtasks.com/api/tasks/tasks/90c65c5e-b8b8-44c9-9d8b-cb7f91b53c38/",
        "pdf_url": "https://gsmtasks.com/api/tasks/tasks/90c65c5e-b8b8-44c9-9d8b-cb7f91b53c38/",
        "completed": true,
        "created_at": "2016-10-07T11:12:01.237733Z",
        "updated_at": "2016-10-07T11:12:01.237761Z"
    }
    

    PUT https://gsmtasks.com/api/tasks/task_forms/9d361905-6871-489e-89b8-a218178c6faa/

    Request parameters

    Parameter Type Required Description
    task String Yes URL of the account resource
    name String Yes Name of the task form
    edit_url String Yes
    view_url String No
    pdf_url String No
    completed Boolean No Shows whether the task form is completed or not

    Task Metadatas

    List Task Metadatas

    Returns a array of task metadatas that the user has access to.

    The request returns JSON structured like this:

    [
        {
            "id": "eed4a5fe-5cde-4859-baaf-68b60b2c03af",
            "url": "https://gsmtasks.com/api/tasks/task_metadatas/eed4a5fe-5cde-4859-baaf-68b60b2c03af/",
            "task": "https://gsmtasks.com/api/tasks/tasks/008110f2-8e66-4b17-b9b3-73da42c1e8f8/",
            "events_count": 5,
            "documents_count": 0,
            "signatures_count": 0,
            "forms_count": 0,
            "forms_completed_count": 0,
            "unassigned_duration": "00:00:00.007993",
            "assigned_duration": "00:30:38.002657",
            "accepted_duration": "00:00:00",
            "transit_duration": "75 22:49:15.261130",
            "active_duration": "00:00:00",
            "completed_duration": "00:00:00",
            "failed_duration": "00:00:00",
            "cancelled_duration": "00:00:00",
            "last_unassigned_at": null,
            "last_assigned_at": null,
            "last_accepted_at": null,
            "last_transit_at": null,
            "last_active_at": null,
            "last_completed_at": null,
            "last_failed_at": null,
            "last_cancelled_at": null
        }
    ]
    

    GET https://gsmtasks.com/api/tasks/task_metadatas/

    Attributes

    Attribute Type Description
    id String Task metadata unique identifier
    url String Unique URL for the resource
    task String URL of the task resource
    events_count Integer
    documents_count Integer
    signatures_count Integer
    forms_count Integer
    forms_completed_count Integer
    unassigned_duration String
    assigned_duration String
    accepted_duration String
    transit_duration String
    active_duration String
    completed_duration String
    failed_duration String
    cancelled_duration String
    last_unassigned_at String
    last_assigned_at String
    last_accepted_at String
    last_transit_at String
    last_active_at String
    last_completed_at String
    last_failed_at String
    last_cancelled_at String

    Retrieve a specific Task metadata

    GET https://gsmtasks.com/api/tasks/task_metadatas/eed4a5fe-5cde-4859-baaf-68b60b2c03af/

    Task Address Feature

    List Task Address Feature

    Returns a array of task address feature that the user has access to.

    The request returns JSON structured like this:

    {
        "type": "FeatureCollection",
        "features": [
            {
                "id": "d09b5fc0-d82f-42ed-9d5f-022d68f36df6",
                "type": "Feature",
                "geometry": {
                    "type": "Point",
                    "coordinates": [
                        24.716517899999985,
                        59.4329769
                    ]
                },
                "properties": {
                    "model": "task_address_feature",
                    "task": "https://gsmtasks.com/api/tasks/tasks/d09b5fc0-d82f-42ed-9d5f-022d68f36df6/",
                    "formatted_address": "Paldiski maantee 42d, 10612 Tallinn, Estonia",
                    "category": "assignment",
                    "state": "completed"
                }
            }
        ]
    }
    

    GET https://gsmtasks.com/api/tasks/task_address_features/

    Attributes

    Attribute Type Description
    id String Task event track unique identifier
    type String Type of the task event track
    geometry Object
    properties Object

    Time Locations

    List Time Locations

    Returns a array of time locations that the user has access to.

    The request returns JSON structured like this:

    [
        {
            "id": "78d0c5d7-974c-415d-a884-7458aa1e5a5f",
            "url": "https://gsmtasks.com/api/tasks/time_locations/78d0c5d7-974c-415d-a884-7458aa1e5a5f/",
            "user": "https://gsmtasks.com/api/tasks/users/04a01121-c95c-40d5-9910-d55c803533bb/",
            "time": "2016-03-04T06:28:52.926000Z",
            "location": {
                "type": "Point",
                "coordinates": [
                    24.7294207,
                    59.4398418
                ]
            },
            "registration": "",
            "state": "unknown",
            "heading": 0,
            "speed": 0,
            "altitude": 0,
            "accuracy": 30,
            "battery_level": "0.980",
            "created_at": "2016-10-19T13:01:15.456895Z",
            "updated_at": "2016-10-19T13:01:15.456956Z"
        }
    ]
    

    GET https://gsmtasks.com/api/tasks/time_locations/

    Attributes

    Attribute Type Description
    id String Time location unique identifier
    url String Unique URL for the resource
    user String URL of the user who created time location
    time String Time when the time location was created
    location Object A GeoJSON object ????
    registration String Car number plate
    state String unknown, stopped or moving.
    heading Integer Where the car was heading
    speed Integer Speed of the car
    altitude Integer Altitude of the car
    accuracy Integer Accuracy
    battery_level Battery level
    created_at String The time when the order was created
    updated_at String The time when the order was updated

    Retrieve a specific Time Location

    GET https://gsmtasks.com/api/tasks/time_locations/78d0c5d7-974c-415d-a884-7458aa1e5a5f/

    Create Time Location

    Request to create a new time location with the parameters provided.

    Example POST request JSON data:

    {
        "time": "2016-01-14T14:33:00Z",
        "location": {
            "type": "Point",
            "coordinates": [
                24.7297895322,
                59.439981842
            ]
        },
        "registration": "123AAA",
        "state": "stopped",
        "heading": null,
        "speed": null,
        "altitude": null,
        "accuracy": null,
        "battery_level": null
    }
    

    The request returns JSON of the created Order structured like this:

    {
        "id": "dea56300-382d-4a0b-8424-cbc6e1941bbb",
        "url": "http://127.0.0.1:8000/api/tasks/time_locations/dea56300-382d-4a0b-8424-cbc6e1941bbb/",
        "user": "http://127.0.0.1:8000/api/tasks/users/adba000d-9f1b-4469-a2b7-7dfb7977f57b/",
        "time": "2016-01-14T14:33:00Z",
        "location": {
            "type": "Point",
            "coordinates": [
                24.7297895322,
                59.439981842
            ]
        },
        "registration": "123AAA",
        "state": "stopped",
        "heading": null,
        "speed": null,
        "altitude": null,
        "accuracy": null,
        "battery_level": null,
        "created_at": "2016-10-25T07:59:18.510722Z",
        "updated_at": "2016-10-25T07:59:18.510795Z"
    }
    

    POST https://gsmtasks.com/api/tasks/time_locations/

    Request parameters

    Attribute Type Required Description
    time String Yes Time when the time location was created
    location Object Yes A GeoJSON object
    registration String No Car number plate
    state String Yes Unknown, stopped or moving.
    heading Integer No Where the car was heading
    speed Integer No Speed of the car
    altitude Integer No Altitude of the car
    accuracy Integer No Accuracy
    battery_level No Battery level

    Trackers

    Trackers are sharable tracking links that can be publicly viewed or even embeded on websites trough an iframe.

    List Trackers

    Returns a array of trackers that the user has access to.

    The request returns JSON structured like this:

    [
      {
          "id": "92133df6-55b7-49f9-9cc3-5a516cee8f52",
          "url": "https://gsmtasks.com/api/tasks/trackers/92133df6-55b7-49f9-9cc3-5a516cee8f52/",
          "account": "https://gsmtasks.com/api/tasks/accounts/4368ec5d-9942-4c74-90f7-eea752a6e489/",
          "tasks": [
              "https://gsmtasks.com/api/tasks/tasks/d09b5fc0-d82f-42ed-9d5f-022d68f36df6/",
              "https://gsmtasks.com/api/tasks/tasks/4c340c01-55eb-4d12-9988-a4a34785b512/"
          ],
          "active_from": "2015-09-08T00:00:00Z",
          "active_until": "2015-09-10T00:00:00Z",
          "active_states": [
              "transit",
              "active"
          ],
          "show_driver_info": true,
          "show_destination": true,
          "show_sms_action": true,
          "show_call_action": true,
          "show_logo": true,
          "show_path": false,
          "autozoom": true,
          "max_zoom_level": null
        }
    ]
    

    GET https://gsmtasks.com/api/tasks/trackers/

    Attributes

    Attribute Type Description
    id String Tracker unique identifier
    url String Unique URL for the resource
    account String URL of the account resource
    tasks Array Tasks that are displayed on this tracker
    active_from String Date and time from when the tracker is active
    active_until String Date and time until when the tracker is active
    active_states Array  States of the tasks when the tracker is active
    show_driver_info Boolean Show driver name
    show_destination Boolean Show task destination address (only first implemented)
    show_sms_action Boolean Show SMS action button
    show_call_action Boolean Show Call action button
    show_logo Boolean Show logo (will be deprecated)
    show_path Boolean Show driving path (transit state)
    autozoom   Boolean Automatic zoom to fallow on the driver
    max_zoom_level Integer Maximum Google maps zoom level

    Retrieve a specific Tracker

    GET https://gsmtasks.com/api/tasks/trackers/92133df6-55b7-49f9-9cc3-5a516cee8f52/

    Create Tracker

    Request to create a new tracker with the parameters provided. The tasks that are going to be attached to the tracker need to be created beforehand.

    You can read more about creating tasks here.

    Example POST request JSON data:

    {
      "account": "https://gsmtasks.com/api/tasks/accounts/4368ec5d-9942-4c74-90f7-eea752a6e489/",
      "tasks": [
          "https://gsmtasks.com/api/tasks/tasks/d09b5fc0-d82f-42ed-9d5f-022d68f36df6/",
          "https://gsmtasks.com/api/tasks/tasks/4c340c01-55eb-4d12-9988-a4a34785b512/"
      ],
      "active_from": "2015-09-08T00:00:00Z",
      "active_until": "2015-09-10T00:00:00Z",
      "active_states": [
          "transit",
          "active"
      ],
      "show_driver_info": true,
      "show_destination": true,
      "show_sms_action": true,
      "show_call_action": true,
      "show_logo": true,
      "show_path": false,
      "autozoom": true,
      "max_zoom_level": null
    }
    

    The request returns JSON of the created Order structured like this:

    {
      "id": "92133df6-55b7-49f9-9cc3-5a516cee8f52",
      "url": "https://gsmtasks.com/api/tasks/trackers/92133df6-55b7-49f9-9cc3-5a516cee8f52/",
      "account": "https://gsmtasks.com/api/tasks/accounts/4368ec5d-9942-4c74-90f7-eea752a6e489/",
      "tasks": [
          "https://gsmtasks.com/api/tasks/tasks/d09b5fc0-d82f-42ed-9d5f-022d68f36df6/",
          "https://gsmtasks.com/api/tasks/tasks/4c340c01-55eb-4d12-9988-a4a34785b512/"
      ],
      "active_from": "2015-09-08T00:00:00Z",
      "active_until": "2015-09-10T00:00:00Z",
      "active_states": [
          "transit",
          "active"
      ],
      "show_driver_info": true,
      "show_destination": true,
      "show_sms_action": true,
      "show_call_action": true,
      "show_logo": true,
      "show_path": false,
      "autozoom": true,
      "max_zoom_level": null
    }
    

    POST https://gsmtasks.com/api/tasks/trackers/

    Request parameters

    Parameter Type Required Description
    account String Yes URL of the account resource
    tasks Array Yes Tasks that need to be completed referenced by the URLs
    active_from String Yes Date and time from when the tracker is active
    active_until String Yes Date and time until when the tracker is active
    active_states Array  Yes States of the tasks when the tracker is active
    show_driver_info Boolean Yes Show driver name
    show_destination Boolean Yes Show task destination address (only first implemented)
    show_sms_action Boolean Yes Show SMS action button
    show_call_action Boolean Yes Show Call action button
    show_logo Boolean Yes Show logo (will be deprecated)
    show_path Boolean Yes Show driving path (transit state)
    autozoom   Boolean Yes Automatic zoom to fallow on the driver
    max_zoom_level Integer Yes Maximum Google maps zoom level

    Update Tracker

    Request to update a tracker. We will add a task to the tasks array as an example.

    Example PUT request JSON data:

    {
      "id": "92133df6-55b7-49f9-9cc3-5a516cee8f52",
      "url": "https://gsmtasks.com/api/tasks/trackers/92133df6-55b7-49f9-9cc3-5a516cee8f52/",
      "account": "https://gsmtasks.com/api/tasks/accounts/4368ec5d-9942-4c74-90f7-eea752a6e489/",
      "tasks": [
          "https://gsmtasks.com/api/tasks/tasks/d09b5fc0-d82f-42ed-9d5f-022d68f36df6/",
          "https://gsmtasks.com/api/tasks/tasks/4c340c01-55eb-4d12-9988-a4a34785b512/"
          "https://gsmtasks.com/api/tasks/tasks/702ef11a-6ee7-44bd-8564-81f9b8a2248f/"
      ],
      "active_from": "2015-09-08T00:00:00Z",
      "active_until": "2015-09-10T00:00:00Z",
      "active_states": [
          "transit",
          "active"
      ],
      "show_driver_info": true,
      "show_destination": true,
      "show_sms_action": true,
      "show_call_action": true,
      "show_logo": true,
      "show_path": false,
      "autozoom": true,
      "max_zoom_level": null
    }
    

    The request returns JSON of the updated Tracker structured like this:

    {
      "id": "92133df6-55b7-49f9-9cc3-5a516cee8f52",
      "url": "https://gsmtasks.com/api/tasks/trackers/92133df6-55b7-49f9-9cc3-5a516cee8f52/",
      "account": "https://gsmtasks.com/api/tasks/accounts/4368ec5d-9942-4c74-90f7-eea752a6e489/",
      "tasks": [
          "https://gsmtasks.com/api/tasks/tasks/d09b5fc0-d82f-42ed-9d5f-022d68f36df6/",
          "https://gsmtasks.com/api/tasks/tasks/4c340c01-55eb-4d12-9988-a4a34785b512/"
          "https://gsmtasks.com/api/tasks/tasks/702ef11a-6ee7-44bd-8564-81f9b8a2248f/"
      ],
      "active_from": "2015-09-08T00:00:00Z",
      "active_until": "2015-09-10T00:00:00Z",
      "active_states": [
          "transit",
          "active"
      ],
      "show_driver_info": true,
      "show_destination": true,
      "show_sms_action": true,
      "show_call_action": true,
      "show_logo": true,
      "show_path": false,
      "autozoom": true,
      "max_zoom_level": null
    }
    

    POST https://gsmtasks.com/api/tasks/trackers/92133df6-55b7-49f9-9cc3-5a516cee8f52/

    Users

    List Users

    Returns a array of users. The users returned are the users to whom you have access through different accounts.

    The request returns JSON structured like this:

    [
        {
            "id": "835cdcf8-9d1e-4718-ad47-4cf0a63626b4",
            "url": "https://gsmtasks.com/api/tasks/users/835cdcf8-9d1e-4718-ad47-4cf0a63626b4/",
            "first_name": "Tom",
            "last_name": "Smith",
            "display_name": "Tom Smith",
            "email": "tom.smith@fast.uk",
            "phone": "+447700900132"
        }
    ]
    

    GET https://gsmtasks.com/api/tasks/users/

    Attributes

    Attribute Type Description
    id String Account Role unique identifier
    url String Unique URL for the resource
    first_name String First name of the user
    last_name String Last name of the user
    display_name String Display name of the user
    email String Email of the user
    phone String International phone number of the user

    Retrieve a specific User

    GET https://gsmtasks.com/api/tasks/users/12d2821e-01e2-48fb-97bc-eaebca93cbdc/

    Create User

    Request to create a new user with the parameters provided

    Example POST request JSON data:

    {
      "first_name": "Tom",
      "last_name": "Smith",
      "email": "tom.smith@fast.uk",
      "phone": "+447700900132"
    }
    

    The request returns JSON of the created User structured like this:

    {
        "id": "835cdcf8-9d1e-4718-ad47-4cf0a63626b4",
        "url": "https://gsmtasks.com/api/tasks/users/835cdcf8-9d1e-4718-ad47-4cf0a63626b4/",
        "first_name": "Tom",
        "last_name": "Smith",
        "display_name": "Tom Smith",
        "email": "tom.smith@fast.uk",
        "phone": "+447700900132"
    }
    

    POST https://gsmtasks.com/api/tasks/users/

    Request parameters

    Parameter Type Required Description
    first_name String No First name of the user
    last_name String No Last name of the user
    email String Yes Email of the user
    phone String No International phone number of the user

    Webhooks

    Webhooks are to group together some tasks that need to be completed in the specified (optimized) sequence.