{ "$schema": "http://json-schema.org/draft-07/schema#", "$id": "https://raw.githubusercontent.com/api-evangelist/argyle/refs/heads/main/json-schema/gig.json", "title": "Gig", "type": "object", "example": { "id": "0187dbfa-6f5e-a33a-af26-7e12ff408fea", "account": "0187c66e-e7e5-811c-b006-2232f00f426a", "employer": "GigAndGo", "created_at": "2023-03-08T08:31:37.037Z", "updated_at": "2023-03-08T08:31:37.037Z", "status": "completed", "type": "delivery", "task_count": 2, "start_datetime": "2023-03-08T08:08:57Z", "end_datetime": "2023-03-08T08:31:36Z", "all_datetimes": { "request_at": "2023-03-08T08:08:57Z", "accept_at": "2023-03-08T08:09:38Z", "pickup_at": "2023-03-08T08:12:57Z", "dropoff_at": "2023-03-08T08:31:36Z", "cancel_at": null, "shift_start": null, "shift_end": null, "breaks": null }, "duration": 2659, "timezone": "America/New_York", "earning_type": "work", "start_location": { "lat": "40.65932120164202", "lng": "-73.8526246331782", "formatted_address": "201 North W St, New York, NY 10014, US" }, "end_location": { "lat": "40.689177462234504", "lng": "-73.89453884284752", "formatted_address": "102 South E St, New York, NY 10002, US" }, "task_details": { "events": [ { "order_id": null, "sequence": "1", "type": "accept", "name": null, "formatted_address": "201 North W St, New York, NY 10014, US", "lat": "40.65932120164202", "lng": "-73.89453884284752", "datetime": "2023-03-08T08:09:38Z" }, { "order_id": "1", "sequence": "2", "type": "pickup", "name": "Healthy Snacks", "formatted_address": "150 East N St, New York, NY 10014, US", "lat": "40.673422892136178", "lng": "-73.88931269893891", "datetime": "2023-03-08T08:12:57Z" }, { "order_id": "2", "sequence": "3", "type": "pickup", "name": "Gourmet Desserts", "formatted_address": "182 East N St, New York, NY 10014, US", "lat": "40.673523811763259", "lng": "-73.86335212657626", "datetime": "2023-03-08T08:12:57Z" }, { "order_id": null, "sequence": "4", "type": "dropoff", "name": null, "formatted_address": "102 South E St, New York, NY 10002, US", "lat": "40.689177462234504", "lng": "-73.89453884284752", "datetime": "2023-03-08T08:31:36Z" } ], "orders": [ { "order_id": "1", "sequence": "1", "income": { "currency": "USD", "total_charge": "34.75", "customer_price": "26.38", "fees": "8.37", "total": "19.96", "pay": "22.28", "tips": null, "bonus": "0.00", "other": "-2.32" } }, { "order_id": "2", "sequence": "2", "income": { "currency": "USD", "total_charge": "7.25", "customer_price": "7.25", "fees": null, "total": "4.30", "pay": "4.30", "tips": "0.00", "bonus": "0.00", "other": null } } ] }, "distance": "1.80", "distance_unit": "miles", "metadata": { "income.other": { "name": "Taxes: Withholding tax", "value": "-15.32" } }, "circumstances": { "is_pool": false, "is_rush": false, "is_surge": true, "service_type": "Comfort Ride", "position": null }, "income": { "currency": "USD", "total_charge": "42.00", "customer_price": "33.68", "fees": "8.37", "total": "30.68", "pay": "26.58", "tips": "6.42", "bonus": "0.00", "other": "-2.32" }, "income_rates": { "hour": "92.70", "mile": "20.20" } }, "properties": { "id": { "type": "string", "format": "uuid", "description": "Unique ID of the gig assignment." }, "account": { "type": "string", "format": "uuid", "description": "Unique ID of the account associated with the gig assignment." }, "employer": { "type": "string", "description": "Employer name." }, "created_at": { "type": "string", "format": "date-time", "description": "Timestamp ([ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)) when the gig object was created.\n" }, "updated_at": { "type": "string", "format": "date-time", "description": "Timestamp ([ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)) when a property value of the gig object most recently changed.\n" }, "status": { "type": "string", "enum": [ "scheduled", "in_progress", "completed", "cancelled" ], "description": "Current state of the gig assignment." }, "type": { "type": "string", "enum": [ "delivery", "rideshare", "hourly", "services" ], "description": "The type of gig assignment." }, "task_count": { "type": "integer", "description": "Number of discrete tasks in the gig assignment.\n\n**Note:**\nWhen `task_count` is greater than 1 (e.g. two pickups in one delivery), the gig object contains aggregated values for the entire gig assignment. Individual task-level details can be found in the [`task_details`](https://docs.argyle.com/api-reference/gigs#object-task_details) object.\n" }, "start_datetime": { "type": "string", "format": "date-time", "description": "Timestamp ([ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)) when the gig assignment started.\n" }, "end_datetime": { "type": "string", "format": "date-time", "description": "Timestamp ([ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)) when the gig assignment ended.\n" }, "all_datetimes": { "type": "object", "description": "Other timestamps related to the gig assignment.", "properties": { "request_at": { "type": "string", "format": "date-time", "description": "Timestamp ([ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)) when the gig assignment was created.\n" }, "accept_at": { "type": "string", "format": "date-time", "description": "Timestamp ([ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)) when the gig assignment was accepted.\n" }, "pickup_at": { "type": "string", "format": "date-time", "description": "Timestamp ([ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)) when \"package\" (rider, food, or similar) was obtained.\n" }, "dropoff_at": { "type": "string", "format": "date-time", "description": "Timestamp ([ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)) when \"package\" (rider, food, or similar) was delivered.\n" }, "cancel_at": { "type": "string", "format": "date-time", "description": "Timestamp ([ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)) when the gig assignment was cancelled.\n" }, "shift_start": { "type": "string", "format": "date-time", "description": "Timestamp ([ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)) when the work shift started.\n" }, "shift_end": { "type": "string", "format": "date-time", "description": "Timestamp ([ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)) when the work shift ended.\n" }, "breaks": { "type": "array", "items": { "type": "object", "properties": { "break_start": { "type": "string", "format": "date-time", "description": "Timestamp ([ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)) when the break started.\n" }, "break_end": { "type": "string", "format": "date-time", "description": "Timestamp ([ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)) when the break ended.\n" } } } } } }, "duration": { "type": "integer", "description": "Total time of the gig assignment (in seconds)." }, "timezone": { "type": "string", "description": "Timezone ([IANA](https://www.iana.org/time-zones)) where the gig assignment took place.\n" }, "earning_type": { "type": "string", "enum": [ "offer", "work", "incentive", "adjustment", "other" ], "description": "The earnings category." }, "start_location": { "type": "object", "description": "Starting location information for the gig assignment.", "properties": { "lat": { "type": "string", "description": "Latitude ([ISO 6709](https://en.wikipedia.org/wiki/ISO_6709)) where the gig assignment started.\n", "format": "degrees" }, "lng": { "type": "string", "description": "Longitude ([ISO 6709](https://en.wikipedia.org/wiki/ISO_6709)) where the gig assignment started.\n", "format": "degrees" }, "formatted_address": { "type": "string", "description": "Full address of where the gig assignment started." } } }, "end_location": { "type": "object", "description": "Ending location information for the gig assignment.", "properties": { "lat": { "type": "string", "format": "degrees", "description": "Latitude ([ISO 6709](https://en.wikipedia.org/wiki/ISO_6709)) where the gig assignment ended.\n" }, "lng": { "type": "string", "format": "degrees", "description": "Longitude ([ISO 6709](https://en.wikipedia.org/wiki/ISO_6709)) where the gig assignment ended.\n" }, "formatted_address": { "type": "string", "description": "Full address of where the gig assignment ended." } } }, "task_details": { "type": "object", "description": "Task-level details for the gig assignment.", "properties": { "events": { "type": "array", "description": "Geographical information and timestamps.", "items": { "type": "object", "properties": { "order_id": { "type": "string", "description": "Argyle-added reference ID. Connects `events` to `orders`.\n\n**Note:**\nOnly available if the underlying gig platform provides a clear link between events and their associated orders (monetary charges).\n" }, "sequence": { "type": "string", "description": "Counter starting at 1. The sequential ordering of each event, as represented by the gig platform.\n" }, "type": { "type": "string", "enum": [ "request", "accept", "pickup", "dropoff", "other", "cancel" ], "description": "The type of event." }, "name": { "type": "string", "description": "Name associated with the geographical location.\n\n**Note:**\nPrimarily available for delivery platforms, where name is the pickup establishment (i.e. restaurant name).\n" }, "formatted_address": { "type": "string", "description": "Full address of the geographical location." }, "lat": { "type": "string", "description": "Latitude ([ISO 6709](https://en.wikipedia.org/wiki/ISO_6709)) of the geographical location.\n" }, "lng": { "type": "string", "description": "Longitude ([ISO 6709](https://en.wikipedia.org/wiki/ISO_6709)) of the geographical location.\n" }, "datetime": { "type": "string", "format": "date-time", "description": "Timestamp ([ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)) of the event.\n" } } } }, "orders": { "type": "array", "description": "Payment and earnings information.", "items": { "type": "object", "properties": { "order_id": { "type": "string", "description": "Argyle-added reference ID. Connects `orders` to `events`.\n" }, "sequence": { "type": "string", "description": "Counter starting at 1. The sequential ordering of each order, as represented by the gig platform.\n" }, "income": { "type": "object", "description": "Payment and earnings information for the order.", "properties": { "currency": { "type": "string", "description": "Currency code ([ISO 4217](https://en.wikipedia.org/wiki/ISO_4217)).\n" }, "total_charge": { "type": "string", "description": "Total amount charged to the customer." }, "customer_price": { "type": "string", "description": "Amount the customer paid for the order, not including `fees` and `tips`.\n" }, "fees": { "type": "string", "description": "Fees charged to the gig employee by the gig platform." }, "total": { "type": "string", "description": "Total earnings received by the gig employee ( `pay` + `tips` + `bonus` + `other` ).\n" }, "pay": { "type": "string", "description": "Earnings related to the assignment received by the gig employee." }, "tips": { "type": "string", "description": "Tips received by the gig employee." }, "bonus": { "type": "string", "description": "Bonus earnings received by the gig employee." }, "other": { "type": "string", "description": "Other payments made or received by the gig employee.\n\nCommon examples: refunds (tolls), taxes, partial cash payments, reimbursements, or miscellaneous payments categorized as \"other\".\n" } } } } } } } }, "distance": { "type": "string", "description": "Distance traveled during the gig assignment." }, "distance_unit": { "type": "string", "enum": [ "miles", "km" ], "description": "Unit of the distance traveled." }, "metadata": { "type": "object", "description": "Additional, non-categorized information.\n" }, "circumstances": { "type": "object", "description": "Metadata specific to the gig platform, such as whether the assignment occurred during peak hours." }, "income": { "type": "object", "description": "Payment and earnings information for the gig assignment.", "properties": { "currency": { "type": "string", "description": "Currency code ([ISO 4217](https://en.wikipedia.org/wiki/ISO_4217)).\n" }, "total_charge": { "type": "string", "description": "Total amount charged to the customer." }, "customer_price": { "type": "string", "description": "Amount the customer paid for the order, not including `fees` and `tips`.\n\n**Note:**\nOnly available if directly returned by the gig platform.\n" }, "fees": { "type": "string", "description": "Fees charged to the gig employee by the gig platform." }, "total": { "type": "string", "description": "Total earnings received by the gig employee ( `pay` + `tips` + `bonus` + `other` ).\n" }, "pay": { "type": "string", "description": "Earnings related to the assignment received by the gig employee." }, "tips": { "type": "string", "description": "Tips received by the gig employee." }, "bonus": { "type": "string", "description": "Bonus earnings received by the gig employee." }, "other": { "type": "string", "description": "Other payments made or received by the gig employee.\n\nCommon examples: refunds (tolls), taxes, partial cash payments, reimbursements, or miscellaneous payments categorized as \"other\".\n\n**Note:**\n Additional details for other income are listed within metadata in the following format:\n\n ```json\n \"metadata\": {\n \"income.other\": {\n \"name\": \"Taxes: Withholding tax\",\n \"value\": \"-15.32\"\n }\n }\n ```\n" } } }, "income_rates": { "type": "object", "description": "Amount earned by the gig employee per hour or per mile.\n\n**Note:**\nValues are not calculated, and are only returned if directly provided by the gig platform.\n", "properties": { "hour": { "type": "string", "description": "Earnings per hour. *Not calculated*" }, "mile": { "type": "string", "description": "Earnings per mile. *Not calculated*" } } } } }