### Example GET Response for an Action Source: https://docs.actionstep.com/api-responses This example shows the JSON structure returned by a GET request to retrieve details of a specific action, including linked action type data. It demonstrates the 'links', 'actions', 'linked', and 'meta' sections. ```json GET /api/rest/actions/3?include=actionTypes { "links": { "actions.assignedTo": { "href": "https://ap-southeast-2.actionstepstaging.com.actionstep.com/api/rest/participants/{actions.assignedTo}", "type": "participants" }, "actions.division": { "href": "https://ap-southeast-2.actionstepstaging.com.actionstep.com/api/rest/divisions/{actions.division}", "type": "divisions" }, "actions.actionType": { "href": "https://ap-southeast-2.actionstepstaging.com.actionstep.com/api/rest/actiontypes/{actions.actionType}", "type": "actiontypes" }, "actions.primaryParticipants": { "href": "https://ap-southeast-2.actionstepstaging.com.actionstep.com/api/rest/participants/{actions.primaryParticipants}", "type": "participants" }, "actions.step": { "href": "https://ap-southeast-2.actionstepstaging.com.actionstep.com/api/rest/steps/{actions.step}", "type": "steps" }, "actions.billSettings": { "href": "https://ap-southeast-2.actionstepstaging.com.actionstep.com/api/rest/actionbillsettings/{actions.billSettings}", "type": "actionbillsettings" }, "actions.relatedActions": { "href": "https://ap-southeast-2.actionstepstaging.com.actionstep.com/api/rest/actions/{actions.relatedActions}", "type": "actions" }, "actiontypes.primaryParticipantType": { "href": "https://ap-southeast-2.actionstepstaging.com.actionstep.com/api/rest/participanttypes/{actiontypes.primaryParticipantType}", "type": "participanttypes" } }, "actions": { "id": 3, "name": "Matter No 3", "reference": null, "priority": 0, "status": "Active", "statusTimestamp": "2020-04-03T12:33:58+13:00", "isBillableOverride": null, "createdTimestamp": "2020-04-03", "modifiedTimestamp": "2020-04-30T11:27:31+12:00", "isDeleted": "F", "deletedBy": null, "deletedTimestamp": null, "isFavorite": "F", "overrideBillingStatus": null, "lastAccessTimestamp": "2020-04-03T12:34:30+13:00", "links": { "assignedTo": "10", "division": "1", "actionType": "7", "primaryParticipants": [ "10" ], "step": "7--0", "billSettings": "3", "relatedActions": null } }, "linked": { "actiontypes": [ { "id": 7, "name": "General", "description": "General Matter", "copyrightHolder": "Legal Eagles Limited", "copyrightContact": "http://www.legaleagles.com", "copyrightEmail": "accounts@legaleagles.com", "trackActualTime": "F", "trackBillableTime": "F", "isForMarketingCampaigns": "F", "isForMarketingEvents": "F", "isForEmployees": "F", "isForCrm": "F", "isForDebtCollection": "F", "isDisabled": "F", "isBillable": "T", "enableActionImage": "T", "defaultEmailSubject": null, "logoFilename": "document-open-5.png", "customLogoFilename": "", "customLogoDirectory": "", "customLogoFilesize": "", "customLogoModifiedTimestamp": "", "templateIdentifier": null, "allowCloseWithOpenInvoice": "F", "allowInlineCustomizing": "F", "canCreate": "F", "links": { "primaryParticipantType": "27" } } ] }, "meta": { "paging": { "actions": { "recordCount": 1, "pageCount": 1, "page": 1, "pageSize": 50, "prevPage": null, "nextPage": null } }, "debug": { "requestTime": "0.078199", "mem": "2.67mb", "server": "app-003ff685daa3.ap-southeast-2.actionstepstaging.com", "cb": "T21726-23073-7", "time": "2020-05-01 14:54:08 +1200 (Pacific/Auckland)", "appload": "0.16, 0.17, 0.11", "app": "0.024655", "db": "0.053544", "dbc": "0.006721", "qc": "64", "uqc": "34", "fc": "1,611", "rl": null } } } ``` -------------------------------- ### Get All Settings Source: https://docs.actionstep.com/downloads/Platform-JSON-V1-public-API-postman-collection.json Retrieves all settings from the API. No specific setup is required beyond having a valid API endpoint. ```http GET {{api_endpoint}}/api/rest/settings ``` -------------------------------- ### Start Ngrok Proxy Source: https://docs.actionstep.com/demonstration-application Use this command to start an Ngrok HTTP tunnel to your local development server. Ensure the port matches your application's listening port. The --host-header flag is crucial for correct routing. ```bash c:\> ngrok http 50241 --host-header="localhost:50241" --region au ``` -------------------------------- ### Example API Credentials Source: https://docs.actionstep.com/api-credentials An example set of API Credentials, comprising a Client ID and Client Secret, is shown below. These are required for authenticating to the Actionstep infrastructure. ```text Client ID: XYGVCSBS8GKEKA7DM6F8VHMNUHILICAXFSXRX4M5C4XNFBVSIIA Client Secret: EQA1U2NWRMIAIHADC1VUKDAKZOHFHRTK0GHTRXZITEBSG9D0KJG ``` -------------------------------- ### Links Section Example Source: https://docs.actionstep.com/api-responses An example of the links section in an API response, detailing how to access related resources via href templates. ```json "links": { "actions.assignedTo": { "href": "https://ap-southeast-2.actionstepstaging.com.actionstep.com/api/rest/participants/{actions.assignedTo}", "type": "participants" } ... } ``` -------------------------------- ### Reporting Endpoint Base URL Example Source: https://docs.actionstep.com/reporting-endpoints This is an example of the base URL format for the reporting endpoint, replacing 'rest' with 'v2'. ```http https://ap-southeast-2.actionstep.com/api/v2/reporting/reports ``` -------------------------------- ### Retrieve All Participants Source: https://docs.actionstep.com/downloads/Platform-JSON-V1-public-API-postman-collection.json GET request to fetch a list of all participants. No specific setup required beyond the API endpoint. ```json { "name": "all participants", "request": { "method": "GET", "header": [], "url": { "raw": "{{api_endpoint}}/api/rest/participants", "host": [ "{{api_endpoint}}" ], "path": [ "api", "rest", "participants" ] } }, "response": [] } ``` -------------------------------- ### Get All Tasks Source: https://docs.actionstep.com/downloads/Platform-JSON-V1-public-API-postman-collection.json Retrieves a list of all tasks available in the system. ```APIDOC ## GET /api/rest/tasks ### Description Retrieves a list of all tasks. ### Method GET ### Endpoint /api/rest/tasks ### Parameters None ### Request Example None ### Response #### Success Response (200) - **tasks** (array) - A list of task objects. ``` -------------------------------- ### Get All System Roles Source: https://docs.actionstep.com/downloads/Platform-JSON-V1-public-API-postman-collection.json Retrieves a list of all available system roles. ```http GET {{api_endpoint}}/api/rest/roles ``` -------------------------------- ### Get All System Users Source: https://docs.actionstep.com/downloads/Platform-JSON-V1-public-API-postman-collection.json Retrieves a list of all users in the system. ```APIDOC ## GET /api/rest/users ### Description Retrieves a list of all users in the system. ### Method GET ### Endpoint {{api_endpoint}}/api/rest/users ``` -------------------------------- ### Get All Units Source: https://docs.actionstep.com/downloads/Platform-JSON-V1-public-API-postman-collection.json Retrieves a list of all available units. ```APIDOC ## GET /api/rest/units ### Description Retrieves a list of all available units. ### Method GET ### Endpoint {{api_endpoint}}/api/rest/units ``` -------------------------------- ### Example JSON Response for Access Token Refresh Source: https://docs.actionstep.com/authentication This is an example of the JSON response you will receive after successfully refreshing an access token. It includes the new access token, its type, expiration time, API endpoint, organization key, and a new refresh token. ```json { "access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.......EcfoIdjpVy-UV1aIAYFHgQhM_PfSg", "token_type": "bearer", "expires_in": 28800, "api_endpoint": "https://ap-southeast-2.actionstepstaging.com/api/", "orgkey": "legalES", "refresh_token": "OWFjYTExZDk1OWFmNjU4YjNjOGFmZjE2MDhiMzJhNjQ1MTBlNTk5OTExODhl" } ``` -------------------------------- ### Get All Task Templates Source: https://docs.actionstep.com/downloads/Platform-JSON-V1-public-API-postman-collection.json Retrieves a list of all available task templates. ```APIDOC ## GET /api/rest/tasktemplates ### Description Retrieves a list of all task templates. ### Method GET ### Endpoint /api/rest/tasktemplates ### Parameters None ### Request Example None ### Response #### Success Response (200) - **taskTemplates** (array) - A list of task template objects. ``` -------------------------------- ### Get All Document Templates Source: https://docs.actionstep.com/downloads/Platform-JSON-V1-public-API-postman-collection.json Retrieves a list of all available document templates. ```APIDOC ## GET /api/rest/documenttemplates ### Description Retrieves a list of all document templates. ### Method GET ### Endpoint {{api_endpoint}}/api/rest/documenttemplates ``` -------------------------------- ### Get All Action Permissions Source: https://docs.actionstep.com/downloads/Platform-JSON-V1-public-API-postman-collection.json Retrieves a list of all action permissions available in the system. ```http GET {{api_endpoint}}/api/rest/actionpermissions ``` -------------------------------- ### Callback with Authorization Code Source: https://docs.actionstep.com/authentication Example of how the Actionstep redirect URI will be called with the authorization code appended. ```url https://www.myorganisation.com/mymethod?code=b3b62e5a9421a92a25d1bb558f02438d7eaf7c99 ``` -------------------------------- ### Get All Action Permissions Source: https://docs.actionstep.com/downloads/Platform-JSON-V1-public-API-postman-collection.json Retrieves a list of all action permissions available in the system. ```APIDOC ## GET /api/rest/actionpermissions ### Description Retrieves a list of all action permissions available in the system. ### Method GET ### Endpoint /api/rest/actionpermissions ``` -------------------------------- ### Get All Billing Preferences Source: https://docs.actionstep.com/downloads/Platform-JSON-V1-public-API-postman-collection.json Retrieves a list of all billing preferences. This is useful for an overview of billing settings. ```json { "name": "all billingpreferences", "request": { "method": "GET", "header": [], "url": { "raw": "{{api_endpoint}}/api/rest/billingpreferences", "host": [ "{{api_endpoint}}" ], "path": [ "api", "rest", "billingpreferences" ] } }, "response": [] } ``` -------------------------------- ### Get All Rates Source: https://docs.actionstep.com/downloads/Platform-JSON-V1-public-API-postman-collection.json Retrieves a list of all available rates. This endpoint is useful for fetching all rate configurations. ```json { "name": "all rates", "request": { "method": "GET", "header": [], "url": { "raw": "{{api_endpoint}}/api/rest/rates", "host": [ "{{api_endpoint}}" ], "path": [ "api", "rest", "rates" ] } }, "response": [] } ``` -------------------------------- ### Get All Tasks Source: https://docs.actionstep.com/downloads/Platform-JSON-V1-public-API-postman-collection.json Retrieves a list of all tasks. Use this endpoint to fetch all task records. ```HTTP GET {{api_endpoint}}/api/rest/tasks ``` -------------------------------- ### All Steps Source: https://docs.actionstep.com/downloads/Platform-JSON-V1-public-API-postman-collection.json Retrieves a list of all steps. ```APIDOC ## GET /api/rest/steps ### Description Retrieves a list of all steps. ### Method GET ### Endpoint /api/rest/steps ``` -------------------------------- ### GET Actions - Filter by Status Source: https://docs.actionstep.com/api-requests Retrieve actions that exactly match the specified status, for example, 'closed'. ```http GET /api/rest/actions?status=closed ``` -------------------------------- ### Retrieve all NetDocs Settings records Source: https://docs.actionstep.com/downloads/Platform-JSON-V1-public-API-postman-collection.json GET request to retrieve all Action NetDocs Settings records. ```json { "name": "Retrieve all NetDocs Settings records", "request": { "method": "GET", "header": [], "url": { "raw": "{{api_endpoint}}/api/rest/actionnetdocssettings", "host": [ "{{api_endpoint}}" ], "path": [ "api", "rest", "actionnetdocssettings" ] } }, "response": [] } ``` -------------------------------- ### Retrieve All Quick Codes API Request Source: https://docs.actionstep.com/downloads/Platform-JSON-V1-public-API-postman-collection.json GET request to retrieve a list of all available quick codes. ```http GET {{api_endpoint}}/api/rest/quickcodes ``` -------------------------------- ### Retrieve All Participant Additional Notification Methods Source: https://docs.actionstep.com/downloads/Platform-JSON-V1-public-API-postman-collection.json GET request to fetch all additional notification methods for participants. No specific setup required beyond the API endpoint. ```json { "name": "Retrieve all Participant Additional Notification Methods", "request": { "method": "GET", "header": [], "url": { "raw": "{{api_endpoint}}/api/rest/participantadditionalnotificationmethods", "host": [ "{{api_endpoint}}" ], "path": [ "api", "rest", "participantadditionalnotificationmethods" ] } }, "response": [] } ``` -------------------------------- ### Create an action folder Source: https://docs.actionstep.com/downloads/Platform-JSON-V1-public-API-postman-collection.json POST request to create a new action folder with a specified name and links. ```json { "name": "create an action folder", "request": { "method": "POST", "header": [], "body": { "mode": "raw", "raw": "{\n\t\"actionfolders\": {\n\t\t\"name\": \"New folder\",\n\t\t\"links\": {\n\t\t\t\"action\": \"1572816\", \t\t\t\"parentFolder\": null\n\t\t}\n\t}\n}" }, "url": { "raw": "{{api_endpoint}}/api/rest/actionfolders", "host": [ "{{api_endpoint}}" ], "path": [ "api", "rest", "actionfolders" ] } }, "response": [] } ``` -------------------------------- ### Retrieve Phone Records by Participant Name Source: https://docs.actionstep.com/tutorial-phone-records Make a GET request to the _phonerecords_ endpoint with a filter to retrieve phone records. This example filters by a partial participant name. ```json GET /api/phonerecords?participant.name=John Doe ``` -------------------------------- ### Initialize MultipartFormDataContent in C# Source: https://docs.actionstep.com/uploading-and-downloading-documents Sets up the necessary content type for multipart form data uploads in C#. ```csharp var content = new MultipartFormDataContent(); content.Headers.ContentType.MediaType = "multipart/form-data"; ``` -------------------------------- ### Create a NetDocs Settings record Source: https://docs.actionstep.com/downloads/Platform-JSON-V1-public-API-postman-collection.json POST request to create a new Action NetDocs Settings record with specified details and links. ```json { "name": "Create a NetDocs Settings record", "request": { "method": "POST", "header": [], "body": { "mode": "raw", "raw": "{\n\t\"actionnetdocssettings\": {\n\t\t\"workspaceIdentifier\": \"\",\n\t\t\"parentWorkspaceIdentifier\": \"\",\n\t\t\"workspaceEnvId\": \"\",\n\t\t\"workspaceFolderJson\": \"\",\n\t\t\"links\": {\n\t\t\t\"action\": 1500,\n\t\t\t\"participant\": 220\n\t\t}\n\t}\n}" }, "url": { "raw": "{{api_endpoint}}/api/rest/actionnetdocssettings", "host": [ "{{api_endpoint}}" ], "path": [ "api", "rest", "actionnetdocssettings" ] } }, "response": [] } ``` -------------------------------- ### Get User by ID API Request Source: https://docs.actionstep.com/downloads/Platform-JSON-V1-public-API-postman-collection.json This snippet demonstrates how to retrieve a specific system user by their ID using a GET request. ```json { "name": "one system user by id", "request": { "method": "GET", "header": [], "url": { "raw": "{{api_endpoint}}/api/rest/users/1", "host": [ "{{api_endpoint}}" ], "path": [ "api", "rest", "users", "1" ] } }, "response": [] } ``` -------------------------------- ### Create a Matter Document with Tags Source: https://docs.actionstep.com/tutorial-managing-document-tags Use a POST request to create a new matter document and assign initial tags. Ensure tags are pre-created and their IDs are provided in the 'links.tags' array. ```json POST {api_endpoint}/api/rest/actiondocuments { "actiondocuments": { "name": "My action document", "file": "DL::Actions::15::127", "links": { "action": "15", "tags": [ 10001, 10002, ] } } } ``` ```json { "actiondocuments": { "id": 129, "name": "My action document", "modifiedTimestamp": "", "status": "uploaded", "keywords": null, "summary": null, "checkedOutTimestamp": null, "fileType": null, "checkedOutTo": null, "checkedOutEtaTimestamp": null, "fileSize": 35204, "extension": ".", "sharepointUrl": "", "fileName": "15_20221124095129_My_action_document.", "isDeleted": "F", "file": "DL::Actions::15::129", "links": { "action": "15", "checkedOutBy": null, "folder": null, "createdBy": "22", "tags": [ "10001", "10002" ] "documentTemplate": null } }, ... } ``` -------------------------------- ### Get Current User API Request Source: https://docs.actionstep.com/downloads/Platform-JSON-V1-public-API-postman-collection.json This snippet shows how to make a GET request to retrieve the current user's information. ```json { "name": "current user", "request": { "method": "GET", "header": [], "url": { "raw": "{{api_endpoint}}/api/rest/users/current", "host": [ "{{api_endpoint}}" ], "path": [ "api", "rest", "users", "current" ] } }, "response": [] } ``` -------------------------------- ### all settings Source: https://docs.actionstep.com/downloads/Platform-JSON-V1-public-API-postman-collection.json Retrieves all settings for the platform. This endpoint provides a comprehensive list of configurable settings. ```APIDOC ## GET /api/rest/settings ### Description Retrieves all settings for the platform. This endpoint provides a comprehensive list of configurable settings. ### Method GET ### Endpoint /api/rest/settings ``` -------------------------------- ### Create Task Source: https://docs.actionstep.com/downloads/Platform-JSON-V1-public-API-postman-collection.json Creates a new task in the system. ```APIDOC ## POST /api/rest/tasks ### Description Creates a new task. ### Method POST ### Endpoint /api/rest/tasks ### Parameters None ### Request Body - **tasks** (object) - Required - The task object to create. - **name** (string) - Required - The name of the task. - **links** (object) - Optional - Links related to the task. - **assignee** (string) - Optional - The ID of the assignee. ``` -------------------------------- ### Get Action Change Step Source: https://docs.actionstep.com/downloads/Platform-JSON-V1-public-API-postman-collection.json Retrieves a specific action change step by its ID. Use this to get details of a particular step in an action. ```json { "name": "get one actionchangestep", "request": { "method": "GET", "header": [], "url": { "raw": "{{api_endpoint}}/api/rest/actionchangestep/290", "host": [ "{{api_endpoint}}" ], "path": [ "api", "rest", "actionchangestep", "290" ] } }, "response": [] } ``` -------------------------------- ### Request Fields for Multiple Resources with Include Source: https://docs.actionstep.com/api-requests When using an 'include' clause, you can specify fields for different resources. This example requests 'timestampDate' for time entries and 'displayName' for participants. ```http GET /api/rest/timeentries/1?include=owner&fields[timeentries]=timestampDate&fields[participants]=displayName ``` -------------------------------- ### Get One Document Template by ID Source: https://docs.actionstep.com/downloads/Platform-JSON-V1-public-API-postman-collection.json Retrieves a single document template using its ID. Provide the specific ID to get template details. ```json { "name": "one documenttemplate by id", "request": { "method": "GET", "header": [], "url": { "raw": "{{api_endpoint}}/api/rest/documenttemplates/26", "host": [ "{{api_endpoint}}" ], "path": [ "api", "rest", "documenttemplates", "26" ] } }, "response": [] } ``` -------------------------------- ### Retrieve all actions Source: https://docs.actionstep.com/downloads/Platform-JSON-V1-public-API-postman-collection.json Fetches a list of all actions in the system. ```json { "name": "all actions", "request": { "method": "GET", "header": [], "url": { "raw": "{{api_endpoint}}/api/rest/actions", "host": [ "{{api_endpoint}}" ], "path": [ "api", "rest", "actions" ] } }, "response": [] } ``` -------------------------------- ### Configure Actionstep AppSettings Source: https://docs.actionstep.com/demonstration-application This JSON configuration file contains essential settings for authenticating with the Actionstep API. Update the 'RedirectUrl' if using a free Ngrok account, as it changes with each Ngrok session. ```json { "AppConfiguration": { "ClientId": "JICZJFSH6V9AC1IDHRZY3NLFCYHPDF0FNJYVWVPSJAHXQKSG", "ClientSecret": "7VEGLLSPUI4KHIDNGIB8QQMXZM86XLNR6HXDJ0LJDX2DS2OPIRW", "Scopes": "all", "AuthorizeUrl": "https://api.actionstepstaging.com/api/oauth/authorize", "AccessTokenUrl": "https://api.actionstepstaging.com/api/oauth/token", "RedirectUrl": "https://806aa6336214.au.ngrok.io/signin" }, "Logging": { "LogLevel": { "Default": "Information", "Microsoft": "Warning", "Microsoft.Hosting.Lifetime": "Information" } }, "AllowedHosts": "*" } ``` -------------------------------- ### GET Response Anatomy Source: https://docs.actionstep.com/api-responses Explains the structure of a typical JSON response from a GET request, including links, the primary resource, linked resources, and metadata. ```APIDOC ## GET /api/rest/actions/{id} ### Description Retrieves detailed information about a specific action, including its associated data and metadata. The response is structured to provide comprehensive details about the action and related entities. ### Method GET ### Endpoint `/api/rest/actions/{id}` ### Parameters #### Query Parameters - **include** (string) - Optional - Specifies related resources to include in the response (e.g., `actionTypes`). ### Response #### Success Response (200) The response is a JSON object containing: - **links**: Hypermedia links to related resources. - **actions**: The primary action object with its attributes. - **linked**: An object containing arrays of related resources (e.g., `actiontypes`). - **meta**: Metadata about the request and response, including paging and debugging information. #### Response Example ```json { "links": { "actions.assignedTo": { "href": "https://ap-southeast-2.actionstepstaging.com.actionstep.com/api/rest/participants/{actions.assignedTo}", "type": "participants" }, "actions.division": { "href": "https://ap-southeast-2.actionstepstaging.com.actionstep.com/api/rest/divisions/{actions.division}", "type": "divisions" }, "actions.actionType": { "href": "https://ap-southeast-2.actionstepstaging.com.actionstep.com/api/rest/actiontypes/{actions.actionType}", "type": "actiontypes" }, "actions.primaryParticipants": { "href": "https://ap-southeast-2.actionstepstaging.com.actionstep.com/api/rest/participants/{actions.primaryParticipants}", "type": "participants" }, "actions.step": { "href": "https://ap-southeast-2.actionstepstaging.com.actionstep.com/api/rest/steps/{actions.step}", "type": "steps" }, "actions.billSettings": { "href": "https://ap-southeast-2.actionstepstaging.com.actionstep.com/api/rest/actionbillsettings/{actions.billSettings}", "type": "actionbillsettings" }, "actions.relatedActions": { "href": "https://ap-southeast-2.actionstepstaging.com.actionstep.com/api/rest/actions/{actions.relatedActions}", "type": "actions" }, "actiontypes.primaryParticipantType": { "href": "https://ap-southeast-2.actionstepstaging.com.actionstep.com/api/rest/participanttypes/{actiontypes.primaryParticipantType}", "type": "participanttypes" } }, "actions": { "id": 3, "name": "Matter No 3", "reference": null, "priority": 0, "status": "Active", "statusTimestamp": "2020-04-03T12:33:58+13:00", "isBillableOverride": null, "createdTimestamp": "2020-04-03", "modifiedTimestamp": "2020-04-30T11:27:31+12:00", "isDeleted": "F", "deletedBy": null, "deletedTimestamp": null, "isFavorite": "F", "overrideBillingStatus": null, "lastAccessTimestamp": "2020-04-03T12:34:30+13:00", "links": { "assignedTo": "10", "division": "1", "actionType": "7", "primaryParticipants": [ "10" ], "step": "7--0", "billSettings": "3", "relatedActions": null } }, "linked": { "actiontypes": [ { "id": 7, "name": "General", "description": "General Matter", "copyrightHolder": "Legal Eagles Limited", "copyrightContact": "http://www.legaleagles.com", "copyrightEmail": "accounts@legaleagles.com", "trackActualTime": "F", "trackBillableTime": "F", "isForMarketingCampaigns": "F", "isForMarketingEvents": "F", "isForEmployees": "F", "isForCrm": "F", "isForDebtCollection": "F", "isDisabled": "F", "isBillable": "T", "enableActionImage": "T", "defaultEmailSubject": null, "logoFilename": "document-open-5.png", "customLogoFilename": "", "customLogoDirectory": "", "customLogoFilesize": "", "customLogoModifiedTimestamp": "", "templateIdentifier": null, "allowCloseWithOpenInvoice": "F", "allowInlineCustomizing": "F", "canCreate": "F", "links": { "primaryParticipantType": "27" } } ] }, "meta": { "paging": { "actions": { "recordCount": 1, "pageCount": 1, "page": 1, "pageSize": 50, "prevPage": null, "nextPage": null } }, "debug": { "requestTime": "0.078199", "mem": "2.67mb", "server": "app-003ff685daa3.ap-southeast-2.actionstepstaging.com", "cb": "T21726-23073-7", "time": "2020-05-01 14:54:08 +1200 (Pacific/Auckland)", "appload": "0.16, 0.17, 0.11", "app": "0.024655", "db": "0.053544", "dbc": "0.006721", "qc": "64", "uqc": "34", "fc": "1,611", "rl": null } } } ``` ``` -------------------------------- ### Get One Participant Type Data Field by ID Source: https://docs.actionstep.com/downloads/Platform-JSON-V1-public-API-postman-collection.json Retrieves a specific participant type data field by its ID. Use this to get details of a single custom data field. ```json { "name": "one participanttypedatafield by id", "request": { "method": "GET", "header": [], "url": { "raw": "{{api_endpoint}}/api/rest/participanttypedatafields/3", "host": [ "{{api_endpoint}}" ], "path": [ "api", "rest", "participanttypedatafields", "3" ] } }, "response": [] } ``` -------------------------------- ### Create Action Create Source: https://docs.actionstep.com/downloads/Platform-JSON-V1-public-API-postman-collection.json Creates a new action create entry. This requires specifying the action name and linking it to an action type. ```json { "name": "create actioncreate", "request": { "method": "POST", "header": [], "body": { "mode": "raw", "raw": "{\n \"actioncreate\": {\n \"actionName\": \"Action Name\",\n \"links\": {\n \"actionType\": \"47\"\n }\n }\n}" }, "url": { "raw": "{{api_endpoint}}/api/rest/actioncreate/47", "host": [ "{{api_endpoint}}" ], "path": [ "api", "rest", "actioncreate", "47" ] } }, "response": [] } ``` -------------------------------- ### All currencies Source: https://docs.actionstep.com/downloads/Platform-JSON-V1-public-API-postman-collection.json Fetches a list of all supported currency values. ```APIDOC ## GET /api/rest/currency ### Description Fetches a list of all supported currency values. ### Method GET ### Endpoint /api/rest/currency ``` -------------------------------- ### GET /api/rest/billingpreferences Source: https://docs.actionstep.com/downloads/Platform-JSON-V1-public-API-postman-collection.json Retrieves a list of all billing preferences. ```APIDOC ## GET /api/rest/billingpreferences ### Description Retrieves a list of all billing preferences configured in the system. ### Method GET ### Endpoint /api/rest/billingpreferences ``` -------------------------------- ### Download Document in Chunks (Python) Source: https://docs.actionstep.com/uploading-and-downloading-documents This Python script demonstrates downloading a document in parts using aiohttp. Replace placeholder values for access token, file identifier, and file size. Ensure proper authentication setup. ```python import asyncio import aiohttp MAX_CHUNK_SIZE = 5 * 1024 * 1024 class MyAppState: AccessToken = "{insert access token here}" _appState = MyAppState() def set_message_default_headers(): headers = { "Authorization": f"Bearer {_appState.AccessToken}", "Content-Type": "application/vnd.api+json", "Accept": "application/vnd.api+json", "User-Agent": "SamplePythonApp" } return headers async def download_file_async(internalfileIdentifier, fileSize): totalChunks = (fileSize // MAX_CHUNK_SIZE) if fileSize % MAX_CHUNK_SIZE != 0: totalChunks += 1 async with aiohttp.ClientSession() as session: data = bytearray() for i in range(totalChunks): url = f"https://ap-southeast-2.actionstep.com/api/rest/files/{internalfileIdentifier}?part_number={i + 1}" headers = set_message_default_headers() async with session.get(url, headers=headers) as response: print(f"Requesting part {i + 1}, URL: {url}") # Debugging statement if response.status == 200: chunk = await response.read() print(f"Downloaded chunk {i + 1} of size {len(chunk)} bytes") # Debugging statement data.extend(chunk) else: print(f"Failed to download part {i + 1}, Status: {response.status}") # Debugging statement print(f"Total downloaded data size: {len(data)} bytes") # Debugging statement return bytes(data) async def save_file(file_name, data): with open(file_name, 'wb') as file: file.write(data) async def main(): # Replace with the required file identifier from the actiondocuments endpoint internalfileIdentifier = "DL::Actions::1570803::12537;" # Replace with the required file's size from the actiondocuments endpoint fileSize = 11776 data = await download_file_async(internalfileIdentifier, fileSize) await save_file("C:\\Python Dev\\sample_word_document.docx", data) # Replace folder and file name as required # Run the main function if __name__ == "__main__": asyncio.run(main()) ``` -------------------------------- ### GET /api/rest/actiontypes Source: https://docs.actionstep.com/downloads/Platform-JSON-V1-public-API-postman-collection.json Retrieves a list of all action types. ```APIDOC ## GET /api/rest/actiontypes ### Description Retrieves a list of all available action types. ### Method GET ### Endpoint {{api_endpoint}}/api/rest/actiontypes ### Response #### Success Response (200) This endpoint does not specify a success response body in the documentation. ``` -------------------------------- ### List all action folders Source: https://docs.actionstep.com/downloads/Platform-JSON-V1-public-API-postman-collection.json Retrieves a list of all action folders. ```APIDOC ## GET /api/rest/actionfolders ### Description Retrieves a list of all action folders. ### Method GET ### Endpoint /api/rest/actionfolders ``` -------------------------------- ### Get Single Setting Source: https://docs.actionstep.com/downloads/Platform-JSON-V1-public-API-postman-collection.json Retrieves a specific setting by its key. Ensure the setting key is correctly provided in the URL. ```http GET {{api_endpoint}}/api/rest/settings/action_alias ``` -------------------------------- ### Get All Document Templates Source: https://docs.actionstep.com/downloads/Platform-JSON-V1-public-API-postman-collection.json Fetches a list of all available document templates. This is useful for browsing or managing templates. ```json { "name": "Document Templates", "item": [ { "name": "all documenttemplates", "request": { "method": "GET", "header": [], "url": { "raw": "{{api_endpoint}}/api/rest/documenttemplates", "host": [ "{{api_endpoint}}" ], "path": [ "api", "rest", "documenttemplates" ] } }, "response": [] }, { "name": "one documenttemplate by id", "request": { "method": "GET", "header": [], "url": { "raw": "{{api_endpoint}}/api/rest/documenttemplates/26", "host": [ "{{api_endpoint}}" ], "path": [ "api", "rest", "documenttemplates", "26" ] } }, "response": [] } ] } ``` -------------------------------- ### Get All Time Records Source: https://docs.actionstep.com/downloads/Platform-JSON-V1-public-API-postman-collection.json Retrieves a list of all time records. ```APIDOC ## GET /api/rest/timerecords ### Description Retrieves a list of all time records. ### Method GET ### Endpoint {{api_endpoint}}/api/rest/timerecords ``` -------------------------------- ### List action folders with page size Source: https://docs.actionstep.com/downloads/Platform-JSON-V1-public-API-postman-collection.json Retrieves a list of action folders, allowing specification of the page size. ```APIDOC ## GET /api/rest/actionfolders?pageSize={size} ### Description Retrieves a list of action folders, allowing specification of the page size. ### Method GET ### Endpoint /api/rest/actionfolders ### Parameters #### Query Parameters - **pageSize** (integer) - Optional - The number of items to return per page. ``` -------------------------------- ### Get All Email Associations Source: https://docs.actionstep.com/downloads/Platform-JSON-V1-public-API-postman-collection.json Retrieves a list of all email associations. ```APIDOC ## GET /api/rest/emailassociations ### Description Retrieves a list of all email associations. ### Method GET ### Endpoint {{api_endpoint}}/api/rest/emailassociations ``` -------------------------------- ### Action Create Source: https://docs.actionstep.com/downloads/Platform-JSON-V1-public-API-postman-collection.json Endpoints for retrieving and creating action create entries. ```APIDOC ## GET /api/rest/actioncreate/{actionTypeId} ### Description Retrieves all action create entries for a given action type ID. ### Method GET ### Endpoint /api/rest/actioncreate/{actionTypeId} ### Parameters #### Path Parameters - **actionTypeId** (integer) - Required - The ID of the action type. ## POST /api/rest/actioncreate/{actionTypeId} ### Description Creates a new action create entry. ### Method POST ### Endpoint /api/rest/actioncreate/{actionTypeId} ### Parameters #### Path Parameters - **actionTypeId** (integer) - Required - The ID of the action type. #### Request Body - **actioncreate** (object) - Required - The data for the new action create entry. - **actionName** (string) - Required - The name of the action. - **links** (object) - Required - Links to related resources. - **actionType** (string) - Required - The ID of the action type. ### Request Example ```json { "actioncreate": { "actionName": "Action Name", "links": { "actionType": "47" } } } ``` ``` -------------------------------- ### Get All Divisions Source: https://docs.actionstep.com/downloads/Platform-JSON-V1-public-API-postman-collection.json Retrieves a list of all divisions available in the system. ```APIDOC ## GET /api/rest/divisions ### Description Retrieves a list of all divisions. ### Method GET ### Endpoint {{api_endpoint}}/api/rest/divisions ``` -------------------------------- ### Action Change Steps Source: https://docs.actionstep.com/downloads/Platform-JSON-V1-public-API-postman-collection.json Endpoints for retrieving and creating action change steps. ```APIDOC ## GET /api/rest/actionchangestep/{id} ### Description Retrieves a specific action change step by its ID. ### Method GET ### Endpoint /api/rest/actionchangestep/{id} ### Parameters #### Path Parameters - **id** (integer) - Required - The ID of the action change step to retrieve. ## POST /api/rest/actionchangestep ### Description Creates a new action change step. ### Method POST ### Endpoint /api/rest/actionchangestep #### Request Body - **actionchangestep** (object) - Required - The data for the new action change step. - **links** (object) - Required - Links to related resources. - **action** (string) - Required - The ID of the associated action. - **step** (string) - Required - The ID of the step. - **node** (string) - Required - The ID of the node. ### Request Example ```json { "actionchangestep":{ "links": { "action": "290", "step": "1", "node": "171" } } } ``` ``` -------------------------------- ### GET /api/rest/calendars Source: https://docs.actionstep.com/downloads/Platform-JSON-V1-public-API-postman-collection.json Retrieves a list of all calendars available in the system. ```APIDOC ## GET /api/rest/calendars ### Description Fetches a list of all calendars accessible within the platform. ### Method GET ### Endpoint /api/rest/calendars ``` -------------------------------- ### GET /api/rest/actiontypefolders Source: https://docs.actionstep.com/downloads/Platform-JSON-V1-public-API-postman-collection.json Retrieves a list of all action type folders. ```APIDOC ## GET /api/rest/actiontypefolders ### Description Retrieves a list of all available action type folders. ### Method GET ### Endpoint {{api_endpoint}}/api/rest/actiontypefolders ### Response #### Success Response (200) This endpoint does not specify a success response body in the documentation. ``` -------------------------------- ### Retrieve all files Source: https://docs.actionstep.com/downloads/Platform-JSON-V1-public-API-postman-collection.json Fetches a list of files, with support for pagination. ```APIDOC ## GET /api/rest/files ### Description Retrieves a list of files. Supports pagination via query parameters. ### Method GET ### Endpoint /api/rest/files ### Parameters #### Query Parameters - **part_number** (string) - Optional - The current part number for pagination. - **part_count** (string) - Optional - The total number of parts for pagination. ``` -------------------------------- ### Create Single Time Entry Resource Source: https://docs.actionstep.com/api-requests Make a POST request to the resource endpoint with a JSON body to create a single resource. The example demonstrates creating a time entry with description, hours, and links. ```HTTP POST /api/rest/timeentries { "timeentries" : { "description": "Review meeting", "actualHours": "2.00", "billableHours": "2.00", ... "links" : { "action" : "2960", "rate" : "4", ... } } } ``` -------------------------------- ### Get All Action Rates Source: https://docs.actionstep.com/downloads/Platform-JSON-V1-public-API-postman-collection.json Retrieves a list of all action rates. ```APIDOC ## GET /api/rest/actionrates ### Description Retrieves a list of all action rates. ### Method GET ### Endpoint /api/rest/actionrates ``` -------------------------------- ### List action folders with pagination Source: https://docs.actionstep.com/downloads/Platform-JSON-V1-public-API-postman-collection.json Retrieves a list of action folders, supporting pagination. ```APIDOC ## GET /api/rest/actionfolders?page={pageNumber} ### Description Retrieves a list of action folders, supporting pagination. ### Method GET ### Endpoint /api/rest/actionfolders ### Parameters #### Query Parameters - **page** (integer) - Optional - The page number to retrieve. ``` -------------------------------- ### Get All Action Rates Source: https://docs.actionstep.com/downloads/Platform-JSON-V1-public-API-postman-collection.json Retrieves a list of all action rates. ```http GET {{api_endpoint}}/api/rest/actionrates ``` -------------------------------- ### Get Current User Source: https://docs.actionstep.com/downloads/Platform-JSON-V1-public-API-postman-collection.json Retrieves information about the currently authenticated user. ```APIDOC ## GET /api/rest/users/current ### Description Retrieves information about the currently authenticated user. ### Method GET ### Endpoint /api/rest/users/current ### Parameters None ### Request Example None ### Response #### Success Response (200) - **field1** (type) - Description #### Response Example None ``` -------------------------------- ### Sort Resources by Different Attributes Source: https://docs.actionstep.com/api-requests Apply sorting to different resources independently. This example sorts 'timeentries' by 'createdTimestamp' and 'participants' by their 'displayName'. ```http GET /api/rest/timeentries?include=owner&sort[timeentries]=createdTimestamp&sort[participants]=displayName ``` -------------------------------- ### Get My User Record Source: https://docs.actionstep.com/downloads/Platform-JSON-V1-public-API-postman-collection.json Retrieves the current user's record. ```APIDOC ## GET /api/rest/users/current ### Description Retrieves the current user's record. ### Method GET ### Endpoint {{api_endpoint}}/api/rest/users/current ``` -------------------------------- ### Download Document in Chunks (C#) Source: https://docs.actionstep.com/uploading-and-downloading-documents Use this C# method to download a document by making sequential requests for its parts. Ensure the httpClient is properly configured and authenticated. ```csharp public async Task DownloadFileAsync(string internalfileIdentifier, int fileSize) { int chunkSize = 5242880; // 5MB max chunk size. int totalChunks = (int)(fileSize / chunkSize); if (fileSize % chunkSize != 0) { totalChunks++; } using MemoryStream ms = new MemoryStream(); for (int i = 0; i < totalChunks; i++) { var response = await _policy.ExecuteAsync(async context => { var message = new HttpRequestMessage(HttpMethod.Get, $"/api/rest/files/{internalfileIdentifier}?part_number={i + 1}"); message = SetMessageDefaultHeaders(message); return await _httpClient.SendAsync(message); }, ContextData); if (response.IsSuccessStatusCode) { var byteData = await response.Content.ReadAsByteArrayAsync(); ms.Write(byteData, 0, byteData.Length); } } return ms.ToArray(); } ``` -------------------------------- ### Get All Tax Codes Source: https://docs.actionstep.com/downloads/Platform-JSON-V1-public-API-postman-collection.json Retrieves a list of all available tax codes. ```APIDOC ## GET /api/rest/taxcodes ### Description Retrieves a list of all tax codes. ### Method GET ### Endpoint /api/rest/taxcodes ### Parameters None ### Request Example None ### Response #### Success Response (200) - **taxCodes** (array) - A list of tax code objects. ``` -------------------------------- ### Create a Scratch Note Source: https://docs.actionstep.com/downloads/Platform-JSON-V1-public-API-postman-collection.json Creates a new scratch note with the provided text content. ```json { "scratchnotes":{ "text": "This is my first API scratchnote" } } ```