{"openapi":"3.1.0","info":{"title":"Walink API","version":"1.0.0","description":"Walink's public API: create and manage WhatsApp links, free links, Smart Links, forms and multilink\npages, and read their analytics.\n\n## Authentication\n\nSend an API token as `Authorization: Bearer wlk_live_...`. Create tokens in the Walink dashboard\nand grant only the scopes you need. `write` implies `read`. Nothing implies `publish`, `delete`\nor `responses:read`.\n\nTwo scopes show more than their name says. `multilinks:read` lists the names of your published\nlinks, Smart Links and forms, through `/v1/multilinks/linkable-resources`. `analytics:read`\nleaderboards name your published links, Smart Links, forms and multilinks. Neither needs the\nproduct's own read scope.\n\n## Conventions\n\n- Fields are snake_case, timestamps are ISO 8601, and analytics windows are `YYYY-MM-DD`.\n- Lists take `limit` (25 by default, 100 at most) and `cursor`, and answer\n  `{ data, has_more, next_cursor }`.\n- Every create makes a **draft**, except a free link. Going live is a separate `publish` call, and\n  it needs its own scope.\n- Editing a published resource changes it live, so it needs the `publish` scope too.\n- A `handle` is permanent. It can't be changed after create.\n- Send `Idempotency-Key` on a create to make retries safe for 24 hours.\n- An account holds at most 500 drafts per product through this API. Field limits are in\n  `/v1/reference`, and they apply to what a request sends, never to what is already stored.\n- Every response carries `Request-Id`.\n\n## Free links\n\n`/v1/free-links` is its own small surface: list, create, get and delete, on any account, with or\nwithout a subscription. An account holds at most 5, and deleting one frees its slot.\n\n- A free link is **live as soon as it is created**, so creating one needs `links:publish`, not\n  `links:write`.\n- Its handle is random and can't be chosen. It always opens a chat, with a phone or a username.\n- It can't be edited or unpublished here, and its analytics aren't available here. Both need an\n  upgrade to Premium in the Walink dashboard.\n- `/v1/links` and every other route never show a free link: its `fln_` id only works here.\n\n## Errors\n\nEvery error is `{ error: { code, message, param, doc_url, request_id, details } }`.\n\n| Code | Status | Meaning |\n| --- | --- | --- |\n| `invalid_json` | 400 | The body isn't valid JSON |\n| `invalid_token` | 401 | Missing, invalid, expired or revoked token |\n| `pool_exhausted` | 402 | Not enough allowance. `details` has the numbers and `billing_url` |\n| `past_due_locked` | 402 | A failed renewal freezes authoring until it is paid |\n| `subscription_required` | 402 | Analytics need a subscription |\n| `insufficient_scope` | 403 | `details.required` lists the scopes, any one of which is enough |\n| `migration_required` | 403 | The account must finish its V1 review in the dashboard |\n| `not_found` | 404 | Also for ids on other accounts |\n| `handle_taken` | 409 | `details.reason` is `own`, `taken` or `in_use` |\n| `draft_limit_reached` | 409 | This product already holds `details.limit` drafts. Delete or publish some |\n| `free_link_limit_reached` | 409 | This account already holds `details.limit` free links. Delete one |\n| `idempotency_in_progress` | 409 | A request with this key is still running |\n| `confirmation_required` | 409 | Deleting needs explicit confirmation |\n| `stale_write` | 412 | The resource changed since it was read |\n| `payload_too_large` | 413 | The body is over 1 MiB |\n| `unsupported_media_type` | 415 | Send `application/json` |\n| `validation_failed` | 422 | `details.fields` lists the problems per field |\n| `handle_immutable` | 422 | A handle can't change |\n| `idempotency_key_reused` | 422 | This key was used with a different body |\n| `logic_conflict` | 422 | The write would drop or break a question's condition (`details.question_id`). Conditions are edited in the dashboard; send each question with its `id` and keep its source question |\n| `rate_limited` | 429 | Wait for `Retry-After` seconds. Never used for allowance |\n| `internal_error` | 500 | Something went wrong on our side |\n| `edge_sync_failed`, `edge_remove_failed` | 502 | The edge could not be updated. Nothing changed |\n| `service_unavailable` | 503 | Wait for `Retry-After` seconds |"},"servers":[{"url":"https://api.walink.com"}],"tags":[{"name":"Account"},{"name":"Links","description":"Premium links, served at `wa.link/<handle>`."},{"name":"Free links","description":"Chat links with a random `wa.link/<handle>`, live from creation and immutable."},{"name":"Smart Links","description":"One `wa.link` that routes each click."},{"name":"Forms","description":"Questionnaires at `form.wa.link/<handle>`."},{"name":"Multilinks","description":"Link-in-bio pages at `bio.wa.link/<handle>`."},{"name":"Analytics"},{"name":"Reference"}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"wlk_live_..."}},"schemas":{"Reference":{"type":"object","properties":{"plans":{"type":"array","items":{"type":"string"}},"routing_modes":{"type":"array","items":{"type":"string"}},"question_types":{"type":"array","items":{"type":"string"}},"form_layouts":{"type":"array","items":{"type":"string"}},"multilink_sources":{"type":"array","items":{"type":"string"}},"contact_types":{"type":"array","items":{"type":"string"}},"handle_namespaces":{"type":"array","items":{"type":"string"}},"in_app_browsers":{"type":"array","items":{"type":"string"}},"referral_platforms":{"type":"array","items":{"type":"string"}},"analytics_dimensions":{"type":"array","items":{"type":"string"}},"scopes":{"type":"array","items":{"type":"string"}},"limits":{"type":"object","additionalProperties":{"type":"number"}},"lifecycle":{"type":"object","properties":{"statuses":{"type":"array","items":{"type":"string"}},"rules":{"type":"array","items":{"type":"string"}}},"required":["statuses","rules"]}},"required":["plans","routing_modes","question_types","form_layouts","multilink_sources","contact_types","handle_namespaces","in_app_browsers","referral_platforms","analytics_dimensions","scopes","limits","lifecycle"]},"Account":{"type":"object","properties":{"name":{"type":"string"},"email":{"type":"string"},"timezone":{"type":"string","description":"IANA zone analytics windows are read in."},"locale":{"type":"string"},"created_at":{"type":"string","format":"date-time","description":"ISO 8601 timestamp, UTC.","example":"2026-11-05T14:32:07.000Z"},"legacy_migration":{"type":"string","enum":["none","optional"]},"allowances":{"type":"object","properties":{"links":{"$ref":"#/components/schemas/PoolUsage"},"destinations":{"$ref":"#/components/schemas/PoolUsage"},"forms":{"$ref":"#/components/schemas/PoolUsage"},"multilinks":{"$ref":"#/components/schemas/PoolUsage"}},"required":["links","destinations","forms","multilinks"]},"free_links":{"type":"object","properties":{"limit":{"type":"integer","description":"The most free links an account can hold."},"used":{"type":"integer","description":"Free links the account holds now."}},"required":["limit","used"],"description":"Free links are not a paid pool, so they have no allowance or past-due state."}},"required":["name","email","timezone","locale","created_at","legacy_migration","allowances","free_links"]},"PoolUsage":{"type":"object","properties":{"allowance":{"type":"integer","description":"Units the subscription grants."},"used":{"type":"integer","description":"Units in use by published resources."},"past_due":{"type":"boolean","description":"A failed renewal freezes authoring until it is paid."}},"required":["allowance","used","past_due"]},"Error":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["validation_failed","handle_immutable","idempotency_key_reused","logic_conflict","pool_exhausted","past_due_locked","subscription_required","handle_taken","draft_limit_reached","free_link_limit_reached","idempotency_in_progress","confirmation_required","stale_write","insufficient_scope","migration_required","not_found","invalid_token","edge_sync_failed","edge_remove_failed","internal_error","rate_limited","service_unavailable","invalid_json","payload_too_large","unsupported_media_type"]},"message":{"type":"string"},"param":{"type":["string","null"],"description":"The offending field, when there is one."},"doc_url":{"type":"string"},"request_id":{"type":"string","description":"Quote this when asking for support."},"details":{"type":["object","null"],"additionalProperties":{}}},"required":["code","message","param","doc_url","request_id","details"]}},"required":["error"]},"SearchResults":{"type":"object","properties":{"query":{"type":"string"},"data":{"type":"array","items":{"$ref":"#/components/schemas/SearchHit"}},"has_more":{"type":"boolean"},"next_cursor":{"type":"null","description":"Search has no paging: narrow the query instead."}},"required":["query","data","has_more","next_cursor"]},"SearchHit":{"type":"object","properties":{"product":{"$ref":"#/components/schemas/Product"},"id":{"type":"string"},"title":{"type":"string"},"handle":{"type":"string"},"status":{"$ref":"#/components/schemas/Status"},"url":{"type":"string"}},"required":["product","id","title","handle","status","url"]},"Product":{"type":"string","enum":["links","smart-links","forms","multilinks"],"description":"`links` is Premium links, `smart-links` is routing links."},"Status":{"type":"string","enum":["draft","published"],"description":"`published` is live on the internet. `draft` is private and uses no allowance."},"HandleAvailability":{"type":"object","properties":{"namespace":{"$ref":"#/components/schemas/HandleNamespace"},"handle":{"type":"string"},"available":{"type":"boolean"},"reason":{"type":["string","null"],"enum":["own","taken","in_use",null],"description":"Why not: `own` is yours, `taken` is another account, `in_use` is reserved."}},"required":["namespace","handle","available","reason"]},"HandleNamespace":{"type":"string","enum":["walink","forms","multilink"],"description":"`walink` is `wa.link/`, `forms` is `form.wa.link/`, `multilink` is `bio.wa.link/`."},"FormResponsePage":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/FormResponse"}},"has_more":{"type":"boolean"},"next_cursor":{"type":["string","null"],"description":"Pass as `cursor` for the next page."}},"required":["data","has_more","next_cursor"]},"FormResponse":{"type":"object","properties":{"id":{"type":"string","example":"rsp_3f2a9c1e-7b4d-4e8a-9f10-2c6d8e4b1a77"},"created_at":{"type":"string","format":"date-time","description":"ISO 8601 timestamp, UTC.","example":"2026-11-05T14:32:07.000Z"},"answers":{"type":"array","items":{"$ref":"#/components/schemas/FormAnswer"}}},"required":["id","created_at","answers"]},"FormAnswer":{"type":"object","properties":{"question_id":{"type":["string","null"]},"label":{"type":["string","null"]},"value":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}},{"type":"null"}]}},"required":["question_id","label","value"]},"LinkableResourcePage":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/LinkableResource"}},"has_more":{"type":"boolean"},"next_cursor":{"type":["string","null"],"description":"Pass as `cursor` for the next page."}},"required":["data","has_more","next_cursor"]},"LinkableResource":{"type":"object","properties":{"kind":{"type":"string","enum":["link","smart-link","form"]},"slug":{"type":"string","description":"Prefixed, such as `wa.link/summer24`."},"name":{"type":"string"}},"required":["kind","slug","name"]},"LinkPage":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/LinkSummary"}},"has_more":{"type":"boolean"},"next_cursor":{"type":["string","null"],"description":"Pass as `cursor` for the next page."}},"required":["data","has_more","next_cursor"]},"LinkSummary":{"type":"object","properties":{"id":{"type":"string"},"title":{"type":"string"},"handle":{"type":"string"},"plan":{"$ref":"#/components/schemas/LinkPlan"},"status":{"$ref":"#/components/schemas/Status"},"url":{"type":"string"},"created_at":{"type":"string","format":"date-time","description":"ISO 8601 timestamp, UTC.","example":"2026-11-05T14:32:07.000Z"},"updated_at":{"type":"string","format":"date-time","description":"ISO 8601 timestamp, UTC.","example":"2026-11-05T14:32:07.000Z"}},"required":["id","title","handle","plan","status","url","created_at","updated_at"]},"LinkPlan":{"type":"string","enum":["chat","catalog","channel","group"],"description":"`chat` opens a chat, `catalog` a business catalog, `channel` and `group` theirs."},"Link":{"type":"object","properties":{"id":{"type":"string","example":"lnk_3f2a9c1e-7b4d-4e8a-9f10-2c6d8e4b1a77"},"title":{"type":"string"},"handle":{"type":"string"},"plan":{"$ref":"#/components/schemas/LinkPlan"},"status":{"$ref":"#/components/schemas/Status"},"contact_type":{"$ref":"#/components/schemas/ContactType"},"phone":{"type":["string","null"]},"country_code":{"type":["string","null"]},"country_alpha":{"type":["string","null"]},"username":{"type":["string","null"]},"message":{"type":["string","null"]},"message_variables":{"type":"object","additionalProperties":{"type":"string"}},"channel_id":{"type":["string","null"]},"group_code":{"type":["string","null"]},"landing_page":{"$ref":"#/components/schemas/LandingPage"},"external_browser":{"$ref":"#/components/schemas/ExternalBrowser"},"url":{"type":"string","description":"The canonical address. Only serves while `status` is `published`."},"share_url":{"type":"string","description":"The address to hand out and to encode in a QR code."},"created_at":{"type":"string","format":"date-time","description":"ISO 8601 timestamp, UTC.","example":"2026-11-05T14:32:07.000Z"},"updated_at":{"type":"string","format":"date-time","description":"ISO 8601 timestamp, UTC.","example":"2026-11-05T14:32:07.000Z"}},"required":["id","title","handle","plan","status","contact_type","phone","country_code","country_alpha","username","message","message_variables","channel_id","group_code","landing_page","external_browser","url","share_url","created_at","updated_at"]},"ContactType":{"type":"string","enum":["phone","username"]},"LandingPage":{"type":"object","properties":{"enabled":{"type":"boolean","description":"When true, a click lands on the page before WhatsApp."},"title":{"type":["string","null"]},"description":{"type":["string","null"]},"logo_url":{"type":["string","null"]},"cover_image_url":{"type":["string","null"]},"verified":{"type":"boolean","description":"A trust seal granted by Walink. Read-only."},"privacy_required":{"type":"boolean"},"privacy_url":{"type":["string","null"]},"age_required":{"type":"boolean"},"min_age":{"type":["integer","null"]}},"required":["enabled","title","description","logo_url","cover_image_url","verified","privacy_required","privacy_url","age_required","min_age"]},"ExternalBrowser":{"type":"object","properties":{"enabled":{"type":"boolean","description":"Bridge clicks out of in-app browsers before WhatsApp."},"apps":{"anyOf":[{"type":"string","enum":["all"]},{"type":"array","items":{"type":"string"}}]}},"required":["enabled","apps"]},"LinkCreate":{"type":"object","properties":{"handle":{"type":"string","pattern":"^[a-z0-9-]{1,60}$","description":"The permanent address after the host. Lowercase letters, digits and hyphens.","example":"summer-promo"},"plan":{"$ref":"#/components/schemas/LinkPlan"},"title":{"type":"string","maxLength":100,"description":"Private name in the dashboard. Defaults to the handle."},"contact_type":{"$ref":"#/components/schemas/ContactType"},"phone":{"type":"string","pattern":"^\\d{0,15}$","description":"National number, digits only. May be partial in a draft."},"country_code":{"type":"string","pattern":"^\\d{0,4}$","description":"Dial code, digits only, such as `57`."},"country_alpha":{"type":"string","maxLength":2,"description":"ISO 3166-1 alpha-2 country, such as `CO`."},"username":{"type":"string","maxLength":2048,"description":"WhatsApp username. A leading `@`, capitals and a `wa.me/` link are normalized, so read the stored value back."},"message":{"type":"string","maxLength":1000,"description":"The message pre-filled in WhatsApp."},"message_variables":{"type":"object","additionalProperties":{"type":"string","maxLength":1000},"description":"At most 50 entries."},"channel_id":{"type":"string","maxLength":256,"description":"For `plan: channel`."},"group_code":{"type":"string","maxLength":256,"description":"For `plan: group`."},"landing_page":{"$ref":"#/components/schemas/LandingPageInput"},"external_browser":{"$ref":"#/components/schemas/ExternalBrowserInput"}},"required":["handle","plan"],"additionalProperties":false},"LandingPageInput":{"type":"object","properties":{"enabled":{"type":"boolean"},"title":{"type":"string","maxLength":120},"description":{"type":"string","maxLength":500},"logo_url":{"type":"string","maxLength":2048,"pattern":"^(https?:\\/\\/\\S*)?$","description":"An http(s) URL, or an empty string to clear it."},"cover_image_url":{"type":"string","maxLength":2048,"pattern":"^(https?:\\/\\/\\S*)?$","description":"An http(s) URL, or an empty string to clear it."},"privacy_required":{"type":"boolean"},"privacy_url":{"type":"string","maxLength":2048,"pattern":"^(https?:\\/\\/\\S*)?$","description":"An http(s) URL, or an empty string to clear it."},"age_required":{"type":"boolean"},"min_age":{"type":["integer","null"],"minimum":1,"maximum":120}},"additionalProperties":false},"ExternalBrowserInput":{"type":"object","properties":{"enabled":{"type":"boolean"},"apps":{"anyOf":[{"type":"string","enum":["all"]},{"type":"array","items":{"type":"string","enum":["tiktok","snapchat","facebook","instagram"]},"maxItems":4}],"description":"Which in-app browsers get the bridge: named apps, or `all`."}},"additionalProperties":false},"LinkUpdate":{"type":"object","properties":{"handle":{"type":"string","minLength":1,"maxLength":250,"description":"Handles never change. Sending a different one fails with `handle_immutable`."},"plan":{"$ref":"#/components/schemas/LinkPlan"},"title":{"type":"string","maxLength":100,"description":"Private name in the dashboard. Defaults to the handle."},"contact_type":{"$ref":"#/components/schemas/ContactType"},"phone":{"type":"string","pattern":"^\\d{0,15}$","description":"National number, digits only. May be partial in a draft."},"country_code":{"type":"string","pattern":"^\\d{0,4}$","description":"Dial code, digits only, such as `57`."},"country_alpha":{"type":"string","maxLength":2,"description":"ISO 3166-1 alpha-2 country, such as `CO`."},"username":{"type":"string","maxLength":2048,"description":"WhatsApp username. A leading `@`, capitals and a `wa.me/` link are normalized, so read the stored value back."},"message":{"type":"string","maxLength":1000,"description":"The message pre-filled in WhatsApp."},"message_variables":{"type":"object","additionalProperties":{"type":"string","maxLength":1000},"description":"At most 50 entries."},"channel_id":{"type":"string","maxLength":256,"description":"For `plan: channel`."},"group_code":{"type":"string","maxLength":256,"description":"For `plan: group`."},"landing_page":{"$ref":"#/components/schemas/LandingPageInput"},"external_browser":{"$ref":"#/components/schemas/ExternalBrowserInput"}},"additionalProperties":false},"PublishCheck":{"type":"object","properties":{"ready":{"type":"boolean"},"blockers":{"type":"array","items":{"$ref":"#/components/schemas/PublishBlocker"}},"units_needed":{"type":"integer","description":"Allowance publishing would consume."},"allowance":{"type":"object","properties":{"resource":{"type":"string"},"allowance":{"type":"integer"},"used":{"type":"integer"}},"required":["resource","allowance","used"]}},"required":["ready","blockers","units_needed","allowance"]},"PublishBlocker":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":["object","null"],"additionalProperties":{}}},"required":["code","message","details"]},"QrConfig":{"type":"object","properties":{"dot_style":{"type":"string"},"dot_color":{"type":"string"},"background":{"type":"string"},"corner_style":{"type":"string"},"corner_color":{"type":"string"},"corner_dot_style":{"type":"string"},"corner_dot_color":{"type":"string"},"error_correction":{"type":"string"},"size":{"type":"number"},"margin":{"type":"number"},"logo":{"type":"string"},"logo_size":{"type":"number"},"logo_padding":{"type":"boolean"},"format":{"type":"string"},"target_url":{"type":"string","description":"What the code must encode. Keeps the `source=qr` marker that counts a visit as a scan."}},"required":["dot_style","dot_color","background","corner_style","corner_color","corner_dot_style","corner_dot_color","error_correction","size","margin","logo","logo_size","logo_padding","format","target_url"]},"QrConfigInput":{"type":"object","properties":{"dot_style":{"type":"string","enum":["square","dots","rounded","extra-rounded","classy","classy-rounded"]},"dot_color":{"type":"string","pattern":"^#([0-9a-fA-F]{6}|[0-9a-fA-F]{3})$","description":"A hex color such as `#075e54`."},"background":{"type":"string","pattern":"^#([0-9a-fA-F]{6}|[0-9a-fA-F]{3})$","description":"A hex color such as `#075e54`."},"corner_style":{"type":"string","enum":["square","extra-rounded","dot"]},"corner_color":{"type":"string","pattern":"^#([0-9a-fA-F]{6}|[0-9a-fA-F]{3})$","description":"A hex color such as `#075e54`."},"corner_dot_style":{"type":"string","enum":["square","dot"]},"corner_dot_color":{"type":"string","pattern":"^#([0-9a-fA-F]{6}|[0-9a-fA-F]{3})$","description":"A hex color such as `#075e54`."},"error_correction":{"type":"string","enum":["L","M","Q","H"]},"size":{"type":"integer","minimum":128,"maximum":4096},"margin":{"type":"integer","minimum":0,"maximum":96},"logo":{"type":"string","maxLength":500000,"pattern":"^$|^data:image\\/(png|jpeg|webp|svg\\+xml|gif);base64,","description":"A `data:` image URL, or an empty string for no logo."},"logo_size":{"type":"number","minimum":0.15,"maximum":0.5},"logo_padding":{"type":"boolean"},"format":{"type":"string","enum":["png","svg","jpeg","webp"]}},"required":["dot_style","dot_color","background","corner_style","corner_color","corner_dot_style","corner_dot_color","error_correction","size","margin","logo","logo_size","logo_padding","format"],"additionalProperties":false},"SmartLinkPage":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/SmartLinkSummary"}},"has_more":{"type":"boolean"},"next_cursor":{"type":["string","null"],"description":"Pass as `cursor` for the next page."}},"required":["data","has_more","next_cursor"]},"SmartLinkSummary":{"type":"object","properties":{"id":{"type":"string"},"title":{"type":"string"},"handle":{"type":"string"},"mode":{"$ref":"#/components/schemas/SmartLinkMode"},"status":{"$ref":"#/components/schemas/Status"},"url":{"type":"string"},"destination_count":{"type":"integer"},"created_at":{"type":"string","format":"date-time","description":"ISO 8601 timestamp, UTC.","example":"2026-11-05T14:32:07.000Z"},"updated_at":{"type":"string","format":"date-time","description":"ISO 8601 timestamp, UTC.","example":"2026-11-05T14:32:07.000Z"}},"required":["id","title","handle","mode","status","url","destination_count","created_at","updated_at"]},"SmartLinkMode":{"type":"string","enum":["random","hours","location","referral"],"description":"How a click picks a destination: `random` by weight, `hours` by schedule, `location` by country, `referral` by source. The last destination is the fallback."},"SmartLink":{"type":"object","properties":{"id":{"type":"string","example":"slk_3f2a9c1e-7b4d-4e8a-9f10-2c6d8e4b1a77"},"title":{"type":"string"},"handle":{"type":"string"},"mode":{"$ref":"#/components/schemas/SmartLinkMode"},"status":{"$ref":"#/components/schemas/Status"},"destinations":{"type":"array","items":{"$ref":"#/components/schemas/Destination"}},"billed_destinations":{"type":"integer","description":"Destinations that consume allowance: all but the included last one."},"url":{"type":"string","description":"The canonical address. Only serves while `status` is `published`."},"share_url":{"type":"string","description":"The address to hand out and to encode in a QR code."},"created_at":{"type":"string","format":"date-time","description":"ISO 8601 timestamp, UTC.","example":"2026-11-05T14:32:07.000Z"},"updated_at":{"type":"string","format":"date-time","description":"ISO 8601 timestamp, UTC.","example":"2026-11-05T14:32:07.000Z"}},"required":["id","title","handle","mode","status","destinations","billed_destinations","url","share_url","created_at","updated_at"]},"Destination":{"type":"object","properties":{"label":{"type":"string"},"contact_type":{"$ref":"#/components/schemas/ContactType"},"phone":{"type":"string"},"country_code":{"type":"string"},"country_alpha":{"type":"string"},"username":{"type":"string"},"message":{"type":"string"},"weight":{"type":"integer","description":"Relative share, for `random`."},"days":{"type":"array","items":{"type":"integer"},"description":"0 is Sunday, for `hours`."},"from":{"type":"string","description":"Opening time, for `hours`."},"to":{"type":"string","description":"Closing time, for `hours`."},"timezone":{"type":"string","description":"IANA zone of `from` and `to`."},"geo_countries":{"type":"array","items":{"type":"string"},"description":"Uppercase alpha-2, for `location`."},"platforms":{"type":"array","items":{"type":"string"},"description":"For `referral`."},"custom_referrals":{"type":"string","description":"Comma-separated referrer hosts, for `referral`."}},"required":["label","contact_type","phone","country_code","country_alpha","username","message","weight","days","from","to","timezone","geo_countries","platforms","custom_referrals"]},"SmartLinkCreate":{"type":"object","properties":{"handle":{"type":"string","pattern":"^[a-z0-9-]{1,60}$","description":"The permanent address after the host. Lowercase letters, digits and hyphens.","example":"summer-promo"},"mode":{"$ref":"#/components/schemas/SmartLinkMode"},"destinations":{"type":"array","items":{"$ref":"#/components/schemas/DestinationInput"},"minItems":1,"maxItems":200},"title":{"type":"string","maxLength":100,"description":"Private name in the dashboard. Defaults to the handle."}},"required":["handle","mode","destinations"],"additionalProperties":false},"DestinationInput":{"type":"object","properties":{"label":{"type":"string","maxLength":120},"contact_type":{"$ref":"#/components/schemas/ContactType"},"phone":{"type":"string","pattern":"^\\d{0,15}$","description":"National number, digits only. May be partial in a draft."},"country_code":{"type":"string","pattern":"^\\d{0,4}$","description":"Dial code, digits only, such as `57`."},"country_alpha":{"type":"string","maxLength":2,"description":"ISO 3166-1 alpha-2 country, such as `CO`."},"username":{"type":"string","maxLength":2048,"description":"WhatsApp username. A leading `@`, capitals and a `wa.me/` link are normalized, so read the stored value back."},"message":{"type":"string","maxLength":1000,"description":"The message pre-filled in WhatsApp."},"weight":{"type":"integer","minimum":1,"maximum":100},"days":{"type":"array","items":{"type":"integer","minimum":0,"maximum":6},"maxItems":7},"from":{"type":"string","pattern":"^([01]\\d|2[0-3]):[0-5]\\d$","description":"`HH:MM`, 24-hour."},"to":{"type":"string","pattern":"^([01]\\d|2[0-3]):[0-5]\\d$","description":"`HH:MM`, 24-hour."},"timezone":{"type":"string","maxLength":64},"geo_countries":{"type":"array","items":{"type":"string","pattern":"^[A-Z]{2}$"},"maxItems":100},"platforms":{"type":"array","items":{"type":"string","enum":["instagram","tiktok","facebook","snapchat"]},"maxItems":4},"custom_referrals":{"type":"string","maxLength":2580}},"additionalProperties":false},"SmartLinkUpdate":{"type":"object","properties":{"handle":{"type":"string","minLength":1,"maxLength":250,"description":"Handles never change. Sending a different one fails with `handle_immutable`."},"mode":{"$ref":"#/components/schemas/SmartLinkMode"},"destinations":{"type":"array","items":{"$ref":"#/components/schemas/DestinationInput"},"minItems":1,"maxItems":200,"description":"Replaces the whole list. Growing it can need allowance."},"title":{"type":"string","maxLength":100,"description":"Private name in the dashboard. Defaults to the handle."}},"additionalProperties":false},"FormPage":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/FormSummary"}},"has_more":{"type":"boolean"},"next_cursor":{"type":["string","null"],"description":"Pass as `cursor` for the next page."}},"required":["data","has_more","next_cursor"]},"FormSummary":{"type":"object","properties":{"id":{"type":"string"},"title":{"type":"string"},"handle":{"type":"string"},"status":{"$ref":"#/components/schemas/Status"},"url":{"type":"string"},"question_count":{"type":"integer"},"created_at":{"type":"string","format":"date-time","description":"ISO 8601 timestamp, UTC.","example":"2026-11-05T14:32:07.000Z"},"updated_at":{"type":"string","format":"date-time","description":"ISO 8601 timestamp, UTC.","example":"2026-11-05T14:32:07.000Z"}},"required":["id","title","handle","status","url","question_count","created_at","updated_at"]},"Form":{"type":"object","properties":{"id":{"type":"string","example":"frm_3f2a9c1e-7b4d-4e8a-9f10-2c6d8e4b1a77"},"title":{"type":"string"},"handle":{"type":"string"},"description":{"type":["string","null"]},"logo_url":{"type":["string","null"]},"status":{"$ref":"#/components/schemas/Status"},"contact_type":{"$ref":"#/components/schemas/ContactType"},"phone":{"type":["string","null"]},"country_code":{"type":["string","null"]},"country_alpha":{"type":["string","null"]},"username":{"type":["string","null"]},"message":{"type":["string","null"]},"layout":{"$ref":"#/components/schemas/FormLayout"},"privacy_enabled":{"type":"boolean"},"privacy_url":{"type":["string","null"]},"save_responses":{"type":"boolean"},"colors":{"$ref":"#/components/schemas/FormColors"},"questions":{"type":"array","items":{"$ref":"#/components/schemas/Question"}},"url":{"type":"string","description":"The canonical address. Only serves while `status` is `published`."},"share_url":{"type":"string","description":"The address to hand out and to encode in a QR code."},"created_at":{"type":"string","format":"date-time","description":"ISO 8601 timestamp, UTC.","example":"2026-11-05T14:32:07.000Z"},"updated_at":{"type":"string","format":"date-time","description":"ISO 8601 timestamp, UTC.","example":"2026-11-05T14:32:07.000Z"}},"required":["id","title","handle","description","logo_url","status","contact_type","phone","country_code","country_alpha","username","message","layout","privacy_enabled","privacy_url","save_responses","colors","questions","url","share_url","created_at","updated_at"]},"FormLayout":{"type":"string","enum":["steps","all"],"description":"`steps` asks one question at a time, `all` shows them together."},"FormColors":{"type":"object","properties":{"title":{"type":"string"},"text":{"type":"string"},"background":{"type":"string"},"progress":{"type":"string"},"button":{"type":"string"}},"required":["title","text","background","progress","button"]},"Question":{"type":"object","properties":{"id":{"type":"string","description":"Stable across edits. Send it back to keep the question."},"type":{"type":"string"},"title":{"type":"string"},"description":{"type":"string"},"placeholder":{"type":"string"},"required":{"type":"boolean"},"options":{"type":"array","items":{"type":"string"}},"min":{"type":"string"},"max":{"type":"string"}},"required":["id","type","title","description","placeholder","required","options","min","max"]},"FormCreate":{"type":"object","properties":{"handle":{"type":"string","pattern":"^[a-z0-9-]{1,60}$","description":"The permanent address after the host. Lowercase letters, digits and hyphens.","example":"summer-promo"},"title":{"type":"string","minLength":1,"maxLength":100},"description":{"type":"string","maxLength":240},"logo_url":{"type":"string","maxLength":2048,"pattern":"^(https?:\\/\\/\\S*)?$","description":"An http(s) URL, or an empty string to clear it."},"contact_type":{"$ref":"#/components/schemas/ContactType"},"phone":{"type":"string","pattern":"^\\d{0,15}$","description":"National number, digits only. May be partial in a draft."},"country_code":{"type":"string","pattern":"^\\d{0,4}$","description":"Dial code, digits only, such as `57`."},"country_alpha":{"type":"string","maxLength":2,"description":"ISO 3166-1 alpha-2 country, such as `CO`."},"username":{"type":"string","maxLength":2048,"description":"WhatsApp username. A leading `@`, capitals and a `wa.me/` link are normalized, so read the stored value back."},"message":{"type":"string","maxLength":1000,"description":"The message pre-filled in WhatsApp."},"questions":{"type":"array","items":{"$ref":"#/components/schemas/QuestionInput"},"maxItems":20,"description":"Replaces the whole set. Keep each `id` to preserve its question."},"colors":{"$ref":"#/components/schemas/FormColorsInput"},"layout":{"$ref":"#/components/schemas/FormLayout"},"privacy_enabled":{"type":"boolean"},"privacy_url":{"type":"string","maxLength":2048,"pattern":"^(https?:\\/\\/\\S*)?$","description":"An http(s) URL, or an empty string to clear it."},"save_responses":{"type":"boolean"}},"required":["handle","title"],"additionalProperties":false},"QuestionInput":{"type":"object","properties":{"id":{"type":"string","maxLength":64,"description":"Keep the id of an existing question, or its answers are retired with it."},"type":{"$ref":"#/components/schemas/QuestionType"},"title":{"type":"string","maxLength":120},"description":{"type":"string","maxLength":500},"placeholder":{"type":"string","maxLength":200},"required":{"type":"boolean"},"options":{"type":"array","items":{"type":"string","maxLength":200},"maxItems":20},"min":{"type":"string","maxLength":32},"max":{"type":"string","maxLength":32}},"required":["type"],"additionalProperties":false},"QuestionType":{"type":"string","enum":["text","textarea","email","phone","select","number","single","multi","time","date","daterange"]},"FormColorsInput":{"type":"object","properties":{"title":{"type":"string","pattern":"^#([0-9a-fA-F]{6}|[0-9a-fA-F]{3})$","description":"A hex color such as `#075e54`."},"text":{"type":"string","pattern":"^#([0-9a-fA-F]{6}|[0-9a-fA-F]{3})$","description":"A hex color such as `#075e54`."},"background":{"type":"string","pattern":"^#([0-9a-fA-F]{6}|[0-9a-fA-F]{3})$","description":"A hex color such as `#075e54`."},"progress":{"type":"string","pattern":"^#([0-9a-fA-F]{6}|[0-9a-fA-F]{3})$","description":"A hex color such as `#075e54`."},"button":{"type":"string","pattern":"^#([0-9a-fA-F]{6}|[0-9a-fA-F]{3})$","description":"A hex color such as `#075e54`."}},"additionalProperties":false},"FormUpdate":{"type":"object","properties":{"handle":{"type":"string","minLength":1,"maxLength":250,"description":"Handles never change. Sending a different one fails with `handle_immutable`."},"title":{"type":"string","minLength":1,"maxLength":100},"description":{"type":"string","maxLength":240},"logo_url":{"type":"string","maxLength":2048,"pattern":"^(https?:\\/\\/\\S*)?$","description":"An http(s) URL, or an empty string to clear it."},"contact_type":{"$ref":"#/components/schemas/ContactType"},"phone":{"type":"string","pattern":"^\\d{0,15}$","description":"National number, digits only. May be partial in a draft."},"country_code":{"type":"string","pattern":"^\\d{0,4}$","description":"Dial code, digits only, such as `57`."},"country_alpha":{"type":"string","maxLength":2,"description":"ISO 3166-1 alpha-2 country, such as `CO`."},"username":{"type":"string","maxLength":2048,"description":"WhatsApp username. A leading `@`, capitals and a `wa.me/` link are normalized, so read the stored value back."},"message":{"type":"string","maxLength":1000,"description":"The message pre-filled in WhatsApp."},"questions":{"type":"array","items":{"$ref":"#/components/schemas/QuestionInput"},"maxItems":20,"description":"Replaces the whole set. Keep each `id` to preserve its question."},"colors":{"$ref":"#/components/schemas/FormColorsInput"},"layout":{"$ref":"#/components/schemas/FormLayout"},"privacy_enabled":{"type":"boolean"},"privacy_url":{"type":"string","maxLength":2048,"pattern":"^(https?:\\/\\/\\S*)?$","description":"An http(s) URL, or an empty string to clear it."},"save_responses":{"type":"boolean"}},"additionalProperties":false},"MultilinkPage":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/MultilinkSummary"}},"has_more":{"type":"boolean"},"next_cursor":{"type":["string","null"],"description":"Pass as `cursor` for the next page."}},"required":["data","has_more","next_cursor"]},"MultilinkSummary":{"type":"object","properties":{"id":{"type":"string"},"title":{"type":"string"},"handle":{"type":"string"},"status":{"$ref":"#/components/schemas/Status"},"url":{"type":"string"},"item_count":{"type":"integer"},"created_at":{"type":"string","format":"date-time","description":"ISO 8601 timestamp, UTC.","example":"2026-11-05T14:32:07.000Z"},"updated_at":{"type":"string","format":"date-time","description":"ISO 8601 timestamp, UTC.","example":"2026-11-05T14:32:07.000Z"}},"required":["id","title","handle","status","url","item_count","created_at","updated_at"]},"Multilink":{"type":"object","properties":{"id":{"type":"string","example":"mlk_3f2a9c1e-7b4d-4e8a-9f10-2c6d8e4b1a77"},"title":{"type":"string"},"handle":{"type":"string"},"bio":{"type":["string","null"]},"avatar_url":{"type":["string","null"]},"status":{"$ref":"#/components/schemas/Status"},"colors":{"$ref":"#/components/schemas/MultilinkColors"},"items":{"type":"array","items":{"$ref":"#/components/schemas/MultilinkItem"}},"url":{"type":"string","description":"The canonical address. Only serves while `status` is `published`."},"share_url":{"type":"string","description":"The address to hand out and to encode in a QR code."},"created_at":{"type":"string","format":"date-time","description":"ISO 8601 timestamp, UTC.","example":"2026-11-05T14:32:07.000Z"},"updated_at":{"type":"string","format":"date-time","description":"ISO 8601 timestamp, UTC.","example":"2026-11-05T14:32:07.000Z"}},"required":["id","title","handle","bio","avatar_url","status","colors","items","url","share_url","created_at","updated_at"]},"MultilinkColors":{"type":"object","properties":{"background":{"type":"string"},"title":{"type":"string"},"text":{"type":"string"},"button":{"type":"string"},"button_text":{"type":"string"}},"required":["background","title","text","button","button_text"]},"MultilinkItem":{"type":"object","properties":{"source":{"$ref":"#/components/schemas/MultilinkItemSource"},"title":{"type":"string"},"wa_link_slug":{"type":"string"},"smart_link_slug":{"type":"string"},"form_slug":{"type":"string"},"url":{"type":"string"}},"required":["source","title","wa_link_slug","smart_link_slug","form_slug","url"]},"MultilinkItemSource":{"type":"string","enum":["walink","smart-link","form","external"],"description":"Where the button points. `walink`, `smart-link` and `form` use their slug field, `external` uses `url`."},"MultilinkCreate":{"type":"object","properties":{"handle":{"type":"string","pattern":"^[a-z0-9-]{1,60}$","description":"The permanent address after the host. Lowercase letters, digits and hyphens.","example":"summer-promo"},"title":{"type":"string","minLength":1,"maxLength":100},"bio":{"type":"string","maxLength":160},"avatar_url":{"type":"string","maxLength":2048,"pattern":"^(https?:\\/\\/\\S*)?$","description":"An http(s) URL, or an empty string to clear it."},"items":{"type":"array","items":{"$ref":"#/components/schemas/MultilinkItemInput"},"maxItems":50,"description":"Replaces the whole list."},"colors":{"$ref":"#/components/schemas/MultilinkColorsInput"}},"required":["handle","title"],"additionalProperties":false},"MultilinkItemInput":{"type":"object","properties":{"source":{"$ref":"#/components/schemas/MultilinkItemSource"},"title":{"type":"string","maxLength":120},"wa_link_slug":{"type":"string","maxLength":128,"description":"From `/v1/multilinks/linkable-resources`."},"smart_link_slug":{"type":"string","maxLength":128,"description":"From `/v1/multilinks/linkable-resources`."},"form_slug":{"type":"string","maxLength":128,"description":"From `/v1/multilinks/linkable-resources`."},"url":{"type":"string","maxLength":2048,"pattern":"^(https?:\\/\\/\\S*)?$","description":"An http(s) URL, or an empty string to clear it."}},"additionalProperties":false},"MultilinkColorsInput":{"type":"object","properties":{"background":{"type":"string","pattern":"^#([0-9a-fA-F]{6}|[0-9a-fA-F]{3})$","description":"A hex color such as `#075e54`."},"title":{"type":"string","pattern":"^#([0-9a-fA-F]{6}|[0-9a-fA-F]{3})$","description":"A hex color such as `#075e54`."},"text":{"type":"string","pattern":"^#([0-9a-fA-F]{6}|[0-9a-fA-F]{3})$","description":"A hex color such as `#075e54`."},"button":{"type":"string","pattern":"^#([0-9a-fA-F]{6}|[0-9a-fA-F]{3})$","description":"A hex color such as `#075e54`."},"button_text":{"type":"string","pattern":"^#([0-9a-fA-F]{6}|[0-9a-fA-F]{3})$","description":"A hex color such as `#075e54`."}},"additionalProperties":false},"MultilinkUpdate":{"type":"object","properties":{"handle":{"type":"string","minLength":1,"maxLength":250,"description":"Handles never change. Sending a different one fails with `handle_immutable`."},"title":{"type":"string","minLength":1,"maxLength":100},"bio":{"type":"string","maxLength":160},"avatar_url":{"type":"string","maxLength":2048,"pattern":"^(https?:\\/\\/\\S*)?$","description":"An http(s) URL, or an empty string to clear it."},"items":{"type":"array","items":{"$ref":"#/components/schemas/MultilinkItemInput"},"maxItems":50,"description":"Replaces the whole list."},"colors":{"$ref":"#/components/schemas/MultilinkColorsInput"}},"additionalProperties":false},"FreeLinkPage":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/FreeLink"}},"has_more":{"type":"boolean"},"next_cursor":{"type":["string","null"],"description":"Pass as `cursor` for the next page."}},"required":["data","has_more","next_cursor"]},"FreeLink":{"type":"object","properties":{"id":{"type":"string","example":"fln_3f2a9c1e-7b4d-4e8a-9f10-2c6d8e4b1a77"},"title":{"type":"string","description":"The name given at create, or the handle if none was."},"handle":{"type":"string","description":"The random address after `wa.link/`. It never changes."},"contact_type":{"$ref":"#/components/schemas/ContactType"},"phone":{"type":["string","null"]},"country_code":{"type":["string","null"]},"country_alpha":{"type":["string","null"]},"username":{"type":["string","null"]},"message":{"type":["string","null"]},"url":{"type":"string","description":"The canonical address. Live for as long as the link exists."},"share_url":{"type":"string","description":"The address to hand out."},"qr_target":{"type":"string","description":"What a QR code must encode exactly: its `source=qr` marker is what counts a visit as a scan."},"created_at":{"type":"string","format":"date-time","description":"ISO 8601 timestamp, UTC.","example":"2026-11-05T14:32:07.000Z"},"updated_at":{"type":"string","format":"date-time","description":"ISO 8601 timestamp, UTC.","example":"2026-11-05T14:32:07.000Z"}},"required":["id","title","handle","contact_type","phone","country_code","country_alpha","username","message","url","share_url","qr_target","created_at","updated_at"]},"FreeLinkCreate":{"type":"object","properties":{"title":{"type":"string","maxLength":100,"description":"A private name. It can't be changed afterwards: renaming needs Premium."},"contact_type":{"allOf":[{"$ref":"#/components/schemas/ContactType"},{"description":"`phone` by default."}]},"phone":{"type":"string","pattern":"^\\d{0,15}$","description":"National number, digits only."},"country_code":{"type":"string","pattern":"^\\d{0,4}$","description":"Dial code, digits only, such as `57`."},"country_alpha":{"type":"string","maxLength":2,"description":"ISO 3166-1 alpha-2 country, such as `CO`."},"username":{"type":"string","maxLength":2048,"description":"WhatsApp username. A leading `@`, capitals and a `wa.me/` link are normalized, so read the stored value back."},"message":{"type":"string","maxLength":1000,"description":"The message pre-filled in WhatsApp."}},"additionalProperties":false},"OverviewAnalytics":{"type":"object","properties":{"live":{"type":"boolean","description":"False when the analytics store was unreachable: figures are placeholder zeros."},"fetched_at":{"type":["string","null"]},"window":{"$ref":"#/components/schemas/AnalyticsWindow"},"link_clicks":{"$ref":"#/components/schemas/Metric"},"smart_link_clicks":{"$ref":"#/components/schemas/Metric"},"form_responses":{"$ref":"#/components/schemas/Metric"},"multilink_views":{"$ref":"#/components/schemas/Metric"},"series":{"type":"array","items":{"$ref":"#/components/schemas/SeriesPoint"},"description":"Clicks across Premium links and Smart Links."}},"required":["live","fetched_at","window","link_clicks","smart_link_clicks","form_responses","multilink_views","series"]},"AnalyticsWindow":{"type":"object","properties":{"start":{"type":"string"},"end":{"type":"string"},"timezone":{"type":"string","description":"The account timezone the window is read in."},"bucket":{"type":"string","enum":["hour","day","week"]}},"required":["start","end","timezone","bucket"]},"Metric":{"type":"object","properties":{"current":{"type":"number"},"previous":{"type":"number","description":"The same-length window immediately before this one."}},"required":["current","previous"]},"SeriesPoint":{"type":"object","properties":{"date":{"type":"string","description":"`YYYY-MM-DD`, or local `YYYY-MM-DD HH:MM:SS` when hourly."},"value":{"type":"number"}},"required":["date","value"]},"ProductAnalytics":{"anyOf":[{"$ref":"#/components/schemas/ClickProductAnalytics"},{"$ref":"#/components/schemas/FormProductAnalytics"},{"$ref":"#/components/schemas/MultilinkProductAnalytics"}]},"ClickProductAnalytics":{"type":"object","properties":{"live":{"type":"boolean","description":"False when the analytics store was unreachable: figures are placeholder zeros."},"fetched_at":{"type":["string","null"]},"window":{"$ref":"#/components/schemas/AnalyticsWindow"},"product":{"type":"string","enum":["links","smart-links"]},"published_count":{"type":"integer"},"metrics":{"$ref":"#/components/schemas/ClickMetrics"},"series":{"type":"array","items":{"$ref":"#/components/schemas/SeriesPoint"}},"leaderboard":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"title":{"type":"string"},"handle":{"type":"string"},"clicks":{"type":"number"},"qr_clicks":{"type":"number"}},"required":["id","title","handle","clicks","qr_clicks"]}}},"required":["live","fetched_at","window","product","published_count","metrics","series","leaderboard"]},"ClickMetrics":{"type":"object","properties":{"clicks":{"$ref":"#/components/schemas/Metric"},"qr_clicks":{"allOf":[{"$ref":"#/components/schemas/Metric"},{"description":"The subset of clicks from a QR scan."}]}},"required":["clicks","qr_clicks"]},"FormProductAnalytics":{"type":"object","properties":{"live":{"type":"boolean","description":"False when the analytics store was unreachable: figures are placeholder zeros."},"fetched_at":{"type":["string","null"]},"window":{"$ref":"#/components/schemas/AnalyticsWindow"},"product":{"type":"string","enum":["forms"]},"published_count":{"type":"integer"},"metrics":{"$ref":"#/components/schemas/FormMetrics"},"series":{"type":"array","items":{"$ref":"#/components/schemas/SeriesPoint"}},"leaderboard":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"title":{"type":"string"},"handle":{"type":"string"},"views":{"type":"number"},"starts":{"type":"number"},"responses":{"type":"number"}},"required":["id","title","handle","views","starts","responses"]}}},"required":["live","fetched_at","window","product","published_count","metrics","series","leaderboard"]},"FormMetrics":{"type":"object","properties":{"views":{"$ref":"#/components/schemas/Metric"},"starts":{"$ref":"#/components/schemas/Metric"},"responses":{"$ref":"#/components/schemas/Metric"},"sent":{"allOf":[{"$ref":"#/components/schemas/Metric"},{"description":"Taps on \"Send to WhatsApp\", the end of the funnel."}]},"qr_views":{"$ref":"#/components/schemas/Metric"}},"required":["views","starts","responses","sent","qr_views"]},"MultilinkProductAnalytics":{"type":"object","properties":{"live":{"type":"boolean","description":"False when the analytics store was unreachable: figures are placeholder zeros."},"fetched_at":{"type":["string","null"]},"window":{"$ref":"#/components/schemas/AnalyticsWindow"},"product":{"type":"string","enum":["multilinks"]},"published_count":{"type":"integer"},"metrics":{"$ref":"#/components/schemas/MultilinkMetrics"},"series":{"type":"array","items":{"$ref":"#/components/schemas/SeriesPoint"}},"leaderboard":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"title":{"type":"string"},"handle":{"type":"string"},"views":{"type":"number"},"clicks":{"type":"number"}},"required":["id","title","handle","views","clicks"]}}},"required":["live","fetched_at","window","product","published_count","metrics","series","leaderboard"]},"MultilinkMetrics":{"type":"object","properties":{"views":{"$ref":"#/components/schemas/Metric"},"clicks":{"$ref":"#/components/schemas/Metric"},"qr_views":{"$ref":"#/components/schemas/Metric"}},"required":["views","clicks","qr_views"]},"AnalyticsBreakdown":{"type":"object","properties":{"live":{"type":"boolean","description":"False when the analytics store was unreachable: figures are placeholder zeros."},"fetched_at":{"type":["string","null"]},"window":{"$ref":"#/components/schemas/AnalyticsWindow"},"dimension":{"$ref":"#/components/schemas/AnalyticsDimension"},"data":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string","description":"Stored verbatim, so `direct` or `no-os` can appear."},"count":{"type":"number","description":"Clicks on links, views on forms and multilinks."}},"required":["value","count"]}},"has_more":{"type":"boolean"},"next_cursor":{"type":["string","null"]}},"required":["live","fetched_at","window","dimension","data","has_more","next_cursor"]},"AnalyticsDimension":{"type":"string","enum":["country","city","region","referrer_hostname","source","browser","device","os","destination"],"description":"`destination` only exists on one Smart Link."},"EntityAnalytics":{"anyOf":[{"$ref":"#/components/schemas/LinkEntityAnalytics"},{"$ref":"#/components/schemas/SmartLinkEntityAnalytics"},{"$ref":"#/components/schemas/FormEntityAnalytics"},{"$ref":"#/components/schemas/MultilinkEntityAnalytics"}]},"LinkEntityAnalytics":{"type":"object","properties":{"live":{"type":"boolean","description":"False when the analytics store was unreachable: figures are placeholder zeros."},"fetched_at":{"type":["string","null"]},"window":{"$ref":"#/components/schemas/AnalyticsWindow"},"id":{"type":"string"},"handle":{"type":"string"},"status":{"$ref":"#/components/schemas/Status"},"series":{"type":"array","items":{"$ref":"#/components/schemas/SeriesPoint"}},"product":{"type":"string","enum":["links"]},"metrics":{"$ref":"#/components/schemas/ClickMetrics"}},"required":["live","fetched_at","window","id","handle","status","series","product","metrics"]},"SmartLinkEntityAnalytics":{"type":"object","properties":{"live":{"type":"boolean","description":"False when the analytics store was unreachable: figures are placeholder zeros."},"fetched_at":{"type":["string","null"]},"window":{"$ref":"#/components/schemas/AnalyticsWindow"},"id":{"type":"string"},"handle":{"type":"string"},"status":{"$ref":"#/components/schemas/Status"},"series":{"type":"array","items":{"$ref":"#/components/schemas/SeriesPoint"}},"product":{"type":"string","enum":["smart-links"]},"metrics":{"$ref":"#/components/schemas/ClickMetrics"},"destinations":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"0-based position in `destinations`."},"label":{"type":"string"},"clicks":{"type":"number"}},"required":["index","label","clicks"]}}},"required":["live","fetched_at","window","id","handle","status","series","product","metrics","destinations"]},"FormEntityAnalytics":{"type":"object","properties":{"live":{"type":"boolean","description":"False when the analytics store was unreachable: figures are placeholder zeros."},"fetched_at":{"type":["string","null"]},"window":{"$ref":"#/components/schemas/AnalyticsWindow"},"id":{"type":"string"},"handle":{"type":"string"},"status":{"$ref":"#/components/schemas/Status"},"series":{"type":"array","items":{"$ref":"#/components/schemas/SeriesPoint"}},"product":{"type":"string","enum":["forms"]},"metrics":{"allOf":[{"$ref":"#/components/schemas/FormMetrics"},{"description":"`views`, `starts`, `responses`, `sent` are the funnel."}]},"layout":{"type":"string","enum":["steps","all"]},"reach":{"type":"array","items":{"type":"object","properties":{"question_id":{"type":"string"},"title":{"type":"string"},"reached":{"type":"number"}},"required":["question_id","title","reached"]},"description":"Respondents reaching each question. Empty on the `all` layout."}},"required":["live","fetched_at","window","id","handle","status","series","product","metrics","layout","reach"]},"MultilinkEntityAnalytics":{"type":"object","properties":{"live":{"type":"boolean","description":"False when the analytics store was unreachable: figures are placeholder zeros."},"fetched_at":{"type":["string","null"]},"window":{"$ref":"#/components/schemas/AnalyticsWindow"},"id":{"type":"string"},"handle":{"type":"string"},"status":{"$ref":"#/components/schemas/Status"},"series":{"type":"array","items":{"$ref":"#/components/schemas/SeriesPoint"}},"product":{"type":"string","enum":["multilinks"]},"metrics":{"$ref":"#/components/schemas/MultilinkMetrics"},"buttons":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"0-based position in `items`."},"label":{"type":"string"},"clicks":{"type":"number"}},"required":["index","label","clicks"]}}},"required":["live","fetched_at","window","id","handle","status","series","product","metrics","buttons"]}},"parameters":{}},"paths":{"/v1/reference":{"get":{"operationId":"getReference","tags":["Reference"],"summary":"Enums and limits","description":"Public. Every value the API validates against.","responses":{"200":{"description":"The reference.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Reference"}}}}}}},"/v1/account":{"get":{"operationId":"getAccount","tags":["Account"],"summary":"The account behind this token","description":"Requires `account:read`. Profile, per-pool allowance, past-due state and free link usage.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"The account.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Account"}}}},"401":{"description":"The token is missing, invalid, expired or revoked.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The token lacks a required scope, or the account has a pending migration.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests. Wait for `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Walink is temporarily unavailable. Wait for `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/search":{"get":{"operationId":"search","tags":["Account"],"summary":"Find anything by name or handle","description":"Requires any of `links:read`, `forms:read` or `multilinks:read`. Results only cover the products the token can read.","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","minLength":1,"maxLength":200},"required":true,"name":"q","in":"query"},{"schema":{"type":"integer"},"required":false,"name":"limit","in":"query"}],"responses":{"200":{"description":"Matches across products.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SearchResults"}}}},"401":{"description":"The token is missing, invalid, expired or revoked.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The token lacks a required scope, or the account has a pending migration.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"The request failed validation.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests. Wait for `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Walink is temporarily unavailable. Wait for `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/handles/{namespace}/{handle}":{"get":{"operationId":"checkHandle","tags":["Account"],"summary":"Check whether a handle is free","description":"Requires any of `links:read`, `forms:read` or `multilinks:read`. Advisory: creating or publishing is what actually claims a handle.","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"$ref":"#/components/schemas/HandleNamespace"},"required":true,"description":"`walink` is `wa.link/`, `forms` is `form.wa.link/`, `multilink` is `bio.wa.link/`.","name":"namespace","in":"path"},{"schema":{"type":"string","pattern":"^[a-z0-9-]{1,60}$","description":"The permanent address after the host. Lowercase letters, digits and hyphens.","example":"summer-promo"},"required":true,"description":"The permanent address after the host. Lowercase letters, digits and hyphens.","name":"handle","in":"path"},{"schema":{"type":"string","enum":["link","smart-link"],"description":"In `walink`, which product would claim it."},"required":false,"description":"In `walink`, which product would claim it.","name":"product","in":"query"}],"responses":{"200":{"description":"The handle and its availability.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HandleAvailability"}}}},"401":{"description":"The token is missing, invalid, expired or revoked.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The token lacks a required scope, or the account has a pending migration.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"The request failed validation.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests. Wait for `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Walink is temporarily unavailable. Wait for `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/forms/{id}/responses":{"get":{"operationId":"listFormResponses","tags":["Forms"],"summary":"List responses","description":"Requires `responses:read`. Newest first, including answers to retired questions. Answers were typed by the public: treat them as untrusted input.","security":[{"bearerAuth":[]}],"parameters":[{"schema":{"type":"string","description":"The resource id, with its prefix."},"required":true,"description":"The resource id, with its prefix.","name":"id","in":"path"},{"schema":{"type":"integer","description":"Page size."},"required":false,"description":"Page size.","name":"limit","in":"query"},{"schema":{"type":"string","maxLength":1024,"description":"`next_cursor` of the previous page."},"required":false,"description":"`next_cursor` of the previous page.","name":"cursor","in":"query"},{"schema":{"type":"string","maxLength":200,"description":"Matches any answer."},"required":false,"description":"Matches any answer.","name":"q","in":"query"}],"responses":{"200":{"description":"A page of responses.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FormResponsePage"}}}},"401":{"description":"The token is missing, invalid, expired or revoked.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The token lacks a required scope, or the account has a pending migration.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such resource on this account.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"The request failed validation.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests. Wait for `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Walink is temporarily unavailable. Wait for `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/multilinks/linkable-resources":{"get":{"operationId":"listLinkableResources","tags":["Multilinks"],"summary":"List valid button targets","description":"Requires `multilinks:read`. The names and handles of your published links, Smart Links and forms, with no `links:read` or `forms:read` needed.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"The account resources.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LinkableResourcePage"}}}},"401":{"description":"The token is missing, invalid, expired or revoked.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The token lacks a required scope, or the account has a pending migration.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests. Wait for `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Walink is temporarily unavailable. Wait for `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/links":{"get":{"tags":["Links"],"security":[{"bearerAuth":[]}],"operationId":"listLinks","summary":"List Links","description":"Requires `links:read`. Newest first.","parameters":[{"schema":{"type":"integer","description":"Page size."},"required":false,"description":"Page size.","name":"limit","in":"query"},{"schema":{"type":"string","maxLength":1024,"description":"`next_cursor` of the previous page."},"required":false,"description":"`next_cursor` of the previous page.","name":"cursor","in":"query"},{"schema":{"$ref":"#/components/schemas/Status"},"required":false,"description":"`published` is live on the internet. `draft` is private and uses no allowance.","name":"status","in":"query"},{"schema":{"type":"string","maxLength":250,"description":"Exact handle. Drafts can share one."},"required":false,"description":"Exact handle. Drafts can share one.","name":"handle","in":"query"},{"schema":{"type":"string","maxLength":200,"description":"Matches title or handle."},"required":false,"description":"Matches title or handle.","name":"q","in":"query"},{"schema":{"$ref":"#/components/schemas/LinkPlan"},"required":false,"description":"`chat` opens a chat, `catalog` a business catalog, `channel` and `group` theirs.","name":"plan","in":"query"}],"responses":{"200":{"description":"A page of Links.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LinkPage"}}}},"401":{"description":"The token is missing, invalid, expired or revoked.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The token lacks a required scope, or the account has a pending migration.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"The request failed validation.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests. Wait for `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Walink is temporarily unavailable. Wait for `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"tags":["Links"],"security":[{"bearerAuth":[]}],"operationId":"createLink","summary":"Create a draft","description":"Requires `links:write`. Always a draft: publishing is a separate step.","parameters":[{"schema":{"type":"string","pattern":"^[\\x20-\\x7E]{1,255}$","description":"Makes a create safe to retry for 24 hours: the same key and body replay the original answer."},"required":false,"description":"Makes a create safe to retry for 24 hours: the same key and body replay the original answer.","name":"idempotency-key","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LinkCreate"}}}},"responses":{"201":{"description":"The new draft.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Link"}}}},"401":{"description":"The token is missing, invalid, expired or revoked.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Blocked by allowance, a past-due subscription, or a missing subscription.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The token lacks a required scope, or the account has a pending migration.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"The handle is taken, the draft or free link limit is reached, a retry is still running, or confirmation is required.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"The request failed validation.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests. Wait for `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Walink is temporarily unavailable. Wait for `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/links/{id}":{"get":{"tags":["Links"],"security":[{"bearerAuth":[]}],"operationId":"getLink","summary":"Get one","description":"Requires `links:read`.","parameters":[{"schema":{"type":"string","description":"The resource id, with its prefix.","example":"lnk_3f2a9c1e-7b4d-4e8a-9f10-2c6d8e4b1a77"},"required":true,"description":"The resource id, with its prefix.","name":"id","in":"path"}],"responses":{"200":{"description":"The full record.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Link"}}}},"401":{"description":"The token is missing, invalid, expired or revoked.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The token lacks a required scope, or the account has a pending migration.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such resource on this account.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests. Wait for `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Walink is temporarily unavailable. Wait for `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"patch":{"tags":["Links"],"security":[{"bearerAuth":[]}],"operationId":"updateLink","summary":"Edit","description":"Requires `links:write`, and `links:publish` when the resource is published, because the change goes live immediately. Fields you leave out keep their value. Arrays replace whole.","parameters":[{"schema":{"type":"string","description":"The resource id, with its prefix.","example":"lnk_3f2a9c1e-7b4d-4e8a-9f10-2c6d8e4b1a77"},"required":true,"description":"The resource id, with its prefix.","name":"id","in":"path"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LinkUpdate"}}}},"responses":{"200":{"description":"The updated record.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Link"}}}},"401":{"description":"The token is missing, invalid, expired or revoked.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Blocked by allowance, a past-due subscription, or a missing subscription.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The token lacks a required scope, or the account has a pending migration.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such resource on this account.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"The handle is taken, the draft or free link limit is reached, a retry is still running, or confirmation is required.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"412":{"description":"The resource changed since it was read.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"The request failed validation.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests. Wait for `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"The edge could not be updated.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Walink is temporarily unavailable. Wait for `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"tags":["Links"],"security":[{"bearerAuth":[]}],"operationId":"deleteLink","summary":"Delete","description":"Requires `links:delete`.","parameters":[{"schema":{"type":"string","description":"The resource id, with its prefix.","example":"lnk_3f2a9c1e-7b4d-4e8a-9f10-2c6d8e4b1a77"},"required":true,"description":"The resource id, with its prefix.","name":"id","in":"path"}],"responses":{"204":{"description":"Deleted."},"401":{"description":"The token is missing, invalid, expired or revoked.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The token lacks a required scope, or the account has a pending migration.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such resource on this account.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"The handle is taken, the draft or free link limit is reached, a retry is still running, or confirmation is required.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests. Wait for `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"The edge could not be updated.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Walink is temporarily unavailable. Wait for `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/links/{id}/publish-check":{"post":{"tags":["Links"],"security":[{"bearerAuth":[]}],"operationId":"checkLinkPublish","summary":"Dry-run a publish","description":"Requires `links:read`. Reports blockers and the allowance it would use. Changes nothing.","parameters":[{"schema":{"type":"string","description":"The resource id, with its prefix.","example":"lnk_3f2a9c1e-7b4d-4e8a-9f10-2c6d8e4b1a77"},"required":true,"description":"The resource id, with its prefix.","name":"id","in":"path"}],"responses":{"200":{"description":"The dry run.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublishCheck"}}}},"401":{"description":"The token is missing, invalid, expired or revoked.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The token lacks a required scope, or the account has a pending migration.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such resource on this account.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests. Wait for `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Walink is temporarily unavailable. Wait for `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/links/{id}/publish":{"post":{"tags":["Links"],"security":[{"bearerAuth":[]}],"operationId":"publishLink","summary":"Publish","description":"Requires `links:publish`. Consumes allowance and goes live. Publishing twice is a no-op.","parameters":[{"schema":{"type":"string","description":"The resource id, with its prefix.","example":"lnk_3f2a9c1e-7b4d-4e8a-9f10-2c6d8e4b1a77"},"required":true,"description":"The resource id, with its prefix.","name":"id","in":"path"}],"responses":{"200":{"description":"The published record.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Link"}}}},"401":{"description":"The token is missing, invalid, expired or revoked.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Blocked by allowance, a past-due subscription, or a missing subscription.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The token lacks a required scope, or the account has a pending migration.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such resource on this account.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"The handle is taken, the draft or free link limit is reached, a retry is still running, or confirmation is required.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests. Wait for `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"The edge could not be updated.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Walink is temporarily unavailable. Wait for `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/links/{id}/unpublish":{"post":{"tags":["Links"],"security":[{"bearerAuth":[]}],"operationId":"unpublishLink","summary":"Unpublish","description":"Requires `links:publish`. Takes it offline and frees its unit. Printed QR codes stop working.","parameters":[{"schema":{"type":"string","description":"The resource id, with its prefix.","example":"lnk_3f2a9c1e-7b4d-4e8a-9f10-2c6d8e4b1a77"},"required":true,"description":"The resource id, with its prefix.","name":"id","in":"path"}],"responses":{"200":{"description":"The draft record.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Link"}}}},"401":{"description":"The token is missing, invalid, expired or revoked.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The token lacks a required scope, or the account has a pending migration.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such resource on this account.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests. Wait for `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"The edge could not be updated.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Walink is temporarily unavailable. Wait for `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/links/{id}/qr":{"get":{"tags":["Links"],"security":[{"bearerAuth":[]}],"operationId":"getLinkQr","summary":"Get the QR style","description":"Requires `links:read`. Style plus the address it encodes.","parameters":[{"schema":{"type":"string","description":"The resource id, with its prefix.","example":"lnk_3f2a9c1e-7b4d-4e8a-9f10-2c6d8e4b1a77"},"required":true,"description":"The resource id, with its prefix.","name":"id","in":"path"}],"responses":{"200":{"description":"The QR style.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/QrConfig"}}}},"401":{"description":"The token is missing, invalid, expired or revoked.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The token lacks a required scope, or the account has a pending migration.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such resource on this account.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests. Wait for `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Walink is temporarily unavailable. Wait for `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"put":{"tags":["Links"],"security":[{"bearerAuth":[]}],"operationId":"putLinkQr","summary":"Save the QR style","description":"Requires `links:write`. Replaces the whole style.","parameters":[{"schema":{"type":"string","description":"The resource id, with its prefix.","example":"lnk_3f2a9c1e-7b4d-4e8a-9f10-2c6d8e4b1a77"},"required":true,"description":"The resource id, with its prefix.","name":"id","in":"path"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/QrConfigInput"}}}},"responses":{"200":{"description":"The saved style.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/QrConfig"}}}},"401":{"description":"The token is missing, invalid, expired or revoked.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The token lacks a required scope, or the account has a pending migration.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such resource on this account.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"The request failed validation.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests. Wait for `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Walink is temporarily unavailable. Wait for `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/smart-links":{"get":{"tags":["Smart Links"],"security":[{"bearerAuth":[]}],"operationId":"listSmartLinks","summary":"List Smart Links","description":"Requires `links:read`. Newest first.","parameters":[{"schema":{"type":"integer","description":"Page size."},"required":false,"description":"Page size.","name":"limit","in":"query"},{"schema":{"type":"string","maxLength":1024,"description":"`next_cursor` of the previous page."},"required":false,"description":"`next_cursor` of the previous page.","name":"cursor","in":"query"},{"schema":{"$ref":"#/components/schemas/Status"},"required":false,"description":"`published` is live on the internet. `draft` is private and uses no allowance.","name":"status","in":"query"},{"schema":{"type":"string","maxLength":250,"description":"Exact handle. Drafts can share one."},"required":false,"description":"Exact handle. Drafts can share one.","name":"handle","in":"query"},{"schema":{"type":"string","maxLength":200,"description":"Matches title or handle."},"required":false,"description":"Matches title or handle.","name":"q","in":"query"}],"responses":{"200":{"description":"A page of Smart Links.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SmartLinkPage"}}}},"401":{"description":"The token is missing, invalid, expired or revoked.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The token lacks a required scope, or the account has a pending migration.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"The request failed validation.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests. Wait for `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Walink is temporarily unavailable. Wait for `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"tags":["Smart Links"],"security":[{"bearerAuth":[]}],"operationId":"createSmartLink","summary":"Create a draft","description":"Requires `links:write`. Always a draft: publishing is a separate step.","parameters":[{"schema":{"type":"string","pattern":"^[\\x20-\\x7E]{1,255}$","description":"Makes a create safe to retry for 24 hours: the same key and body replay the original answer."},"required":false,"description":"Makes a create safe to retry for 24 hours: the same key and body replay the original answer.","name":"idempotency-key","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SmartLinkCreate"}}}},"responses":{"201":{"description":"The new draft.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SmartLink"}}}},"401":{"description":"The token is missing, invalid, expired or revoked.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Blocked by allowance, a past-due subscription, or a missing subscription.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The token lacks a required scope, or the account has a pending migration.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"The handle is taken, the draft or free link limit is reached, a retry is still running, or confirmation is required.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"The request failed validation.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests. Wait for `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Walink is temporarily unavailable. Wait for `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/smart-links/{id}":{"get":{"tags":["Smart Links"],"security":[{"bearerAuth":[]}],"operationId":"getSmartLink","summary":"Get one","description":"Requires `links:read`.","parameters":[{"schema":{"type":"string","description":"The resource id, with its prefix.","example":"slk_3f2a9c1e-7b4d-4e8a-9f10-2c6d8e4b1a77"},"required":true,"description":"The resource id, with its prefix.","name":"id","in":"path"}],"responses":{"200":{"description":"The full record.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SmartLink"}}}},"401":{"description":"The token is missing, invalid, expired or revoked.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The token lacks a required scope, or the account has a pending migration.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such resource on this account.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests. Wait for `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Walink is temporarily unavailable. Wait for `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"patch":{"tags":["Smart Links"],"security":[{"bearerAuth":[]}],"operationId":"updateSmartLink","summary":"Edit","description":"Requires `links:write`, and `links:publish` when the resource is published, because the change goes live immediately. Fields you leave out keep their value. Arrays replace whole.","parameters":[{"schema":{"type":"string","description":"The resource id, with its prefix.","example":"slk_3f2a9c1e-7b4d-4e8a-9f10-2c6d8e4b1a77"},"required":true,"description":"The resource id, with its prefix.","name":"id","in":"path"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SmartLinkUpdate"}}}},"responses":{"200":{"description":"The updated record.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SmartLink"}}}},"401":{"description":"The token is missing, invalid, expired or revoked.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Blocked by allowance, a past-due subscription, or a missing subscription.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The token lacks a required scope, or the account has a pending migration.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such resource on this account.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"The handle is taken, the draft or free link limit is reached, a retry is still running, or confirmation is required.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"412":{"description":"The resource changed since it was read.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"The request failed validation.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests. Wait for `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"The edge could not be updated.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Walink is temporarily unavailable. Wait for `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"tags":["Smart Links"],"security":[{"bearerAuth":[]}],"operationId":"deleteSmartLink","summary":"Delete","description":"Requires `links:delete`.","parameters":[{"schema":{"type":"string","description":"The resource id, with its prefix.","example":"slk_3f2a9c1e-7b4d-4e8a-9f10-2c6d8e4b1a77"},"required":true,"description":"The resource id, with its prefix.","name":"id","in":"path"}],"responses":{"204":{"description":"Deleted."},"401":{"description":"The token is missing, invalid, expired or revoked.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The token lacks a required scope, or the account has a pending migration.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such resource on this account.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"The handle is taken, the draft or free link limit is reached, a retry is still running, or confirmation is required.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests. Wait for `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"The edge could not be updated.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Walink is temporarily unavailable. Wait for `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/smart-links/{id}/publish-check":{"post":{"tags":["Smart Links"],"security":[{"bearerAuth":[]}],"operationId":"checkSmartLinkPublish","summary":"Dry-run a publish","description":"Requires `links:read`. Reports blockers and the allowance it would use. Changes nothing.","parameters":[{"schema":{"type":"string","description":"The resource id, with its prefix.","example":"slk_3f2a9c1e-7b4d-4e8a-9f10-2c6d8e4b1a77"},"required":true,"description":"The resource id, with its prefix.","name":"id","in":"path"}],"responses":{"200":{"description":"The dry run.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublishCheck"}}}},"401":{"description":"The token is missing, invalid, expired or revoked.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The token lacks a required scope, or the account has a pending migration.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such resource on this account.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests. Wait for `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Walink is temporarily unavailable. Wait for `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/smart-links/{id}/publish":{"post":{"tags":["Smart Links"],"security":[{"bearerAuth":[]}],"operationId":"publishSmartLink","summary":"Publish","description":"Requires `links:publish`. Consumes allowance and goes live. Publishing twice is a no-op.","parameters":[{"schema":{"type":"string","description":"The resource id, with its prefix.","example":"slk_3f2a9c1e-7b4d-4e8a-9f10-2c6d8e4b1a77"},"required":true,"description":"The resource id, with its prefix.","name":"id","in":"path"}],"responses":{"200":{"description":"The published record.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SmartLink"}}}},"401":{"description":"The token is missing, invalid, expired or revoked.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Blocked by allowance, a past-due subscription, or a missing subscription.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The token lacks a required scope, or the account has a pending migration.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such resource on this account.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"The handle is taken, the draft or free link limit is reached, a retry is still running, or confirmation is required.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests. Wait for `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"The edge could not be updated.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Walink is temporarily unavailable. Wait for `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/smart-links/{id}/unpublish":{"post":{"tags":["Smart Links"],"security":[{"bearerAuth":[]}],"operationId":"unpublishSmartLink","summary":"Unpublish","description":"Requires `links:publish`. Takes it offline and frees its unit. Printed QR codes stop working.","parameters":[{"schema":{"type":"string","description":"The resource id, with its prefix.","example":"slk_3f2a9c1e-7b4d-4e8a-9f10-2c6d8e4b1a77"},"required":true,"description":"The resource id, with its prefix.","name":"id","in":"path"}],"responses":{"200":{"description":"The draft record.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SmartLink"}}}},"401":{"description":"The token is missing, invalid, expired or revoked.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The token lacks a required scope, or the account has a pending migration.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such resource on this account.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests. Wait for `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"The edge could not be updated.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Walink is temporarily unavailable. Wait for `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/smart-links/{id}/qr":{"get":{"tags":["Smart Links"],"security":[{"bearerAuth":[]}],"operationId":"getSmartLinkQr","summary":"Get the QR style","description":"Requires `links:read`. Style plus the address it encodes.","parameters":[{"schema":{"type":"string","description":"The resource id, with its prefix.","example":"slk_3f2a9c1e-7b4d-4e8a-9f10-2c6d8e4b1a77"},"required":true,"description":"The resource id, with its prefix.","name":"id","in":"path"}],"responses":{"200":{"description":"The QR style.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/QrConfig"}}}},"401":{"description":"The token is missing, invalid, expired or revoked.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The token lacks a required scope, or the account has a pending migration.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such resource on this account.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests. Wait for `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Walink is temporarily unavailable. Wait for `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"put":{"tags":["Smart Links"],"security":[{"bearerAuth":[]}],"operationId":"putSmartLinkQr","summary":"Save the QR style","description":"Requires `links:write`. Replaces the whole style.","parameters":[{"schema":{"type":"string","description":"The resource id, with its prefix.","example":"slk_3f2a9c1e-7b4d-4e8a-9f10-2c6d8e4b1a77"},"required":true,"description":"The resource id, with its prefix.","name":"id","in":"path"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/QrConfigInput"}}}},"responses":{"200":{"description":"The saved style.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/QrConfig"}}}},"401":{"description":"The token is missing, invalid, expired or revoked.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The token lacks a required scope, or the account has a pending migration.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such resource on this account.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"The request failed validation.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests. Wait for `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Walink is temporarily unavailable. Wait for `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/forms":{"get":{"tags":["Forms"],"security":[{"bearerAuth":[]}],"operationId":"listForms","summary":"List Forms","description":"Requires `forms:read`. Newest first.","parameters":[{"schema":{"type":"integer","description":"Page size."},"required":false,"description":"Page size.","name":"limit","in":"query"},{"schema":{"type":"string","maxLength":1024,"description":"`next_cursor` of the previous page."},"required":false,"description":"`next_cursor` of the previous page.","name":"cursor","in":"query"},{"schema":{"$ref":"#/components/schemas/Status"},"required":false,"description":"`published` is live on the internet. `draft` is private and uses no allowance.","name":"status","in":"query"},{"schema":{"type":"string","maxLength":250,"description":"Exact handle. Drafts can share one."},"required":false,"description":"Exact handle. Drafts can share one.","name":"handle","in":"query"},{"schema":{"type":"string","maxLength":200,"description":"Matches title or handle."},"required":false,"description":"Matches title or handle.","name":"q","in":"query"}],"responses":{"200":{"description":"A page of Forms.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FormPage"}}}},"401":{"description":"The token is missing, invalid, expired or revoked.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The token lacks a required scope, or the account has a pending migration.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"The request failed validation.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests. Wait for `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Walink is temporarily unavailable. Wait for `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"tags":["Forms"],"security":[{"bearerAuth":[]}],"operationId":"createForm","summary":"Create a draft","description":"Requires `forms:write`. Always a draft: publishing is a separate step.","parameters":[{"schema":{"type":"string","pattern":"^[\\x20-\\x7E]{1,255}$","description":"Makes a create safe to retry for 24 hours: the same key and body replay the original answer."},"required":false,"description":"Makes a create safe to retry for 24 hours: the same key and body replay the original answer.","name":"idempotency-key","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FormCreate"}}}},"responses":{"201":{"description":"The new draft.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Form"}}}},"401":{"description":"The token is missing, invalid, expired or revoked.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Blocked by allowance, a past-due subscription, or a missing subscription.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The token lacks a required scope, or the account has a pending migration.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"The handle is taken, the draft or free link limit is reached, a retry is still running, or confirmation is required.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"The request failed validation.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests. Wait for `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Walink is temporarily unavailable. Wait for `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/forms/{id}":{"get":{"tags":["Forms"],"security":[{"bearerAuth":[]}],"operationId":"getForm","summary":"Get one","description":"Requires `forms:read`.","parameters":[{"schema":{"type":"string","description":"The resource id, with its prefix.","example":"frm_3f2a9c1e-7b4d-4e8a-9f10-2c6d8e4b1a77"},"required":true,"description":"The resource id, with its prefix.","name":"id","in":"path"}],"responses":{"200":{"description":"The full record.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Form"}}}},"401":{"description":"The token is missing, invalid, expired or revoked.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The token lacks a required scope, or the account has a pending migration.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such resource on this account.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests. Wait for `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Walink is temporarily unavailable. Wait for `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"patch":{"tags":["Forms"],"security":[{"bearerAuth":[]}],"operationId":"updateForm","summary":"Edit","description":"Requires `forms:write`, and `forms:publish` when the resource is published, because the change goes live immediately. Fields you leave out keep their value. Arrays replace whole.","parameters":[{"schema":{"type":"string","description":"The resource id, with its prefix.","example":"frm_3f2a9c1e-7b4d-4e8a-9f10-2c6d8e4b1a77"},"required":true,"description":"The resource id, with its prefix.","name":"id","in":"path"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FormUpdate"}}}},"responses":{"200":{"description":"The updated record.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Form"}}}},"401":{"description":"The token is missing, invalid, expired or revoked.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Blocked by allowance, a past-due subscription, or a missing subscription.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The token lacks a required scope, or the account has a pending migration.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such resource on this account.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"The handle is taken, the draft or free link limit is reached, a retry is still running, or confirmation is required.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"412":{"description":"The resource changed since it was read.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"The request failed validation.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests. Wait for `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"The edge could not be updated.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Walink is temporarily unavailable. Wait for `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"tags":["Forms"],"security":[{"bearerAuth":[]}],"operationId":"deleteForm","summary":"Delete","description":"Requires `forms:delete`. A form with stored responses needs `delete_responses=true`, which deletes them too.","parameters":[{"schema":{"type":"string","description":"The resource id, with its prefix.","example":"frm_3f2a9c1e-7b4d-4e8a-9f10-2c6d8e4b1a77"},"required":true,"description":"The resource id, with its prefix.","name":"id","in":"path"},{"schema":{"type":"string","enum":["true","false"]},"required":false,"name":"delete_responses","in":"query"}],"responses":{"204":{"description":"Deleted."},"401":{"description":"The token is missing, invalid, expired or revoked.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The token lacks a required scope, or the account has a pending migration.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such resource on this account.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"The handle is taken, the draft or free link limit is reached, a retry is still running, or confirmation is required.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests. Wait for `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"The edge could not be updated.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Walink is temporarily unavailable. Wait for `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/forms/{id}/publish-check":{"post":{"tags":["Forms"],"security":[{"bearerAuth":[]}],"operationId":"checkFormPublish","summary":"Dry-run a publish","description":"Requires `forms:read`. Reports blockers and the allowance it would use. Changes nothing.","parameters":[{"schema":{"type":"string","description":"The resource id, with its prefix.","example":"frm_3f2a9c1e-7b4d-4e8a-9f10-2c6d8e4b1a77"},"required":true,"description":"The resource id, with its prefix.","name":"id","in":"path"}],"responses":{"200":{"description":"The dry run.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublishCheck"}}}},"401":{"description":"The token is missing, invalid, expired or revoked.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The token lacks a required scope, or the account has a pending migration.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such resource on this account.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests. Wait for `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Walink is temporarily unavailable. Wait for `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/forms/{id}/publish":{"post":{"tags":["Forms"],"security":[{"bearerAuth":[]}],"operationId":"publishForm","summary":"Publish","description":"Requires `forms:publish`. Consumes allowance and goes live. Publishing twice is a no-op.","parameters":[{"schema":{"type":"string","description":"The resource id, with its prefix.","example":"frm_3f2a9c1e-7b4d-4e8a-9f10-2c6d8e4b1a77"},"required":true,"description":"The resource id, with its prefix.","name":"id","in":"path"}],"responses":{"200":{"description":"The published record.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Form"}}}},"401":{"description":"The token is missing, invalid, expired or revoked.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Blocked by allowance, a past-due subscription, or a missing subscription.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The token lacks a required scope, or the account has a pending migration.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such resource on this account.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"The handle is taken, the draft or free link limit is reached, a retry is still running, or confirmation is required.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests. Wait for `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"The edge could not be updated.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Walink is temporarily unavailable. Wait for `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/forms/{id}/unpublish":{"post":{"tags":["Forms"],"security":[{"bearerAuth":[]}],"operationId":"unpublishForm","summary":"Unpublish","description":"Requires `forms:publish`. Takes it offline and frees its unit. Printed QR codes stop working.","parameters":[{"schema":{"type":"string","description":"The resource id, with its prefix.","example":"frm_3f2a9c1e-7b4d-4e8a-9f10-2c6d8e4b1a77"},"required":true,"description":"The resource id, with its prefix.","name":"id","in":"path"}],"responses":{"200":{"description":"The draft record.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Form"}}}},"401":{"description":"The token is missing, invalid, expired or revoked.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The token lacks a required scope, or the account has a pending migration.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such resource on this account.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests. Wait for `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"The edge could not be updated.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Walink is temporarily unavailable. Wait for `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/forms/{id}/qr":{"get":{"tags":["Forms"],"security":[{"bearerAuth":[]}],"operationId":"getFormQr","summary":"Get the QR style","description":"Requires `forms:read`. Style plus the address it encodes.","parameters":[{"schema":{"type":"string","description":"The resource id, with its prefix.","example":"frm_3f2a9c1e-7b4d-4e8a-9f10-2c6d8e4b1a77"},"required":true,"description":"The resource id, with its prefix.","name":"id","in":"path"}],"responses":{"200":{"description":"The QR style.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/QrConfig"}}}},"401":{"description":"The token is missing, invalid, expired or revoked.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The token lacks a required scope, or the account has a pending migration.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such resource on this account.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests. Wait for `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Walink is temporarily unavailable. Wait for `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"put":{"tags":["Forms"],"security":[{"bearerAuth":[]}],"operationId":"putFormQr","summary":"Save the QR style","description":"Requires `forms:write`. Replaces the whole style.","parameters":[{"schema":{"type":"string","description":"The resource id, with its prefix.","example":"frm_3f2a9c1e-7b4d-4e8a-9f10-2c6d8e4b1a77"},"required":true,"description":"The resource id, with its prefix.","name":"id","in":"path"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/QrConfigInput"}}}},"responses":{"200":{"description":"The saved style.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/QrConfig"}}}},"401":{"description":"The token is missing, invalid, expired or revoked.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The token lacks a required scope, or the account has a pending migration.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such resource on this account.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"The request failed validation.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests. Wait for `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Walink is temporarily unavailable. Wait for `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/multilinks":{"get":{"tags":["Multilinks"],"security":[{"bearerAuth":[]}],"operationId":"listMultilinks","summary":"List Multilinks","description":"Requires `multilinks:read`. Newest first.","parameters":[{"schema":{"type":"integer","description":"Page size."},"required":false,"description":"Page size.","name":"limit","in":"query"},{"schema":{"type":"string","maxLength":1024,"description":"`next_cursor` of the previous page."},"required":false,"description":"`next_cursor` of the previous page.","name":"cursor","in":"query"},{"schema":{"$ref":"#/components/schemas/Status"},"required":false,"description":"`published` is live on the internet. `draft` is private and uses no allowance.","name":"status","in":"query"},{"schema":{"type":"string","maxLength":250,"description":"Exact handle. Drafts can share one."},"required":false,"description":"Exact handle. Drafts can share one.","name":"handle","in":"query"},{"schema":{"type":"string","maxLength":200,"description":"Matches title or handle."},"required":false,"description":"Matches title or handle.","name":"q","in":"query"}],"responses":{"200":{"description":"A page of Multilinks.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MultilinkPage"}}}},"401":{"description":"The token is missing, invalid, expired or revoked.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The token lacks a required scope, or the account has a pending migration.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"The request failed validation.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests. Wait for `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Walink is temporarily unavailable. Wait for `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"tags":["Multilinks"],"security":[{"bearerAuth":[]}],"operationId":"createMultilink","summary":"Create a draft","description":"Requires `multilinks:write`. Always a draft: publishing is a separate step.","parameters":[{"schema":{"type":"string","pattern":"^[\\x20-\\x7E]{1,255}$","description":"Makes a create safe to retry for 24 hours: the same key and body replay the original answer."},"required":false,"description":"Makes a create safe to retry for 24 hours: the same key and body replay the original answer.","name":"idempotency-key","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MultilinkCreate"}}}},"responses":{"201":{"description":"The new draft.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Multilink"}}}},"401":{"description":"The token is missing, invalid, expired or revoked.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Blocked by allowance, a past-due subscription, or a missing subscription.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The token lacks a required scope, or the account has a pending migration.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"The handle is taken, the draft or free link limit is reached, a retry is still running, or confirmation is required.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"The request failed validation.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests. Wait for `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Walink is temporarily unavailable. Wait for `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/multilinks/{id}":{"get":{"tags":["Multilinks"],"security":[{"bearerAuth":[]}],"operationId":"getMultilink","summary":"Get one","description":"Requires `multilinks:read`.","parameters":[{"schema":{"type":"string","description":"The resource id, with its prefix.","example":"mlk_3f2a9c1e-7b4d-4e8a-9f10-2c6d8e4b1a77"},"required":true,"description":"The resource id, with its prefix.","name":"id","in":"path"}],"responses":{"200":{"description":"The full record.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Multilink"}}}},"401":{"description":"The token is missing, invalid, expired or revoked.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The token lacks a required scope, or the account has a pending migration.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such resource on this account.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests. Wait for `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Walink is temporarily unavailable. Wait for `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"patch":{"tags":["Multilinks"],"security":[{"bearerAuth":[]}],"operationId":"updateMultilink","summary":"Edit","description":"Requires `multilinks:write`, and `multilinks:publish` when the resource is published, because the change goes live immediately. Fields you leave out keep their value. Arrays replace whole.","parameters":[{"schema":{"type":"string","description":"The resource id, with its prefix.","example":"mlk_3f2a9c1e-7b4d-4e8a-9f10-2c6d8e4b1a77"},"required":true,"description":"The resource id, with its prefix.","name":"id","in":"path"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MultilinkUpdate"}}}},"responses":{"200":{"description":"The updated record.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Multilink"}}}},"401":{"description":"The token is missing, invalid, expired or revoked.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Blocked by allowance, a past-due subscription, or a missing subscription.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The token lacks a required scope, or the account has a pending migration.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such resource on this account.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"The handle is taken, the draft or free link limit is reached, a retry is still running, or confirmation is required.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"412":{"description":"The resource changed since it was read.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"The request failed validation.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests. Wait for `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"The edge could not be updated.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Walink is temporarily unavailable. Wait for `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"tags":["Multilinks"],"security":[{"bearerAuth":[]}],"operationId":"deleteMultilink","summary":"Delete","description":"Requires `multilinks:delete`.","parameters":[{"schema":{"type":"string","description":"The resource id, with its prefix.","example":"mlk_3f2a9c1e-7b4d-4e8a-9f10-2c6d8e4b1a77"},"required":true,"description":"The resource id, with its prefix.","name":"id","in":"path"}],"responses":{"204":{"description":"Deleted."},"401":{"description":"The token is missing, invalid, expired or revoked.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The token lacks a required scope, or the account has a pending migration.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such resource on this account.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"The handle is taken, the draft or free link limit is reached, a retry is still running, or confirmation is required.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests. Wait for `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"The edge could not be updated.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Walink is temporarily unavailable. Wait for `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/multilinks/{id}/publish-check":{"post":{"tags":["Multilinks"],"security":[{"bearerAuth":[]}],"operationId":"checkMultilinkPublish","summary":"Dry-run a publish","description":"Requires `multilinks:read`. Reports blockers and the allowance it would use. Changes nothing.","parameters":[{"schema":{"type":"string","description":"The resource id, with its prefix.","example":"mlk_3f2a9c1e-7b4d-4e8a-9f10-2c6d8e4b1a77"},"required":true,"description":"The resource id, with its prefix.","name":"id","in":"path"}],"responses":{"200":{"description":"The dry run.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublishCheck"}}}},"401":{"description":"The token is missing, invalid, expired or revoked.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The token lacks a required scope, or the account has a pending migration.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such resource on this account.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests. Wait for `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Walink is temporarily unavailable. Wait for `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/multilinks/{id}/publish":{"post":{"tags":["Multilinks"],"security":[{"bearerAuth":[]}],"operationId":"publishMultilink","summary":"Publish","description":"Requires `multilinks:publish`. Consumes allowance and goes live. Publishing twice is a no-op.","parameters":[{"schema":{"type":"string","description":"The resource id, with its prefix.","example":"mlk_3f2a9c1e-7b4d-4e8a-9f10-2c6d8e4b1a77"},"required":true,"description":"The resource id, with its prefix.","name":"id","in":"path"}],"responses":{"200":{"description":"The published record.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Multilink"}}}},"401":{"description":"The token is missing, invalid, expired or revoked.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Blocked by allowance, a past-due subscription, or a missing subscription.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The token lacks a required scope, or the account has a pending migration.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such resource on this account.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"The handle is taken, the draft or free link limit is reached, a retry is still running, or confirmation is required.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests. Wait for `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"The edge could not be updated.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Walink is temporarily unavailable. Wait for `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/multilinks/{id}/unpublish":{"post":{"tags":["Multilinks"],"security":[{"bearerAuth":[]}],"operationId":"unpublishMultilink","summary":"Unpublish","description":"Requires `multilinks:publish`. Takes it offline and frees its unit. Printed QR codes stop working.","parameters":[{"schema":{"type":"string","description":"The resource id, with its prefix.","example":"mlk_3f2a9c1e-7b4d-4e8a-9f10-2c6d8e4b1a77"},"required":true,"description":"The resource id, with its prefix.","name":"id","in":"path"}],"responses":{"200":{"description":"The draft record.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Multilink"}}}},"401":{"description":"The token is missing, invalid, expired or revoked.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The token lacks a required scope, or the account has a pending migration.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such resource on this account.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests. Wait for `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"The edge could not be updated.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Walink is temporarily unavailable. Wait for `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/multilinks/{id}/qr":{"get":{"tags":["Multilinks"],"security":[{"bearerAuth":[]}],"operationId":"getMultilinkQr","summary":"Get the QR style","description":"Requires `multilinks:read`. Style plus the address it encodes.","parameters":[{"schema":{"type":"string","description":"The resource id, with its prefix.","example":"mlk_3f2a9c1e-7b4d-4e8a-9f10-2c6d8e4b1a77"},"required":true,"description":"The resource id, with its prefix.","name":"id","in":"path"}],"responses":{"200":{"description":"The QR style.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/QrConfig"}}}},"401":{"description":"The token is missing, invalid, expired or revoked.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The token lacks a required scope, or the account has a pending migration.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such resource on this account.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests. Wait for `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Walink is temporarily unavailable. Wait for `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"put":{"tags":["Multilinks"],"security":[{"bearerAuth":[]}],"operationId":"putMultilinkQr","summary":"Save the QR style","description":"Requires `multilinks:write`. Replaces the whole style.","parameters":[{"schema":{"type":"string","description":"The resource id, with its prefix.","example":"mlk_3f2a9c1e-7b4d-4e8a-9f10-2c6d8e4b1a77"},"required":true,"description":"The resource id, with its prefix.","name":"id","in":"path"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/QrConfigInput"}}}},"responses":{"200":{"description":"The saved style.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/QrConfig"}}}},"401":{"description":"The token is missing, invalid, expired or revoked.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The token lacks a required scope, or the account has a pending migration.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such resource on this account.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"The request failed validation.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests. Wait for `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Walink is temporarily unavailable. Wait for `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/free-links":{"get":{"tags":["Free links"],"security":[{"bearerAuth":[]}],"operationId":"listFreeLinks","summary":"List free links","description":"Requires `links:read`. Newest first.","parameters":[{"schema":{"type":"integer","description":"Page size."},"required":false,"description":"Page size.","name":"limit","in":"query"},{"schema":{"type":"string","maxLength":1024,"description":"`next_cursor` of the previous page."},"required":false,"description":"`next_cursor` of the previous page.","name":"cursor","in":"query"}],"responses":{"200":{"description":"A page of free links.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FreeLinkPage"}}}},"401":{"description":"The token is missing, invalid, expired or revoked.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The token lacks a required scope, or the account has a pending migration.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"The request failed validation.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests. Wait for `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Walink is temporarily unavailable. Wait for `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"tags":["Free links"],"security":[{"bearerAuth":[]}],"operationId":"createFreeLink","summary":"Create a free link","description":"Requires `links:publish`, not `links:write`: unlike every other create, this is never a draft and goes live immediately. Walink picks a random handle, which can't be chosen. A `title` can only be set here. An account holds at most 5, and past that the answer is `409 free_link_limit_reached`.","parameters":[{"schema":{"type":"string","pattern":"^[\\x20-\\x7E]{1,255}$","description":"Makes a create safe to retry for 24 hours: the same key and body replay the original answer."},"required":false,"description":"Makes a create safe to retry for 24 hours: the same key and body replay the original answer.","name":"idempotency-key","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FreeLinkCreate"}}}},"responses":{"201":{"description":"The new link, already live.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FreeLink"}}}},"401":{"description":"The token is missing, invalid, expired or revoked.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The token lacks a required scope, or the account has a pending migration.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"The handle is taken, the draft or free link limit is reached, a retry is still running, or confirmation is required.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"The request failed validation.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests. Wait for `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"The edge could not be updated.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Walink is temporarily unavailable. Wait for `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/free-links/{id}":{"get":{"tags":["Free links"],"security":[{"bearerAuth":[]}],"operationId":"getFreeLink","summary":"Get one","description":"Requires `links:read`.","parameters":[{"schema":{"type":"string","description":"The resource id, with its prefix.","example":"fln_3f2a9c1e-7b4d-4e8a-9f10-2c6d8e4b1a77"},"required":true,"description":"The resource id, with its prefix.","name":"id","in":"path"}],"responses":{"200":{"description":"The full record.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FreeLink"}}}},"401":{"description":"The token is missing, invalid, expired or revoked.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The token lacks a required scope, or the account has a pending migration.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such resource on this account.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests. Wait for `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Walink is temporarily unavailable. Wait for `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"tags":["Free links"],"security":[{"bearerAuth":[]}],"operationId":"deleteFreeLink","summary":"Delete","description":"Requires `links:delete`. The link stops working for good, and its slot is free again.","parameters":[{"schema":{"type":"string","description":"The resource id, with its prefix.","example":"fln_3f2a9c1e-7b4d-4e8a-9f10-2c6d8e4b1a77"},"required":true,"description":"The resource id, with its prefix.","name":"id","in":"path"}],"responses":{"204":{"description":"Deleted."},"401":{"description":"The token is missing, invalid, expired or revoked.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The token lacks a required scope, or the account has a pending migration.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such resource on this account.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"412":{"description":"The resource changed since it was read.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests. Wait for `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"The edge could not be updated.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Walink is temporarily unavailable. Wait for `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/analytics/overview":{"get":{"tags":["Analytics"],"security":[{"bearerAuth":[]}],"description":"Requires `analytics:read` and a subscription. Leaderboards name your published resources, with no product read scope needed. If the analytics store is unreachable this still answers 200 with `live: false`, and the figures are placeholders.","operationId":"getOverviewAnalytics","summary":"Headline figures across products","parameters":[{"schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"First day, `YYYY-MM-DD`. Send with `end`. Defaults to the last 30 days."},"required":false,"description":"First day, `YYYY-MM-DD`. Send with `end`. Defaults to the last 30 days.","name":"start","in":"query"},{"schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Last day, `YYYY-MM-DD`, inclusive."},"required":false,"description":"Last day, `YYYY-MM-DD`, inclusive.","name":"end","in":"query"}],"responses":{"200":{"description":"Each figure has its own unit: never sum them.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OverviewAnalytics"}}}},"401":{"description":"The token is missing, invalid, expired or revoked.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Blocked by allowance, a past-due subscription, or a missing subscription.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The token lacks a required scope, or the account has a pending migration.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"The request failed validation.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests. Wait for `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Walink is temporarily unavailable. Wait for `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/analytics/{product}":{"get":{"tags":["Analytics"],"security":[{"bearerAuth":[]}],"description":"Requires `analytics:read` and a subscription. Leaderboards name your published resources, with no product read scope needed. If the analytics store is unreachable this still answers 200 with `live: false`, and the figures are placeholders.","operationId":"getProductAnalytics","summary":"One product: figures, series and leaderboard","parameters":[{"schema":{"$ref":"#/components/schemas/Product"},"required":true,"description":"`links` is Premium links, `smart-links` is routing links.","name":"product","in":"path"},{"schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"First day, `YYYY-MM-DD`. Send with `end`. Defaults to the last 30 days."},"required":false,"description":"First day, `YYYY-MM-DD`. Send with `end`. Defaults to the last 30 days.","name":"start","in":"query"},{"schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Last day, `YYYY-MM-DD`, inclusive."},"required":false,"description":"Last day, `YYYY-MM-DD`, inclusive.","name":"end","in":"query"}],"responses":{"200":{"description":"The product figures.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProductAnalytics"}}}},"401":{"description":"The token is missing, invalid, expired or revoked.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Blocked by allowance, a past-due subscription, or a missing subscription.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The token lacks a required scope, or the account has a pending migration.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"The request failed validation.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests. Wait for `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Walink is temporarily unavailable. Wait for `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/analytics/{product}/breakdown/{dimension}":{"get":{"tags":["Analytics"],"security":[{"bearerAuth":[]}],"description":"Requires `analytics:read` and a subscription. Leaderboards name your published resources, with no product read scope needed. If the analytics store is unreachable this still answers 200 with `live: false`, and the figures are placeholders.","operationId":"getProductAnalyticsBreakdown","summary":"One product, by one dimension","parameters":[{"schema":{"$ref":"#/components/schemas/Product"},"required":true,"description":"`links` is Premium links, `smart-links` is routing links.","name":"product","in":"path"},{"schema":{"$ref":"#/components/schemas/AnalyticsDimension"},"required":true,"description":"`destination` only exists on one Smart Link.","name":"dimension","in":"path"},{"schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"First day, `YYYY-MM-DD`. Send with `end`. Defaults to the last 30 days."},"required":false,"description":"First day, `YYYY-MM-DD`. Send with `end`. Defaults to the last 30 days.","name":"start","in":"query"},{"schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Last day, `YYYY-MM-DD`, inclusive."},"required":false,"description":"Last day, `YYYY-MM-DD`, inclusive.","name":"end","in":"query"},{"schema":{"type":"string","maxLength":1024},"required":false,"name":"cursor","in":"query"},{"schema":{"type":"integer"},"required":false,"name":"limit","in":"query"}],"responses":{"200":{"description":"A page of ranked values.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AnalyticsBreakdown"}}}},"401":{"description":"The token is missing, invalid, expired or revoked.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Blocked by allowance, a past-due subscription, or a missing subscription.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The token lacks a required scope, or the account has a pending migration.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"The request failed validation.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests. Wait for `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Walink is temporarily unavailable. Wait for `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/analytics/{product}/{id}":{"get":{"tags":["Analytics"],"security":[{"bearerAuth":[]}],"description":"Requires `analytics:read` and a subscription. Leaderboards name your published resources, with no product read scope needed. If the analytics store is unreachable this still answers 200 with `live: false`, and the figures are placeholders.","operationId":"getEntityAnalytics","summary":"One resource. For a form, `metrics` is the funnel","parameters":[{"schema":{"$ref":"#/components/schemas/Product"},"required":true,"description":"`links` is Premium links, `smart-links` is routing links.","name":"product","in":"path"},{"schema":{"type":"string","description":"The resource id, with its prefix."},"required":true,"description":"The resource id, with its prefix.","name":"id","in":"path"},{"schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"First day, `YYYY-MM-DD`. Send with `end`. Defaults to the last 30 days."},"required":false,"description":"First day, `YYYY-MM-DD`. Send with `end`. Defaults to the last 30 days.","name":"start","in":"query"},{"schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Last day, `YYYY-MM-DD`, inclusive."},"required":false,"description":"Last day, `YYYY-MM-DD`, inclusive.","name":"end","in":"query"}],"responses":{"200":{"description":"The resource figures.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EntityAnalytics"}}}},"401":{"description":"The token is missing, invalid, expired or revoked.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Blocked by allowance, a past-due subscription, or a missing subscription.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The token lacks a required scope, or the account has a pending migration.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such resource on this account.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"The request failed validation.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests. Wait for `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Walink is temporarily unavailable. Wait for `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/analytics/{product}/{id}/breakdown/{dimension}":{"get":{"tags":["Analytics"],"security":[{"bearerAuth":[]}],"description":"Requires `analytics:read` and a subscription. Leaderboards name your published resources, with no product read scope needed. If the analytics store is unreachable this still answers 200 with `live: false`, and the figures are placeholders.","operationId":"getEntityAnalyticsBreakdown","summary":"One resource, by one dimension","parameters":[{"schema":{"$ref":"#/components/schemas/Product"},"required":true,"description":"`links` is Premium links, `smart-links` is routing links.","name":"product","in":"path"},{"schema":{"$ref":"#/components/schemas/AnalyticsDimension"},"required":true,"description":"`destination` only exists on one Smart Link.","name":"dimension","in":"path"},{"schema":{"type":"string","description":"The resource id, with its prefix."},"required":true,"description":"The resource id, with its prefix.","name":"id","in":"path"},{"schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"First day, `YYYY-MM-DD`. Send with `end`. Defaults to the last 30 days."},"required":false,"description":"First day, `YYYY-MM-DD`. Send with `end`. Defaults to the last 30 days.","name":"start","in":"query"},{"schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Last day, `YYYY-MM-DD`, inclusive."},"required":false,"description":"Last day, `YYYY-MM-DD`, inclusive.","name":"end","in":"query"},{"schema":{"type":"string","maxLength":1024},"required":false,"name":"cursor","in":"query"},{"schema":{"type":"integer"},"required":false,"name":"limit","in":"query"}],"responses":{"200":{"description":"A page of ranked values.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AnalyticsBreakdown"}}}},"401":{"description":"The token is missing, invalid, expired or revoked.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Blocked by allowance, a past-due subscription, or a missing subscription.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The token lacks a required scope, or the account has a pending migration.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such resource on this account.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"The request failed validation.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests. Wait for `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Walink is temporarily unavailable. Wait for `Retry-After` seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}},"webhooks":{}}