API-Referenz
v1.0.0 · 429 Endpunkte
Alle Endpunkte mit Parametern, Request-Body und Antwort.
Authorization: Bearer ee_live_...Senden Sie Ihren API-Schlüssel als Bearer-Token.
curl 'https://api.expiryedge.com/v1/getPaginatedExpiries?page=1&limit=10&sortBy=expiry_date' \
-H "Authorization: Bearer $EXPIRYEDGE_API_KEY"{
"data": [
{
"id": "exp_4Tq9sLm2",
"name": "Northwind Dental - State Dental License",
"type": "License",
"expiry_date": "2026-10-15",
"priority": "High",
"state": "todo",
"is_done": false,
"is_archive": false,
"has_share_password": false,
"assigned_to": "u_71bXq",
"assigned_to_user_full_name": "Priya Shah",
"assigned_to_user_email": "priya@northwinddental.com",
"assigned_by_user_full_name": null,
"assigned_by_user_email": null
}
],
"expiries": [
{
"id": "exp_4Tq9sLm2",
"name": "Northwind Dental - State Dental License",
"type": "License",
"expiry_date": "2026-10-15"
}
],
"pagination": {
"total": 27,
"totalPages": 2,
"currentPage": 1,
"page": 1,
"limit": 25,
"optimized": true
}
}- get/checkEmailVerificationCheck whether the caller's email is verified
- post/completeInvitationAccept a team invitation and create the account
- post/createApiKeyCreate an organization API key
- get/getApiKeysList the organization's API keys
- post/loginLog in and get a 30-day session JWT
- post/registerRegister a new user and organization
- post/resendVerificationEmailResend the email verification link
- post/revokeAllSessionsSign out all sessions
- post/revokeApiKeyRevoke an API key
- post/sendPasswordResetEmailEmail a password reset link
- post/sendSampleReminderEmailSend a sample reminder email (landing page widget)
- post/sendWelcomeEmailSend the welcome email after signup
- post/submitSignupRequestRequest a done-for-you account setup
- post/updatePasswordSet a new password and sign out everywhere
- post/verifyCodeAndUpdatePasswordReset a password with an emailed code
- post/verifyEmailApply an email verification code
- post/addTeamMemberAdd a user to a team
- post/check-emailsCheck which emails already have accounts
- post/createTeamCreate a team
- post/deleteAvailabilityDelete a leave record
- post/deleteBackupRuleDelete a backup rule
- post/deleteTeamDelete a team
- get/exportMyDataExport my personal data (GDPR)
- get/getAccountDetailsGet account and plan details
- get/getBackupRulesList backup rules
- get/getMeGet the caller's profile
- get/getMyAvailabilityList my leave
- get/getReassignmentLogsList expiry reassignments
- get/getTeamAvailabilityList team leave
- get/getTeamMembersList a team's members
- get/getTeamsList teams
- get/getUsersList users in the caller's organization
- DEL/invitations/cancel/{invitationId}Cancel a pending invitation
- get/invitations/pendingList pending invitations
- post/inviteInvite users to the organization
- post/removeTeamMemberRemove a user from a team
- post/renameTeamRename a team
- post/requestAccountDeletionRequest deletion of my account (GDPR)
- post/resendInvitationResend an invitation email
- post/setAvailabilityAdd or update my leave
- post/setBackupRuleCreate or update a user's backup rule
- post/triggerAvailabilityScannerRun the leave reassignment scan now
- post/updateUserUpdate the caller's profile
- post/updateUserRoleChange a member's role
- post/user/deleteDelete a user from the organization
- get/user/dependencies/{userId}Get what a user owns before deleting them
- post/user/statusActivate or deactivate a user
- post/verify_invitation_tokenVerify an invitation token
- post/archiveExpiryArchive an expiry
- post/createExpiryCreate an expiry
- DEL/deleteExpiryDelete an expiry
- get/generateShareUrlEnable and get the public share link
- post/getAllExpiriesList all expiries
- get/getExpiryGet one expiry
- post/getExpiryMetricsGet dashboard metric counts
- get/getForecastDataGet renewal forecast, workload and risk analytics
- post/getPaginatedExpiriesList expiries with filters and pagination
- get/getTeamProductivityGet on-time completion metrics per assignee
- post/markExpiryDoneMark an expiry done
- post/unarchiveExpiryUnarchive an expiry
- post/updateExpiryUpdate an expiry
- post/updateExpiryStateChange an expiry's workflow state
- post/viewExpiryView a shared expiry
- post/addExpiryTypeNewAdd an expiry type
- post/deleteExpiryTypeDelete an expiry type
- post/getExpiryTypesCount expiries per type for a metric card
- post/getExpiryTypesWithStatsList expiry types with usage counts
- post/updateExpiryTypeRename an expiry type or set its email template
- post/addExpiryTypeAdd an expiry type (legacy store)
- post/getAllExpiryTypesList distinct expiry type names (legacy)
Reminders & Notifications
Per-expiry reminder sequences, upcoming notifications, in-app notifications and test sends.
- post/createExpiryRemindersAdd reminders to an expiry
- post/deleteExpiryRemindersDelete all reminders of an expiry
- post/deleteNotificationDelete one notification
- get/getEmailSendDetailGet one sent email with its events
- get/getExpiryActivityGet the email activity timeline of an expiry
- get/getExpiryRemindersList an expiry's reminders
- post/getExpiryReminderStatusGet pending-reminder status for expiries
- get/getOrgEmailActivityList emails sent across your organization
- post/getUpcomingNotificationsList reminders due in the next 30 days (organization rules)
- post/getUpcomingNotificationsV2Upcoming reminder sends in the next 30 days
- post/markAllNotificationsReadMark all your notifications as read
- post/markCommentDeletedFlag notifications of a deleted comment
- post/markNotificationReadMark one notification as read
- get/notificationsList your in-app notifications
- post/registerDeviceTokenRegister a mobile device for push notifications
- post/sendExpiryNotificationNowSend an expiry reminder email now
- post/sendTestEmailSend a test reminder email
- post/sendTestSMSSend a test reminder SMS
- post/sendTestWhatsAppSend a test WhatsApp reminder
- post/syncOrganizationTimezoneReschedule pending reminders to a new timezone
- post/unregisterDeviceTokenUnregister a mobile device from push notifications
- post/updateExpiryRemindersReplace an expiry's reminder schedule
- post/bulkArchiveExpiriesArchive many expiries
- post/bulkChangeExpiryTypeChange the type of many expiries
- post/bulkDeleteExpiriesDelete many expiries
- post/bulkImportExpiriesImport expiries from spreadsheet rows
- post/bulkMarkExpiriesDoneMark many expiries done
- post/bulkMoveExpiriesToTeamMove many expiries to a team
- post/bulkReassignExpiriesReassign many expiries to another member
- post/bulkUpdateEscalationSettingsEnable or disable escalation on many expiries
- post/bulkUpdateNotificationSettingsReplace contacts and/or reminder schedules on many expiries
- post/bulkDeleteContactsDelete many contacts
- post/bulkImportContactsImport contacts from a spreadsheet
- post/bulkUpdateContactsApply the same changes to many contacts
- post/bulkUpdateDefaultContactsSet default-contact and opt-in flags on many contacts
- post/createContactCreate a contact
- post/createContactGroupCreate a contact group
- post/deleteContactDelete a contact
- post/deleteContactGroupDelete a contact group
- get/getAllContactGroupsList contact groups
- get/getAllContactsList contacts
- get/getContactGet a contact
- post/getContactExpiryCountsCount expiries linked to contacts
- post/updateContactUpdate a contact
- post/updateContactGroupUpdate or rename a contact group
- post/archiveTemplateArchive a custom template
- get/getIndustryTemplateGet an industry template
- get/getIndustryTemplatesList industry templates
- get/templateGet a custom template
- get/templatesList custom templates
- post/unarchiveTemplateUnarchive a custom template
- post/validateTemplateDataValidate values against a custom template
- get/emailTemplateGet an email template
- get/emailTemplateDefaultGet the built-in default email template
- post/emailTemplatePreviewRender an email template preview
- get/emailTemplatesList email templates
- post/emailTemplateSelectSelect the default email template
- get/emailTemplateVariablesList email template variables
Document Collection
Request documents and information from clients, review submissions and automate requests.
- post/archiveCollectionRequestArchive a request
- post/archiveCollectionTemplateArchive a collection template
- post/cancelCollectionRequestCancel a request
- post/createCollectionRequestDraftCreate a one-off request draft from a template
- post/createCollectionRequestsSend a collection request
- post/createCollectionTemplateCreate a collection template
- post/createCollectionTriggerRuleCreate an auto-send trigger rule on an expiry
- post/deleteCollectionRequestDelete a request permanently
- post/deleteCollectionRequestDraftDelete an unsent request draft
- post/deleteCollectionSubmissionDelete a submission
- post/deleteCollectionTriggerRuleDelete a trigger rule
- get/downloadCollectionSubmissionDownload a submission as a ZIP
- post/duplicateCollectionTemplateDuplicate a collection template
- get/exportCollectionRequestsExport collection requests as CSV
- get/getAllCollectionRequestsList collection requests
- get/getAllCollectionTemplatesList collection templates
- get/getCollectionRequestGet a collection request with its submission
- get/getCollectionRequestRemindersList a request's reminders
- get/getCollectionSubmissionFileDownload one submitted file
- get/getCollectionTemplateGet a collection template
- post/getCollectionTemplateReferenceUploadUrlGet an upload URL for a field reference file
- get/getCollectionTriggerRulesList trigger rules for an expiry
- get/getScheduledCollectionTriggersList trigger rules across all expiries
- post/pauseCollectionRequestPause a request
- post/resendCollectionRequestResend a request (rotates the link)
- post/resumeCollectionRequestResume a paused request
- post/reviewCollectionSubmissionApprove a submission or request changes
- post/triggerCollectionRuleNowFire a trigger rule now
- post/unarchiveCollectionRequestUnarchive a request
- post/unarchiveCollectionTemplateRestore an archived collection template
- post/updateCollectionRequestRename a request or change its due date
- post/updateCollectionRequestRemindersReplace a request's reminder schedule
- post/updateCollectionTemplateUpdate a collection template
- post/updateCollectionTriggerRuleUpdate a trigger rule
Document Collection (Public)
Endpoints used by the recipient of a collection request link (request token, optional password).
- post/composeCollectionUploadCombine uploaded chunks into one file
- get/getCollectionRequestPublicOpen a request link (recipient view)
- get/getCollectionTemplateReferenceFileDownload a field reference file (recipient)
- post/getCollectionUploadUrlGet upload URL(s) for a file field
- post/resubmitCollectionRequestFieldsResubmit the fields the reviewer rejected
- post/saveCollectionRequestDraftAutosave the recipient's progress
- post/submitCollectionRequestSubmit the form
- post/archiveComplianceArchive a compliance catalog entry
- post/archiveComplianceClientArchive a compliance client
- post/archiveComplianceProjectArchive a compliance project
- post/createComplianceCreate a compliance catalog entry
- post/createComplianceClientCreate a compliance client
- post/createComplianceProjectCreate a compliance project
- DEL/deleteComplianceDelete a compliance catalog entry
- DEL/deleteComplianceClientDelete a compliance client
- DEL/deleteComplianceProjectDelete a compliance project
- get/getAllComplianceClientsList clients
- get/getAllComplianceProjectsList projects
- get/getAllCompliancesList compliance catalog entries
- get/getComplianceGet a compliance catalog entry
- get/getComplianceClientGet a compliance client
- get/getComplianceProjectGet a compliance project
- post/unarchiveComplianceUnarchive a compliance catalog entry
- post/unarchiveComplianceClientUnarchive a compliance client
- post/unarchiveComplianceProjectUnarchive a compliance project
- post/updateComplianceUpdate a compliance catalog entry
- post/updateComplianceClientUpdate a compliance client
- post/updateComplianceProjectUpdate a compliance project
- post/bulkAttachDirectoryToExpiriesAttach a directory entry to many expiries
- post/bulkImportDirectoryEntriesImport directory entries
- post/createDirectoryEntryCreate a directory entry
- DEL/deleteDirectoryEntryDelete a directory entry
- get/getAllDirectoryEntriesList directory entries
- get/getDirectoryEntryGet a directory entry
- post/updateDirectoryEntryUpdate a directory entry
- post/assignWorkflowStepSet workflow step assignees
- post/createExpiryWorkflowAttachmentAttach a workflow to an expiry
- post/createWorkflowCreate a workflow
- post/createWorkflowRunStart a workflow run
- post/createWorkflowScheduleSchedule a workflow
- post/createWorkflowSectionAdd a section to a workflow
- post/createWorkflowStepAdd a step to a workflow section
- post/createWorkflowTypeCreate a workflow type
- post/deleteExpiryWorkflowAttachmentRemove an expiry workflow attachment
- post/deleteWorkflowArchive or delete a workflow
- post/deleteWorkflowRunDelete a workflow run
- post/deleteWorkflowScheduleDelete a workflow schedule
- post/deleteWorkflowSectionDelete a workflow section
- post/deleteWorkflowStepDelete a workflow step
- post/deleteWorkflowTypeDelete a workflow type
- post/duplicateWorkflowDuplicate a workflow
- get/getAllWorkflowRunsList workflow runs
- get/getAllWorkflowsList workflows
- get/getAllWorkflowSchedulesList all workflow schedules
- get/getExpiryWorkflowAttachmentsList workflow attachments of an expiry
- get/getScheduledWorkflowTriggersList expiry workflow triggers
- get/getWorkflowGet a workflow
- get/getWorkflowRunGet a workflow run
- get/getWorkflowSchedulesList schedules of a workflow
- get/getWorkflowTypesList workflow types
- post/moveWorkflowsToTypeMove workflows to a type
- post/reorderWorkflowSectionsReorder workflow sections
- post/reorderWorkflowStepsReorder workflow steps
- post/triggerExpiryWorkflowTrigger an expiry workflow now
- post/triggerWorkflowScheduleNowRun a schedule now
- post/updateExpiryWorkflowAttachmentUpdate an expiry workflow attachment
- post/updateRunStepUpdate a run step
- post/updateRunStepStatusSet a run step status
- post/updateWorkflowUpdate a workflow
- post/updateWorkflowRunUpdate a workflow run
- post/updateWorkflowScheduleUpdate a workflow schedule
- post/updateWorkflowSectionUpdate a workflow section
- post/updateWorkflowStepUpdate a workflow step
- post/updateWorkflowStepStatusSet a workflow step status
- post/updateWorkflowTypeUpdate a workflow type
- post/createExpiryCommentAdd a comment to an expiry
- post/createWorkflowCommentComment on a workflow or run
- post/deleteExpiryCommentDelete a comment
- post/deleteWorkflowCommentDelete a workflow comment
- get/getActivityStatsGet activity counts for your organization
- get/getEntityActivitiesGet the activity log for one record
- get/getExpiryCommentsList comments on an expiry
- get/getOrganizationActivitiesGet the activity log for your organization
- get/getWorkflowCommentsList workflow comments
- post/updateExpiryCommentEdit your own comment
- post/updateWorkflowCommentEdit a workflow comment
- post/bulkExtractDocumentsExtract expiry data from up to 10 files in Cloud Storage
- post/extractDocumentExtract expiry data from a file already in Cloud Storage
- post/extractDocumentDirectExtract expiry data from a base64-encoded file
- get/getEmailIngestionLogList recent inbound email processing results
- post/mapImportColumnsMap spreadsheet columns to expiry fields with AI
- post/setupInboundEmailGet or create the organization's inbound email address
- post/acknowledgeSetupItemsAcknowledge setup checklist items
- get/getEscalationConfigGet the email escalation settings
- get/getEscalationSettingsGet default escalation days
- get/getNotificationPreferencesGet your push notification preferences
- get/getOrganizationSettingsGet organization settings
- get/getReminderSettingsGet the organization's default reminder sequence
- get/getWebhooksGet Teams and Slack webhook URLs
- get/re-engagement/unsubscribeUnsubscribe from re-engagement emails (link)
- post/removeOrganizationLogoRemove the organization logo
- post/saveEscalationSettingsSave default escalation days
- post/saveReminderSettingsReplace the default reminder sequence
- post/saveWebhooksSave Teams and Slack webhook URLs
- post/subscribeNewsletterSubscribe an email address to the newsletter
- post/updateEscalationConfigUpdate the email escalation settings
- post/updateExpiryFormSettingsConfigure optional expiry form sections
- post/updateNotificationPreferencesUpdate your push notification preferences
- post/updateOrganizationSettingsUpdate organization settings
- post/updateUserLocaleSet your preferred language
- post/uploadOrganizationLogoUpload the organization logo
- get/additionalLicensesGet additional user-license state
- post/additionalLicensesCancelCancel additional licenses at period end
- post/additionalLicensesCheckoutStart Checkout for additional user licenses
- post/additionalLicensesUpdateQuantityChange the number of additional licenses
- get/addonsGet the add-ons package and SMS credit balance
- post/addonsBuySmsCreditsBuy SMS/WhatsApp credit blocks
- post/addonsCancelCancel the add-ons package at period end
- post/addonsCheckoutStart Checkout for an add-ons package
- post/addonsUpdateChange add-on quantities
- post/calculateSMSCostCalculate SMS credits for a number and message
- post/cancelSubscriptionCancel the plan at the end of the billing period
- get/checkAppSumoLicensePreview an AppSumo license before signup
- get/checkPromoCodePreview a promo code before signup
- post/createSubscriptionStart a plan checkout or change the current plan
- get/getAllSubscriptionsList the caller's plan orders
- get/getEarlyBirdStatusEarly-bird discount eligibility
- post/getInvoicesList the organization's invoices and refunds
- get/getMyReferralYour affiliate referral dashboard
- get/getNotificationPricingGet notification credit pricing
- get/getPaymentConfigGet public payment provider keys
- post/getPaymentMethodsList cards on file
- get/getPricingPlansList pricing plans
- get/getPromoStatusLive promo offer for the caller's organization
- get/getReferralCodeDetailsDetails and referred organizations for your referral code
- get/getSubscriptionGet a subscription record or the latest order
- post/checkContactLimitCheck whether more contacts can be created
- post/checkExpiryLimitCheck whether more expiries can be created
- post/checkResourceLimitCheck whether an amount of a resource fits the plan
- post/checkUploadCheck whether an upload fits the storage plan
- post/getStorageUsageGet storage usage for your organization
- post/getSubscriptionDetailsGet the organization's subscription, effective limits and add-ons
- post/getSubscriptionLimitsGet plan limits with current expiry and contact counts
- post/getUsageSummaryGet plan, limits, usage and remaining capacity
- post/recalculateStorageRecalculate storage usage from Cloud Storage
- post/recalculateUsageRecount usage counters from scratch
- post/recordUploadRecord uploaded bytes against storage usage
- post/createWebhookSubscriptionRegister an outgoing webhook URL for one or more events
- post/deleteWebhookSubscriptionDelete a webhook subscription and its delivery log
- get/getWebhookDeliveriesRecent deliveries for one webhook
- get/getWebhookSubscriptionsList the organization's webhook subscriptions
- get/integrationsList integrations and their connection state
- post/integrations/{provider}/claimConnectionClaim a connection started from the provider
- post/integrations/{provider}/disconnectDisconnect an integration
- get/integrations/{provider}/oauthUrlGet the OAuth authorization URL
- get/integrations/{provider}/statusGet connection status
- post/integrations/asana/createExpiryCreate an expiry from an Asana task
- DEL/integrations/asana/deleteWebhookDelete the Asana webhook
- get/integrations/asana/orgSettingsGet Asana sync settings
- get/integrations/asana/projectsList Asana projects in a workspace
- post/integrations/asana/registerWebhookRegister the Asana real-time webhook
- post/integrations/asana/saveOrgSettingsSave Asana sync settings
- post/integrations/asana/syncExpiryPush an expiry to Asana as a task
- post/integrations/asana/syncFromAsanaPull tasks from Asana now
- get/integrations/asana/tasksList Asana tasks
- put/integrations/asana/toggleIntegrationEnable or disable the Asana integration
- DEL/integrations/asana/unsyncExpiryUnlink an expiry from its Asana task
- get/integrations/asana/workspacesList Asana workspaces
- post/integrations/clickup/createExpiryCreate an expiry from a ClickUp task
- DEL/integrations/clickup/deleteWebhookDelete the ClickUp webhook
- get/integrations/clickup/foldersList ClickUp folders
- get/integrations/clickup/listsList ClickUp lists
- get/integrations/clickup/orgSettingsGet ClickUp sync settings
- post/integrations/clickup/registerWebhookRegister the ClickUp real-time webhook
- post/integrations/clickup/saveOrgSettingsSave ClickUp sync settings
- get/integrations/clickup/spacesList ClickUp spaces
- post/integrations/clickup/syncExpiryPush an expiry to ClickUp as a task
- post/integrations/clickup/syncFromClickupPull tasks from ClickUp now
- get/integrations/clickup/tasksList ClickUp tasks in a list
- get/integrations/clickup/teamsList ClickUp workspaces (teams)
- put/integrations/clickup/toggleIntegrationEnable or disable the ClickUp integration
- DEL/integrations/clickup/unsyncExpiryUnlink an expiry from its ClickUp task
- post/rotateWebhookSecretReplace a webhook's signing secret
- post/sendTestWebhookSend one test event to a webhook now
- post/updateWebhookSubscriptionChange a webhook's URL, events, description or on/off state
Files & Documents
Files in Documents (folder files), Docs pages and their attachments, and files attached to expiries. Uploads use a 3-step flow: get an upload URL, PUT the file, then complete. See docs/api/guides/.
- post/completeExpiryAttachmentUploadFinish an upload and attach the file to the expiry
- post/completeFolderFileUploadFinish a file upload and add it to the folder (step 3 of 3)
- post/completeKnowledgeDocAttachmentUploadFinish attaching a file to a Docs page
- post/createKnowledgeDocCreate a Docs page (as a draft)
- post/deleteExpiryAttachmentRemove a file from an expiry
- post/deleteFolderFileDelete a file from Documents
- post/deleteKnowledgeDocDelete a Docs page and its attachments
- post/deleteKnowledgeDocAttachmentRemove a file attachment from a Docs page
- get/getExpiryAttachmentsList the files attached to an expiry
- post/getExpiryAttachmentUploadUrlStart uploading a file to an expiry
- get/getFolderFilesList the files in a Documents folder
- post/getFolderFileUploadUrlStart a file upload into a Documents folder (step 1 of 3)
- get/getKnowledgeDocGet one Docs page with its breadcrumb trail
- get/getKnowledgeDocAttachmentsList a Docs page's file attachments
- post/getKnowledgeDocAttachmentUploadUrlStart attaching a file to a Docs page (get an upload link)
- get/getKnowledgeDocsList Docs pages
- post/moveFolderFileMove a file to another Documents folder
- post/renameFolderFileRename a file in Documents
- post/updateKnowledgeDocEdit, move, publish or unpublish a Docs page
v2 (preview)
Resource-style preview of the next API version (expiries and contacts). REST paths and verbs, one error envelope, 201/204 conventions, cursor pagination. v1 is unchanged.
- get/v2/collection-requestsList Document Collection requests
- post/v2/collection-requestsSend a Document Collection request
- get/v2/collection-requests/{id}Get a Document Collection request
- post/v2/collection-requests/{id}/cancelCancel a Document Collection request
- post/v2/collection-requests/{id}/resendResend a Document Collection request
- get/v2/collection-submissionsList Document Collection submissions
- get/v2/collection-templatesList Document Collection templates
- get/v2/collection-templates/{id}Get a Document Collection template
- get/v2/comments/{id}Get a comment
- patch/v2/comments/{id}Edit your comment
- DEL/v2/comments/{id}Delete a comment
- get/v2/compliance-clientsList compliance clients
- post/v2/compliance-clientsCreate a compliance client
- get/v2/compliance-clients/{id}Get a compliance client
- patch/v2/compliance-clients/{id}Update a compliance client
- DEL/v2/compliance-clients/{id}Delete a compliance client
- get/v2/contact-groupsList contact groups
- post/v2/contact-groupsCreate a contact group
- get/v2/contact-groups/{id}Get a contact group
- patch/v2/contact-groups/{id}Update a contact group
- DEL/v2/contact-groups/{id}Delete a contact group
- get/v2/contactsList contacts (cursor-paginated)
- post/v2/contactsCreate a contact
- get/v2/contacts/{id}Get a contact
- patch/v2/contacts/{id}Update a contact
- DEL/v2/contacts/{id}Delete a contact
- get/v2/expiriesList expiries (cursor-paginated)
- post/v2/expiriesCreate an expiry
- get/v2/expiries/{id}Get an expiry
- patch/v2/expiries/{id}Update an expiry
- DEL/v2/expiries/{id}Delete an expiry
- post/v2/expiries/{id}/archiveArchive an expiry
- get/v2/expiries/{id}/attachmentsList an expiry's attachments
- post/v2/expiries/{id}/attachmentsStart an attachment upload
- DEL/v2/expiries/{id}/attachmentsRemove an attachment
- post/v2/expiries/{id}/attachments/completeFinish an attachment upload
- get/v2/expiries/{id}/commentsList an expiry's comments
- post/v2/expiries/{id}/commentsComment on an expiry
- post/v2/expiries/{id}/completeMark an expiry done
- get/v2/expiries/{id}/remindersList an expiry's reminders
- post/v2/expiries/{id}/remindersAdd reminders to an expiry
- patch/v2/expiries/{id}/remindersReplace an expiry's reminders
- DEL/v2/expiries/{id}/remindersDelete all of an expiry's reminders
- get/v2/foldersList folders (flat, cursor-paginated)
- post/v2/foldersCreate a folder
- get/v2/folders/{id}Get a folder
- patch/v2/folders/{id}Rename or move a folder
- DEL/v2/folders/{id}Delete a folder
