# Get All Workspace Contracts Retrieve all contracts (project-member assignments) in your workspace. Contracts are automatically filtered based on your role and permissions: Role-based access: Owners and Executive Managers see all contracts; Project Managers see contracts for managed projects + their own contracts; Team Managers see contracts for managed teams + their own contracts; Regular Users see only their own contracts; Clients see only contracts for projects they have access to. Rate information is only visible if you have permission to view rates AND the project is billable. You can apply additional filters (project_id, user_id, status) to narrow down results. Endpoint: GET /contracts Version: 2.0.0 Security: oauth2, apiKey ## Query parameters: - `workspace_id` (integer, required) ID of the workspace Example: 1 - `project_id` (integer) Filter contracts by project ID Example: 100 - `user_id` (integer) Filter contracts by user ID Example: 100 - `status` (string) Filter contracts by status Enum: "active", "paused" - `page` (integer) Page number for pagination Example: 1 - `per_page` (integer) Number of items per page (max 100) Example: 20 ## Response 200 fields (application/json): - `success` (boolean) Example: true - `message` (string) Example: "Contracts retrieved successfully" - `data` (array) - `data.id` (integer, required) Unique identifier for the contract Example: 100 - `data.project_id` (integer, required) ID of the project Example: 100 - `data.project_name` (string,null) Name of the project Example: "Marketing Campaign Q1" - `data.project_icon` (string,null) Project icon identifier Example: "project-icon-1" - `data.user_id` (integer, required) ID of the user (member) Example: 100 - `data.user_firstname` (string,null) First name of the user Example: "John" - `data.user_lastname` (string,null) Last name of the user Example: "Doe" - `data.user_email` (string,null) Email of the user Example: "john.doe@example.com" - `data.user_role` (string,null) Role of the user in the workspace Enum: "Owner", "Executive manager", "Team manager", "Project manager", "Regular User", "Project viewer", "Client" - `data.weekly_hours_limit` (integer,null) Weekly hours limit Example: 40 - `data.screenshots` (string,null) Screenshot mode code Example: "full" - `data.screenshots_label` (string,null) Screenshot mode label Example: "Screenshot on" - `data.rate` (number,null) Hourly rate (only visible if user has permission to view rates AND project is billable) Example: 50 - `data.rate_type` (integer,null) Rate type (1: Custom Rate, 2: Member Rate, 3: Project Rate) Example: 1 - `data.status` (string, required) Contract status Enum: "active", "paused" - `data.currency` (string,null) Currency code Example: "USD" - `data.created_at` (string,null) Timestamp when contract was created Example: "2024-01-15T09:00:00Z" - `data.updated_at` (string,null) Timestamp when contract was last updated Example: "2024-01-15T09:00:00Z" - `meta` (object) - `meta.api_version` (string) Example: "2.0.0" - `meta.timestamp` (string) - `pagination` (object) - `pagination.current_page` (integer) Example: 1 - `pagination.per_page` (integer) Example: 20 - `pagination.total` (integer) Example: 50 - `pagination.last_page` (integer) Example: 3 ## Response 400 fields (application/json): - `success` (boolean, required) - `message` (string, required) Error message describing what went wrong Example: "An error occurred" - `error` (string,null) Optional additional error details Example: "Internal Server Error" - `meta` (object, required) - `meta.api_version` (string) Example: "2.0.0" - `meta.timestamp` (string) ## Response 401 fields (application/json): - `success` (boolean, required) - `message` (string, required) Error message describing what went wrong Example: "An error occurred" - `error` (string,null) Optional additional error details Example: "Internal Server Error" - `meta` (object, required) - `meta.api_version` (string) Example: "2.0.0" - `meta.timestamp` (string) ## Response 403 fields (application/json): - `success` (boolean, required) - `message` (string, required) Error message describing what went wrong Example: "An error occurred" - `error` (string,null) Optional additional error details Example: "Internal Server Error" - `meta` (object, required) - `meta.api_version` (string) Example: "2.0.0" - `meta.timestamp` (string) ## Response 500 fields (application/json): - `success` (boolean, required) - `message` (string, required) Error message describing what went wrong Example: "An error occurred" - `error` (string,null) Optional additional error details Example: "Internal Server Error" - `meta` (object, required) - `meta.api_version` (string) Example: "2.0.0" - `meta.timestamp` (string)