{"openapi":"3.1.0","info":{"title":"Wayfin API","version":"1.0","description":"AI-agent-friendly API for Wayfin task coordination. Human-readable guide: https://www.wayfin.eu/api/v1/docs","contact":{"email":"support@leanex.fi"}},"servers":[{"url":"https://www.wayfin.eu/api/v1"}],"security":[{"bearerAuth":[]}],"paths":{"/":{"get":{"summary":"API index and links","responses":{"200":{"description":"Success","content":{"application/json":{"example":{"name":"Wayfin API","version":"v1"}}}},"default":{"description":"Error (shared shape, see docs#errors)","content":{"application/json":{"example":{"error":{"code":"validation_failed","message":"The task is missing required information for sending the invitation.","status":422,"errors":[{"field":"due_on","code":"missing","message":"Deadline can't be blank","description":"Deadline date, format YYYY-MM-DD. Required before sending. Ask the human if unknown — do not invent a deadline.","example":"2026-09-30"}],"hint":"Fill the listed fields with PATCH, then retry.","retryable":false,"docs_url":"https://wayfin.eu/api/v1/docs#fields"}}}}}},"security":[]}},"/docs":{"get":{"summary":"Agent documentation as markdown (text/markdown)","responses":{"200":{"description":"Success","content":{"application/json":{"example":"# Wayfin API v1 …"}}},"default":{"description":"Error (shared shape, see docs#errors)","content":{"application/json":{"example":{"error":{"code":"validation_failed","message":"The task is missing required information for sending the invitation.","status":422,"errors":[{"field":"due_on","code":"missing","message":"Deadline can't be blank","description":"Deadline date, format YYYY-MM-DD. Required before sending. Ask the human if unknown — do not invent a deadline.","example":"2026-09-30"}],"hint":"Fill the listed fields with PATCH, then retry.","retryable":false,"docs_url":"https://wayfin.eu/api/v1/docs#fields"}}}}}},"security":[]}},"/openapi.json":{"get":{"summary":"This OpenAPI 3.1 document","responses":{"200":{"description":"Success","content":{"application/json":{"example":{"openapi":"3.1.0"}}}},"default":{"description":"Error (shared shape, see docs#errors)","content":{"application/json":{"example":{"error":{"code":"validation_failed","message":"The task is missing required information for sending the invitation.","status":422,"errors":[{"field":"due_on","code":"missing","message":"Deadline can't be blank","description":"Deadline date, format YYYY-MM-DD. Required before sending. Ask the human if unknown — do not invent a deadline.","example":"2026-09-30"}],"hint":"Fill the listed fields with PATCH, then retry.","retryable":false,"docs_url":"https://wayfin.eu/api/v1/docs#fields"}}}}}},"security":[]}},"/me":{"get":{"summary":"Identity, plan and quotas of the token's account","responses":{"200":{"description":"Success","content":{"application/json":{"example":{"user":{"name":"Teemu Toivonen","email":"teemu@example.com","locale":"fi","time_zone":"Helsinki"},"plan":{"id":"pro","source":"manual","expires_on":null},"email_verified":true,"quotas":{"tracked_tasks":{"used":12,"limit":null},"collections":{"used":3,"limit":null}},"links":{"collections":"https://wayfin.eu/api/v1/collections","docs":"https://wayfin.eu/api/v1/docs"}}}},"headers":{"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Request limit of the currently tightest window"},"X-RateLimit-Remaining":{"schema":{"type":"integer"},"description":"Requests left in that window — pace yourself before this hits zero"},"X-RateLimit-Reset":{"schema":{"type":"integer"},"description":"Unix timestamp (seconds) when the window resets"}}},"default":{"description":"Error (shared shape, see docs#errors)","content":{"application/json":{"example":{"error":{"code":"validation_failed","message":"The task is missing required information for sending the invitation.","status":422,"errors":[{"field":"due_on","code":"missing","message":"Deadline can't be blank","description":"Deadline date, format YYYY-MM-DD. Required before sending. Ask the human if unknown — do not invent a deadline.","example":"2026-09-30"}],"hint":"Fill the listed fields with PATCH, then retry.","retryable":false,"docs_url":"https://wayfin.eu/api/v1/docs#fields"}}}}}}}},"/collections":{"get":{"summary":"Owned task collections with status summaries","responses":{"200":{"description":"Success","content":{"application/json":{"example":{"collections":[{"id":42,"name":"Integraatioprojekti","description":"Asiakkaan integraation koordinointi","verdict":{"state":"amber","variant":"amber"},"risk_level":2,"counts":{"completed":4,"in_followup":6,"not_started":1,"awaiting_acceptance":2,"awaiting_signoff":0,"unassigned_drafts":1,"overdue":1,"escalations":0,"decision_pending":0},"response_rate_30d":85,"estimated_completion_on":"2026-10-31","created_at":"2026-06-01T10:00:00+03:00","links":{"self":"https://wayfin.eu/api/v1/collections/42","tasks":"https://wayfin.eu/api/v1/collections/42/tasks","status":"https://wayfin.eu/api/v1/collections/42/status"}}]}}},"headers":{"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Request limit of the currently tightest window"},"X-RateLimit-Remaining":{"schema":{"type":"integer"},"description":"Requests left in that window — pace yourself before this hits zero"},"X-RateLimit-Reset":{"schema":{"type":"integer"},"description":"Unix timestamp (seconds) when the window resets"}}},"default":{"description":"Error (shared shape, see docs#errors)","content":{"application/json":{"example":{"error":{"code":"validation_failed","message":"The task is missing required information for sending the invitation.","status":422,"errors":[{"field":"due_on","code":"missing","message":"Deadline can't be blank","description":"Deadline date, format YYYY-MM-DD. Required before sending. Ask the human if unknown — do not invent a deadline.","example":"2026-09-30"}],"hint":"Fill the listed fields with PATCH, then retry.","retryable":false,"docs_url":"https://wayfin.eu/api/v1/docs#fields"}}}}}}}},"/collections/{id}":{"get":{"summary":"Collection detail incl. sections","responses":{"200":{"description":"Success","content":{"application/json":{"example":{"collection":{"id":42,"name":"Integraatioprojekti","description":"Asiakkaan integraation koordinointi","verdict":{"state":"amber","variant":"amber"},"risk_level":2,"counts":{"completed":4,"in_followup":6,"not_started":1,"awaiting_acceptance":2,"awaiting_signoff":0,"unassigned_drafts":1,"overdue":1,"escalations":0,"decision_pending":0},"response_rate_30d":85,"estimated_completion_on":"2026-10-31","created_at":"2026-06-01T10:00:00+03:00","links":{"self":"https://wayfin.eu/api/v1/collections/42","tasks":"https://wayfin.eu/api/v1/collections/42/tasks","status":"https://wayfin.eu/api/v1/collections/42/status"},"default_escalation_threshold":2,"action_note":null,"sections":[{"id":12,"title":"Myynti","position":1}]}}}},"headers":{"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Request limit of the currently tightest window"},"X-RateLimit-Remaining":{"schema":{"type":"integer"},"description":"Requests left in that window — pace yourself before this hits zero"},"X-RateLimit-Reset":{"schema":{"type":"integer"},"description":"Unix timestamp (seconds) when the window resets"}}},"default":{"description":"Error (shared shape, see docs#errors)","content":{"application/json":{"example":{"error":{"code":"validation_failed","message":"The task is missing required information for sending the invitation.","status":422,"errors":[{"field":"due_on","code":"missing","message":"Deadline can't be blank","description":"Deadline date, format YYYY-MM-DD. Required before sending. Ask the human if unknown — do not invent a deadline.","example":"2026-09-30"}],"hint":"Fill the listed fields with PATCH, then retry.","retryable":false,"docs_url":"https://wayfin.eu/api/v1/docs#fields"}}}}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"},"description":"Collection id"}]}},"/collections/{id}/status":{"get":{"summary":"Counts, verdict, risk and attention lists","responses":{"200":{"description":"Success","content":{"application/json":{"example":{"collection":{"id":42,"name":"Integraatioprojekti"},"date":"2026-08-18","verdict":{"state":"amber","variant":"amber"},"counts":{"completed":4,"in_followup":6,"overdue":1},"risk":{"level":2,"effective_distribution":{"2":4,"3":2},"causes":{"dependencies":2}},"attention":{"silent_tasks":{"items":[{"task_id":117,"name":"…","phase":"reminder","silent_days":4,"reminders_sent":1}],"truncated":false}}}}},"headers":{"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Request limit of the currently tightest window"},"X-RateLimit-Remaining":{"schema":{"type":"integer"},"description":"Requests left in that window — pace yourself before this hits zero"},"X-RateLimit-Reset":{"schema":{"type":"integer"},"description":"Unix timestamp (seconds) when the window resets"}}},"default":{"description":"Error (shared shape, see docs#errors)","content":{"application/json":{"example":{"error":{"code":"validation_failed","message":"The task is missing required information for sending the invitation.","status":422,"errors":[{"field":"due_on","code":"missing","message":"Deadline can't be blank","description":"Deadline date, format YYYY-MM-DD. Required before sending. Ask the human if unknown — do not invent a deadline.","example":"2026-09-30"}],"hint":"Fill the listed fields with PATCH, then retry.","retryable":false,"docs_url":"https://wayfin.eu/api/v1/docs#fields"}}}}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"},"description":"Collection id"}]}},"/collections/{id}/escalations":{"get":{"summary":"Unresolved escalations and decision-pending tasks","responses":{"200":{"description":"Success","content":{"application/json":{"example":{"unresolved":[{"task_id":117,"task_name":"…","assignee_name":"Maija Meikäläinen","triggered_on":"2026-08-15","missed_count":2,"days_open":3,"contact_notified":false}],"decision_pending":[]}}},"headers":{"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Request limit of the currently tightest window"},"X-RateLimit-Remaining":{"schema":{"type":"integer"},"description":"Requests left in that window — pace yourself before this hits zero"},"X-RateLimit-Reset":{"schema":{"type":"integer"},"description":"Unix timestamp (seconds) when the window resets"}}},"default":{"description":"Error (shared shape, see docs#errors)","content":{"application/json":{"example":{"error":{"code":"validation_failed","message":"The task is missing required information for sending the invitation.","status":422,"errors":[{"field":"due_on","code":"missing","message":"Deadline can't be blank","description":"Deadline date, format YYYY-MM-DD. Required before sending. Ask the human if unknown — do not invent a deadline.","example":"2026-09-30"}],"hint":"Fill the listed fields with PATCH, then retry.","retryable":false,"docs_url":"https://wayfin.eu/api/v1/docs#fields"}}}}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"},"description":"Collection id"}]}},"/collections/{id}/risks":{"get":{"summary":"Effective risk per task with causes","responses":{"200":{"description":"Success","content":{"application/json":{"example":{"risk_level":3,"high_risk_tasks":[{"task_id":117,"effective_risk":4,"factors":{"escalated":true,"decision_pending":false,"overdue":true,"reported_confidence":3}}]}}},"headers":{"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Request limit of the currently tightest window"},"X-RateLimit-Remaining":{"schema":{"type":"integer"},"description":"Requests left in that window — pace yourself before this hits zero"},"X-RateLimit-Reset":{"schema":{"type":"integer"},"description":"Unix timestamp (seconds) when the window resets"}}},"default":{"description":"Error (shared shape, see docs#errors)","content":{"application/json":{"example":{"error":{"code":"validation_failed","message":"The task is missing required information for sending the invitation.","status":422,"errors":[{"field":"due_on","code":"missing","message":"Deadline can't be blank","description":"Deadline date, format YYYY-MM-DD. Required before sending. Ask the human if unknown — do not invent a deadline.","example":"2026-09-30"}],"hint":"Fill the listed fields with PATCH, then retry.","retryable":false,"docs_url":"https://wayfin.eu/api/v1/docs#fields"}}}}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"},"description":"Collection id"}]}},"/collections/{id}/tasks":{"get":{"summary":"Task list; filters: state, starred, overdue, escalated, section_id, assignee_email; cursor: after_id + limit","responses":{"200":{"description":"Success","content":{"application/json":{"example":{"tasks":[{"id":117,"name":"Deliver the security review","state":"draft","starred":false,"section_id":12,"assignee":{"name":"Maija Meikäläinen","email":"maija@example.org","locale":"fi"},"due_on":"2026-09-30","follow_up_starts_on":"2026-09-05","overdue":false,"cadence":{"kind":"weekly","weekdays":[],"reporting_weekday":null},"completion_policy":"self_complete","latest_report":{"confidence":2,"risk_causes":[],"primary_cause":null,"comment":"On track","marked_done":false,"reported_at":"2026-08-14T09:12:00+03:00","seen_at":null},"attention":{"escalated":false,"decision_pending":false,"reminders_paused_until":null,"snoozed_until":null},"created_at":"2026-08-10T12:00:00+03:00","updated_at":"2026-08-14T09:12:00.123456+03:00","links":{"self":"https://wayfin.eu/api/v1/collections/42/tasks/117","web":"https://wayfin.eu/collections/42/tasks/117"}}],"pagination":{"limit":50,"has_more":false,"next_after_id":null}}}},"headers":{"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Request limit of the currently tightest window"},"X-RateLimit-Remaining":{"schema":{"type":"integer"},"description":"Requests left in that window — pace yourself before this hits zero"},"X-RateLimit-Reset":{"schema":{"type":"integer"},"description":"Unix timestamp (seconds) when the window resets"}}},"default":{"description":"Error (shared shape, see docs#errors)","content":{"application/json":{"example":{"error":{"code":"validation_failed","message":"The task is missing required information for sending the invitation.","status":422,"errors":[{"field":"due_on","code":"missing","message":"Deadline can't be blank","description":"Deadline date, format YYYY-MM-DD. Required before sending. Ask the human if unknown — do not invent a deadline.","example":"2026-09-30"}],"hint":"Fill the listed fields with PATCH, then retry.","retryable":false,"docs_url":"https://wayfin.eu/api/v1/docs#fields"}}}}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"},"description":"Collection id"},{"name":"state","in":"query","schema":{"type":"string","enum":["draft","pending_acceptance","change_requested","rejected","active","pending_completion_approval","completed","halted"]}},{"name":"starred","in":"query","schema":{"type":"boolean"}},{"name":"overdue","in":"query","schema":{"type":"boolean"}},{"name":"escalated","in":"query","schema":{"type":"boolean"}},{"name":"section_id","in":"query","schema":{"type":"integer"}},{"name":"assignee_email","in":"query","schema":{"type":"string"}},{"name":"after_id","in":"query","schema":{"type":"integer","minimum":1},"description":"Cursor: return tasks with id greater than this. Order is always id ASC. Non-integer values are a 400 error."},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":100}}]},"post":{"summary":"Create a task — always lands as a draft; no email is sent","responses":{"201":{"description":"Success","content":{"application/json":{"example":{"task":{"id":117,"name":"Deliver the security review","state":"draft","starred":false,"section_id":12,"assignee":{"name":"Maija Meikäläinen","email":"maija@example.org","locale":"fi"},"due_on":"2026-09-30","follow_up_starts_on":"2026-09-05","overdue":false,"cadence":{"kind":"weekly","weekdays":[],"reporting_weekday":null},"completion_policy":"self_complete","latest_report":{"confidence":2,"risk_causes":[],"primary_cause":null,"comment":"On track","marked_done":false,"reported_at":"2026-08-14T09:12:00+03:00","seen_at":null},"attention":{"escalated":false,"decision_pending":false,"reminders_paused_until":null,"snoozed_until":null},"created_at":"2026-08-10T12:00:00+03:00","updated_at":"2026-08-14T09:12:00.123456+03:00","links":{"self":"https://wayfin.eu/api/v1/collections/42/tasks/117","web":"https://wayfin.eu/collections/42/tasks/117"}}}}},"headers":{"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Request limit of the currently tightest window"},"X-RateLimit-Remaining":{"schema":{"type":"integer"},"description":"Requests left in that window — pace yourself before this hits zero"},"X-RateLimit-Reset":{"schema":{"type":"integer"},"description":"Unix timestamp (seconds) when the window resets"}}},"default":{"description":"Error (shared shape, see docs#errors)","content":{"application/json":{"example":{"error":{"code":"validation_failed","message":"The task is missing required information for sending the invitation.","status":422,"errors":[{"field":"due_on","code":"missing","message":"Deadline can't be blank","description":"Deadline date, format YYYY-MM-DD. Required before sending. Ask the human if unknown — do not invent a deadline.","example":"2026-09-30"}],"hint":"Fill the listed fields with PATCH, then retry.","retryable":false,"docs_url":"https://wayfin.eu/api/v1/docs#fields"}}}}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"},"description":"Collection id"},{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[ -~]+$"},"description":"One printable-ASCII key per logical task creation (a UUID is recommended)"}],"description":"Send an Idempotency-Key to make retries safe. A replay returns the original status and body with Idempotency-Replayed: true.","requestBody":{"required":true,"content":{"application/json":{"example":{"name":"Deliver the security review","assignee_name":"Maija Meikäläinen","assignee_email":"maija@example.org","due_on":"2026-09-30","follow_up_starts_on":"2026-09-05","cadence_kind":"weekly"}}}}}},"/collections/{id}/tasks/{task_id}":{"get":{"summary":"Task detail incl. readiness, reports, events","responses":{"200":{"description":"Success","content":{"application/json":{"example":{"task":{"id":117,"name":"Deliver the security review","state":"draft","starred":false,"section_id":12,"assignee":{"name":"Maija Meikäläinen","email":"maija@example.org","locale":"fi"},"due_on":"2026-09-30","follow_up_starts_on":"2026-09-05","overdue":false,"cadence":{"kind":"weekly","weekdays":[],"reporting_weekday":null},"completion_policy":"self_complete","latest_report":{"confidence":2,"risk_causes":[],"primary_cause":null,"comment":"On track","marked_done":false,"reported_at":"2026-08-14T09:12:00+03:00","seen_at":null},"attention":{"escalated":false,"decision_pending":false,"reminders_paused_until":null,"snoozed_until":null},"created_at":"2026-08-10T12:00:00+03:00","updated_at":"2026-08-14T09:12:00.123456+03:00","links":{"self":"https://wayfin.eu/api/v1/collections/42/tasks/117","web":"https://wayfin.eu/collections/42/tasks/117"},"readiness":{"ready_to_send":false,"state_allows_sending":true,"assignee_locked":false,"blocking_issues":[{"field":"due_on","code":"missing","message":"Deadline can't be blank","description":"Deadline date, format YYYY-MM-DD. Required before sending. Ask the human if unknown — do not invent a deadline.","example":"2026-09-30"}]}}}}},"headers":{"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Request limit of the currently tightest window"},"X-RateLimit-Remaining":{"schema":{"type":"integer"},"description":"Requests left in that window — pace yourself before this hits zero"},"X-RateLimit-Reset":{"schema":{"type":"integer"},"description":"Unix timestamp (seconds) when the window resets"}}},"default":{"description":"Error (shared shape, see docs#errors)","content":{"application/json":{"example":{"error":{"code":"validation_failed","message":"The task is missing required information for sending the invitation.","status":422,"errors":[{"field":"due_on","code":"missing","message":"Deadline can't be blank","description":"Deadline date, format YYYY-MM-DD. Required before sending. Ask the human if unknown — do not invent a deadline.","example":"2026-09-30"}],"hint":"Fill the listed fields with PATCH, then retry.","retryable":false,"docs_url":"https://wayfin.eu/api/v1/docs#fields"}}}}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"},"description":"Collection id"},{"name":"task_id","in":"path","required":true,"schema":{"type":"integer"},"description":"Task id"}]},"patch":{"summary":"Update a not-yet-sent task (draft/change_requested/rejected). Optional expected_updated_at guards against concurrent edits","responses":{"200":{"description":"Success","content":{"application/json":{"example":{"task":{"id":117,"name":"Deliver the security review","state":"draft","starred":false,"section_id":12,"assignee":{"name":"Maija Meikäläinen","email":"maija@example.org","locale":"fi"},"due_on":"2026-09-30","follow_up_starts_on":"2026-09-05","overdue":false,"cadence":{"kind":"weekly","weekdays":[],"reporting_weekday":null},"completion_policy":"self_complete","latest_report":{"confidence":2,"risk_causes":[],"primary_cause":null,"comment":"On track","marked_done":false,"reported_at":"2026-08-14T09:12:00+03:00","seen_at":null},"attention":{"escalated":false,"decision_pending":false,"reminders_paused_until":null,"snoozed_until":null},"created_at":"2026-08-10T12:00:00+03:00","updated_at":"2026-08-14T09:12:00.123456+03:00","links":{"self":"https://wayfin.eu/api/v1/collections/42/tasks/117","web":"https://wayfin.eu/collections/42/tasks/117"}}}}},"headers":{"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Request limit of the currently tightest window"},"X-RateLimit-Remaining":{"schema":{"type":"integer"},"description":"Requests left in that window — pace yourself before this hits zero"},"X-RateLimit-Reset":{"schema":{"type":"integer"},"description":"Unix timestamp (seconds) when the window resets"}}},"default":{"description":"Error (shared shape, see docs#errors)","content":{"application/json":{"example":{"error":{"code":"validation_failed","message":"The task is missing required information for sending the invitation.","status":422,"errors":[{"field":"due_on","code":"missing","message":"Deadline can't be blank","description":"Deadline date, format YYYY-MM-DD. Required before sending. Ask the human if unknown — do not invent a deadline.","example":"2026-09-30"}],"hint":"Fill the listed fields with PATCH, then retry.","retryable":false,"docs_url":"https://wayfin.eu/api/v1/docs#fields"}}}}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"},"description":"Collection id"},{"name":"task_id","in":"path","required":true,"schema":{"type":"integer"},"description":"Task id"}],"requestBody":{"required":true,"content":{"application/json":{"example":{"due_on":"2026-10-15","expected_updated_at":"2026-08-14T09:12:00.123456+03:00"}}}}}},"/collections/{id}/tasks/{task_id}/send_invitation":{"post":{"summary":"Send (or idempotently re-check) the invitation email to the doer","responses":{"200":{"description":"Success","content":{"application/json":{"example":{"task":{"id":117,"name":"Deliver the security review","state":"pending_acceptance","starred":false,"section_id":12,"assignee":{"name":"Maija Meikäläinen","email":"maija@example.org","locale":"fi"},"due_on":"2026-09-30","follow_up_starts_on":"2026-09-05","overdue":false,"cadence":{"kind":"weekly","weekdays":[],"reporting_weekday":null},"completion_policy":"self_complete","latest_report":{"confidence":2,"risk_causes":[],"primary_cause":null,"comment":"On track","marked_done":false,"reported_at":"2026-08-14T09:12:00+03:00","seen_at":null},"attention":{"escalated":false,"decision_pending":false,"reminders_paused_until":null,"snoozed_until":null},"created_at":"2026-08-10T12:00:00+03:00","updated_at":"2026-08-14T09:12:00.123456+03:00","links":{"self":"https://wayfin.eu/api/v1/collections/42/tasks/117","web":"https://wayfin.eu/collections/42/tasks/117"}},"invitation":{"already_sent":false,"sent_to":"maija@example.org","delivery_state":"pending","note":"The invitation email is queued for delivery."}}}},"headers":{"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Request limit of the currently tightest window"},"X-RateLimit-Remaining":{"schema":{"type":"integer"},"description":"Requests left in that window — pace yourself before this hits zero"},"X-RateLimit-Reset":{"schema":{"type":"integer"},"description":"Unix timestamp (seconds) when the window resets"}}},"default":{"description":"Error (shared shape, see docs#errors)","content":{"application/json":{"example":{"error":{"code":"validation_failed","message":"The task is missing required information for sending the invitation.","status":422,"errors":[{"field":"due_on","code":"missing","message":"Deadline can't be blank","description":"Deadline date, format YYYY-MM-DD. Required before sending. Ask the human if unknown — do not invent a deadline.","example":"2026-09-30"}],"hint":"Fill the listed fields with PATCH, then retry.","retryable":false,"docs_url":"https://wayfin.eu/api/v1/docs#fields"}}}}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"},"description":"Collection id"},{"name":"task_id","in":"path","required":true,"schema":{"type":"integer"},"description":"Task id"}]}}},"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","description":"Personal API key (wf_… prefix), created in Account → API keys. Pro plan only."}}}}