Create an expiry
post
https://api.expiryedge.com/v1/createExpiryeditor or admin60/minIdempotency-KeyAny method
Request
curl -X POST 'https://api.expiryedge.com/v1/createExpiry' \
-H "Authorization: Bearer $EXPIRYEDGE_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{
"name": "Contoso Legal - Professional Liability Insurance",
"type": "Insurance",
"expiry_date": "2026-10-15",
"start_date": "2025-10-15",
"priority": "High",
"state": "todo",
"notes": "Broker renewal packet due 30 days before expiry.",
"team_id": "0",
"contacts": [
"c_8Hk2pQ"
],
"assigned_to": "u_71bXq",
"is_recurring": true,
"recurrence_type": "year",
"recurrence_interval": 1,
"recurrence_mode": "renew_as_copy"
}'Response
{
"message": "Expiry created successfully",
"id": "exp_4Tq9sLm2"
}Counts against the plan's expiry limit (403 with current / limit / remaining when reached). A share token is
generated for every record; is_public defaults to false and escalation_enabled to false.
Idempotency-KeystringOptional client-generated key (1-255 characters of letters, digits,- _ : .).pattern: ^[A-Za-z0-9_\-:.]{1,255}$
namestringDisplay name.typestringExpiry type name (see getExpiryTypesWithStats).expiry_datestringCalendar dateYYYY-MM-DDin the organization's timezone.expiry_timezonestringIANA timezone forexpiry_datewhen it carries a time.start_datestring | nullstart_timezonestringprioritystringAllowedLowMediumHighstatestringWorkflow state; defaults totodo.Allowedtodoinprogressonholdinreviewcompletednotesstringurlstringdocument_typestringtagsarray of stringteam_idstringTeam id, or'0'for no team.folder_idstring | nullassigned_tostring | nullUser id of the assignee (must be in your organization).assigned_bystringcontactsarray of stringContact ids that receive reminders.directory_entry_idsarray of stringis_publicbooleanEnables the public share link (viewExpiry).share_passwordstringOptional password for the share link. Never returned.valuenumber | nullpenalty_amountnumber | nullcurrencystring | nullISO 4217 code, uppercase.custom_columnsobjectchecklist_itemsarray of objectstemplate_idstring | nulltemplate_namestring | nulltemplate_fieldsarray of objects | nulltemplate_dataobject | nullfileUrlsarray of stringfileNamesarray of stringis_recurringbooleanrecurrence_typestring | nullAlloweddayweekmonthyearrecurrence_intervalinteger | nullrecurrence_countinteger | nullrecurrence_end_datestring | nullrecurrence_modestringDefaults torenew_as_copy.Allowedrenew_as_copyrenew_sameauto_renewbooleanauto_renew_vendorstring | nullescalation_enabledbooleanAlways false on create unless explicitly true.escalation_contactsarray of stringescalation_notification_daysarray of integerDays before expiry at which escalation fires (0-365).
201
Created.
messagestringrequiredidstringrequiredThe new expiry's id.
400 | Invalid input, a referenced record outside your organization ( code: VALIDATION_FAILED, details lists the fields), or an invalid recurring configuration (details is an array of messages). |
401 | Missing, expired or invalid bearer token. |
403 | Role is viewer, or the plan's expiry limit is reached. |
409 | A request with the same Idempotency-Key is still being processed. Retry after Retry-After seconds. |
422 | The Idempotency-Key was already used with a different request body. |
429 | Too many requests for this endpoint from your IP. Wait Retry-After seconds. |
