Rename or move a folder
Previewpatch
https://api.expiryedge.com/v2/folders/{id}editor or admin60/min
Request
curl -X PATCH 'https://api.expiryedge.com/v2/folders/fol_123' \
-H "Authorization: Bearer $EXPIRYEDGE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "Permits"
}'Response
{
"id": "fol_123",
"name": "Example name",
"parent_folder_id": "fol_123",
"folder_path": "/Licenses/Dental",
"organization_id": "org_123",
"user_id": "use_123",
"is_deleted": true,
"created_at": "2026-09-27T14:05:00.000Z",
"updated_at": "2026-09-27T14:05:00.000Z"
}parent_folder_id: null moves it to the top level; a move that would create a cycle is 400.
folder_path of the folder and its subfolders is updated.
idstringrequired
namestringmax length: 255parent_folder_idstring | nullA folder in your organization; null = top level.
200
The folder after the change.
idstringnamestringparent_folder_idstring | nullfolder_pathstringorganization_idstringuser_idstringis_deletedbooleanAlways false in v2 (deleted folders are 404).created_atstringUTC timestamp, ISO 8601. Every v1 response uses this form, never a raw Firestore Timestamp ({_seconds, _nanoseconds}).format: date-timeupdated_atstringUTC timestamp, ISO 8601. Every v1 response uses this form, never a raw Firestore Timestamp ({_seconds, _nanoseconds}).format: date-time
400 | Invalid parameters or body ( VALIDATION_FAILED; details names the fields). |
401 | Missing, invalid or expired token ( UNAUTHORIZED). |
403 | Your role can't do this, or your account has no organization ( FORBIDDEN). |
404 | No such record in your organization (records in other organizations are also 404). |
405 | Wrong HTTP method for this path; the Allow header lists the valid ones. |
409 | State or uniqueness conflict: EMAIL_EXISTS (contacts), GROUP_EXISTS (contact groups), CONFLICT (folder name taken), FOLDER_NOT_EMPTY, CLIENT_HAS_PROJECTS, TOO_MANY_ATTACHMENTS, INVALID_STATE (collection request cancel/resend), or IDEMPOTENCY_IN_PROGRESS (same Idempotency-Key still running; see Retry-After). |
429 | Too many requests for this endpoint from your IP. Wait Retry-After seconds. |
