Upload Success Plan Attachment
POST/api/success-plan/attachments
Uploads a file as multipart/form-data. Up to 20 MB. Accepted types: jpg, jpeg, png, gif, webp, heic, pdf, csv, txt, xlsx; a clip also accepts mp4, mov, webm, m4a and mp3.
success_plan:writeGrant this scope to your token under Settings → Developer → Personal Access Tokens.
Upload evidence first, then send its id in attachment_ids on Create Success Plan Goal, Correct Goal Baseline, Add Goal Reading or Mark Success Plan Goal Met (with document or system_export evidence).
Authentication: Requires Bearer token with the success_plan:write scope. The user must hold the success_plan.manage permission.
Form fields:
file(file, required).kind(string, required):evidence,clip,headshotorlogo.reading_id(integer, optional): an existing reading to attach it to.story_entry_id(integer, optional): an existing story entry to attach it to.
Returns the attachment (201) with url, a signed download link valid for url_expires_in_minutes (30). size is in bytes.
Request
Responses
- 201
- 401
- 403
- 404
- 422
- 429
Created
Response Headers
Unauthenticated — the bearer token is missing, revoked, expired, or malformed. Never retry automatically; fix the credential. See the Errors guide.
Forbidden — the token lacks a required scope, the endpoint is not available to API tokens, or the user behind the token lacks the permission. A human must adjust the token scopes or user permissions; do not retry.
Not Found
Response Headers
Unprocessable Entity
Response Headers
Rate limited — platform limit is 1,000 requests/min; individual tokens may carry lower limits. Honor the Retry-After header before retrying. See the Rate Limits guide.