> ## Documentation Index
> Fetch the complete documentation index at: https://www.charitystack.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# GET /v1/forms/{formID}/links/{linkID} — retrieve a prefilled checkout link

> Fetch the metadata, prefill payload, destination type, and shareable URL of a previously-created checkout link.

The Get Link endpoint returns a single prefilled checkout link by its ID. Use it to verify a link's contents after creation, to retrieve a `checkoutUrl` you may have lost, or to inspect what's stored before sharing.

The link must belong to your organization and must be attached to the `formID` in the path — both are validated to keep the URL shape `(/forms/{X}/links/{Y})` honest about parent ownership.

## Endpoint

```text theme={null}
GET https://0k90mc4jjj.execute-api.us-east-2.amazonaws.com/v1/forms/{formID}/links/{linkID}
```

## Authentication

<ParamField header="Authorization" type="string" required>
  Bearer token using your API key. Format: `Bearer cs_live_your_key`
</ParamField>

## Path parameters

<ParamField path="formID" type="string" required>
  The parent form's unique identifier.
</ParamField>

<ParamField path="linkID" type="string" required>
  The link's unique identifier, returned by [Create Link](/docs/api/forms/create-checkout-link).
</ParamField>

## Response

<ResponseField name="linkID" type="string">
  Unique identifier for the link.
</ResponseField>

<ResponseField name="formID" type="string">
  The parent form's ID.
</ResponseField>

<ResponseField name="name" type="string">
  The link's internal label.
</ResponseField>

<ResponseField name="prefill" type="object">
  The prefill payload, translated back to the same camelCase keys you sent on create. Keys are omitted if they weren't set. `customInputs` are keyed by their original question title (or the storage key as a fallback if the input was renamed/deleted on the form after the link was created). See [Create Link — prefill whitelist](/docs/api/forms/create-checkout-link) for the full set.
</ResponseField>

<ResponseField name="checkoutUrl" type="string">
  The shareable URL. Rebuilt from current `destinationType` + `overlayPath` + organization config — so if the underlying form or merchant config changed, the URL reflects the current state.
</ResponseField>

<ResponseField name="destinationType" type="string">
  One of `HOSTED_PAGE_DONATE`, `HOSTED_PAGE_ATTEND`, `OVERLAY_DONATE`, `OVERLAY_ATTEND`.
</ResponseField>

<ResponseField name="overlayPath" type="string">
  URL path on the organization's site (only set for `OVERLAY_*` destinations; empty string otherwise).
</ResponseField>

<ResponseField name="active" type="boolean">
  Whether the link is active. Inactive links are visible via [List Links](/docs/api/forms/list-links) with `?active=false` and can be re-enabled via [Activate](/docs/api/forms/toggle-link).
</ResponseField>

<ResponseField name="createdAt" type="string">
  ISO 8601 UTC timestamp from when the link was created.
</ResponseField>

## Status codes

| Code  | Description                                                                                                               |
| ----- | ------------------------------------------------------------------------------------------------------------------------- |
| `200` | Link returned successfully.                                                                                               |
| `400` | Missing `formID` or `linkID` path parameter.                                                                              |
| `401` | Missing or invalid API key.                                                                                               |
| `403` | Link belongs to a different organization.                                                                                 |
| `404` | No link found with the given ID, or the link isn't attached to the supplied `formID`.                                     |
| `500` | Internal error (e.g. the link's destinationType is overlay but the organization's `organizationBaseURLs` is unavailable). |

## Example

```bash cURL theme={null}
curl https://0k90mc4jjj.execute-api.us-east-2.amazonaws.com/v1/forms/550e8400-e29b-41d4-a716-446655440000/links/bc033789-1ee2-4f3f-bec5-2f108c2d65ba \
  -H "Authorization: Bearer cs_live_your_key"
```

**200 response**

```json theme={null}
{
  "linkID": "bc033789-1ee2-4f3f-bec5-2f108c2d65ba",
  "formID": "550e8400-e29b-41d4-a716-446655440000",
  "name": "Outreach email — May 2026",
  "prefill": {
    "firstName": "Akif",
    "lastName": "Abidi",
    "email": "akif@example.org",
    "amount": "50",
    "frequency": "MONTHLY",
    "customInputs": {
      "T-shirt size": "M"
    }
  },
  "checkoutUrl": "https://charitystack.com/donate/550e8400-e29b-41d4-a716-446655440000?elementid=bc033789-1ee2-4f3f-bec5-2f108c2d65ba",
  "destinationType": "HOSTED_PAGE_DONATE",
  "overlayPath": "",
  "active": true,
  "createdAt": "2026-05-22T10:41:23.651186+00:00"
}
```
