{"name":"WarriorFit Agent API","api_version":"v1","openapi_url":"/api/v1/openapi.json","authentication":{"type":"bearer_token","header":"Authorization: Bearer ww_...","scopes":{"read":"Required for GET and HEAD requests.","write":"Required for POST, PATCH, PUT, and DELETE requests."}},"errors":{"shape":{"error":{"code":"string","message":"string","details":"object optional"}},"common_codes":["unauthorized","forbidden","not_found","bad_request","validation_failed"]},"instructions":["Read openapi_url before constructing requests; it is the canonical endpoint and schema contract.","Use IDs and slugs returned by catalog endpoints. Never invent resource identifiers.","Follow pagination.next_offset until it is null when a complete result set is required.","Use metadata.client_session_id and payload.client_event_id for retry-safe session writes.","Record item and rest events for actual workout activity; session events are product data."],"workflows":{"plan_workout":["Search exercises by common name, English name, or alias before planning.","Create a planned workout with at least one ordered item.","Use exercise_id for a known match; an unknown exercise_name creates a private exercise for review.","Use timed items with duration_seconds or rep items with target_reps."],"import_history":["For detailed history, create an active session with stable metadata.client_session_id.","Send item and rest events with stable payload.client_event_id values before completing the session.","Use completed_at during creation only for summary imports that have no item or rest events."],"record_workout":["Create the workout session before sending activity events.","Send item and rest events while the session is active.","Finish through complete or fail with a stable payload.client_event_id."]}}