Acquainto
← API reference

Links

POST/v1/eflows/{id}/links

Mint an invite link

Signs the subject into the link, so who is answering is our claim rather than the browser’s. Honors Idempotency-Key. Capped by the plan’s live-link ceiling — see the 403 below.

Requires the links:write scope.

Example request

curl https://api.acquainto.com/v1/eflows/eflow_abc123/links \
  -H "Authorization: Bearer acq_live_xxxxxxxx" \
  -X POST \
  -H "Content-Type: application/json" \
  -d '{
    "subjectRef": "string",
    "prefill": {},
    "expiresAt": "2026-01-15T09:30:00Z",
    "maxUses": 1
  }'

Parameters

  • idpathstringrequired

    A eflow id, prefixed `eflow_`.

Request body

  • subjectRefstring
  • prefillobject
  • expiresAtstring
  • maxUsesinteger

Responses

201Mint an invite link
  • idstringrequired

    A link id, prefixed `link_`.

  • eflowIdstringrequired

    A eflow id, prefixed `eflow_`.

  • subjectRefstring | nullrequired

    Your identifier for the respondent. Signed into the token, so the browser cannot alter it.

  • prefillobjectrequired

    Answers you already know, seeded into the conversation.

  • expiresAtstringrequired
  • maxUsesinteger | nullrequired

    Null means unlimited until expiry.

  • usedCountintegerrequired
  • revokedAtstring | nullrequired
  • createdAtstringrequired
  • tokenstringrequired

    Returned here, and not by `GET .../links`. If you lose it, show the link again from Personalized links in the dashboard, or mint a new link.

  • urlstringrequired

    The link to send the respondent. `GET /e/{token}` exchanges it for a session server-side.

400The request was malformed or failed validation.
  • errorobjectrequired
    • type"invalid_request_error" | "authentication_error" | "permission_error" | "not_found_error" | "idempotency_error" | "rate_limit_error" | "api_error"required

      The bucket a client branches on to decide how to react.

    • codestringrequired

      Stable machine-readable code. Branch on this, not on `message`.

    • messagestringrequired

      Human-readable. May change without notice.

    • paramstring

      The offending request field, when the error names one.

    • requestIdstringrequired

      Echoes the `req_...` id; quote it in support requests.

401Missing, invalid, or revoked credential.
  • errorobjectrequired
    • type"invalid_request_error" | "authentication_error" | "permission_error" | "not_found_error" | "idempotency_error" | "rate_limit_error" | "api_error"required

      The bucket a client branches on to decide how to react.

    • codestringrequired

      Stable machine-readable code. Branch on this, not on `message`.

    • messagestringrequired

      Human-readable. May change without notice.

    • paramstring

      The offending request field, when the error names one.

    • requestIdstringrequired

      Echoes the `req_...` id; quote it in support requests.

403Either the credential lacks the scope this route requires (`insufficient_scope`), or the tenant already holds as many live invite links as its plan allows (`link_quota_exceeded`). Branch on `error.code`. A link stops counting as live once it is revoked, expires, or reaches `maxUses`.
  • errorobjectrequired
    • type"invalid_request_error" | "authentication_error" | "permission_error" | "not_found_error" | "idempotency_error" | "rate_limit_error" | "api_error"required

      The bucket a client branches on to decide how to react.

    • codestringrequired

      Stable machine-readable code. Branch on this, not on `message`.

    • messagestringrequired

      Human-readable. May change without notice.

    • paramstring

      The offending request field, when the error names one.

    • requestIdstringrequired

      Echoes the `req_...` id; quote it in support requests.

404No such resource, or it belongs to another tenant.
  • errorobjectrequired
    • type"invalid_request_error" | "authentication_error" | "permission_error" | "not_found_error" | "idempotency_error" | "rate_limit_error" | "api_error"required

      The bucket a client branches on to decide how to react.

    • codestringrequired

      Stable machine-readable code. Branch on this, not on `message`.

    • messagestringrequired

      Human-readable. May change without notice.

    • paramstring

      The offending request field, when the error names one.

    • requestIdstringrequired

      Echoes the `req_...` id; quote it in support requests.

409Error.
  • errorobjectrequired
    • type"invalid_request_error" | "authentication_error" | "permission_error" | "not_found_error" | "idempotency_error" | "rate_limit_error" | "api_error"required

      The bucket a client branches on to decide how to react.

    • codestringrequired

      Stable machine-readable code. Branch on this, not on `message`.

    • messagestringrequired

      Human-readable. May change without notice.

    • paramstring

      The offending request field, when the error names one.

    • requestIdstringrequired

      Echoes the `req_...` id; quote it in support requests.

429Rate limited. Retry after the interval in `Retry-After`.
  • errorobjectrequired
    • type"invalid_request_error" | "authentication_error" | "permission_error" | "not_found_error" | "idempotency_error" | "rate_limit_error" | "api_error"required

      The bucket a client branches on to decide how to react.

    • codestringrequired

      Stable machine-readable code. Branch on this, not on `message`.

    • messagestringrequired

      Human-readable. May change without notice.

    • paramstring

      The offending request field, when the error names one.

    • requestIdstringrequired

      Echoes the `req_...` id; quote it in support requests.

500Something failed on our side. Safe to retry.
  • errorobjectrequired
    • type"invalid_request_error" | "authentication_error" | "permission_error" | "not_found_error" | "idempotency_error" | "rate_limit_error" | "api_error"required

      The bucket a client branches on to decide how to react.

    • codestringrequired

      Stable machine-readable code. Branch on this, not on `message`.

    • messagestringrequired

      Human-readable. May change without notice.

    • paramstring

      The offending request field, when the error names one.

    • requestIdstringrequired

      Echoes the `req_...` id; quote it in support requests.

Browse every operation, with full request/response schemas, in the full API reference.