Topolo Docs Topolo Platform
Open workspace

Check signup email

Check whether the buyer email already has an account before signup.

Check whether the buyer email already has an account before signup.

Action app_topolo_one.signup.email_availability.get · GET /api/email-availability. Intended audience: public.

Catalog flags: readOnly=True, requiresConfirmation=False, destructive=False, agentAccess=auto. HTTP method and empty permission fields do not override the actual effects or authority below.

Authority and prerequisites

  • Declared authorization mode=public, requiredPermission=empty; actual source identity/resource checks below remain mandatory.
  • Discover the actual identifier and current intended state within existing authority. Examples grant no access and are not executable probes.

Identifiers

  • Use only the actual intended signup identifier. If the email exists use the existing account path; do not create a duplicate account to bypass ownership.

Input

  • email: type="string"; pattern="^(?!\.)(?!.\.\.)([A-Za-z0-9_'+\-\.])[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$". Required.

The exact native input/output schemas are retained in the hidden paired layer for this version. Top-level undeclared fields are rejected. Nested open records and semantic prerequisites still need source checks.

Effects and important boundaries

  • Checks the same email availability used by the public signup form; exposes no account details.
  • Uses the public signup availability flow, with local formatting and per-IP throttling before Auth lookup. Use only the intended buyer’s email or requested workspace slug; no enumeration was performed or authorized by this batch.
  • Returns a current availability verdict without reserving the value or creating an organization, account, checkout, trial or charge. The final uniqueness/ownership/provisioning checks remain authoritative.
  • The raw handler has weaker empty/format branches than the strict action schema. Do not advertise malformed direct query input as a supported action example.
  • A dependency failure returns HTTP 502 with success=false and exists/available=null, outside the success-only schema. This is UNKNOWN, never available=true or exists=false.

Refusals, failures and recovery

  • 429 RATE_LIMITED: Wait before another availability check.

This read does not change a subscription or charge money.

Verification

  • Sign in to an existing account if the email exists; do not create another account to bypass ownership.
  • Retain actual request/receipt identifiers securely, preserve UNKNOWN effects and reconcile before any retry.

Run a reviewed request

Discover the current action and its resource requirements before running it. Save the approved input as reviewed-input.json; replace synthetic examples with values obtained through the intended authorized workflow. If discovery requires a resource binding, provide its published type and resolved ID separately on both plan and call. Stop if validation fails or the plan is not executable.

topolo actions get app_topolo_one.signup.email_availability.get --json
topolo actions validate app_topolo_one.signup.email_availability.get --data @reviewed-input.json --json
topolo actions plan app_topolo_one.signup.email_availability.get --data @reviewed-input.json --json
topolo actions call app_topolo_one.signup.email_availability.get --data @reviewed-input.json --json

Worked examples

All examples are synthetic and unrun. They cannot authorize access, create human consent, prove media/provider success or establish financial/customer state. Placeholder tokens are unusable. No contact, payment, notification, provisioning or business read was executed.

Availability illustration

SOURCE-AUTHORED SYNTHETIC, UNRUN. Output assessment: PASS_STRUCTURAL_ONLY_UNRUN.

Input:

{
  "email": "owner@example.test"
}

Output illustration or error excerpt:

{
  "success": true,
  "exists": false,
  "email": "owner@example.test",
  "reason": "available"
}

200 synthetic current verdict, not an immutable guarantee or reservation.

Refusal or failure

SOURCE-AUTHORED SYNTHETIC, UNRUN. Source-derived error-code excerpt only; messages/envelope can differ by layer or locale. Not a captured response. Output assessment: ERROR_EXCERPT_NOT_SUCCESS_SCHEMA.

Input:

{
  "email": "owner@example.test"
}

Output illustration or error excerpt:

{
  "error": "RATE_LIMITED"
}

Respect rate limiting; do not enumerate or parallelize around it.

Invalid input: stop at schema validation

SOURCE-AUTHORED SYNTHETIC, UNRUN. null is a no-response sentinel, not returned JSON null. Output assessment: NOT_APPLICABLE_NO_REQUEST.

Input:

{}

Output illustration or error excerpt:

null

Intentionally invalid input; no request was issued and no HTTP response/status is asserted.

Boundary: dependency failure yields unknown

SOURCE-AUTHORED SYNTHETIC, UNRUN. Output assessment: ERROR_EXCERPT_NOT_SUCCESS_SCHEMA.

Input:

{
  "email": "owner@example.test"
}

Output illustration or error excerpt:

{
  "success": false,
  "exists": null,
  "email": "owner@example.test",
  "reason": "error"
}

502 outside the success contract. Null does not establish availability or account absence.

Source and verification limits

Reviewed against cb18601dad6735f8140a4c81e9650d9fc3599f9a at apps/marketing/worker/checkout-routes.js and the published action schema on 2026-10-20. Examples are synthetic and unrun. Source review and schema validation do not prove current deployed behavior, provider completion or business delivery. Response excerpts are labelled where incomplete.

Change log

  • 2026-10-20: Prepared the action guide with paired agent schemas, permission and effect boundaries, worked examples, verification and recovery instructions. Independently checked the pinned source; publication and runtime verification remain separate.