{"activeVersionTag":"latest","latestAvailableVersionTag":"latest","collection":{"info":{"_postman_id":"f72af53a-7d86-4b8c-b0dc-47fd3d6b4ca5","name":"PowerClerk API V2","description":"The PowerClerk® API allows programmatic access to basic PowerClerk functions, including project creation, editing and submission of project data, as well as upload, download and management of attachments. These API methods mirror the functionality of the PowerClerk web interface for working with projects.\n\nYou can download and use this documentation with Postman. Copy the collection and default environment with the \"Run in Postman\" button at the top-right of this page, and set your own environment variables to test the requests. For detailed instructions, watch [this video](https://cleanpower.wistia.com/medias/4qdk47z195).\n\n- **Note**: the legacy API is end-of-life and will be removed from service on April 3, 2026.\n- After deprecation, the legacy API will no longer be available. Your API client will need to migrate to this PowerClerk API V2 before this date\n- If your application still uses the legacy API, plan your upgrade with the migration documentation below.\n\n# PowerClerk API Base URLs\n\nThe _**PowerClerkURL**_ variable refers to a PowerClerk API endpoint base URL. Valid values are in the table below.\n\n| **Environment** | **PowerClerkURL** |\n| --- | --- |\n| **PCI Trial** | [https://api.cleanpowerdemo.com/PCITrial](https://api.cleanpowerdemo.com/PCITrial) |\n| **Production** | [https://api.powerclerk.com](https://api.powerclerk.com) |\n\n# Authentication & Access\n\n## API Key\n\nThe _**APIKey**_ variable is required for every API request and sent in the \"X-ApiKey\" header.\n\nEach user with authorized access to the PowerClerk API will be associated to an API key that must be sent with every request. API keys are issued and administered by the Clean Power Research Customer Success team. Generally, one API key with limited throughput is issued for customers with their integration bundle. To request a new API key or access to an existing key, use the Submit API Key Request on the [PowerClerk Ticket System](https://support.powerclerk.com/MvcProjects/ProjectList?ProgramId=ZEZ0C8KV4YH5).\n\n## Authentication\n\nThe V2 API requires bearer authentication using the [OAuth 2.0 Client Credentials](https://datatracker.ietf.org/doc/html/rfc6749#section-4.4) flow.\n\nWhen an API key is associated with a user or service account, the PowerClerk My Account page will have an option create _**ClientId**_ and _**ClientSecret**_ variables. Credentials can be used on any program the authenticated user can access. Access to the API for users with SSO need to have a permission added to the PowerClerk IDP configuration, which can be included in their API Key support request. A user with both a PowerClerk login and SSO to access separate programs would need to create separate client credentials for PowerClerk and each IDP.\n\nCalls to the Token API with the Client Id and Secret will generate access tokens valid for 60 minutes. While valid, the access token must be included in the Authorization header as a Bearer token for all API calls.\n\n| **Environment** | **TokenURL** |\n| --- | --- |\n| **PCI Trial** | [https://identity.cleanpowerdemo.com/PCITrial/connect/token](https://identity.cleanpowerdemo.com/PCITrial/connect/token) |\n| **Production** | [https://identity.powerclerk.com/connect/token](https://identity.powerclerk.com/connect/token) |\n\n## Accounts with Multi-Factor Authentication\n\nIf Multi-Factor Authentication (MFA) is enabled on for the API user, one of the two MFA header parameters must be included on every API request.\n\nCertain APIs may include a reveal_sensitive_data parameter which, if set to true, requires MFA.\n\n| **Header Parameters** | **Description** |\n| --- | --- |\n| **Mfa-One-Time-Password** | Time-based-One-Time-Password (TOTP) calculated using the TOTP algorithm and valid for 30 seconds. Set with the _**MFAOneTimePassword**_ variable. |\n| **Mfa-Session-Token** | MFA Session Token (MST) set up on PowerClerk in My Account > Manage API Credentials and valid up to 24 hours. Set with the _**MFASessionToken**_ variable. |\n\n# Operation Rate Limit\n\nAPI Keys are limited to a rate of **60 operations per minute**. Usage that exceeds this rate significantly will result in the calls being answered with a failure HTTP status code of 429 – “Too Many Requests” until enough time has passed for additional requests to be handled.\n\n# Custom Ids\n\nThe public Ids that PowerClerk uses to identify all objects in a program are automatically generated, and make it possible to uniquely identify an object regardless of changes to the data field name or UI label. Public Ids, however, are unique in each program and test environment for all data fields, attachments, forms and statuses. API clients using public Ids need to re-map public Ids when calling different programs and test environments.\n\nA simpler solution is to set custom Ids for any data fields, attachments, forms and statuses used in the API. If a custom Id has been set, that can be used in place of the automatically generated public Id. A custom Id can be defined by a program designer with the allowed permission and remain consistent when moving between a sandbox to production or a test environment.\n\nCustom Ids are only unique within their object type, i.e. an attachment and a data field can have the same custom Id.\n\n## Project Numbers on URLs\n\nPowerClerk assigns a Project Number when a project is first submitted. The Project Number can be used in place of the Project Id on the API URL.\n\nNote that Project Ids must still be used for new projects on API calls between the CreateProject call (where the Project Id is assigned) and the first SubmitProject call (where the Project Number is assigned.)\n\n# API Migration from Legacy to V2\n## General Changes\n### Authentication\n- V1: Basic authentication only\n- V2: OAuth 2.0 client credentials authentication only\n\n### Payload Content Type\n- V1: XML with namespace\n- V2: XML without namespace or JSON (default)\n\nTo use XML on V2, use Accept and Content-Type `application/xml` headers. Each request has both \"Success\" for the default JSON and \"Success (XML)\" as one of the examples.\n\n## GetProjects\n### URL Paths\n- V1: `/Services.svc/v1/Programs/{{ProgramId}}/Projects`\n- V2: `/services/v2/Programs/{{ProgramId}}/Projects`\n\n### Documentation\n- V1: [https://developers.cleanpower.com/application_process_automation/api-method-reference/getprojects/](https://developers.cleanpower.com/application_process_automation/api-method-reference/getprojects/)\n- V2: [https://apidocs.powerclerk.com/#GetProjects](https://apidocs.powerclerk.com/#9f28edab-571a-4f84-9b1b-5f2aa0d01c0c)\n\n### Request\n- The format for the `changed_since` `datetime` query parameter more strictly adheres to the format documented and will reject formats previously accepted\n- The request no longer recognizes the `version` query parameter\n\n### Response\n- Namespace has been removed\n- `Project.OwnerEmailAddress` has been moved to `Project.ProjectOwner.Email`\n- `Project.ProjectOwner.Name` has been added\n- `Project.Status` has been moved to `Project.CurrentStatus.Name`\n- `Project.StatusCustomId` has been moved to `Project.CurrentStatus.CustomId`\n- `Project.StatusPublicId` has been moved to `Project.CurrentStatus.StatusId`\n- `Project.StatusTimestamp` has been moved to `Project.CurrentStatus.Timestamp`\n\n## GetProjectByNumber\n### URL Paths\n- V1: `/Services.svc/v1/Programs/{{ProgramId}}/Projects/ByNumber`\n- V2: `/services/v2/Programs/{{ProgramId}}/Projects/ByNumber`\n\n### Documentation\n- V1: [https://developers.cleanpower.com/application_process_automation/api-method-reference/getprojectsbynumber/](https://developers.cleanpower.com/application_process_automation/api-method-reference/getprojectsbynumber/)\n- V2: [https://apidocs.powerclerk.com/#GetProjectByNumber](https://apidocs.powerclerk.com/#0e74f1a9-a18c-4777-91b6-7a712656fb23)\n\n### Request\n- Namespace has been removed\n\n### Response\n- Namespace has been removed\n- `Project.OwnerEmailAddress` has been moved to `Project.ProjectOwner.Email`\n- `Project.ProjectOwner.Name` has been added\n- `Project.Status` has been moved to `Project.CurrentStatus.Name`\n- `Project.StatusCustomId` has been moved to `Project.CurrentStatus.CustomId`\n- `Project.StatusPublicId` has been moved to `Project.CurrentStatus.StatusId`\n- `Project.StatusTimestamp` has been moved to `Project.CurrentStatus.Timestamp`\n\n## GetProjectsByData\n### URL Paths\n- V1: `/Services.svc/v1/Programs/{{ProgramId}}/Projects/ByData`\n- V2: `/services/v2/Programs/{{ProgramId}}/Projects/ByData`\n\n### Documentation\n- V1: [https://developers.cleanpower.com/application_process_automation/api-method-reference/getprojectsbydata/](https://developers.cleanpower.com/application_process_automation/api-method-reference/getprojectsbydata/)\n- V2: [https://apidocs.powerclerk.com/#GetProjectsByData](https://apidocs.powerclerk.com/#ebd754cc-5d1a-4a4b-8038-e915ec3c052a)\n\n### Request\n- Namespace has been removed\n- `Field.Content` for data fields of type `DateTime` must be in `yyyy-MM-dd` format\n\n### Response\n- Namespace has been removed\n- `Project.OwnerEmailAddress` has been moved to `Project.ProjectOwner.Email`\n- `Project.ProjectOwner.Name` has been added\n- `Project.Status` has been moved to `Project.CurrentStatus.Name`\n- `Project.StatusCustomId` has been moved to `Project.CurrentStatus.CustomId`\n- `Project.StatusPublicId` has been moved to `Project.CurrentStatus.StatusId`\n- `Project.StatusTimestamp` has been moved to `Project.CurrentStatus.Timestamp`\n\n## CreateNewProject\n### URL Paths\n- V1: `/Services.svc/v1/Programs/{{ProgramId}}/NewProject`\n- V2: `/services/v2/Programs/{{ProgramId}}/NewProject`\n\n### Documentation\n- V1: [https://developers.cleanpower.com/application_process_automation/api-method-reference/createnewproject/](https://developers.cleanpower.com/application_process_automation/api-method-reference/createnewproject/)\n- V2: [https://apidocs.powerclerk.com/#CreateNewProject](https://apidocs.powerclerk.com/#2811bdc8-0e93-4d96-97c1-251bc80729d6)\n\n### Request\n- No change\n\n### Response\n- `Project.Url.Value` has been moved to `Project.Url`\n- `Project.Status` has been moved to `Project.CurrentStatus.Name`\n- `Project.StatusTimestamp` has been moved to `Project.CurrentStatus.Timestamp`\n- `Project.Forms[].Title` has been moved to `Project.Forms[].Name`\n- New attribute `Project.ProjectNumber`\n- New attribute `Project.CurrentStatus.StatusId`\n- New attribute `Project.CurrentStatus.CustomId`\n- Removed deprecated attribute `Project.Forms[].AvailableInStatuses[].Deleted`\n- Removed deprecated attribute `Project.Forms[].LeadsToStatus`\n\n## GetProjectData\n### URL Paths\n- V1: `/Services.svc/v1/Programs/{{ProgramId}}/Projects/{{ProjectId}}/Forms/{{FormId}}/Data`\n- V2: `/services/v2/Programs/{{ProgramId}}/Projects/{{ProjectId}}/Forms/{{FormId}}/Draft/Data`\n\n### Documentation\n- V1: [https://developers.cleanpower.com/application_process_automation/api-method-reference/getprojectdata/](https://developers.cleanpower.com/application_process_automation/api-method-reference/getprojectdata/)\n- V2: [https://apidocs.powerclerk.com/#GetProjectData](https://apidocs.powerclerk.com/#815ba741-cbbf-41d1-95a2-473e1eb706ab)\n\n### Request\n- URL path should include /Draft to access draft data\n\n### Response\n- Namespace has been removed\n- Data field date values return in the format `yyyy-MM-dd` instead of `MM/dd/yyyy`\n- Boolean values return `true`/`false` instead of `True`/`False`\n- `Project.Url.Value` has been moved to `Project.Url`\n- `Project.DataFields[].Instance` has been removed. Multi-instance data fields use a list of values `Project.DataFields[].Values[]` instead of displaying them separately\n- New attribute `Project.LastChangeTimestamp`\n- New attribute `Project.CurrentStatus.CustomId`\n- New attribute `Project.DataFields[].CustomId`\n- New attribute `Project.Attachments[].CustomId`\n\n## SetProjectData\n### URL Paths\n- V1: `/Services.svc/v1/Programs/{{ProgramId}}/Projects/{{ProjectId}}/Forms/{{FormId}}/Data`\n- V2: `/services/v2/Programs/{{ProgramId}}/Projects/{{ProjectId}}/Forms/{{FormId}}/Draft/Data`\n\n### Documentation\n- V1: [https://developers.cleanpower.com/application_process_automation/api-method-reference/setprojectdata/](https://developers.cleanpower.com/application_process_automation/api-method-reference/setprojectdata/)\n- V2: [https://apidocs.powerclerk.com/#SetProjectData](https://apidocs.powerclerk.com/#b0e722b2-6a2c-4fbd-ab4c-b69047d2f025)\n\n### Request\n- URL path should include /Draft to set draft data (i.e., non-admin usage)\n- Namespace has been removed\n- Root element updated to `ProjectDataSetRequest`\n- Data field date values must be in the format `yyyy-MM-dd`\n- Boolean values must be the format `true`/`false`\n- Multi-instance data fields use a list of values `DataFields[].Values[]` instead of referencing the index via `DataFields[].InstanceId`\n- `DataFields[].Name` was ignored in V1. Optional on V2 but must match the PowerClerk data field name, if included.\n\n### Response\n- Namespace has been removed\n- Root element updated to `ProjectDataSetResponse`\n- CalculatedFields has been removed\n- Data field date values return in the format `yyyy-MM-dd` instead of `MM/dd/yyyy`\n- Boolean values return `true`/`false` instead of `True`/`False`\n- `Project.Url.Value` has been moved to `Project.Url`\n- `Project.DataFields[].Instance` has been removed. Multi-instance data fields use a list of values `Project.DataFields[].Values[]` instead of displaying them separately\n- New attribute `Project.LastChangeTimestamp`\n- New attribute `Project.CurrentStatus.CustomId`\n- New attribute `Project.DataFields[].CustomId`\n- New attribute `Project.Attachments[].CustomId`\n\n## SubmitProject\n### URL Paths\n- V1: `/Services.svc/v1/Programs/{{ProgramId}}/Projects/{{ProjectId}}/Forms/{{FormId}}/Submit`\n- V2: `/services/v2/Programs/{{ProgramId}}/Projects/{{ProjectId}}/Forms/{{FormId}}/Draft/Submit`\n\n### Documentation\n- V1: [https://developers.cleanpower.com/application_process_automation/api-method-reference/submitproject/](https://developers.cleanpower.com/application_process_automation/api-method-reference/submitproject/)\n- V2: [https://apidocs.powerclerk.com/#SubmitProject](https://apidocs.powerclerk.com/#b87d0d38-5ca0-44d9-8dbb-92c30ffd6d45)\n\n### Request\n- No change\n\n### Response\n- URL path should include /Draft to commit draft data to a project form\n- Namespace has been removed\n- `Project.Url.Value` has been moved to `Project.Url`\n- `Project.Status` has been moved to `Project.CurrentStatus.Name`\n- `Project.StatusTimestamp` has been moved to `Project.CurrentStatus.Timestamp`\n- New attribute `Project.CurrentStatus.StatusId`\n- New attribute `Project.CurrentStatus.CustomId`\n\n## GetAllProjectData\n### URL Paths\n- V1: `/Services.svc/v1/Programs/{{ProgramId}}/Projects/{{ProjectId}}/Data`\n- V2: `/services/v2/Programs/{{ProgramId}}/Projects/{{ProjectId}}/Data`\n\n### Documentation\n- V1: [https://developers.cleanpower.com/application_process_automation/api-method-reference/getallprojectdata/](https://developers.cleanpower.com/application_process_automation/api-method-reference/getallprojectdata/)\n- V2: [https://apidocs.powerclerk.com/#GetAllProjectData](https://apidocs.powerclerk.com/#c4e3757b-2632-4c49-8ee2-0f7be1d4ab94)\n\n### Request\n- No change\n\n### Response\n- Root element updated to `ProjectDataGetAllResponse`\n- Namespace has been removed\n- Data field date values return in the format `yyyy-MM-dd` instead of `MM/dd/yyyy`\n- Boolean values return `true`/`false` instead of `True`/`False`\n- `Project.Url.Value` has been moved to `Project.Url`\n- `Project.DataFields[].Instance` has been removed. Multi-instance data fields use a list of values `Project.DataFields[].Values[]` instead of displaying them separately\n- New attribute `Project.LastChangeTimestamp`\n- New attribute `Project.CurrentStatus.CustomId`\n- New attribute `Project.DataFields[].CustomId`\n- New attribute `Project.Attachments[].CustomId`\n\n## GetProjectStatusHistory\n### URL Paths\n- V1: `/Services.svc/v1/Programs/{{ProgramId}}/Projects/{{ProjectId}}/StatusHistory`\n- V2: `/services/v2/Programs/{{ProgramId}}/Projects/{{ProjectId}}/StatusHistory`\n\n### Documentation\n- V1: [https://developers.cleanpower.com/application_process_automation/api-method-reference/getprojectstatushistory/](https://developers.cleanpower.com/application_process_automation/api-method-reference/getprojectstatushistory/)\n- V2: [https://apidocs.powerclerk.com/#GetProjectStatusHistory](https://apidocs.powerclerk.com/#86eace80-2859-4e15-a7df-dfba919c64fa)\n\n### Request\n- The `version` query parameter is no longer used\n\n### Response\n- Namespace has been removed\n- `Status.ReportAsLastChangedBy` has been moved to `Status.ReportAsChangedBy`\n\n## SetProjectStatus\n### URL Paths\n- V1: `/Services.svc/v1/Programs/{{ProgramId}}/Projects/{{ProjectId}}/Status/{{StatusId}}`\n- V2: `/services/v2/Programs/{{ProgramId}}/Projects/{{ProjectId}}/Status/{{StatusId}}`\n\n### Documentation\n- V1: [https://developers.cleanpower.com/application_process_automation/api-method-reference/setprojectstatus/](https://developers.cleanpower.com/application_process_automation/api-method-reference/setprojectstatus/)\n- V2: [https://apidocs.powerclerk.com/#SetProjectStatus](https://apidocs.powerclerk.com/#3746ffc1-f8b1-49aa-ab8a-52e3dd4487f5)\n\n### Request\n- AutoCommunication query parameter added\n\n### Response\n- Namespace has been removed\n\n## GetAttachmentMetadata\n### URL Paths\n- V1: `/Services.svc/v1/Programs/{{ProgramId}}/Projects/{{ProjectId}}/Attachments/{{AttachmentId}}/Metadata`\n- V2: `/services/v2/Programs/{{ProgramId}}/Projects/{{ProjectId}}/Attachments/{{AttachmentId}}/Metadata`\n\n### Documentation\n- V1: [https://developers.cleanpower.com/application_process_automation/api-method-reference/getattachmentmetadata/](https://developers.cleanpower.com/application_process_automation/api-method-reference/getattachmentmetadata/)\n- V2: [https://apidocs.powerclerk.com/#GetAttachmentMetadata](https://apidocs.powerclerk.com/#12edaa68-3a2f-4491-93bc-b7e7f57981d0)\n\n### Request\n- No change\n\n### Response\n- Namespace has been removed\n- `AttachmentMetadata.ApprovalStatus` has been moved to `AttachmentMetadata.AttachmentStatus`\n- `AttachmentMetadata.UploadedByEmailAddress` has been moved to `AttachmentMetadata.Uploader.Email`\n- `AttachmentMetadata.UploadedById` has been removed\n- New attribute `AttachmentMetadata.Uploader.Name`\n\n## SetAttachmentMetadata\n### URL Paths\n- V1: `/Services.svc/v1/Programs/{{ProgramId}/Projects/{{ProjectId}}/Attachments/{{AttachmentId}}/Metadata`\n- V2: `/services/v2/Programs/{{ProgramId}}/Projects/{{ProjectId}}/Attachments/{{AttachmentId}}/Metadata`\n\n### Documentation\n- V1: [https://developers.cleanpower.com/application_process_automation/api-method-reference/setattachmentmetadata/](https://developers.cleanpower.com/application_process_automation/api-method-reference/setattachmentmetadata/)\n- V2: [https://apidocs.powerclerk.com/#SetAttachmentMetadata](https://apidocs.powerclerk.com/#0176d689-4b2c-42de-b862-9a397ae26d8c)\n\n### Request\n- Namespace has been removed\n\n### Response\n- Namespace has been removed\n- `AttachmentMetadata.ApprovalStatus` has been moved to `AttachmentMetadata.AttachmentStatus`\n- `AttachmentMetadata.UploadedByEmailAddress` has been moved to `AttachmentMetadata.Uploader.Email`\n- `AttachmentMetadata.UploadedById` has been removed\n- New attribute `AttachmentMetadata.Uploader.Name`\n\n## SetProjectOwner\n### URL Paths\n- V1: `/Services.svc/v1/Programs/{{ProgramId}}/Projects/{{ProjectId}}/Owner`\n- V2: `/services/v2/Programs/{{ProgramId}}/Projects/{{ProjectId}}/Owner`\n\n### Documentation\n- V1: [https://developers.cleanpower.com/application_process_automation/api-method-reference/setprojectowner/](https://developers.cleanpower.com/application_process_automation/api-method-reference/setprojectowner/)\n- V2: [https://apidocs.powerclerk.com/#SetProjectOwner](https://apidocs.powerclerk.com/#b5cbabb1-46ef-4861-a978-bcffc17c0f10)\n\n### Request\n- Namespace has been removed\n\n### Response\n- Namespace has been removed\n\n## GetInquiryThreads\n### URL Paths\n- V1: `/Services.svc/v1/Programs/{{ProgramId}}/Projects/{{ProjectId}}/InquiryThreads`\n- V2: `/services/v2/Programs/{{ProgramId}}/Projects/{{ProjectId}}/InquiryThreads`\n\n### Documentation\n- V1: [https://developers.cleanpower.com/application_process_automation/api-method-reference/getinquirythreads/](https://developers.cleanpower.com/application_process_automation/api-method-reference/getinquirythreads/)\n- V2: [https://apidocs.powerclerk.com/#GetInquiryThreads](https://apidocs.powerclerk.com/#7f445cc0-956e-4a32-8c5a-971ad935f8c4)\n\n### Request\n- No change\n\n### Response\n- Namespace has been removed\n- Data field date values return in the format `yyyy-MM-ddTHH:mm:sszz` instead of `MM/dd/yyyy`\n\n## GetNotesInInquiryThread\n### URL Paths\n- V1: `/Services.svc/v1/Programs/{{ProgramId}}/InquiryThreads/{{ThreadId}}/Notes`\n- V2: `/services/v2/Programs/{{ProgramId}}/InquiryThreads/{{ThreadId}}/Notes`\n\n### Documentation\n- V1: [https://developers.cleanpower.com/application_process_automation/api-method-reference/getnotesininquirythread/](https://developers.cleanpower.com/application_process_automation/api-method-reference/getnotesininquirythread/)\n- V2: [https://apidocs.powerclerk.com/#GetNotesInInquiryThread](https://apidocs.powerclerk.com/#dd79db6c-687c-439b-b236-b7e96c69a9ce)\n\n### Request\n- No change\n\n### Response\n- Namespace has been removed\n- IsAdmin is changed to a boolean value instead of a string\n- Data field date values return in the format `yyyy-MM-ddTHH:mm:sszz` instead of `MM/dd/yyyy`\n\n## SetInquiryNote\n### URL Paths\n- V1: `/Services.svc/v1/Programs/{{ProgramId}}/Projects/{{ProjectId}}/SetInquiryNote`\n- V2: `/services/v2/Programs/{{ProgramId}}/Projects/{{ProjectId}}/SetInquiryNote`\n\n### Documentation\n- V1: [https://developers.cleanpower.com/application_process_automation/api-method-reference/setinquirynote/](https://developers.cleanpower.com/application_process_automation/api-method-reference/setinquirynote/)\n- V2: [https://apidocs.powerclerk.com/#SetInquiryNote](https://apidocs.powerclerk.com/#e03d6f0c-2aeb-402b-a982-e8afb31e685c)\n\n### Request\n- Namespace has been removed\n\n### Response\n- Namespace has been removed\n- IsAdmin is changed to a boolean value instead of a string\n- Data field date values return in the format `yyyy-MM-ddTHH:mm:sszz` instead of `MM/dd/yyyy`\n\n## SetInquiryThreadStatus\n### URL Paths\n- V1: `/Services.svc/v1/Programs/{{ProgramId}}/InquiryThreads/{{ThreadId}}/Status/{{ThreadStatus}}`\n- V2: `/services/v2/Programs/{{ProgramId}}/InquiryThreads/{{ThreadId}}/Status/{{ThreadStatus}}`\n\n### Documentation\n- V1: [https://developers.cleanpower.com/application_process_automation/api-method-reference/setinquirythreadstatus/](https://developers.cleanpower.com/application_process_automation/api-method-reference/setinquirythreadstatus/)\n- V2: [https://apidocs.powerclerk.com/#SetInquiryThreadStatus](https://apidocs.powerclerk.com/#2d3ebdc2-fabd-470e-8244-376ba8eef331)\n\n### Request\n- Namespace has been removed\n\n### Response\n- Namespace has been removed\n- Data field date values return in the format `yyyy-MM-ddTHH:mm:sszz` instead of `MM/dd/yyyy`\n\n## SetInquiryThreadExternalId\n### URL Paths\n- V1: `/Services.svc/v1/Programs/{{ProgramId}}/InquiryThreads/{{ThreadId}}/ExternalId/{{ExternalThreadId}}`\n- V2: `/services/v2/Programs/{{ProgramId}}/InquiryThreads/{{ThreadId}}/ExternalId/{{ExternalThreadId}}`\n\n### Documentation\n- V1: [https://developers.cleanpower.com/application_process_automation/api-method-reference/setinquirythreadexternalid/](https://developers.cleanpower.com/application_process_automation/api-method-reference/setinquirythreadexternalid/)\n- V2: [https://apidocs.powerclerk.com/#SetInquiryThreadExternalId](https://apidocs.powerclerk.com/#91c765c5-9cd8-4b1a-859e-23d614cf44b4)\n\n### Request\n- Namespace has been removed\n\n### Response\n- Namespace has been removed\n\n## GetPrograms\n### URL Paths\n- V1: `/Services.svc/v1/Programs`\n- V2: `/services/v2/Programs`\n\n### Documentation\n- V1: [https://developers.cleanpower.com/application_process_automation/api-method-reference/getprograms/](https://developers.cleanpower.com/application_process_automation/api-method-reference/getprograms/)\n- V2: [https://apidocs.powerclerk.com/#GetPrograms](https://apidocs.powerclerk.com/#95448fb0-e26b-48b4-a89d-ff5fd99f985a)\n\n### Request\n- No change\n\n### Response\n- Namespace has been removed\n\n## GetStatusList\n### URL Paths\n- V1: `/Services.svc/v1/Programs/{{ProgramId}}/StatusList`\n- V2: `/services/v2/Programs/{{ProgramId}}/StatusList`\n\n### Documentation\n- V1: [https://developers.cleanpower.com/application_process_automation/api-method-reference/getstatuslist/ ](https://developers.cleanpower.com/application_process_automation/api-method-reference/getstatuslist/ )\n- V2: [https://apidocs.powerclerk.com/#GetStatusList](https://apidocs.powerclerk.com/#380fb8bc-b4b6-4c45-92a0-19a931a9f65f)\n\n### Request\n- No change\n\n### Response\n- Namespace has been removed\n\n## GetForms\n### URL Paths\n- V1: `/Services.svc/v1/Programs/{{ProgramId}}/Forms`\n- V2: `/services/v2/Programs/{{ProgramId}}/Forms`\n\n### Documentation\n- V1: [https://developers.cleanpower.com/application_process_automation/api-method-reference/getforms/](https://developers.cleanpower.com/application_process_automation/api-method-reference/getforms/)\n- V2: [https://apidocs.powerclerk.com/#GetForms](https://apidocs.powerclerk.com/#12126375-3501-4444-a1e1-7248585c28a0)\n\n### Request\n- No change\n\n### Response\n- Namespace has been removed\n- `Form.Title` has been renamed to `Form.Name`\n\n## GetFormSchema\n### URL Paths\n- V1: `/Services.svc/v1/Programs/{{ProgramId}}/Forms/{{FormId}}/Schema`\n- V2: `/services/v2/Programs/{{ProgramId}}/Forms/{{FormId}}/Schema`\n\n### Documentation\n- V1: [https://developers.cleanpower.com/application_process_automation/api-method-reference/getformschema/](https://developers.cleanpower.com/application_process_automation/api-method-reference/getformschema/)\n- V2: [https://apidocs.powerclerk.com/#GetFormSchema](https://apidocs.powerclerk.com/#090c0a05-fcd1-4c63-81c9-afed44506ca1)\n\n### Request\n- No change\n\n### Response\n- Namespace has been removed\n- `LeadsToStatus` is no longer supported and has been removed\n- `FormSchema.Title` has been renamed to `FormSchema.Name` to better match the descriptor in the UI\n- `Status.Deleted` has been removed.\n- `DataFieldSchema.Min` type has moved to `DataFieldSchema.Properties`, and will only be present if a value is set\n- `DataFieldSchema.Max` type has moved to `DataFieldSchema.Properties` and will only be present if a value is set\n- `DataFieldSchema.HierarchyLevel` will now only be present if a value is set (i.e. when the data field is part of a custom list key column)\n- `DataFieldSchema.Choices` will now only be present if values are set (i.e. when the `Type` is \"Choice\"\n\n## CreateMfaSessionToken\n### URL Paths\n- V1: `/Services.svc/v1/Accounts/MfaSessionTokens`\n- V2: Not supported on V2\n\nIn V1, this API was used to generate a temporary token using the TOTP. In the V2 API, the OAuth Bearer token already is a temporary token. The TOTP can be used for MFA in each API request in the `Mfa-One-Time-Password` header.\n\nFor temporary MFA using the API (e.g., running a script for a short period) session tokens can still be created from the PowerClerk My Account page. The script user can log in (with their TOTP) and generate one for use in the API `Mfa-Session-Token` header.\n\n## DeleteMfaSessionToken\n### URL Paths\n- V1: `/Services.svc/v1/Accounts/MfaSessionTokens/{{TokenId}}`\n- V2: Not supported on V2","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","isPublicCollection":false,"owner":"27632864","team":5818285,"collectionId":"f72af53a-7d86-4b8c-b0dc-47fd3d6b4ca5","publishedId":"2s9Ye8hvvo","public":true,"publicUrl":"https://apidocs.powerclerk.com","privateUrl":"https://go.postman.co/documentation/27632864-f72af53a-7d86-4b8c-b0dc-47fd3d6b4ca5","customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"6068b2"},"documentationLayout":"classic-single-column","customisation":{"metaTags":[{"name":"description","value":""},{"name":"title","value":""}],"appearance":{"default":"light","themes":[{"name":"dark","logo":"https://content.pstmn.io/c09f6cf0-978d-40d3-9fd2-e3857721f682/UG93ZXJDbGVyayBMb2dvLnBuZw==","colors":{"top-bar":"212121","right-sidebar":"303030","highlight":"c0c6de"}},{"name":"light","logo":"https://content.pstmn.io/92406440-e2da-4af6-b46b-6de69029e5a0/UG93ZXJDbGVyayBMb2dvLnBuZw==","colors":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"6068b2"}}]}},"version":"8.10.1","publishDate":"2024-09-09T18:50:50.000Z","activeVersionTag":"latest","documentationTheme":"light","metaTags":{"title":"","description":""},"logos":{"logoLight":"https://content.pstmn.io/92406440-e2da-4af6-b46b-6de69029e5a0/UG93ZXJDbGVyayBMb2dvLnBuZw==","logoDark":"https://content.pstmn.io/c09f6cf0-978d-40d3-9fd2-e3857721f682/UG93ZXJDbGVyayBMb2dvLnBuZw=="}},"statusCode":200},"environments":[{"name":"PowerClerk API V2 Documentation","id":"bbd4779c-b359-4558-8b7e-849fe47a6496","owner":"27632864","values":[{"key":"PowerClerkURL","value":"https://api.cleanpowerdemo.com/PCITrial","enabled":true,"type":"default"},{"key":"APIKey","value":"{{APIKey}}","enabled":true,"type":"secret"},{"key":"TokenURL","value":"https://identity.cleanpowerdemo.com/PCITrial/connect/token","enabled":true,"type":"default"},{"key":"ClientId","value":"{{ClientId}}","enabled":true,"type":"default"},{"key":"ClientSecret","value":"{{ClientSecret}}","enabled":true,"type":"secret"},{"key":"AgencyId","value":"{{AgencyId}}","enabled":true,"type":"default"},{"key":"ProgramId","value":"{{ProgramId}}","enabled":true,"type":"default"},{"key":"ProjectId","value":"{{ProjectId}}","enabled":true,"type":"default"},{"key":"FormId","value":"{{FormId}}","enabled":true,"type":"default"},{"key":"AttachmentId","value":"{{AttachmentId}}","enabled":true,"type":"default"},{"key":"GroupDefinitionId","value":"{{GroupDefinitionId}}","enabled":true,"type":"default"},{"key":"StatusId","value":"{{StatusId}}","enabled":true,"type":"default"},{"key":"ThreadId","value":"{{ThreadId}}","enabled":true,"type":"default"},{"key":"MFAOneTimePassword","value":"{{MFAOneTimePassword}}","enabled":true,"type":"default"},{"key":"MFASessionToken","value":"{{MFASessionToken}}","enabled":true,"type":"default"},{"key":"ProjectNumber","value":"{{ProjectNumber}}","enabled":true,"type":"default"},{"key":"DataFieldId","value":"{{DataFieldId}}","enabled":true,"type":"default"},{"key":"DataFieldValue","value":"{{DataFieldValue}}","enabled":true,"type":"default"},{"key":"AssigneeEmail","value":"{{AssigneeEmail}}","enabled":true,"type":"default"},{"key":"OwnerEmail","value":"{{OwnerEmail}}","enabled":true,"type":"default"},{"key":"ExternalThreadId","value":"{{ExternalThreadId}}","enabled":true,"type":"default"},{"key":"ThreadStatus","value":"{{ThreadStatus}}","enabled":true,"type":"default"}],"published":true}],"user":{"authenticated":false,"permissions":{"publish":false}},"run":{"button":{"js":"https://run.pstmn.io/button.js","css":"https://run.pstmn.io/button.css"}},"web":"https://www.getpostman.com/","team":{"logo":"https://res.cloudinary.com/postman/image/upload/t_team_logo_pubdoc/v1/team/b100c5be343017cf07cb391f2479d284d4cfe2ed62fd803849237f3fa1714f40","favicon":"https://powerclerk.com/favicon.ico"},"isEnvFetchError":false,"languages":"[{\"key\":\"csharp\",\"label\":\"C#\",\"variant\":\"HttpClient\"},{\"key\":\"csharp\",\"label\":\"C#\",\"variant\":\"RestSharp\"},{\"key\":\"curl\",\"label\":\"cURL\",\"variant\":\"cURL\"},{\"key\":\"dart\",\"label\":\"Dart\",\"variant\":\"http\"},{\"key\":\"go\",\"label\":\"Go\",\"variant\":\"Native\"},{\"key\":\"http\",\"label\":\"HTTP\",\"variant\":\"HTTP\"},{\"key\":\"java\",\"label\":\"Java\",\"variant\":\"OkHttp\"},{\"key\":\"java\",\"label\":\"Java\",\"variant\":\"Unirest\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"Fetch\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"jQuery\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"XHR\"},{\"key\":\"c\",\"label\":\"C\",\"variant\":\"libcurl\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Axios\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Native\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Request\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Unirest\"},{\"key\":\"objective-c\",\"label\":\"Objective-C\",\"variant\":\"NSURLSession\"},{\"key\":\"ocaml\",\"label\":\"OCaml\",\"variant\":\"Cohttp\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"cURL\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"Guzzle\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"HTTP_Request2\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"pecl_http\"},{\"key\":\"powershell\",\"label\":\"PowerShell\",\"variant\":\"RestMethod\"},{\"key\":\"python\",\"label\":\"Python\",\"variant\":\"http.client\"},{\"key\":\"python\",\"label\":\"Python\",\"variant\":\"Requests\"},{\"key\":\"r\",\"label\":\"R\",\"variant\":\"httr\"},{\"key\":\"r\",\"label\":\"R\",\"variant\":\"RCurl\"},{\"key\":\"ruby\",\"label\":\"Ruby\",\"variant\":\"Net::HTTP\"},{\"key\":\"shell\",\"label\":\"Shell\",\"variant\":\"Httpie\"},{\"key\":\"shell\",\"label\":\"Shell\",\"variant\":\"wget\"},{\"key\":\"swift\",\"label\":\"Swift\",\"variant\":\"URLSession\"}]","languageSettings":[{"key":"csharp","label":"C#","variant":"HttpClient"},{"key":"csharp","label":"C#","variant":"RestSharp"},{"key":"curl","label":"cURL","variant":"cURL"},{"key":"dart","label":"Dart","variant":"http"},{"key":"go","label":"Go","variant":"Native"},{"key":"http","label":"HTTP","variant":"HTTP"},{"key":"java","label":"Java","variant":"OkHttp"},{"key":"java","label":"Java","variant":"Unirest"},{"key":"javascript","label":"JavaScript","variant":"Fetch"},{"key":"javascript","label":"JavaScript","variant":"jQuery"},{"key":"javascript","label":"JavaScript","variant":"XHR"},{"key":"c","label":"C","variant":"libcurl"},{"key":"nodejs","label":"NodeJs","variant":"Axios"},{"key":"nodejs","label":"NodeJs","variant":"Native"},{"key":"nodejs","label":"NodeJs","variant":"Request"},{"key":"nodejs","label":"NodeJs","variant":"Unirest"},{"key":"objective-c","label":"Objective-C","variant":"NSURLSession"},{"key":"ocaml","label":"OCaml","variant":"Cohttp"},{"key":"php","label":"PHP","variant":"cURL"},{"key":"php","label":"PHP","variant":"Guzzle"},{"key":"php","label":"PHP","variant":"HTTP_Request2"},{"key":"php","label":"PHP","variant":"pecl_http"},{"key":"powershell","label":"PowerShell","variant":"RestMethod"},{"key":"python","label":"Python","variant":"http.client"},{"key":"python","label":"Python","variant":"Requests"},{"key":"r","label":"R","variant":"httr"},{"key":"r","label":"R","variant":"RCurl"},{"key":"ruby","label":"Ruby","variant":"Net::HTTP"},{"key":"shell","label":"Shell","variant":"Httpie"},{"key":"shell","label":"Shell","variant":"wget"},{"key":"swift","label":"Swift","variant":"URLSession"}],"languageOptions":[{"label":"C# - HttpClient","value":"csharp - HttpClient - C#"},{"label":"C# - RestSharp","value":"csharp - RestSharp - C#"},{"label":"cURL - cURL","value":"curl - cURL - cURL"},{"label":"Dart - http","value":"dart - http - Dart"},{"label":"Go - Native","value":"go - Native - Go"},{"label":"HTTP - HTTP","value":"http - HTTP - HTTP"},{"label":"Java - OkHttp","value":"java - OkHttp - Java"},{"label":"Java - Unirest","value":"java - Unirest - Java"},{"label":"JavaScript - Fetch","value":"javascript - Fetch - JavaScript"},{"label":"JavaScript - jQuery","value":"javascript - jQuery - JavaScript"},{"label":"JavaScript - XHR","value":"javascript - XHR - JavaScript"},{"label":"C - libcurl","value":"c - libcurl - C"},{"label":"NodeJs - Axios","value":"nodejs - Axios - NodeJs"},{"label":"NodeJs - Native","value":"nodejs - Native - NodeJs"},{"label":"NodeJs - Request","value":"nodejs - Request - NodeJs"},{"label":"NodeJs - Unirest","value":"nodejs - Unirest - NodeJs"},{"label":"Objective-C - NSURLSession","value":"objective-c - NSURLSession - Objective-C"},{"label":"OCaml - Cohttp","value":"ocaml - Cohttp - OCaml"},{"label":"PHP - cURL","value":"php - cURL - PHP"},{"label":"PHP - Guzzle","value":"php - Guzzle - PHP"},{"label":"PHP - HTTP_Request2","value":"php - HTTP_Request2 - PHP"},{"label":"PHP - pecl_http","value":"php - pecl_http - PHP"},{"label":"PowerShell - RestMethod","value":"powershell - RestMethod - PowerShell"},{"label":"Python - http.client","value":"python - http.client - Python"},{"label":"Python - Requests","value":"python - Requests - Python"},{"label":"R - httr","value":"r - httr - R"},{"label":"R - RCurl","value":"r - RCurl - R"},{"label":"Ruby - Net::HTTP","value":"ruby - Net::HTTP - Ruby"},{"label":"Shell - Httpie","value":"shell - Httpie - Shell"},{"label":"Shell - wget","value":"shell - wget - Shell"},{"label":"Swift - URLSession","value":"swift - URLSession - Swift"}],"layoutOptions":[{"value":"classic-single-column","label":"Single Column"},{"value":"classic-double-column","label":"Double Column"}],"versionOptions":[],"environmentOptions":[{"value":"0","label":"No Environment"},{"label":"PowerClerk API V2 Documentation","value":"27632864-bbd4779c-b359-4558-8b7e-849fe47a6496"}],"canonicalUrl":"https://apidocs.powerclerk.com/view/metadata/2s9Ye8hvvo"}