### Get Workspaces Source: https://developer.kantata.com/kantata/specification/workspaces/get%20workspace This example demonstrates how to authenticate a request to retrieve a list of workspaces using cURL. ```APIDOC ## GET /workspaces.json ### Description Retrieves a list of all workspaces accessible to the authenticated user. ### Method GET ### Endpoint /workspaces.json ### Request Example ```bash curl -H "Authorization: Bearer abc123" "https://api.mavenlink.com/api/v1/workspaces.json" ``` ### Response #### Success Response (200) - **workspaces** (array) - A list of workspace objects. - **workspace** (object) - Details of a single workspace. - **id** (integer) - The unique identifier for the workspace. - **name** (string) - The name of the workspace. - **status** (string) - The current status of the workspace (e.g., 'active', 'archived'). #### Response Example ```json { "workspaces": [ { "id": 123, "name": "Project Alpha", "status": "active" } ] } ``` ``` -------------------------------- ### Get My User Data with Filters and Includes Source: https://developer.kantata.com/kantata/specification/users/get%20my%20user%20data This example demonstrates how to retrieve your user data, filtering by creation date, including associated data like account membership and roles, and specifying optional fields. ```APIDOC ## GET /api/v1/users/me ### Description Retrieves the current user's data. ### Method GET ### Endpoint /api/v1/users/me ### Query Parameters - **created_after** (string) - Optional - Filter for records created after a specified datetime. The datetime must be in ISO 8601 format. - **created_before** (string) - Optional - Filter for records created before a specified datetime. The datetime must be in ISO 8601 format. - **external_reference_external_message** (string) - Optional - Filter the objects based on the external message of their associated external references. This is an exact match. - **external_reference_external_status** (string) - Optional - Filter by the status of the external object in the external system. - **external_reference_service_model** (string) - Optional - Filter by the type of the external object this external reference belongs to. - **external_reference_service_model_ref** (integer) - Optional - Filter by the id of the external object this external reference belongs to. - **external_reference_service_model_refs** (string) - Optional - Filter for objects that correlate to the specified external object IDs. Provide a comma-separated list of up to 200 external IDs. - **external_reference_service_name** (string) - Optional - Filter by the name of the provider for integration. - **external_reference_status** (string) - Optional - Filter by the status of the integration, this can be successful or fail. - **has_external_references** (boolean) - Optional - Filter by whether or not the object has external references. - **has_value_for_custom_field_ids** (string) - Optional - Filter by the presence of a custom field value for the specified comma-separated custom field ID(s). - **include** (string) - Optional - Any of the below associations can be included in your request by providing the `include` param, e.g. `include=association1,association2`. * `account_membership` (AccountMembership) - Retrieves the account membership of the user, which represents the relationship of a user to an account. The response will include `account_membership_id`, which references the data in the `account_memberships` top-level key. * `custom_field_values` (CustomFieldValue) - Retrieves the user's custom field values that are viewable for the current user. The response will include `custom_field_value_ids`, which references the data in the `custom_field_values` top-level key. * `external_references` (ExternalReference) - Includes references to external integrations for this object. * `manager` (User) - Retrieves the user's manager. The response will include `manager_id`, which references the data in the `users` top-level key. * `role` (Role) - Retrieves the user's account role. The response will include `role_id`, which references the data in the `roles` top-level key. * `skill_memberships` (SkillMembership) - Retrieves the skill memberships of the user, which represent skills that have been assigned to a user. The response will include `skill_membership_ids`, which references the data in the `skill_memberships` top-level key. The `skill_memberships` data will include the user's proficiency level (for skills which can be assigned proficiency levels). * `skills` (Skill) - Retrieves the user's skills. The response will include `skill_ids`, which references the data in the `skills` top-level key. The `skills` data will include the skill description and category ID. * `work_samples` (WorkSample) - Retrieves the user's portfolio items. The response will include `work_sample_ids`, which references the data in the `work_samples` top-level key. - **is_project_lead** (boolean) - Optional - Only include users who have account level permission of project lead or above. - **managers** (boolean) - Optional - Only include users who are managers. Default false - **matching** (string) - Optional - **not_assigned_to** (integer) - Optional - Only includes users who are not assigned to a task with specified ID. - **not_following** (integer) - Optional - Only includes users who are not following a task with the specified ID. - **not_on_calendars** (string) - Optional - Only includes users who are not added to the specified holiday calendars (Format: 'calendar_id,calendar_id,calendar_id'. - **not_participant_in** (integer) - Optional - Only includes users not participating in a project with a specified ID. - **on_my_account** (boolean) - Optional - Returns all users on the requester's account. - **on_my_account_or_participant_in_workspace** (integer) - Optional - Returns all the users that are on the account, as well as all users participating in the provided workspace ID. - **only** (string) - Optional - Allows you to request one or more resources directly by ID. Multiple IDs can be supplied in a comma separated list, like `GET /api/v1/workspaces.json?only=5,6,7`. - **only_possible_managees** (boolean) - Optional - Only includes possible managees on the account. - **only_possible_managers** (boolean) - Optional - Only includes possible managers on the account. - **optional_fields** (Array of strings) - Optional - Allows you to request one or more optional fields as an array. Items Enum: "bio" "website" "city" "state" "country" "abbreviated_timezone" "last_site_activity" "classification" - **order** (string) - Optional - Supply `order` with the name of a valid sort field for the endpoint and a direction. Valid values: `alphabetical:asc` and `alphabetical:desc`. Default "alphabetical:asc" - **page** (integer) - Optional - Default 1 - **participant_in** (integer) - Optional ### Response #### Success Response (200) - **id** (integer) - The unique identifier for the user. - **name** (string) - The name of the user. - **email** (string) - The email address of the user. - **created_at** (string) - The datetime the user was created in ISO 8601 format. - **updated_at** (string) - The datetime the user was last updated in ISO 8601 format. - **account_membership_id** (integer) - The ID of the user's account membership. - **role_id** (integer) - The ID of the user's role. - **manager_id** (integer) - The ID of the user's manager. - **custom_field_value_ids** (array of integers) - An array of IDs for the user's custom field values. - **skill_membership_ids** (array of integers) - An array of IDs for the user's skill memberships. - **skill_ids** (array of integers) - An array of IDs for the user's skills. - **work_sample_ids** (array of integers) - An array of IDs for the user's work samples. - **external_reference_ids** (array of integers) - An array of IDs for the user's external references. ### Request Example ```json { "example": "GET /api/v1/users/me?include=account_membership,role&optional_fields=bio,city" } ``` ### Response Example ```json { "example": "{\n \"id\": 1,\n \"name\": \"John Doe\",\n \"email\": \"john.doe@example.com\",\n \"created_at\": \"2023-01-01T10:00:00Z\",\n \"updated_at\": \"2023-01-01T10:00:00Z\",\n \"account_membership_id\": 101,\n \"role_id\": 201,\n \"manager_id\": 301,\n \"custom_field_value_ids\": [1001, 1002],\n \"skill_membership_ids\": [2001, 2002],\n \"skill_ids\": [3001, 3002],\n \"work_sample_ids\": [4001, 4002],\n \"external_reference_ids\": [5001, 5002],\n \"bio\": \"Software Engineer\",\n \"city\": \"San Francisco\"\n}" } ``` ``` -------------------------------- ### Get Story Dependencies Source: https://developer.kantata.com/kantata/specification/stories/create%20story Retrieves story dependencies, which define relationships and sequences between tasks within a project. Supports different dependency types like Finish to Start (FS), Start to Start (SS), Finish to Finish (FF), and Start to Finish (SF), along with lag time. ```APIDOC ## GET /story_dependencies ### Description Retrieves a list of story dependencies. Story dependencies define relationships between tasks and the sequence in which they must be completed. Each relationship is characterized by the type of dependency (FS, SS, FF, SF) and lag between tasks. ### Method GET ### Endpoint /story_dependencies ``` -------------------------------- ### Fetching Posts with Associated Users and Attachments Source: https://developer.kantata.com/kantata/specification/estimates/create%20estimate This example demonstrates how to fetch posts and include associated user and attachment data by using the `include` query parameter. The response structure includes separate hashes for posts, users, and attachments, linked by IDs. ```APIDOC ## GET /posts.json?include=user,attachments ### Description Fetches posts and includes associated user and attachment data. ### Method GET ### Endpoint /posts.json #### Query Parameters - **include** (string) - Optional - Comma-separated list of associations to include (e.g., `user`, `attachments`). ### Request Example ```curl curl -H "Authorization: Bearer abc123" "https://api.mavenlink.com/api/v1/posts.json?include=user,attachments" ``` ### Response #### Success Response (200) - **count** (integer) - The total number of results. - **results** (array) - An array of mappings indicating the type and ID of the primary results. - **posts** (object) - A hash of post objects, keyed by ID. - **users** (object) - A hash of user objects, keyed by ID. - **attachments** (object) - A hash of attachment objects, keyed by ID. #### Response Example ```json { "count": 1, "results": [ { "key": "posts", "id": "16270634" } ], "posts": { "16270634": { "id": "16270634", "message": "Hello World", "has_attachments": true, "user_id": "2", "workspace_id": "2249167", "attachment_ids": ["6700107"] } }, "users": { "2": { "id": "2", "full_name": "John Doe", "email_address": "johnny_doe@example.com" } }, "attachments": { "6700107": { "id": "6700107", "created_at": "2013-04-15T16:48:48-07:00", "filename": "turtle.jpg", "filesize": 16225 } } } ``` ``` -------------------------------- ### Get Workspace Baselines Source: https://developer.kantata.com/kantata/specification/workspace-baselines/get%20workspace%20baselines Retrieves a list of workspace baselines. This is an example of how to authenticate and make a request to the API. ```APIDOC ## GET /workspaces.json ### Description Retrieves a list of workspace baselines. ### Method GET ### Endpoint https://api.mavenlink.com/api/v1/workspaces.json ### Authentication All requests require an `Authorization` header with a Bearer token. Example: `Authorization: Bearer abc123` ``` -------------------------------- ### Creating a Status Report with Included Data Source: https://developer.kantata.com/kantata/specification/status-reports/create%20status%20report This example demonstrates how to create a status report and include associated user data using the `include` parameter. The response will contain the requested report and associated objects keyed by their IDs. ```APIDOC ## GET /posts.json?include=user,attachments ### Description This endpoint allows you to retrieve posts and include associated data such as users and attachments. The response is structured to provide the main results, along with separate hashes for included objects, keyed by their IDs. ### Method GET ### Endpoint `/posts.json?include=user,attachments` ### Query Parameters - **include** (string) - Optional - Comma-separated list of associated objects to include (e.g., `user`, `attachments`). ### Request Example ```bash curl -H "Authorization: Bearer abc123" "https://api.mavenlink.com/api/v1/posts.json?include=user,attachments" ``` ### Response #### Success Response (200) - **count** (integer) - The total number of results. - **results** (array) - An array of mappings, each indicating the type and ID of the primary result. - **posts** (object) - A hash of post objects, keyed by their IDs. - **users** (object) - A hash of user objects, keyed by their IDs. - **attachments** (object) - A hash of attachment objects, keyed by their IDs. #### Response Example ```json { "count": 1, "results": [ { "key": "posts", "id": "16270634" } ], "posts": { "16270634": { "id": "16270634", "message": "Hello World", "has_attachments": true, "user_id": "2", "workspace_id": "2249167", "attachment_ids": ["6700107"] } }, "users": { "2": { "id": "2", "full_name": "John Doe", "email_address": "johnny_doe@example.com" } }, "attachments": { "6700107": { "id": "6700107", "created_at": "2013-04-15T16:48:48-07:00", "filename": "turtle.jpg", "filesize": 16225 } } } ``` ``` -------------------------------- ### Fetching Workspace Resources with Includes Source: https://developer.kantata.com/kantata/specification/workspace-resources/get%20workspace%20resources Demonstrates how to fetch workspace resources and include associated objects like users and attachments by using the `include` parameter. Multiple associations can be fetched by comma-separating values. ```APIDOC ## GET /posts.json?include=user,attachments ### Description Fetches posts and includes associated user and attachment data. ### Method GET ### Endpoint /posts.json?include=user,attachments ### Query Parameters - **include** (string) - Optional - Comma-separated list of associated objects to include (e.g., `user`, `attachments`). ### Response Example ```json { "count": 1, "results": [ { "key": "posts", "id": "16270634" } ], "posts": { "16270634": { "id": "16270634", "message": "Hello World", "has_attachments": true, "user_id": "2", "workspace_id": "2249167", "attachment_ids": ["6700107"] } }, "users": { "2": { "id": "2", "full_name": "John Doe", "email_address": "johnny_doe@example.com" } }, "attachments": { "6700107": { "id": "6700107", "created_at": "2013-04-15T16:48:48-07:00", "filename": "turtle.jpg", "filesize": 16225 } } } ``` ``` -------------------------------- ### Requesting Workspaces with Associations Source: https://developer.kantata.com/kantata/specification/holiday-calendar-associations/get%20holiday%20calendar%20association Example of a GET request to the /workspaces.json endpoint, demonstrating how associations like participants and primary counterparts are returned in the response. ```APIDOC ## GET /workspaces.json ### Description Retrieves a paginated list of workspaces, potentially including associated data such as participants and primary counterparts. ### Method GET ### Endpoint /workspaces.json ### Query Parameters - **page** (Integer) - Optional - The page number to retrieve. Defaults to 1. - **per_page** (Integer) - Optional - The number of items per page. Defaults to 20. Maximum is 200. - **limit** (Integer) - Optional - The maximum number of items to return. If used with `offset`, `page` and `per_page` are ignored. - **offset** (Integer) - Optional - The number of items to skip. If used with `limit`, `page` and `per_page` are ignored. - **only** (Comma separated Integers) - Optional - Request specific resources by their IDs. ### Response #### Success Response (200) - **count** (Integer) - The total number of objects returned by the entire query. - **results** (Array) - An array of canonical results, containing keys and IDs of the requested objects. - **workspaces** (Object) - An object containing detailed workspace data, keyed by workspace ID. - **users** (Object) - An object containing associated user data, keyed by user ID. ### Response Example ```json { "count": 2, "results": [{ "key": "workspaces", "id": "10" }, { "key": "workspaces", "id": "11" }], "workspaces": { "10": { "id": "10", "title": "some project", "participant_ids": ["2", "6"], "primary_counterpart_id": "6" }, "11": { "id": "11", "title": "another project", "participant_ids": ["2", "8"], "primary_counterpart_id": "8" } }, "users": { "2": { "id": "2", "full_name": "bob" }, "6": { "id": "6", "full_name": "chaz" }, "8": { "id": "8", "full_name": "jane" } } } ``` ``` -------------------------------- ### Fetching Posts with Includes Source: https://developer.kantata.com/kantata/specification/project-template-assignments/update%20project%20template%20assignment Demonstrates how to fetch posts and include associated user and attachment data using the `include` parameter. ```APIDOC ## GET /posts.json?include=user,attachments ### Description Fetches posts and includes associated user and attachment data. ### Method GET ### Endpoint /posts.json #### Query Parameters - **include** (string) - Optional - Comma-separated list of associated objects to include (e.g., `user`, `attachments`). ### Request Example ```bash curl -H "Authorization: Bearer abc123" "https://api.mavenlink.com/api/v1/posts.json?include=user,attachments" ``` ### Response #### Success Response (200) - **count** (integer) - The total number of results. - **results** (array) - An array of mappings indicating the type and id of the primary results. - **posts** (object) - A hash of post objects, keyed by id. - **users** (object) - A hash of user objects, keyed by id. - **attachments** (object) - A hash of attachment objects, keyed by id. #### Response Example ```json { "count": 1, "results": [ { "key": "posts", "id": "16270634" } ], "posts": { "16270634": { "id": "16270634", "message": "Hello World", "has_attachments": true, "user_id": "2", "workspace_id": "2249167", "attachment_ids": ["6700107"] } }, "users": { "2": { "id": "2", "full_name": "John Doe", "email_address": "johnny_doe@example.com" } }, "attachments": { "6700107": { "id": "6700107", "created_at": "2013-04-15T16:48:48-07:00", "filename": "turtle.jpg", "filesize": 16225 } } } ``` ``` -------------------------------- ### Get Exchange Tables with Pagination Source: https://developer.kantata.com/kantata/specification/exchange-tables/get%20exchange%20tables This example demonstrates how to retrieve exchange tables, specifying pagination parameters to control the number of results returned. ```APIDOC ## GET /api/v1/workspaces.json ### Description Retrieves a paginated list of workspaces. ### Method GET ### Endpoint /api/v1/workspaces.json ### Query Parameters - **page** (Integer) - Optional - The page number to retrieve. Defaults to 1. - **per_page** (Integer) - Optional - The number of items per page. Defaults to 20. Maximum is 200. - **limit** (Integer) - Optional - The maximum number of items to return. If used with `offset`, `page` and `per_page` are ignored. - **offset** (Integer) - Optional - The number of items to skip. If used with `limit`, `page` and `per_page` are ignored. ### Request Example ``` GET /api/v1/workspaces.json?page=2&per_page=15 ``` ### Request Example (using limit and offset) ``` GET /api/v1/workspaces.json?limit=15&offset=10 ``` ### Response #### Success Response (200) - **count** (Integer) - The total number of objects returned by the entire query. - **results** (Array) - An array of canonical results. - **workspaces** (Object) - An object containing workspace details, keyed by workspace ID. - **users** (Object) - An object containing user details, keyed by user ID. #### Response Example ```json { "count": 2, "results": [{ "key": "workspaces", "id": "10" }, { "key": "workspaces", "id": "11" }], "workspaces": { "10": { "id": "10", "title": "some project", "participant_ids": ["2", "6"], "primary_counterpart_id": "6" }, "11": { "id": "11", "title": "another project", "participant_ids": ["2", "8"], "primary_counterpart_id": "8" } }, "users": { "2": { "id": "2", "full_name": "bob" }, "6": { "id": "6", "full_name": "chaz" }, "8": { "id": "8", "full_name": "jane" } } } ``` ``` -------------------------------- ### Create Workspace Source: https://developer.kantata.com/kantata/specification/workspaces/get%20my%20permissions%20in%20workspace This snippet demonstrates how to create a new workspace using the POST /workspaces endpoint. It includes a comprehensive example of the request body with various optional and required fields. ```APIDOC ## POST /workspaces ### Description Creates a new workspace with specified configurations. ### Method POST ### Endpoint /workspaces ### Request Body - **workspace** (object) - Required - Contains all the properties for the new workspace. - **consultant_role_name** (string) - The name of the consultant role. - **client_role_name** (string) - The name of the client role. - **budgeted** (boolean) - Indicates if the workspace is budgeted. - **start_date** (string) - The start date of the workspace (YYYY-MM-DD). - **due_date** (string) - The due date of the workspace (YYYY-MM-DD). - **description** (string) - A description of the workspace. - **currency** (string) - The currency for the workspace. - **access_level** (string) - The access level for the workspace (e.g., 'invitation'). - **rate_card_id** (integer) - The ID of the rate card. - **exclude_archived_stories_percent_complete** (boolean) - Whether to exclude archived stories from percent complete calculation. - **tasks_default_non_billable** (boolean) - Whether tasks are non-billable by default. - **stories_are_fixed_fee_by_default** (boolean) - Whether stories are fixed fee by default. - **expenses_in_burn_rate** (boolean) - Whether expenses are included in burn rate. - **actual_fees_includes_expenses** (boolean) - Whether actual fees include expenses. - **actual_fees_includes_additional_line_items** (boolean) - Whether actual fees include additional line items. - **posts_require_privacy_decision** (boolean) - Whether posts require a privacy decision. - **status_key** (integer) - The status key for the workspace. - **invoice_preference** (object) - Invoice preferences for the workspace. - **client_invoice_address** (string) - Client invoice address. - **client_invoice_name** (string) - Client invoice name. - **consultant_invoice_address** (string) - Consultant invoice address. - **consultant_invoice_name** (string) - Consultant invoice name. - **project_code** (string) - Project code for invoicing. - **purchase_order** (string) - Purchase order number. - **approver_id** (integer) - The ID of the approver. - **workspace_group_ids** (array of integers) - IDs of workspace groups. - **project_template_start_date** (string) - Start date for project template (YYYY-MM-DD). - **project_template_checklist_as_todos** (boolean) - Whether to convert checklist items to todos in project template. - **project_template_assignment_mappings** (array of objects) - Mappings for resource and user assignments in project template. - **resource_id** (integer) - Resource ID. - **user_id** (integer) - User ID. - **role_id** (integer) - Role ID. - **project_template_weekends_as_workdays** (boolean) - Whether weekends are workdays in project template. - **project_template_create_unnamed_resources** (boolean) - Whether to create unnamed resources in project template. - **project_template_distribute_hours** (boolean) - Whether to distribute hours in project template. - **project_tracker_template_id** (integer) - ID of the project tracker template. - **primary_workspace_group_id** (integer) - ID of the primary workspace group. - **target_margin** (number) - Target margin for the workspace. - **external_reference** (object) - External reference details. - **service_name** (string) - Name of the external service. - **service_model** (string) - Model of the external service. - **service_model_ref** (string) - Reference to the external service model. - **status** (string) - Status of the external reference. - **external_message** (string) - External message. - **external_link** (string) - Link to the external reference. - **external_status** (string) - External status. - **locked** (boolean) - Whether the external reference is locked. - **account_color_id** (integer) - ID of the account color. - **external_link** (object) - An external link associated with the workspace. - **text** (string) - Display text for the external link. - **url** (string) - URL for the external link. - **account_insights_mapping_ids** (array of integers) - IDs for account insights mapping. - **custom_fields** (array of objects) - Custom fields for the workspace. - **custom_field_id** (integer) - ID of the custom field. - **value** (string) - Value of the custom field. - **stage** (string) - The stage of the workspace (e.g., 'estimate'). - **require_notes_on_time_entries** (boolean) - Whether notes are required for time entries. - **time_trackable** (boolean) - Whether time is trackable for the workspace. - **title** (string) - The title of the workspace. - **creator_role** (string) - The role of the creator (e.g., 'client'). - **price** (number) - The price of the workspace. - **change_orders_enabled** (boolean) - Whether change orders are enabled. - **change_orders** (boolean) - Indicates if change orders are active. - **organizations** (array of objects) - Organizations associated with the workspace. - **department_id** (integer) - Department ID. - **geography_id** (integer) - Geography ID. - **participations** (array of objects) - Participations in the workspace. - **user_id** (integer) - User ID. - **access** (string) - Access level for the participation. - **primary_maven_id** (integer) - ID of the primary Maven. - **require_expense_approvals** (boolean) - Whether expense approvals are required. - **require_time_approvals** (boolean) - Whether time approvals are required. - **estimate_scenario_id** (integer) - ID of the estimate scenario. - **attachment_ids** (array of integers) - IDs of attachments. - **task_status_set_id** (integer) - ID of the task status set. ### Request Example ```json { "workspace": { "consultant_role_name": "string", "client_role_name": "string", "budgeted": true, "start_date": "2019-08-24", "due_date": "2019-08-24", "description": "string", "currency": "string", "access_level": "invitation", "rate_card_id": 0, "exclude_archived_stories_percent_complete": true, "tasks_default_non_billable": true, "stories_are_fixed_fee_by_default": true, "expenses_in_burn_rate": true, "actual_fees_includes_expenses": true, "actual_fees_includes_additional_line_items": true, "posts_require_privacy_decision": true, "status_key": 0, "invoice_preference": { "client_invoice_address": "string", "client_invoice_name": "string", "consultant_invoice_address": "string", "consultant_invoice_name": "string", "project_code": "string", "purchase_order": "string" }, "approver_id": 0, "workspace_group_ids": [ 0 ], "project_template_start_date": "2019-08-24", "project_template_checklist_as_todos": true, "project_template_assignment_mappings": [ { "resource_id": 0, "user_id": 0, "role_id": 0 } ], "project_template_weekends_as_workdays": true, "project_template_create_unnamed_resources": true, "project_template_distribute_hours": true, "project_tracker_template_id": 0, "primary_workspace_group_id": 0, "target_margin": 0, "external_reference": { "service_name": "string", "service_model": "string", "service_model_ref": "string", "status": "string", "external_message": "string", "external_link": "string", "external_status": "string", "locked": true }, "account_color_id": 0, "external_link": { "text": "string", "url": "string" }, "account_insights_mapping_ids": [ 0 ], "custom_fields": [ { "custom_field_id": 0, "value": "string" } ], "stage": "estimate", "require_notes_on_time_entries": true, "time_trackable": true, "title": "string", "creator_role": "client", "price": 0, "change_orders_enabled": true, "change_orders": true, "organizations": [ { "department_id": 0, "geography_id": 0 } ], "participations": [ { "user_id": 0, "access": "edit_tasks" } ], "primary_maven_id": 0, "require_expense_approvals": true, "require_time_approvals": true, "estimate_scenario_id": 0, "attachment_ids": [ 0 ], "task_status_set_id": 0 } } ``` ### Response #### Success Response (200) - **workspace** (object) - Details of the created workspace. - **id** (integer) - The unique identifier for the created workspace. - **title** (string) - The title of the workspace. - **currency** (string) - The currency used in the workspace. - **start_date** (string) - The start date of the workspace. - **due_date** (string) - The due date of the workspace. - **access_level** (string) - The access level of the workspace. - **budgeted** (boolean) - Indicates if the workspace is budgeted. - **description** (string) - Description of the workspace. - **status_key** (integer) - The status key of the workspace. - **rate_card_id** (integer) - The ID of the rate card associated with the workspace. - **approver_id** (integer) - The ID of the approver for the workspace. - **created_at** (string) - Timestamp when the workspace was created. - **updated_at** (string) - Timestamp when the workspace was last updated. - **creator_role** (string) - The role of the user who created the workspace. - **time_trackable** (boolean) - Indicates if time tracking is enabled for the workspace. - **require_notes_on_time_entries** (boolean) - Indicates if notes are required for time entries. - **tasks_default_non_billable** (boolean) - Indicates if tasks are non-billable by default. - **stories_are_fixed_fee_by_default** (boolean) - Indicates if stories are fixed fee by default. - **expenses_in_burn_rate** (boolean) - Indicates if expenses are included in the burn rate calculation. - **actual_fees_includes_expenses** (boolean) - Indicates if actual fees include expenses. - **actual_fees_includes_additional_line_items** (boolean) - Indicates if actual fees include additional line items. - **posts_require_privacy_decision** (boolean) - Indicates if posts require a privacy decision. - **exclude_archived_stories_percent_complete** (boolean) - Indicates if archived stories are excluded from percent complete calculation. - **project_template_checklist_as_todos** (boolean) - Indicates if checklist items are converted to todos in project templates. - **project_template_weekends_as_workdays** (boolean) - Indicates if weekends are considered workdays in project templates. - **project_template_create_unnamed_resources** (boolean) - Indicates if unnamed resources are created in project templates. - **project_template_distribute_hours** (boolean) - Indicates if hours are distributed in project templates. - **project_tracker_template_id** (integer) - The ID of the project tracker template. - **primary_workspace_group_id** (integer) - The ID of the primary workspace group. - **target_margin** (number) - The target margin for the workspace. - **account_color_id** (integer) - The ID of the account color. - **custom_fields** (array) - An array of custom fields associated with the workspace. - **stage** (string) - The current stage of the workspace. - **change_orders_enabled** (boolean) - Indicates if change orders are enabled. - **change_orders** (boolean) - Indicates if change orders are active. - **require_expense_approvals** (boolean) - Indicates if expense approvals are required. - **require_time_approvals** (boolean) - Indicates if time approvals are required. - **estimate_scenario_id** (integer) - The ID of the estimate scenario. - **task_status_set_id** (integer) - The ID of the task status set. - **external_reference** (object) - External reference details. - **external_link** (object) - External link details. - **invoice_preference** (object) - Invoice preference details. - **workspace_groups** (array) - Workspace groups associated with the workspace. - **workspace_resources** (array) - Workspace resources associated with the workspace. - **timesheet_submissions** (array) - Timesheet submissions associated with the workspace. - **organizations** (array) - Organizations associated with the workspace. - **participations** (array) - Participations in the workspace. - **attachment_ids** (array of integers) - IDs of attachments. - **account_insights_mapping_ids** (array of integers) - IDs for account insights mapping. - **project_template_assignment_mappings** (array of objects) - Mappings for resource and user assignments in project template. ### Response Example ```json { "workspace": { "id": 1, "title": "Example Workspace", "currency": "USD", "start_date": "2023-01-01", "due_date": "2023-12-31", "access_level": "public", "budgeted": true, "description": "This is an example workspace.", "status_key": 1, "rate_card_id": 10, "approver_id": 5, "created_at": "2023-01-01T10:00:00Z", "updated_at": "2023-01-01T10:00:00Z", "creator_role": "client", "time_trackable": true, "require_notes_on_time_entries": false, "tasks_default_non_billable": false, "stories_are_fixed_fee_by_default": false, "expenses_in_burn_rate": true, "actual_fees_includes_expenses": true, "actual_fees_includes_additional_line_items": true, "posts_require_privacy_decision": true, "exclude_archived_stories_percent_complete": false, "project_template_checklist_as_todos": false, "project_template_weekends_as_workdays": false, "project_template_create_unnamed_resources": false, "project_template_distribute_hours": false, "project_tracker_template_id": 20, "primary_workspace_group_id": 30, "target_margin": 15.5, "account_color_id": 40, "custom_fields": [], "stage": "planning", "change_orders_enabled": true, "change_orders": false, "require_expense_approvals": true, "require_time_approvals": true, "estimate_scenario_id": 50, "task_status_set_id": 60, "external_reference": { "service_name": "ExternalService", "service_model": "ModelX", "service_model_ref": "ref123", "status": "active", "external_message": "OK", "external_link": "http://example.com/external", "external_status": "synced", "locked": false }, "external_link": { "text": "External Link", "url": "http://example.com" }, "invoice_preference": { "client_invoice_address": "123 Client St", "client_invoice_name": "Client Corp", "consultant_invoice_address": "456 Consultant Ave", "consultant_invoice_name": "Consultant Inc", "project_code": "P123", "purchase_order": "PO789" }, "workspace_groups": [], "workspace_resources": [], "timesheet_submissions": [], "organizations": [], "participations": [], "attachment_ids": [], "account_insights_mapping_ids": [], "project_template_assignment_mappings": [] } } ``` ```