Acquainto
← API reference

Links

POST/v1/eflows/{id}/links/batch

Mint invite links in bulk

Up to 1000 links in one call, answered in request order — a mail merge larger than that is a job, not a request. All or nothing: one invalid entry rejects the batch, and so does a batch that would cross the plan’s live-link ceiling. Honors Idempotency-Key.

Requires the links:write scope.

Example request

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

Parameters

  • idpathstringrequired

    A eflow id, prefixed `eflow_`.

Request body

  • linksarray of objectrequired
    • subjectRefstring
    • prefillobject
    • expiresAtstring
    • maxUsesinteger

Responses

201Mint invite links in bulk
  • dataarray of objectrequired
    • 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.

  • countintegerrequired
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.