Skip to article
DocumentationGuides & reference

Search across guides and reference articles. Try “email”, “API” or “conditions”.

Govform API & MCP

Govform API endpoint index

Find the customer REST endpoints for services, definitions, submitted data, files, analytics, Collection programmes, User portal settings and Darcy tools. Each entry links to its request, response and permission guidance.

API hosts and authentication

Builder: https://govforms.uk, or your private Builder host. QA: https://qa.cloud.govforms.uk. Production: https://cloud.govforms.uk. Use the configured host for your organisation's other environments.

Library REST calls use a library API key through Authorization: GovformsApiKey <key-id>:<key-secret>, or GovformsApiHmac. Only grant the permissions your integration needs. JSON writes use Content-Type: application/json. API usage follows the shared units and limits.

Use service discovery when you know the library ID but need its Service IDs. Builder definitions can differ from deployed versions; use the target environment's status endpoint to verify what is running.

Builder service, portal and Darcy endpoints

Call these paths on the Builder host. Permission alternatives mean either named permission is sufficient; individual tools may impose additional checks described in their guide.

Method and path API-key permission Guide
GET /builder/libraries/{libraryId}/api/user-portal apiPortalRead Read, update and deploy User portal settings
PATCH /builder/libraries/{libraryId}/api/user-portal apiPortalWrite Read, update and deploy User portal settings
POST /builder/libraries/{libraryId}/api/user-portal/deployments apiPortalDeploy Read, update and deploy User portal settings
GET /builder/libraries/{libraryId}/api/forms apiOrgRead List services, metadata and form schemas
POST /builder/libraries/{libraryId}/api/forms/{formId} apiFormWrite Create, update and delete services through the API
DELETE /builder/libraries/{libraryId}/api/forms/{formId} apiFormWrite Create, update and delete services through the API
GET /builder/libraries/{libraryId}/api/form/{formId} apiFormRead List services, metadata and form schemas
GET /builder/libraries/{libraryId}/api/form/{formId}/summary apiFormRead List services, metadata and form schemas
PUT /builder/libraries/{libraryId}/api/save-form-version/{formId} apiFormWrite Create, update and delete services through the API
POST /builder/libraries/{libraryId}/api/darcy/form-lock/{formId} apiFormWrite Create, update and delete services through the API
PUT /builder/libraries/{libraryId}/api/darcy/form-lock/{formId} apiFormWrite Create, update and delete services through the API
DELETE /builder/libraries/{libraryId}/api/darcy/form-lock/{formId} apiFormWrite Create, update and delete services through the API
GET /builder/libraries/{libraryId}/api/deployments/{formId} apiFormRead List services, metadata and form schemas
POST /builder/libraries/{libraryId}/api/deployments apiFormDeploy Create, update and delete services through the API
GET /builder/libraries/{libraryId}/api/darcy/tools/catalog apiDarcyToolRead or apiDarcyToolWrite Discover and run Darcy REST tools
POST /builder/libraries/{libraryId}/api/darcy/tools/{toolName} Tool-specific permission Discover and run Darcy REST tools
POST /builder/libraries/{libraryId}/api/darcy/ask apiDarcyAsk Discover and run Darcy REST tools
POST /builder/libraries/{libraryId}/api/darcy/agent apiDarcyAgent Discover and run Darcy REST tools
PUT /builder/libraries/{libraryId}/api/upsert-service-definition/{formId} upsertServiceDefinition Create, update and delete services through the API
PUT /builder/libraries/{libraryId}/api/start-deployment/{formId}/{version}/{env} triggerServiceDeployment Create, update and delete services through the API

QA and Production data and deployment endpoints

Call these paths on the relevant service environment's host. serviceId is the Service ID without its library prefix.

Method and path API-key permission Guide
GET /api/submitted-data/{libraryId}/{serviceId} fetchCustomerData Fetch submitted form data
POST /api/submitted-data/{libraryId}/{serviceId}/delete deleteSubmittedData Delete submitted form data
PUT /api/submitted-data/{libraryId}/{serviceId}/{submissionId}/status setFormStatus Set submitted form status
GET /api/submitted-data/{libraryId}/{serviceId}/{submissionId}/files fetchCustomerData List and download uploaded files and signatures
GET /api/submitted-data/{libraryId}/{serviceId}/{submissionId}/files/{fieldId} fetchCustomerData List and download uploaded files and signatures
GET /api/submitted-data/{libraryId}/{serviceId}/{submissionId}/bulk/{fieldId}/{artifact} fetchCustomerData Bulk Data files and submitted revisions
GET /api/analytics-events/{libraryId}/{serviceId} fetchAnalyticsEvents Fetch analytics events
GET /api/analytics-journeys/{libraryId}/{serviceId} fetchAnalyticsJourneys Fetch journey analytics records
GET /api/service-deployments/{libraryId}/{serviceId} getDeployedServiceVersion Get deployed service version
PUT /api/service-deployments/{libraryId}/{serviceId}/{version} triggerServiceDeployment Trigger service deployment

Collection programme endpoints

Call these paths on the Builder host. environment selects the Collection's environment. Creating a Collection additionally requires apiFormWrite; applying its form additionally requires apiFormDeploy. Response Hub must be enabled for the library.

Method and path API-key permission Guide
GET /builder/libraries/{libraryId}/api/response-hub/collection-programmes apiCollectionProgrammeRead or apiCollectionProgrammeWrite Collection programme API
POST /builder/libraries/{libraryId}/api/response-hub/collection-programmes apiCollectionProgrammeWrite Collection programme API
GET /builder/libraries/{libraryId}/api/response-hub/collection-programmes/{collectionProgrammeId} apiCollectionProgrammeRead or apiCollectionProgrammeWrite Collection programme API
PATCH /builder/libraries/{libraryId}/api/response-hub/collection-programmes/{collectionProgrammeId} apiCollectionProgrammeWrite Collection programme API
GET /builder/libraries/{libraryId}/api/response-hub/collection-programmes/{collectionProgrammeId}/collections/{environment} apiCollectionProgrammeRead or apiCollectionProgrammeWrite Collection programme API
POST /builder/libraries/{libraryId}/api/response-hub/collection-programmes/{collectionProgrammeId}/collections apiCollectionProgrammeWrite Collection programme API
GET /builder/libraries/{libraryId}/api/response-hub/collection-programmes/{collectionProgrammeId}/collections/{environment}/{collectionId} apiCollectionProgrammeRead or apiCollectionProgrammeWrite Collection programme API
PATCH /builder/libraries/{libraryId}/api/response-hub/collection-programmes/{collectionProgrammeId}/collections/{environment}/{collectionId} apiCollectionProgrammeWrite Collection programme API
POST /builder/libraries/{libraryId}/api/response-hub/collection-programmes/{collectionProgrammeId}/collections/{environment}/{collectionId}/transition/{action} apiCollectionProgrammeWrite Collection programme API
POST /builder/libraries/{libraryId}/api/response-hub/collection-programmes/{collectionProgrammeId}/collections/{environment}/{collectionId}/apply-form apiCollectionProgrammeWrite Collection programme API
GET /builder/libraries/{libraryId}/api/response-hub/collection-programmes/{collectionProgrammeId}/collections/{environment}/{collectionId}/cohorts apiCollectionProgrammeRead or apiCollectionProgrammeWrite Collection programme API
POST /builder/libraries/{libraryId}/api/response-hub/collection-programmes/{collectionProgrammeId}/collections/{environment}/{collectionId}/cohorts apiCollectionProgrammeWrite Collection programme API
PATCH /builder/libraries/{libraryId}/api/response-hub/collection-programmes/{collectionProgrammeId}/collections/{environment}/{collectionId}/cohorts/{cohortId} apiCollectionProgrammeWrite Collection programme API
GET /builder/libraries/{libraryId}/api/response-hub/collection-programmes/{collectionProgrammeId}/collections/{environment}/{collectionId}/assignments apiCollectionProgrammeRead or apiCollectionProgrammeWrite Collection programme API
POST /builder/libraries/{libraryId}/api/response-hub/collection-programmes/{collectionProgrammeId}/collections/{environment}/{collectionId}/assignments apiCollectionProgrammeWrite Collection programme API
POST /builder/libraries/{libraryId}/api/response-hub/collection-programmes/{collectionProgrammeId}/collections/{environment}/{collectionId}/assignments/{assignmentId}/cancel apiCollectionProgrammeWrite Collection programme API
GET /builder/libraries/{libraryId}/api/response-hub/collection-programmes/{collectionProgrammeId}/collections/{environment}/{collectionId}/responses apiCollectionProgrammeRead or apiCollectionProgrammeWrite Collection programme API
GET /builder/libraries/{libraryId}/api/response-hub/collection-programmes/{collectionProgrammeId}/collections/{environment}/{collectionId}/responses/{responseId}/versions apiCollectionProgrammeRead or apiCollectionProgrammeWrite Collection programme API
GET /builder/libraries/{libraryId}/api/response-hub/collection-programmes/{collectionProgrammeId}/collections/{environment}/{collectionId}/responses/{responseId}/versions/{versionNumber}/files/{fieldId}/{fileIndex} apiCollectionProgrammeRead or apiCollectionProgrammeWrite Collection programme API
GET /builder/libraries/{libraryId}/api/response-hub/collection-programmes/{collectionProgrammeId}/collections/{environment}/{collectionId}/responses/{responseId}/versions/{versionNumber}/bulk/{fieldId}/{artifact} apiCollectionProgrammeRead or apiCollectionProgrammeWrite Collection programme API
GET /builder/libraries/{libraryId}/api/response-hub/collection-programmes/{collectionProgrammeId}/collections/{environment}/{collectionId}/responses/{responseId} apiCollectionProgrammeRead or apiCollectionProgrammeWrite Collection programme API
GET /builder/libraries/{libraryId}/api/response-hub/collection-programmes/{collectionProgrammeId}/collections/{environment}/{collectionId}/reviews apiCollectionProgrammeRead or apiCollectionProgrammeWrite Collection programme API
GET /builder/libraries/{libraryId}/api/response-hub/collection-programmes/{collectionProgrammeId}/collections/{environment}/{collectionId}/reviews/{workItemId}/issues apiCollectionProgrammeRead or apiCollectionProgrammeWrite Collection programme API
GET /builder/libraries/{libraryId}/api/response-hub/collection-programmes/{collectionProgrammeId}/collections/{environment}/{collectionId}/reviews/{workItemId} apiCollectionProgrammeRead or apiCollectionProgrammeWrite Collection programme API
POST /builder/libraries/{libraryId}/api/response-hub/collection-programmes/{collectionProgrammeId}/collections/{environment}/{collectionId}/reviews/{workItemId}/{action} apiCollectionProgrammeWrite Collection programme API
GET /builder/libraries/{libraryId}/api/response-hub/collection-programmes/{collectionProgrammeId}/collections/{environment}/{collectionId}/communications apiCollectionProgrammeRead or apiCollectionProgrammeWrite Collection programme API
GET /builder/libraries/{libraryId}/api/response-hub/collection-programmes/{collectionProgrammeId}/collections/{environment}/{collectionId}/audit apiCollectionProgrammeRead or apiCollectionProgrammeWrite Collection programme API
GET /builder/libraries/{libraryId}/api/response-hub/collection-programmes/{collectionProgrammeId}/collections/{environment}/{collectionId}/form-revisions apiCollectionProgrammeRead or apiCollectionProgrammeWrite Collection programme API
POST /builder/libraries/{libraryId}/api/response-hub/collection-programmes/{collectionProgrammeId}/collections/{environment}/{collectionId}/exports apiCollectionProgrammeRead or apiCollectionProgrammeWrite Collection programme API
GET /builder/libraries/{libraryId}/api/response-hub/collection-programmes/{collectionProgrammeId}/collections/{environment}/{collectionId}/exports apiCollectionProgrammeRead or apiCollectionProgrammeWrite Collection programme API
GET /builder/libraries/{libraryId}/api/response-hub/collection-programmes/{collectionProgrammeId}/collections/{environment}/{collectionId}/exports/{exportId} apiCollectionProgrammeRead or apiCollectionProgrammeWrite Collection programme API
DELETE /builder/libraries/{libraryId}/api/response-hub/collection-programmes/{collectionProgrammeId}/collections/{environment}/{collectionId}/exports/{exportId} apiCollectionProgrammeRead or apiCollectionProgrammeWrite Collection programme API
GET /builder/libraries/{libraryId}/api/response-hub/collection-programmes/{collectionProgrammeId}/collections/{environment}/{collectionId}/exports/{exportId}/manifest apiCollectionProgrammeRead or apiCollectionProgrammeWrite Collection programme API
GET /builder/libraries/{libraryId}/api/response-hub/collection-programmes/{collectionProgrammeId}/collections/{environment}/{collectionId}/exports/{exportId}/parts/{partId} apiCollectionProgrammeRead or apiCollectionProgrammeWrite Collection programme API
POST /builder/libraries/{libraryId}/api/response-hub/collection-programmes/{collectionProgrammeId}/collections/{environment}/{collectionId}/roster apiCollectionProgrammeWrite Collection programme API
POST /builder/libraries/{libraryId}/api/response-hub/collection-programmes/{collectionProgrammeId}/collections/{environment}/{collectionId}/roster/{rosterJobId}/apply apiCollectionProgrammeWrite Collection programme API

MCP connections and OAuth endpoints

These are Builder endpoints. OAuth discovery and registration prepare the connection; the consent page uses an authenticated browser session. OAuth MCP and its evidence-download links require the connection's bearer token and selected library permissions. Library API-key MCP uses the same library key as REST. Follow the MCP connection guide rather than manually posting to the consent page.

Method and path Purpose
GET /builder/.well-known/oauth-protected-resource MCP resource metadata
GET /builder/.well-known/oauth-authorization-server OAuth server metadata
GET /builder/.well-known/openid-configuration Discovery metadata alias
POST /builder/oauth/register Register an OAuth client
GET /builder/oauth/authorize Interactive consent page
POST /builder/oauth/authorize Submit consent from the authenticated browser
POST /builder/oauth/token Exchange or refresh OAuth tokens
POST /builder/oauth/revoke Revoke an OAuth token
GET /builder/mcp OAuth MCP transport; requires bearer authentication
POST /builder/mcp OAuth MCP protocol requests; requires bearer authentication
POST /builder/libraries/{libraryId}/mcp Library API-key MCP protocol requests
GET /builder/libraries/{libraryId}/mcp/response-hub/collection-programmes/{collectionProgrammeId}/collections/{environment}/{collectionId}/exports/{exportId}/parts/{partId} OAuth-authorised export-part download
GET /builder/libraries/{libraryId}/mcp/response-hub/collection-programmes/{collectionProgrammeId}/collections/{environment}/{collectionId}/responses/{responseId}/versions/{versionNumber}/files/{fieldId}/{fileIndex} OAuth-authorised submitted file download
GET /builder/libraries/{libraryId}/mcp/response-hub/collection-programmes/{collectionProgrammeId}/collections/{environment}/{collectionId}/responses/{responseId}/versions/{versionNumber}/bulk/{fieldId}/{artifact} OAuth-authorised submitted Bulk Data download

Use the connection URL supplied for the release you intend to use; browser release cookies do not select an MCP release. Evidence links returned by a connection already identify the appropriate download host and path. Never substitute a library API key for the OAuth bearer token on those MCP download links.

Choose a guide

See authentication headers for raw-key and HMAC formats.

More in developers