---
title: "Get existing framework agreement for the worker"
method: GET
path: "/public/framework-agreement/v1/get-framework-agreement"
tags: ["Framework Agreement"]
---

# Get existing framework agreement for the worker

`GET /public/framework-agreement/v1/get-framework-agreement`

## Request

- Base URL: `https://api.maqqie.app` (the document declares no server; this is the origin it was published from)
- URL: `https://api.maqqie.app/public/framework-agreement/v1/get-framework-agreement`
- Auth: OAuth 2
  - Client credentials
  - Token URL: `https://maqqie.app/auth/realms/maqqie/protocol/openid-connect/token`
- TypeScript: <https://skmtc.dev/maqqie/apis/maqqie-public-api/docs/public/framework-agreement/v1/get-framework-agreement/get.ts> (a function with typed inputs; its response is checked against the schema)

Get existing signed and unsigned framework agreement (if any) for the given worker.

## Query parameters

- `workerId` string, uuid, required

## Response `200`

Successfully retrieved the framework agreement

- FrameworkAgreementGetResponseV1: If there is a signed agreement, `unsignedAgreement` is `null`. If there is no signed agreement, but there is an unsigned agreement, `signedAgreement` is `null`. If neither exists, both are `null`.
  - `signedAgreement` FrameworkAgreementSignedEventV1: Request body for the webhook that is called once a worker has signed the framework agreement.
    - `documentId` string, uuid: The id of the document containing the signed framework agreement. The document can be retrieved using the /worker-document endpoint.
  - `unsignedAgreement` FrameworkAgreementCreationResponseV1
    - `frameworkAgreementId` string, uuid, required
    - `signingUrl` string, uri, required: A URL to sign the framework agreement.
    - `signingUrlExpirationTimestamp` string, date-time, required: The timestamp (UTC) at which the signing URL will expire.

## Other responses

- `400`: The request could not be processed. This could be due to a number of reasons: * The request does not have all required data. * Data in the request is invalid. * Data in the request is inconsistent. * The operation is not allowed given the current state of the data.
- `401`: The request did not contain credentials identifying the caller, or the provided credentials were invalid.
- `403`: The data that the request referred to is inaccessible to the caller.

## Changes

- **2026-09-29** `f9510f3f4b22`: 2 breaking, 2 info
  - the response's body type changed from no type to `object` for status `200`
  - the response's body type changed from no type to `string` for status `400`
  - added the optional property `signedAgreement` to the response with the `200` status
  - added the optional property `unsignedAgreement` to the response with the `200` status
- **2026-09-29** `3352b56bb8fe`: 2 breaking, 2 warning, 2 info
  - the response's body type changed from `object` to no type for status `200`
  - the response's body type changed from `string` to no type for status `400`
  - removed the optional property `signedAgreement` from the response with the `200` status
  - removed the optional property `unsignedAgreement` from the response with the `200` status
  - …2 more
- **2026-09-16** `ccf9834e5006`: 2 breaking, 2 info
  - the response's body type changed from no type to `object` for status `200`
  - the response's body type changed from no type to `string` for status `400`
  - added the optional property `signedAgreement` to the response with the `200` status
  - added the optional property `unsignedAgreement` to the response with the `200` status
- …earlier changes not shown

[Operation history](https://skmtc.dev/maqqie/apis/maqqie-public-api/changes/public/framework-agreement/v1/get-framework-agreement/get.md)

---

[API](https://skmtc.dev/maqqie/apis/maqqie-public-api.md) - [All operations](https://skmtc.dev/maqqie/apis/maqqie-public-api/llms.txt) - [OpenAPI document](https://skmtc.dev/maqqie/apis/maqqie-public-api/revisions/13ed331da2b2?raw)
