Skip to content

Distributions (Public Submission)

Distributions are public landing pages that let end users claim a wallet pass by submitting a short form. This section documents the public submission surface only: fetching a published page's config, submitting the form to enroll, and resending a pass email.

These pages are powered by the wallethero-api Directus endpoint extension. All endpoints are mounted under the /wallethero-api prefix. Base URL: https://api.wallethero.app.

Dashboard CRUD for distributions (/wallethero-api/workspace/:workspaceId/distributions) is covered in Distribution CRUD. The embeddable widget endpoints (/wallethero-api/embed/distribution/:token/*) and API-token rotation are documented elsewhere and are not covered here.

The public flow

  1. Fetch the public pageGET /wallethero-api/distribution/public/:pageAddress returns the published page's HTML, CSS, and form-field configuration. Render the form from this.
  2. Submit to enrollPOST /wallethero-api/distribution/submit creates (or reuses) a client and pass for the submitter and emails them the wallet download links.
  3. Resend the pass emailPOST /wallethero-api/pass/resend re-sends the download links for an existing pass.
MethodPathAuthDoc
GET/wallethero-api/distribution/public/:pageAddressPublicThis page
POST/wallethero-api/distribution/submitPublicSubmit
POST/wallethero-api/pass/resendBearer token (workspace member)Resend

Get Public Distribution Page

GET /wallethero-api/distribution/public/:pageAddress

Resolves a published distribution by its public page address and returns the data needed to render its landing form. Returns 404 if no matching published page exists.

Auth: Public — no Bearer token, no workspace membership.

Path Parameters

ParameterTypeDescription
pageAddressstringThe distribution's public page address (slug).

Query Parameters

ParameterTypeRequiredDefaultDescription
workspaceSlugstringNoDisambiguates the page address when the same slug exists across multiple workspaces. When provided, the lookup is constrained to that workspace.

Example Request

bash
curl "https://api.wallethero.app/wallethero-api/distribution/public/PAGE_ADDRESS?workspaceSlug=acme"

Response (200)

json
{
  "success": true,
  "data": {
    "id": "b7f0c9d2-1a3e-4c8b-9f2d-7e6a5c4b3a21",
    "status": "published",
    "css": ".form { max-width: 480px; }",
    "form_fields_config": {
      "marketing_consent": { "enabled": true, "required": false, "label": "Send me offers" }
    },
    "landing_html": "<form>...</form>",
    "landing_html_success": "<p>Check your email!</p>"
  }
}

Response Fields

FieldTypeDescription
data.idstring (UUID)Distribution identifier — pass this as distribution_id when submitting.
data.statusstringDistribution status (always published for a successful response).
data.cssstring | nullCustom CSS for the landing form.
data.form_fields_configobject | nullConfiguration describing which form fields to render.
data.landing_htmlstring | nullHTML for the landing/form page.
data.landing_html_successstring | nullHTML to show after a successful submission.

Errors

StatusBodyDescription
400{ "error": "Page address is required" }Missing :pageAddress.
404{ "error": "Distribution not found or not published" }No published distribution matches the page address (and workspace slug, if given).

SDK

No SDK method — call the REST endpoint directly. (The SDK's PublicDistributionService targets the token-based /embed/distribution/:token/* endpoints, which are documented separately.)

WalletHero Documentation