Tickets
Tickets or interventions are the main object of the application. They are created by the user and are linked to a location, an equipment and a job. They can be assigned to a user and can be scheduled for a specific date.
Properties
- Name
id- Type
- string
- Description
Unique identifier for the ticket.
- Name
from_public_interface- Type
- boolean
- Description
Whether the ticket was created from the public interface.
- Name
intervention_scheluded_at- Type
- array => ISODate
- Description
Array of dates when a visit or an intervention is scheduled (canceled dates are excluded).
Note: the property is spelledintervention_scheluded_atin the API response. This historical spelling is kept for backward compatibility.
- Name
intervention_occured_at- Type
- array => ISODate
- Description
Array of dates when the intervention occured.
- Name
created_at- Type
- string => ISODate
- Description
Date when the ticket was created.
- Name
closed_at- Type
- string => ISODate
- Description
Date when the ticket was closed.
- Name
updated_at- Type
- string => ISODate
- Description
Date when the ticket was updated.
- Name
assigned_at- Type
- string => ISODate
- Description
Date when the ticket was assigned.
- Name
finished_at- Type
- string => ISODate
- Description
Date when the ticket was finished (
nullif it is not finished).
- Name
url- Type
- string
- Description
URL of the ticket.
- Name
number- Type
- string
- Description
Number of the ticket.
- Name
status- Type
- string
- Description
Status of the ticket, as a human-readable label in French (for example
Ticket cloturé).
To filter or to write code against a status, usestatus_key, not this label.
- Name
status_key- Type
- string enum
- Description
Status of the ticket, as a stable key. This is the value accepted by the
statusfilter of the list endpoint.draft(ticket is draft)opened(ticket is waiting for validation)waiting(ticket is waiting for assignment)proposed(ticket was proposed to a contractor)toreplan(ticket is waiting to be rescheduled)toplan(ticket is to plan)waitingplan(ticket is waiting to be scheduled)waiting_contractor(ticket is waiting to plan or assign)assigned(ticket is assigned to a contractor)visit(ticket has a visit date planned)visit_devis(waiting for the visit date to be confirmed as executed)validation(the quote(s) need to be validated)validated(the ticket's quote(s) were validated)dropped(one or all of the ticket's quotes were declined)intervention(ticket has an intervention date planned)intervention_finish(waiting for the intervention date to be confirmed as executed)finished(ticket is finished)cashedby(waiting for the charge to be assigned)closed(ticket is closed)canceled(ticket is canceled)declined(ticket is declined)removed(ticket is removed)
- Name
status_reason- Type
- string
- Description
Short explanation of the status, in English (for example
ticket is closed).
- Name
title- Type
- string
- Description
Title of the ticket.
- Name
description- Type
- string
- Description
Description of the ticket.
- Name
priority_label- Type
- string
- Description
Priority of the ticket.
- Name
client- Type
- Object
- Description
Client of the ticket.
_id(id of the client)name(name of the client)
- Name
contractors- Type
- array of Object
- Description
Array of contractors.
_id(id of the contractor)name(name of the contractor)type(type of the contractor)
- Name
locations- Type
- array of Object
- Description
Array of locations with _id, name, parent_id, reference and location_facturation.
- Name
equipments- Type
- array
- Description
Array of equipments with _id, name and parent_id.
- Name
jobs- Type
- array
- Description
Array of jobs with _id and name.
- Name
domain- Type
- Object
- Description
Domain of the ticket, or
nullif the ticket has no domain._id(id of the domain)label(name of the domain)parent_id(id of the parent domain,nullfor a root domain)
This object holds the most precise level set on the ticket: when the ticket has a sub-domain,
domainis the sub-domain andparent_idpoints to its domain. When the ticket only has a domain,parent_idisnull.
You only receive the domains of your own account: on a ticket of your client, a contractor receives an empty object ({}), as for a domain deleted since. Prefermain_domainandsubdomain.
- Name
main_domain- Type
- Object
- Description
Root domain of the ticket (
{ _id, label, i18n }), ornullif the ticket has no domain. Always the first level, whatever the level set on the ticket.labelis in the language of the API token's user (then of the account),i18nholds every translation keyed by language code. The full list of your domains is available on the domains resource.
- Name
subdomain- Type
- Object
- Description
Sub-domain of the ticket (
{ _id, label, i18n }), ornullwhen the ticket only has a root domain.
- Name
managers- Type
- array
- Description
Array of managers.
- Name
contacts- Type
- array
- Description
Array of contacts (users)
- Name
creator- Type
- Object
- Description
Who created the ticket. It never changes afterwards: when a ticket opened by a contractor is validated by the client,
creatorstays the contractor and the validating user is exposed invalidated_by.id(id of the Bob! Desk user,nullwhen there is none)name(full name,nullif unknown or if the user has been deleted since)email(nullif unknown)source:user(a user of the account),contractor(a contractor user, on a ticket owned by another account),public_interface(name and email typed in the public form),maintenance(generated by a maintenance plan, nobody opened it) orapi(created with an API token throughPOST /tickets)
To act on behalf of a user of the client account (for example to raise a purchase request), use
validated_bywhen it is set, otherwisecreator.
- Name
validated_by- Type
- Object
- Description
User of the account who validated the ticket (
{ id, name, email }), ornullwhen the ticket has not been validated.
- Name
maintenance- Type
- string
- Description
Name of maintenance (only if the ticket is type of maintenance).
- Name
start_date- Type
- string
- Description
Start date period of maintenance (only if the ticket is type of maintenance).
- Name
end_date- Type
- string
- Description
End date period of maintenance (only if the ticket is type of maintenance).
- Name
quotes- Type
- array of Object
- Description
Quotes of the ticket that are shared with your account (deleted quotes are excluded).
_id(id of the quote)reference(reference of the quote)price(amount of the quote)validated(whether the quote was validated)validated_at(date of the validation,nullif the quote is not validated)validated_by(user who validated the quote,{ id, name, email },nullif the quote is not validated)document_id(id of the quote's file in the ticket documents,nullwhen there is none or when your account cannot view it)s3_key(key of that file, to pass to the download link endpoint;nullin the same cases)download_url(temporary signed download link of the file; only returned byGET /tickets/:ticket_id, never in the list)
- Name
invoices- Type
- array of Object
- Description
Invoices of the ticket that are shared with your account (deleted invoices are excluded).
_id(id of the invoice)reference(reference of the invoice)price(amount of the invoice)document_id,s3_key,download_url(file of the invoice, same rules as for quotes)
- Name
invoice_group_ticket_id- Type
- string
- Description
Id of the grouped invoicing ticket this ticket belongs to, or
null.
- Name
purchases- Type
- array of Object
- Description
Purchase documents of the ticket visible to your account, sorted by date (deleted documents are excluded). As a buyer you get every document you issued; as a supplier you only get the purchase orders addressed to you. See Purchase Documents.
_id(id of the document)kind:purchase_request,purchase_orderorgoods_receiptsource:issued(your account is the buyer) orreceived(purchase order addressed to your account)reference(reference of the document)source_system(system the document comes from, for example your procurement tool, ornull)dateamount(nullif unknown)quote_id(quote of the ticket the document relates to, ornull)purchase_order_id(for a goods receipt, the purchase order it closes, ornull)buyer_company_id,supplier_company_id(nullwhile no contractor is assigned)document_id,s3_key(attached file, same rules as for quotes;nullwhen there is none or when your account cannot view it)from_api(whether the document was created through the API)created_at,updated_at
- Name
fields- Type
- array
- Description
The custom fields of tickets.
- Name
typology- Type
- array
- Description
Typology of the ticket
_id(id of the typology, curatif, maintenance, etc...)name(name of the typology)
Get ticket id from number
This endpoint allows you to retrieve a ticket id when you send an ticket number.
parameters
- Name
ticket_number- Type
- string
- Description
Only return tickets created after this date.
Request
curl -G https://api.bob-desk.com/api/v3.0/tickets/get-id-from-number \
-H "Authorization: Bearer {token}" \
-d ticket_number="1234"
Response
{
"ticket_id": "63725f259ab7e72a4fb4ae69"
}
Get a ticket
This endpoint allows you to retrieve a single ticket. The ticket is returned with the same properties as in the list, plus a temporary signed download_url on each entry of quotes[] and invoices[] that has a file visible to your account.
Route Parameters
- Name
ticket_id- Type
- ObjectID
- Description
The ticket id
Returns 404 with { "error": "Ticket not found." } when the id is not valid, when the ticket does not exist, or when your account has no access to it.
Request
curl https://api.bob-desk.com/api/v3.0/tickets/63725f259ab7e72a4fb4ae69 \
-H "Authorization: Bearer {token}"
Response
{
"ticket": {
"_id": "63725f259ab7e72a4fb4ae69",
"number": "123456789",
"status": "Ticket cloturé",
"status_key": "closed",
"status_reason": "ticket is closed",
"title": "Mon titre",
"quotes": [
{
"_id": "63725f259ab7e72a4fb4ae70",
"reference": "DEV-2026-118",
"price": "1000",
"validated": true,
"validated_at": "2026-09-14T09:12:41.000Z",
"validated_by": { "id": "5d9b5b5b9ab7e72a4fb4ae69", "name": "Jane Doe", "email": "jane@company.com" },
"document_id": "66f1c2d39ab7e72a4fb4ae71",
"s3_key": "{s3_key}",
"download_url": "https://…" // only on this endpoint, never in the list
}
]
// ... same properties as in the list
}
}
Tickets List
This endpoint allows you to retrieve a list of tickets.
Tickets are sorted by creation date, oldest first, and returned 50 per page. Pass the cursor of the response to get the next page; the last page returns "cursor": null.
optional parameters
All filters are combined with a logical AND: if you provide both
created_after and updated_after, only tickets matching both
conditions are returned.
Date filters (*_after, *_before) expect a Unix timestamp in milliseconds
(for example 1669805251942, not 1669805251). The _after bound is included,
the _before bound is excluded.
- Name
created_after- Type
- string
- Description
Only return tickets created at or after this date.
- Name
created_before- Type
- string
- Description
Only return tickets created before this date.
- Name
updated_after- Type
- string
- Description
Only return tickets updated at or after this date.
- Name
updated_before- Type
- string
- Description
Only return tickets updated before this date.
- Name
assigned_after- Type
- string
- Description
Only return tickets assigned at or after this date.
- Name
assigned_before- Type
- string
- Description
Only return tickets assigned before this date.
- Name
received_after- Type
- string
- Description
Only return tickets received by your account at or after this date.
- Name
received_before- Type
- string
- Description
Only return tickets received by your account before this date.
- Name
cursor- Type
- string
- Description
Cursor to paginate the results.
- Name
client_id- Type
- string
- Description
Id of the client (only for contractors).
- Name
interventions- Type
- string
- Description
Only accepts values
trueorfalse.
Iftruereturn only tickets typeof interventions
- Name
maintenances- Type
- string
- Description
Only accepts values
trueorfalse.
Iftruereturn only tickets typeof maintenances
- Name
status- Type
- string
- Description
Filter tickets by status. Accepts a comma-separated list of status keys (the
status_keyproperty of a ticket).
By default (whenstatusis not provided), all tickets are returned regardless of their status — including canceled, removed, etc.
Example:status=canceled,closed,declinedreturns only tickets in one of those three statuses.Available status values:
Status key Description draftDraft openedWaiting for validation declinedTicket declined waitingWaiting for assignment waiting_contractorTo schedule / assign proposedProposal sent assignedContractor assigned toplanTo schedule toreplanTo reschedule waitingplanWaiting to be scheduled visitVisit scheduled visit_devisWaiting for response — visit validationQuote pending validation validatedQuote validated droppedQuote declined interventionIntervention scheduled intervention_finishWaiting for response — intervention finishedIntervention finished cashedbyWaiting for charge assignment closedTicket closed canceledTicket canceled removedTicket removed validated,droppedandtoreplanare transient statuses: they are cleared by the next action on the ticket (scheduling, a new quote…). To catch every validated quote, combine this filter with a periodic pass onupdated_after.
- Name
typology- Type
- string
- Description
Accepts the id of the typology you want to filter, or several ids separated by commas.
Below are the typologies and the corresponding ids shared by all accounts.Typology name ID Curatif typology-curatif5ebb096fe1bde10a7ee21348 Maintenance typology-maintenance5ebb096fe1bde10a7ee21349 Levée de réserves typology-levee-reserves5f770cb039e6b8004a1cc0b7 Sinistre typology-sinistre5ebb096fe1bde10a7ee2134b Travaux typology-travaux5ebb096fe1bde10a7ee2134a
Request
curl -G https://api.bob-desk.com/api/v3.0/tickets \
-H "Authorization: Bearer {token}" \
-d updated_after="1669805251942" \
-d created_after="1667828888000" \
-d created_before="1670153026000" \
-d assigned_after="1670153026000" \
-d cursor="63725f259ab7e72a4fb4ae69" \
-d status="canceled,closed,declined" \
{/* Only for contractors */}
-d client_id="5d9b5b5b9ab7e72a4fb4ae69"
Response
{
"cursor": "63725f259ab7e72a4fb4ae69",
"tickets": [
{
"_id": "63725f259ab7e72a4fb4ae69",
"from_public_interface": true,
"intervention_scheluded_at": ["2019-12-01T00:00:00.000Z"],
"intervention_occured_at": ["2019-12-01T00:00:00.000Z"],
"created_at": "2019-12-01T00:00:00.000Z", // string => ISODate
"closed_at": "2019-12-01T00:00:00.000Z",
"updated_at": "2019-12-01T00:00:00.000Z",
"assigned_at": "2019-12-01T00:00:00.000Z",
"finished_at": "2019-12-01T00:00:00.000Z",
"url": "https://bob-desk.com/tickets/63725f259ab7e72a4fb4ae69",
"number": "123456789", // no guarantee that it is unique
"status": "Ticket cloturé", // label in French
"status_key": "closed", // enum, use this one in your code
"status_reason": "ticket is closed",
"title": "Mon titre",
"description": "Ma description",
"priority_label": "high", // enum,
"typology": {
"_id": "5ebb096fe1bde10a7ee21348",
"name": "typology-curatif"
},
"quotes": [
{
"reference": "123456789",
"_id": "63725f259ab7e72a4fb4ae69",
"validated": true,
"price": "1000",
"validated_at": "2026-09-14T09:12:41.000Z",
"validated_by": { "id": "5d9b5b5b9ab7e72a4fb4ae69", "name": "Jane Doe", "email": "jane@company.com" },
"document_id": "66f1c2d39ab7e72a4fb4ae71",
"s3_key": "{s3_key}" // pass it to GET /documents/{s3_key} to get a download link
}
],
"invoices": [
{
"reference": "123456789",
"_id": "63725f259ab7e72a4fb4ae69",
"price": "1000",
"document_id": null, // file not shared with your account
"s3_key": null
}
],
"invoice_group_ticket_id": null,
"purchases": [
{
"_id": "68e0a1b29ab7e72a4fb4af01",
"kind": "purchase_order",
"source": "issued",
"reference": "PO-2026-00042",
"source_system": "coupa",
"date": "2026-10-01T00:00:00.000Z",
"amount": 1000,
"quote_id": "63725f259ab7e72a4fb4ae69",
"purchase_order_id": null,
"buyer_company_id": "5d9b5b5b9ab7e72a4fb4ae69",
"supplier_company_id": "5d973899ecb060003525ddec",
"document_id": "68e0a1b29ab7e72a4fb4af02",
"s3_key": "{s3_key}",
"from_api": true,
"created_at": "2026-10-01T08:00:00.000Z",
"updated_at": "2026-10-01T08:00:00.000Z"
}
],
"client":{
"_id": "5d9b5b5b9ab7e72a4fb4ae69",
"name": "Bob! Desk",
},
"locations": [
{
"_id": "5d9b5b5b9ab7e72a4fb4ae69",
"name": "Paris",
"parent_id": null,
"reference": "OZ76YH",
"address": {
"postalCode": "75008",
"country": "France",
"city": "Paris",
"route": "Avenue des Champs-Élysées",
"streetNumber": "110",
"fullAddress": "110 Av. des Champs-Élysées, 75008 Paris, France",
"zone": "75",
"lat": 48.8722455,
"lng": 2.2996826
},
"location_facturation": {
"id": "5d7e3cb4101e1d004be4c378",
"name": "zShop 3",
"reference": "",
"address": {
"postalCode": "75008",
"country": "France",
"city": "Paris",
"route": "Avenue des Champs-Élysées",
"streetNumber": "110",
"fullAddress": "110 Av. des Champs-Élysées, 75008 Paris, France",
"zone": "75",
"lat": 48.8722455,
"lng": 2.2996826
},
},
}
],
"equipments": [
{
"_id": "5d9b5b5b9ab7e72a4fb4ae69",
"name": "Machine à café",
"parent_id": null,
}
],
"jobs": [
{
"_id": "5d9b5b5b9ab7e72a4fb4ae69",
"name": "Réparation",
}
],
"managers": [
{
"_id": "5d9b5b5b9ab7e72a4fb4ae69",
"firstName": "first",
"lastName": "last",
"email": "managers@managers.fr",
"phone": "+33601020304"
},
],
"contacts": [
{
"_id": "5d9b5b5b9ab7e72a4fb4ae69",
"lastName": "last",
"firstName": "first",
"email": "contacts@contacts.fr",
"phone": "+33601020304"
}
],
"creator": {
"id": "5d9b5b5b9ab7e72a4fb4ae69",
"name": "John Doe",
"email": "john@company.com",
"source": "user" // user | contractor | public_interface | maintenance | api
},
"validated_by": null, // { id, name, email } once the ticket has been validated
"domain": {
"_id": "5d9b5b5b9ab7e72a4fb4ae70",
"label": "Plomberie",
"parent_id": "5d9b5b5b9ab7e72a4fb4ae71" // the parent domain, null for a root domain
},
"main_domain": {
"_id": "5d9b5b5b9ab7e72a4fb4ae71",
"label": "Bâtiment",
"i18n": { "fr": "Bâtiment", "en": "Building" }
},
"subdomain": {
"_id": "5d9b5b5b9ab7e72a4fb4ae70",
"label": "Plomberie",
"i18n": { "fr": "Plomberie", "en": "Plumbing" }
},
"fields": [
{
"field_id": "5d9b5b5b9ab7e72a4fb4ae69",
"name": {
"fr": "Nom du champ 1",
"en": "field name 1",
},
"value": "value"
},
]
}
]
}
Create ticket
This endpoint allows you to create a ticket.
Required parameters
- Name
title- Type
- string
- Description
Title of the ticket.
If you are a contractor, you can also provide this parameter
- Name
client_id- Type
- string
- Description
Id of the client.
Optional parameters
- Name
description- Type
- string
- Description
Description of the ticket.
- Name
priority- Type
- enum
- Description
Priority of the ticket. ('none', 'low', 'medium', 'high')
- Name
location_ids- Type
- array
- Description
Array of location ids.
- Name
equipment_ids- Type
- array
- Description
Array of equipment ids.
- Name
job_ids- Type
- array
- Description
Array of job ids.
- Name
manager_ids- Type
- array
- Description
Array of manager ids.
- Name
price_threshold- Type
- number
- Description
Price threshold of the ticket.
Request
curl -X https://api.bob-desk.com/api/v3.0/tickets \
-H "Content-Type: application/json"
-H "Authorization: Bearer {token}" \
-d '{
"title": "Light broken",
"description": "I need a intervention to change my light",
"priority": "high",
"location_ids": ["5d9b5b5b9ab7e72a4fb4ae69"],
"equipment_ids": ["5d9b5b5b9ab7e72a4fb4fe69"],
"job_ids": ["5d9b5b5b9ab7e72a4fb4ae67"],
"manager_ids": ["5d9b5b5b9ab7e72a4ff4ae69"],
"price_threshold": 42
}'
Response
{
"ticket_id": "5f9b5b5b9ab7e72a4fb4ae69"
}
Cancel ticket
This endpoint allows you to cancel a ticket.
Route Parameters
- Name
ticket_id- Type
- ObjectID
- Description
The ticket id
Optional parameters
- Name
reason_cancel- Type
- string
- Description
Reason of cancel
Request
curl -X PUT https://api.bob-desk.com/api/v3.0/tickets/:ticket_id/cancel
-H "Content-Type: application/json"
-H "Authorization: Bearer {token}" \
-d '{
"reason_cancel": "The client no longer needs us to do the intervention"
}'
Finish ticket
This endpoint allows you to finish a ticket.
Route Parameters
- Name
ticket_id- Type
- ObjectID
- Description
The ticket id
Optional parameters
- Name
reserve- Type
- boolean
- Description
Only when the ticket to finish is a reserve ticket otherwise it's not necessary.
Behavior
Returns 202 when the ticket is finished. When the account that owns the ticket requires an intervention report before a ticket can be finished, the request is refused with 400 and { "error": "An intervention report is required to finish this ticket. Please upload an intervention report before finishing." } until a report has been uploaded (see Upload a report).
Request
curl -X PUT https://api.bob-desk.com/api/v3.0/tickets/:ticket_id/finish
-H "Content-Type: application/json"
-H "Authorization: Bearer {token}" \
-d '{
"reserve": false
}'
Close a ticket
This endpoint allows you to close a ticket.
Route Parameters
- Name
ticket_id- Type
- ObjectID
- Description
The ticket id
Optional parameters
- Name
reserve- Type
- boolean
- Description
Only when the ticket to close is a reserve ticket, otherwise it is not needed.
Request
curl -X PUT https://api.bob-desk.com/api/v3.0/tickets/:ticket_id/close
-H "Content-Type: application/json"
-H "Authorization: Bearer {token}" \
-d '{
"reserve": false
}'
ReOpen ticket
This endpoint allows you to reopen a ticket.
Route Parameters
- Name
ticket_id- Type
- ObjectID
- Description
The ticket id
Request
curl -X POST https://api.bob-desk.com/api/v3.0/tickets/:ticket_id/open
-H "Content-Type: application/json"
-H "Authorization: Bearer {token}"
Notes ticket
This endpoint allows you to get all notes of a ticket.
Route Parameters
- Name
ticket_id- Type
- ObjectID
- Description
The ticket id
Request
curl -G https://api.bob-desk.com/api/v3.0/tickets/:ticket_id/notes
-H "Content-Type: application/json"
-H "Authorization: Bearer {token}" \
Response
{
"public_notes": [],
"internal_notes": [],
"managers_notes": []
}
Properties of the response
- Name
public_notes- Type
- array
- Description
Messages shared by everyone involved in the ticket. A contractor only receives the messages posted while it was assigned to the ticket.
- Name
internal_notes- Type
- array
- Description
Internal notes of your account, never visible to the other parties.
- Name
managers_notes- Type
- array
- Description
Notes exchanged between the managers of your account.
Returns 404 when the ticket does not exist or when your account has no access to it.
Create a note
This endpoint allows you to post a note on a specific ticket.
Route Parameters
- Name
ticket_id- Type
- ObjectID
- Description
The ticket id
Required parameters
- Name
note- Type
- string
- Description
The content of note.
- Name
type- Type
- string
- Description
Type of the note:
internal: internal note of your account, never visible to the other partiesmanagers: note between the managers of your accountpublic: message shared with everyone involved in the ticket
Any value other than
internalormanagerscreates a shared (public) message.
A note can be posted on a ticket whatever its status, including a closed ticket. Returns 400 when note or type is missing, and 403 when your account is a contractor that is no longer assigned to the ticket.
Request
curl -X https://api.bob-desk.com/api/v3.0/tickets/:ticket_id/notes
-H "Content-Type: application/json"
-H "Authorization: Bearer {token}" \
-d '{
"note": "Tell me when you are coming",
"type": "internal"
}'
Dates list
This endpoint allows you to get all dates of a ticket.
Route Parameters
- Name
ticket_id- Type
- ObjectID
- Description
The ticket id
Request
curl -G https://api.bob-desk.com/api/v3.0/tickets/:ticket_id/dates
-H "Content-Type: application/json"
-H "Authorization: Bearer {token}" \
Response
{
"visit_dates": [],
"intervention_dates": [],
}
Properties of the response
- Name
visit_dates- Type
- array
- Description
An array of visit dates.
- Name
intervention_dates- Type
- array
- Description
An array of intervention dates.
Append a date
This endpoint allows you to post a date by type on a specific ticket.
Route Parameters
- Name
ticket_id- Type
- ObjectID
- Description
The ticket id
Required parameters
- Name
start- Type
- ISODate || Timestamps
- Description
The start of visit date.
- Name
end- Type
- ISODate || Timestamps
- Description
Tne end of visit date.
- Name
type- Type
- string
- Description
The type of date
( Only values allowed:planned,actual)
Request
curl -X https://api.bob-desk.com/api/v3.0/tickets/:ticket_id/dates
-H "Content-Type: application/json"
-H "Authorization: Bearer {token}" \
-d '{
"start": "2023-03-17T10:00:00.915Z",
"end": "2023-03-17T14:00:00.915Z",
"type": "planned"
}'
