Download OpenAPI specification:Download
The Odie Insurance Service provides an API for Odie's partners to build white-labelled pet insurance experiences.
File Uploads: The maximum file size for file uploads is 5MB.
Webhooks: A full list of available webhooks can be found at: https://getodie.com/odie-webhooks
Generating a quote for a single pet
Quote parameters
quoteNumber | string Default: "" Fill this to update an existing quote. |
effectiveDate | string <date> The effective date of the future policy. Defaults to tomorrow. Format: YYYY-MM-DD |
petName | string Valid values: a-Z, 0-9, spaces and ,.#$&()?=+-! . Must be filled before checking out |
species required | string Default: "DOG" 'DOG' or 'CAT' |
gender | string Default: "MALE" 'MALE' or 'FEMALE'. Must be filled before checking out |
breedPK required | string Default: "" Breed primary key. Required for INJURY_AND_ILLNESS quotes. Must always be filled before checking out. Breed keys can be found using the Breed endpoint "/api-docs#tag/Breed" |
ageKW required | string Default: "" Age keyword list is located here. Required for INJURY_AND_ILLNESS quotes. Must always be filled before checking out. |
string Default: "Email will be ignored if userId is set. Either email or userId is required to process a quote." | |
userId | string The unique identifier of this user in the Odie system. Either userId or email is required to process a quote. |
zipCode required | string Default: "" 5-digit state zip code of pet location. |
specialDisease | boolean Default: "" Does thw pet have a pre-existing condition? |
standardAnnualLimit | integer <int32> Default: "" Annual Limit. Possible values: 5000, 10000, 25000, 40000. Required for INJURY_AND_ILLNESS quotes. INJURY_ONLY quotes automatically have a 10000 standard annual limit. |
coinsurancePercent | integer <int32> Default: "" Possible values: 70, 80, 90. Required for INJURY_AND_ILLNESS quotes. INJURY_ONLY quotes automatically have a 90 coinsurance. |
deductibleAmount | integer <int32> Default: "" Possible values: 50, 100, 150 in “Fifties” up to 1,000. Required for INJURY_AND_ILLNESS quotes. INJURY_ONLY quotes automatically have a 250 deductible. |
office_visits | boolean Default: "false" |
home_prescription | boolean Default: "false" |
rehab | boolean Default: "false" |
routine_care | boolean Default: "false" |
routine_care_plus | boolean Default: "false" |
memberFirstName | string Default: "" Note this will only be set when requesting the first quote for a new user, existing users are not updated.Valid values: a-Z, 0-9, spaces and ,.#$&()?=+-!. Must always be filled before checking out. |
memberLastName | string Default: "" Note this will only be set when requesting the first quote for a new user, existing users are not updated. Valid values: a-Z, 0-9, spaces and ,.#$&()?=+-!. Must always be filled before checking out. |
webhook | string <uri> URL of a webhook to call back whenever the policy changes. Use this to notify your users of changes to their policy. |
paymentPeriod | string Default: "Monthly" The period used to pay, either Monthly or Annual |
address_line1 | string Note this will only be set when requesting the first quote for a new user, existing users are not updated. Valid values: a-Z, 0-9, spaces and ,.#$&()?=+-!. Must always be filled before checking out. |
address_line2 | string Note this will only be set when requesting the first quote for a new user, existing users are not updated. Valid values: a-Z, 0-9, spaces and ,.#$&()?=+-! |
city | string Note this will only be set when requesting the first quote for a new user, existing users are not updated. Valid values: a-Z, 0-9, spaces and ,.#$&()?=+-!. Must always be filled before checking out. |
shippingZipCode | string 5-digits zip code for shipping address |
shippingAddressLine1 | string Note this will only be set when requesting the first quote for a new user, existing users are not updated. Valid values: a-Z, 0-9, spaces and ,.#$&()?=+-!. Must always be filled before checking out. |
shippingAddressLine2 | string Note this will only be set when requesting the first quote for a new user, existing users are not updated. Valid values: a-Z, 0-9, spaces and ,.#$&()?=+-!. Must always be filled before checking out. |
shippingCity | string Note this will only be set when requesting the first quote for a new user, existing users are not updated. Valid values: a-Z, 0-9, spaces and ,.#$&()?=+-!. Must always be filled before checking out. |
phone | string Note this will only be set when requesting the first quote for a new user, existing users are not updated. Valid characters: 0-9, spaces and ()+-, should contain exactly 10 digits. Must always be filled before checking out. |
planPreference | string Default: "INJURY_AND_ILLNESS" Enum: "INJURY_ONLY" "INJURY_AND_ILLNESS" Choose between two plans. Note - this may not be respected if the pet has a pre-existing illness, in which case the default wlil be INJURY_ONLY plan. |
{- "quoteNumber": "",
- "effectiveDate": "2019-08-24",
- "petName": "string",
- "species": "DOG",
- "gender": "MALE",
- "breedPK": "",
- "ageKW": "",
- "email": "Email will be ignored if userId is set. Either email or userId is required to process a quote.",
- "userId": "string",
- "zipCode": "",
- "specialDisease": "",
- "standardAnnualLimit": "",
- "coinsurancePercent": "",
- "deductibleAmount": "",
- "office_visits": "false",
- "home_prescription": "false",
- "rehab": "false",
- "routine_care": "false",
- "routine_care_plus": "false",
- "memberFirstName": "",
- "memberLastName": "",
- "paymentPeriod": "Monthly",
- "address_line1": "string",
- "address_line2": "string",
- "city": "string",
- "shippingZipCode": "string",
- "shippingAddressLine1": "string",
- "shippingAddressLine2": "string",
- "shippingCity": "string",
- "phone": "string",
- "planPreference": "INJURY_ONLY"
}
{- "quote": {
- "id": "string",
- "effectiveDate": "2019-08-24",
- "accidentEffectiveDate": "2019-08-24",
- "illnessEffectiveDate": "2019-08-24",
- "cruciateEffectiveDate": "2019-08-24",
- "applicationDate": "string",
- "quoteNumber": "string",
- "quoteVersion": "string",
- "species": "string",
- "breedPK": "string",
- "breedDescription": "string",
- "ageKW": "string",
- "petName": "string",
- "gender": "string",
- "user": {
- "id": "string",
- "firstName": "string",
- "lastName": "string",
- "contact": {
- "email": "string",
- "phone": "string",
- "address1": "string",
- "address2": "string",
- "city": "string",
- "zipCode": "string",
- "shippingLine1": "string",
- "shippingLine2": "string",
- "shippingCity": "string",
- "shippingState": "string",
- "shippingZipCode": "string"
}
}, - "plan": "Unexpected Illness and Injuries",
- "deductibleAmount": 0.1,
- "coinsurancePercent": 0.1,
- "standardAnnualLimit": 0.1,
- "discountCode": "string",
- "discountPercent": 0,
- "hasMultiPetDiscount": true,
- "multiPetDiscountPercent": 0.1,
- "office_visits": true,
- "home_prescription": true,
- "rehab": true,
- "routine_care": true,
- "routine_care_plus": true,
- "priceBreakdown": {
- "monthly": {
- "regularPremium": 0,
- "installmentFee": 0,
- "routineCare": 0,
- "accidentOnlyPremium": 0,
- "totalDiscountPercentage": 2.3471,
- "totalDiscountAmount": 2.3471,
- "discounts": [
- {
- "description": "string",
- "amount": 0.05
}
], - "total": 0
}, - "annual": {
- "regularPremium": 0,
- "installmentFee": 0,
- "routineCare": 0,
- "accidentOnlyPremium": 0,
- "totalDiscountPercentage": 2.3471,
- "totalDiscountAmount": 2.3471,
- "discounts": [
- {
- "description": "string",
- "amount": 0.05
}
], - "total": 0
}
}, - "paymentMethod": "string",
- "paymentPeriod": "string",
- "monthlyPremium": 0.1,
- "annualPremium": 0.1,
- "discountedMonthlyPremium": 0.1,
- "discountedAnnualPremium": 0.1,
- "kyPremTax": 0.1,
- "kyLocalTax": 0.1,
- "statePremTax": 0.1,
- "stateLocalTax": 0.1
}
}
{- "changeId": "ABCDEFGH",
- "changeTypes": [
- "User_Name_Change",
- "User_Address_Change",
- "Billing_Charge"
], - "entity": "Policy",
- "changeTimestamp": "2021-05-30T15:35:12Z",
- "charge": {
- "chargeId": "ch_1J0ZB2DhWLhOvPtTadcxPafG",
- "policyNumber": "TR01-0000001-00",
- "dateCharged": "2021-05-30T15:35:12Z",
- "amountCharged": 109.45,
- "nextBillingDate": "2021-06-30T00:00:00Z",
- "subscriptionStatus": "past_due",
- "paymentStatus": "failed"
}, - "policy": {
- "policyNumber": "TR01-0000001-00",
- "status": "INFORCE",
- "changeEffectiveDate": "2021-06-01T00:01:00Z",
- "billingChangedEffectiveDate": "2021-05-31T00:01:00Z",
- "cancellationEffectiveDate": "2021-06-01T00:00:59Z",
- "amountRefunded": 57.89,
- "amountDue": 34.56,
- "cancellationReason": "No_Longer_Needed",
- "statePremTax": 1.65,
- "stateLocalTax": 3.05,
- "priceBreakdown": {
- "monthly": {
- "regularPremium": 45.1334,
- "installmentFee": 2,
- "routineCare": 9,
- "accidentOnlyPremium": 0,
- "totalDiscountAmount": 0,
- "discounts": [ ],
- "total": 56.1334
}, - "annual": {
- "regularPremium": 673.6008,
- "installmentFee": 2,
- "routineCare": 9,
- "accidentOnlyPremium": 0,
- "totalDiscountAmount": 0,
- "discounts": [ ],
- "total": 673.6008
}
}, - "routineCare": {
- "plan": "BASIC",
- "annualAmount": 108,
- "monthlyAmount": 9
}, - "user": {
- "firstName": "Fred",
- "lastName": "Bloggs",
- "contact": {
- "line1": "123 A Street",
- "line2": "Floor 3",
- "city": "New York",
- "state": "NY",
- "zipCode": "10013"
}
}, - "documents": [
- {
- "id": "ZXVMDFSR",
- "title": "Document Title",
- "documentType": "Policy_Document"
}
]
}
}
Create a cart and attach a single quote or an array
paymentMethod | string Default: "CREDITCARD" Enum: "CREDITCARD" "AGENCYBILL" "PAYROLL" |
promoCode | string A coupon code. Alphanumeric string. |
userId | string The unique identifier of this user in the Odie system. |
email required | string <email> The user's email. Only required if userId is blank. |
quoteNumbers | Array of strings An array of the quote numbers that will be purchased. |
{- "paymentMethod": "CREDITCARD",
- "promoCode": "string",
- "userId": "string",
- "email": "user@example.com",
- "quoteNumbers": [
- "string"
]
}
Update an existing cart
cartId required | string The cart id |
Any omitted fields will be left as they were. At least one field must be included.
paymentMethod | string Default: "CREDITCARD" Enum: "CREDITCARD" "AGENCYBILL" "PAYROLL" |
promoCode | string A coupon code. Alphanumeric string. |
userId | string The unique identifier of this user in the Odie system. |
string <email> The user's email. Only required if userId is blank. | |
quoteNumbers | Array of strings An array of the quote numbers that will be purchased. |
{- "paymentMethod": "CREDITCARD",
- "promoCode": "string",
- "userId": "string",
- "email": "user@example.com",
- "quoteNumbers": [
- "string"
]
}
Converts the quotes in the cart to policies. All the parameters (payment method, promo codes, etc) are set in the cart. This endpoint simply allows you to finalize the purchase of the cart and convert quotes to policies. Upon purchase, the policy declaration document is generated async, in which you can use the webhook property in the POST /quote endpoint to be notified once the document is ready.
PURCHASING - For Payroll, submit with an empty body. For Credit Card, the body must contain the stripeToken.
cartId required | string The cart id |
Only required if paymentMethod is 'CREDITCARD'. Use the following Stripe documentation to set up the payment form and capture the token. Ask your Odie contact for the publishable keys note that if you are using a sandbox X-API-KEY then Stripe tokens must be generated with the test publishable key for Stripe and vice-versa for live X-API-KEYs. https://stripe.com/docs/payments/accept-a-payment-charges
{- "stripeToken": "tok_1IdLJvDhWLhOvPtTZ6CKVKFf"
}
{- "id": "string",
- "species": "string",
- "petName": "string",
- "gender": "string",
- "discountCode": "string",
- "discountPercent": 0,
- "policyNumber": "string",
- "pet": {
- "id": "string",
- "species": "DOG",
- "breedCode": "string",
- "breedDescription": "string",
- "petAge": "string",
- "petName": "string",
- "gender": "MALE",
- "birthDate": "2019-08-24",
- "color": "string",
- "weight": "string",
- "spayedNeutered": true,
- "lastWellnessExam": "2019-08-24",
- "rabiesTag": "string",
- "rabiesDue": "2019-08-24",
- "dhppDue": "2019-08-24",
- "bordetellaDue": "2019-08-24",
- "documents": [
]
}, - "user": {
- "id": "string",
- "firstName": "string",
- "lastName": "string",
- "contact": {
- "address1": "string",
- "address2": "string",
- "city": "string",
- "zipCode": "string",
- "email": "user@example.com",
- "phone": "string"
}
}, - "hasMultiPetDiscount": true,
- "multiPetDiscountPercent": 0.1,
- "discountedAnnualPremium": 0,
- "discountedMonthlyPremium": 0,
- "annualPremium": 0,
- "monthlyPremium": 0,
- "proratedAnnualPremium": 0,
- "office_visits": true,
- "home_prescription": true,
- "rehab": true,
- "routine_care": {
- "plan": "NONE",
- "annualAmount": 0,
- "monthlyAmount": 0
}, - "deductibleAmount": 0,
- "coinsurancePercent": 0,
- "standardAnnualLimit": 0,
- "priceBreakdown": {
- "monthly": {
- "regularPremium": 0,
- "installmentFee": 0,
- "routineCare": 0,
- "accidentOnlyPremium": 0,
- "totalDiscountPercentage": 2.3471,
- "totalDiscountAmount": 2.3471,
- "discounts": [
- {
- "description": "string",
- "amount": 0.05
}
], - "total": 0
}, - "annual": {
- "regularPremium": 0,
- "installmentFee": 0,
- "routineCare": 0,
- "accidentOnlyPremium": 0,
- "totalDiscountPercentage": 2.3471,
- "totalDiscountAmount": 2.3471,
- "discounts": [
- {
- "description": "string",
- "amount": 0.05
}
], - "total": 0
}
}, - "webhook": "string",
- "localTimezone": "string",
- "policyStartDate": "string",
- "renewalChangesDeadline": "string",
- "nextBillingDate": "string",
- "accidentEffectiveDate": "string",
- "illnessEffectiveDate": "string",
- "cruciateEffectiveDate": "string",
- "policyExpirationDate": "string",
- "paymentMethod": "CREDITCARD",
- "documents": [
], - "plan": "Unexpected Illness and Injuries",
- "ageKW": "string",
- "active": "true",
- "applicationDate": "string",
- "breedDescription": "string",
- "breedPK": "string",
- "paymentPeriod": "string",
- "quoteNumber": "string",
- "kyPremTax": 0.1,
- "kyLocalTax": 0.1,
- "statePremTax": 0.1,
- "stateLocalTax": 0.1
}
Add Routine Care or Routine Care Plus to an already existing policy. Effective date will be immediate if Payment Method is Credit Card, otherwise it will be the next billing date.
policyNumber required | string Policy Number |
routineCarePlan required | string Enum: "BASIC" "PLUS" |
{- "routineCarePlan": "BASIC"
}
Request that the policy is cancelled. This DOES NOT immediately cancel the policy. Odie approval is required prior to cancellation. A callback will be sent to you using the policy's webhook when the cancellation status is changed or updated.
policyNumber required | string Policy Number |
cancellationReason required | string Enum: "Pet_Passed" "Too_Expensive" "Switching_Providers" "No_Longer_Needed" "Non_Payment" "Other" |
cancellationNote | string Free text for the user to share more information on why they are cancelling. |
{- "cancellationReason": "Pet_Passed",
- "cancellationNote": "string"
}
Upload a document file to a specific policy number
policyNumber required | string The policy to which you want to add a document |
document required | string <binary> The file to upload. Document upload only supports .jpg, .jpeg, .png, and .pdf filetypes. File requirements are case sensitive. |
documentType required | string Value: "Medical_History" The Document type of the uploaded file |
Update policy webhook url
policyNumber required | string The policy number for which you want to update webhook |
webhook | string <uri> URL of a webhook to call back whenever the policy changes. Use this to notify your users of changes to their policy. |
{
}
Create a new claim for the given policy.
policyNumber required | string The active policy number based upon the date of service. |
The claim
webhook | string <uri> URL of a webhook to call back whenever the claim status changes. Use this to notify your users of changes to their claim as it goes through the approval process. |
dateOfService required | string <date> The date on which the pet received service |
category required | string Enum: "CLAIMTYPEACCIDENT" "CLAIMTYPEILLNESS" "CLAIMTYPEONGOING" "CLAIMTYPEROUTINE" "CLAIMTYPECLE" The type of claim, eg for an accident, illness, routine care, cruciate ligament event, or ongoing treatment for a previously submitted claim |
amountClaimed required | number decimal places <= 2 >= 0 The total USD amount being claimed |
description required | string Valid values: a-Z, 0-9, spaces and ,.#$&()?=+-! |
object | |
pecAcknowledgment | boolean True if the claim is NOT related to any pre-existing condition that was present during any waiting period or prior to purchasing the policy. |
certifiedInfoAck | string <date-time> Date user certifies following statement: I certify the information provided is accurate to the best of my knowledge. I authorize any veterinary hospital or veterinarian to provide additional information about my pet to Odie or its third-party administrators. I understand that missing information or delays in delivering my pet’s medical records may delay the processing of my claim. |
crimeAck | string <date-time> Date user certifies following statement: I understand it is a crime to knowingly provide false, incomplete or misleading information to an insurance company for the purpose of defrauding the company. |
{- "dateOfService": "2019-08-24",
- "category": "CLAIMTYPEACCIDENT",
- "amountClaimed": 0,
- "description": "string",
- "veterinaryPractice": {
- "practiceName": "string",
- "contact": {
- "line1": "string",
- "line2": "string",
- "city": "string",
- "state": "string",
- "zipCode": "string",
- "country": "USA",
- "email": "user@example.com",
- "phone": "string"
}
}, - "pecAcknowledgment": true,
- "certifiedInfoAck": "2019-08-24T14:15:22Z",
- "crimeAck": "2019-08-24T14:15:22Z"
}
{- "changeId": "XGHYCJSU",
- "changeType": "Claim_Updated",
- "entity": "CLAIM",
- "changeTimestamp": "2019-08-24T14:15:22Z",
- "claim": {
- "status": "string",
- "claimNumber": "XGHYCJSU",
- "amountPaid": 0,
- "processedDate": "2019-08-24",
- "documents": [
], - "documentNeeded": "string",
- "moreInfo": "string"
}
}
Document upload is only available when claim status is "CLAIMNEEDSUSERACTION"
.
Use form-data to set Key values "documentType" and "document". The document must be provided as a binary file object and not a URL, only one document at a time is supported.
Document upload only supports .jpg, .jpeg, png, and .pdf filetypes. File requirements are case sensitive.
Webhook Payload: /need-user-action-callback
Endpoint Guide:
claimNumber required | string The claim to which you want to add a document |
document required | object <binary> The file to upload. The file to upload. Document upload only supports .jpg, .jpeg, .png, and .pdf filetypes. File requirements are case sensitive. |
documentType required | string Enum: "Medical_Report" "Veterinary_Invoice" "Other_Document" The Document type of the uploaded file |
Notify our Claims Department that all documents have been uploaded for a specific claim. This will change the claim status from "Needs User Action" to "Awaiting Review".
claimNumber required | string The claim to which you want to send to review |
You can submit payment method when claim status is CLAIMCLOSEDPAYMENTPENDING. Returns payment info
claimNumber required | string The claim to which you want to send to review |
type required | string Value: "bank" Payment method |
accountType required | string Enum: "checking" "savings" |
accountNumber required | string |
routingNumber required | string |
{- "type": "address",
- "addressLine1": "string",
- "addressLine2": "string",
- "country": "US",
- "postalCode": "string",
- "state": "string",
- "printBusinessName": "string",
- "printName": "string"
}
Update claim webhook url
claimNumber required | string The claim for which to update the webhook url |
webhook | string <uri> URL of a webhook to call back whenever the claim status changes. Use this to notify your users of changes to their claim as it goes through the approval process. |
{
}
Update the details of a pet. Updates to the following fields will require review and approval from the Odie team if the user has any active policies:
If the request requires approval you will receive a statusCode of "PENDING, however fields not requiring approval will be updated immediately. Use the policy webhook to receive a callback once the change is approved. Updates which only contain fields not requiring approval, or for users with no active policies, will be made immediately (statusCode "UPDATED").
petId required | string The unique identifier of this pet in the Odie system. |
breed | string Breed primary key. Required for INJURY_AND_ILLNESS quotes. Must always be filled before checking out. Breed keys can be found using the Breed endpoint "/api-docs#tag/Breed" |
age | string Age keyword list is located here. Required for INJURY_AND_ILLNESS quotes. Must always be filled before checking out. |
name | string The pet's name. |
gender | string Enum: "MALE" "FEMALE" |
changeReason | string Description of a reason why user decided to make changes |
{- "breed": "string",
- "age": "string",
- "name": "string",
- "gender": "MALE",
- "changeReason": "string"
}
Upload a file to the pet
petId required | string The pet to which you want to add a document |
document required | string <binary> The file to upload. The file to upload. Document upload only supports .jpg, .jpeg, .png, and .pdf filetypes. File requirements are case sensitive. |
documentType required | string Value: "Medical_History" The Document type of the uploaded file |
Update the details of a user. A user is defined as anyone in the system, eg anyone who has requested a quote or has an active policy. Updates to the following fields will require review and approval from the Odie team if the user has any active policies:
If the request requires approval you will receive a statusCode of "PENDING, however fields not requiring approval (eg contact.email and contact.phone) will be updated immediately. Use the policy webhook to receive a callback once the change is approved. Updates which only contain fields not requiring approval, or for users with no active policies, will be made immediately (statusCode "UPDATED").
userId required | string The unique identifier of this user in the Odie system. |
Any omitted fields will be left as they were. At least one field must be included.
firstName | string Valid values: a-Z, 0-9, spaces and ,.#$&()?=+-! |
lastName | string Valid values: a-Z, 0-9, spaces and ,.#$&()?=+-! |
stripeToken | string Use this to update or add a credit card. If the user has any policies in a payment method transition of "PAYROLL to CREDITCARD" then we will generate subscriptions for these policies too. Use the following Stripe documentation to set up the payment form and capture the token. Ask your Odie contact for the publishable keys, note that if you are using a sandbox X-API-KEY then Stripe tokens must be generated with the test publishable key for Stripe and vice-versa for live X-API-KEYs. https://stripe.com/docs/payments/accept-a-payment-charges |
object Details of the user's linked bank account, which is used to pay out claims. Omitted if they do not have an account linked. | |
object (Contact) |
{- "firstName": "string",
- "lastName": "string",
- "stripeToken": "tok_1InQlDDhWLhOvPtT3xRb9U2y",
- "bankAccount": {
- "holderName": "string",
- "holderType": "individual",
- "bankName": "string",
- "last4": "string",
- "routingNumber": "string"
}, - "contact": {
- "line1": "string",
- "line2": "string",
- "city": "string",
- "state": "string",
- "zipCode": "string",
- "country": "USA",
- "shippingLine1": "string",
- "shippingLine2": "string",
- "shippingCity": "string",
- "shippingZipCode": "string",
- "shippingState": "string",
- "email": "user@example.com",
- "phone": "string"
}
}
Currently only PAYROLL to CREDITCARD is supported. The flow is as a follows:
If the user does enter their credit card, you should use the PATCH /user/:userId endpoint to set the stripeToken. Once this is done the above steps are stopped and their policies become regular CREDITCARD payment policies. *This method works only for policies with monthly payment period
userId required | string The unique identifier of this user in the Odie system. |
paymentMethod required | string Value: "CREDITCARD" The new payment method. CREDITCARD is the only supported value. |
policyPaidThroughDate required | string <date> The date on which the payment method change is effective. Must the the last day of a billing period. |
{- "paymentMethod": "CREDITCARD",
- "policyPaidThroughDate": "2019-08-24"
}
Use this top upload documents which can be linked to other entities
fileName required | string The name of the file that will be uploaded. Filetypes are case-sensitive and must be a .plain, .pdf, .png, .jpg, .jpeg or .heic method: "PUT" |
Resend latest webhook events for entities
policyNumber required | string The number of the policy |
{- "startDate": "2019-08-24",
- "endDate": "2019-08-24"
}