{"openapi":"3.0.3","info":{"title":"CodeQR.io API","description":"SaaS platform for creating dynamic QR Codes, trackable short links, and interactive pages, focused on automation, analytics, and engagement.","version":"0.0.1","contact":{"name":"CodeQR.io Support","email":"contact@codeqr.io","url":"https://codeqr.io/api"},"license":{"name":"AGPL-3.0 license"}},"servers":[{"url":"https://api.codeqr.io","description":"Production API"}],"paths":{"/links":{"post":{"operationId":"createLink","x-speakeasy-name-override":"create","x-speakeasy-usage-example":true,"summary":"Create a new link","description":"Create a new link for the authenticated workspace.","tags":["Links"],"security":[{"token":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","description":"The destination URL of the short link.","example":"https://google.com"},"domain":{"type":"string","description":"The domain of the short link. If not provided, the main domain of the project will be used (or `codeqr.link` if the project has no domains)."},"key":{"type":"string","description":"The slug of the short link. If not provided, a random 7-character slug will be generated."},"externalId":{"type":"string","nullable":true,"minLength":1,"maxLength":255,"description":"This is the ID of the link in your database. If set, it can be used to identify the link in the future. Must be prefixed with `ext_` when passed as a query parameter.","example":"123456"},"prefix":{"type":"string","description":"The prefix of the short link slug for randomly generated keys (for example, if the prefix is `/c/`, the generated keys will be in the format `/c/:key`). Will be ignored if `key` is provided."},"trackConversion":{"type":"boolean","default":false,"description":"Whether to track conversions for the short link."},"useAsTemplate":{"type":"boolean","default":false,"description":"Whether this link should be used as a reusable template."},"archived":{"type":"boolean","default":false,"description":"Whether the short link is archived."},"expiresAt":{"type":"string","nullable":true,"format":"date-time","description":"The date and time when the short link will expire in ISO-8601 format. Must be in the future."},"expiredUrl":{"type":"string","nullable":true,"description":"The URL to redirect to when the short link expires."},"password":{"type":"string","nullable":true,"default":null,"description":"The password required to access the short link destination URL."},"proxy":{"type":"boolean","default":false,"description":"Whether the short link uses the custom link preview feature."},"title":{"type":"string","nullable":true,"default":null,"description":"The title of the short link generated via `api.codeqr.io/metatags`. Will be used for custom link preview if `proxy` is true."},"description":{"type":"string","nullable":true,"default":null,"description":"The description of the short link generated via `api.codeqr.io/metatags`. Will be used for custom link preview if `proxy` is true."},"image":{"type":"string","nullable":true,"default":null,"description":"The image of the short link generated via `api.codeqr.io/metatags`. Will be used for custom link preview if `proxy` is true."},"video":{"type":"string","nullable":true,"default":null,"description":"The video of the short link."},"rewrite":{"type":"boolean","default":false,"description":"Whether the short link uses link cloaking."},"ios":{"type":"string","nullable":true,"default":null,"description":"The iOS destination URL for the short link for iOS device targeting."},"android":{"type":"string","nullable":true,"default":null,"description":"The Android destination URL for the short link for Android device targeting."},"geo":{"type":"object","nullable":true,"properties":{"AF":{"type":"string"},"AL":{"type":"string"},"DZ":{"type":"string"},"AS":{"type":"string"},"AD":{"type":"string"},"AO":{"type":"string"},"AI":{"type":"string"},"AQ":{"type":"string"},"AG":{"type":"string"},"AR":{"type":"string"},"AM":{"type":"string"},"AW":{"type":"string"},"AU":{"type":"string"},"AT":{"type":"string"},"AZ":{"type":"string"},"BS":{"type":"string"},"BH":{"type":"string"},"BD":{"type":"string"},"BB":{"type":"string"},"BY":{"type":"string"},"BE":{"type":"string"},"BZ":{"type":"string"},"BJ":{"type":"string"},"BM":{"type":"string"},"BT":{"type":"string"},"BO":{"type":"string"},"BA":{"type":"string"},"BW":{"type":"string"},"BV":{"type":"string"},"BR":{"type":"string"},"IO":{"type":"string"},"BN":{"type":"string"},"BG":{"type":"string"},"BF":{"type":"string"},"BI":{"type":"string"},"KH":{"type":"string"},"CM":{"type":"string"},"CA":{"type":"string"},"CV":{"type":"string"},"KY":{"type":"string"},"CF":{"type":"string"},"TD":{"type":"string"},"CL":{"type":"string"},"CN":{"type":"string"},"CX":{"type":"string"},"CC":{"type":"string"},"CO":{"type":"string"},"KM":{"type":"string"},"CG":{"type":"string"},"CD":{"type":"string"},"CK":{"type":"string"},"CR":{"type":"string"},"CI":{"type":"string"},"HR":{"type":"string"},"CU":{"type":"string"},"CY":{"type":"string"},"CZ":{"type":"string"},"DK":{"type":"string"},"DJ":{"type":"string"},"DM":{"type":"string"},"DO":{"type":"string"},"EC":{"type":"string"},"EG":{"type":"string"},"SV":{"type":"string"},"GQ":{"type":"string"},"ER":{"type":"string"},"EE":{"type":"string"},"ET":{"type":"string"},"FK":{"type":"string"},"FO":{"type":"string"},"FJ":{"type":"string"},"FI":{"type":"string"},"FR":{"type":"string"},"GF":{"type":"string"},"PF":{"type":"string"},"TF":{"type":"string"},"GA":{"type":"string"},"GM":{"type":"string"},"GE":{"type":"string"},"DE":{"type":"string"},"GH":{"type":"string"},"GI":{"type":"string"},"GR":{"type":"string"},"GL":{"type":"string"},"GD":{"type":"string"},"GP":{"type":"string"},"GU":{"type":"string"},"GT":{"type":"string"},"GN":{"type":"string"},"GW":{"type":"string"},"GY":{"type":"string"},"HT":{"type":"string"},"HM":{"type":"string"},"VA":{"type":"string"},"HN":{"type":"string"},"HK":{"type":"string"},"HU":{"type":"string"},"IS":{"type":"string"},"IN":{"type":"string"},"ID":{"type":"string"},"IR":{"type":"string"},"IQ":{"type":"string"},"IE":{"type":"string"},"IL":{"type":"string"},"IT":{"type":"string"},"JM":{"type":"string"},"JP":{"type":"string"},"JO":{"type":"string"},"KZ":{"type":"string"},"KE":{"type":"string"},"KI":{"type":"string"},"KP":{"type":"string"},"KR":{"type":"string"},"KW":{"type":"string"},"KG":{"type":"string"},"LA":{"type":"string"},"LV":{"type":"string"},"LB":{"type":"string"},"LS":{"type":"string"},"LR":{"type":"string"},"LY":{"type":"string"},"LI":{"type":"string"},"LT":{"type":"string"},"LU":{"type":"string"},"MO":{"type":"string"},"MG":{"type":"string"},"MW":{"type":"string"},"MY":{"type":"string"},"MV":{"type":"string"},"ML":{"type":"string"},"MT":{"type":"string"},"MH":{"type":"string"},"MQ":{"type":"string"},"MR":{"type":"string"},"MU":{"type":"string"},"YT":{"type":"string"},"MX":{"type":"string"},"FM":{"type":"string"},"MD":{"type":"string"},"MC":{"type":"string"},"MN":{"type":"string"},"MS":{"type":"string"},"MA":{"type":"string"},"MZ":{"type":"string"},"MM":{"type":"string"},"NA":{"type":"string"},"NR":{"type":"string"},"NP":{"type":"string"},"NL":{"type":"string"},"NC":{"type":"string"},"NZ":{"type":"string"},"NI":{"type":"string"},"NE":{"type":"string"},"NG":{"type":"string"},"NU":{"type":"string"},"NF":{"type":"string"},"MK":{"type":"string"},"MP":{"type":"string"},"NO":{"type":"string"},"OM":{"type":"string"},"PK":{"type":"string"},"PW":{"type":"string"},"PS":{"type":"string"},"PA":{"type":"string"},"PG":{"type":"string"},"PY":{"type":"string"},"PE":{"type":"string"},"PH":{"type":"string"},"PN":{"type":"string"},"PL":{"type":"string"},"PT":{"type":"string"},"PR":{"type":"string"},"QA":{"type":"string"},"RE":{"type":"string"},"RO":{"type":"string"},"RU":{"type":"string"},"RW":{"type":"string"},"SH":{"type":"string"},"KN":{"type":"string"},"LC":{"type":"string"},"PM":{"type":"string"},"VC":{"type":"string"},"WS":{"type":"string"},"SM":{"type":"string"},"ST":{"type":"string"},"SA":{"type":"string"},"SN":{"type":"string"},"SC":{"type":"string"},"SL":{"type":"string"},"SG":{"type":"string"},"SK":{"type":"string"},"SI":{"type":"string"},"SB":{"type":"string"},"SO":{"type":"string"},"ZA":{"type":"string"},"GS":{"type":"string"},"ES":{"type":"string"},"LK":{"type":"string"},"SD":{"type":"string"},"SR":{"type":"string"},"SJ":{"type":"string"},"SZ":{"type":"string"},"SE":{"type":"string"},"CH":{"type":"string"},"SY":{"type":"string"},"TW":{"type":"string"},"TJ":{"type":"string"},"TZ":{"type":"string"},"TH":{"type":"string"},"TL":{"type":"string"},"TG":{"type":"string"},"TK":{"type":"string"},"TO":{"type":"string"},"TT":{"type":"string"},"TN":{"type":"string"},"TR":{"type":"string"},"TM":{"type":"string"},"TC":{"type":"string"},"TV":{"type":"string"},"UG":{"type":"string"},"UA":{"type":"string"},"AE":{"type":"string"},"GB":{"type":"string"},"US":{"type":"string"},"UM":{"type":"string"},"UY":{"type":"string"},"UZ":{"type":"string"},"VU":{"type":"string"},"VE":{"type":"string"},"VN":{"type":"string"},"VG":{"type":"string"},"VI":{"type":"string"},"WF":{"type":"string"},"EH":{"type":"string"},"YE":{"type":"string"},"ZM":{"type":"string"},"ZW":{"type":"string"},"AX":{"type":"string"},"BQ":{"type":"string"},"CW":{"type":"string"},"GG":{"type":"string"},"IM":{"type":"string"},"JE":{"type":"string"},"ME":{"type":"string"},"BL":{"type":"string"},"MF":{"type":"string"},"RS":{"type":"string"},"SX":{"type":"string"},"SS":{"type":"string"},"XK":{"type":"string"}},"additionalProperties":false,"default":null,"description":"Geographic targeting information for the short link in JSON format `{[COUNTRY]: https://example.com }`."},"rules":{"type":"array","nullable":true,"items":{"type":"object","properties":{"attribute":{"type":"string","enum":["device","country","utm_source","utm_medium","utm_campaign","referrer","language"]},"operator":{"type":"string","enum":["equals","not_equals"]},"value":{"type":"string","minLength":1,"maxLength":190},"url":{"type":"string"}},"required":["attribute","operator","value","url"]},"maxItems":20,"description":"Smart rules for conditional destination routing by request attribute."},"doIndex":{"type":"boolean","default":false,"description":"Allow search engines to index your short link. Default is `false` if not provided. Learn more: https://codeqr.link/noindex"},"webhookIds":{"type":"array","nullable":true,"items":{"type":"string"},"description":"An array of webhook IDs to trigger when the link is clicked. These webhooks will receive click event data."},"publicStats":{"type":"boolean","default":false,"description":"Whether the short link statistics are publicly accessible."},"tagId":{"type":"string","nullable":true,"description":"The unique ID of the tag assigned to the short link. This field is deprecated – use `tagIds` instead.","deprecated":true},"tagIds":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}],"description":"The unique IDs of the tags assigned to the short link.","example":["clux0rgak00011..."]},"tagNames":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}],"description":"The unique name of the tags assigned to the short link (case insensitive)."},"folderId":{"type":"string","nullable":true,"description":"The unique ID existing folder to assign the short link to."},"comments":{"type":"string","nullable":true,"description":"The comments for the short link."},"flexible":{"type":"boolean","default":false,"description":"Whether the short link is flexible."},"preRedirection":{"type":"boolean","default":false,"description":"Whether the short link has pre-redirection."},"pageId":{"type":"string","nullable":true,"description":"The ID of the page to redirect to before the link destination."},"pageUrl":{"type":"string","nullable":true,"description":"The URL of the page to redirect to before the link destination."},"isFormMandatory":{"type":"boolean","default":false,"description":"If the form is mandatory for the page."}},"required":["url"]}}}},"responses":{"200":{"description":"The created link","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LinkSchema"}}}},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"403":{"$ref":"#/components/responses/403"},"404":{"$ref":"#/components/responses/404"},"409":{"$ref":"#/components/responses/409"},"410":{"$ref":"#/components/responses/410"},"422":{"$ref":"#/components/responses/422"},"429":{"$ref":"#/components/responses/429"},"500":{"$ref":"#/components/responses/500"}}},"get":{"operationId":"getLinks","x-speakeasy-name-override":"list","x-speakeasy-pagination":{"type":"offsetLimit","inputs":[{"name":"page","in":"parameters","type":"page"},{"name":"pageSize","in":"parameters","type":"limit"}],"outputs":{"results":"$"}},"summary":"Retrieve a list of links","description":"Retrieve a paginated list of links for the authenticated workspace.","tags":["Links"],"security":[{"token":[]}],"parameters":[{"in":"query","name":"projectSlug","description":"The slug of the project to which the link belongs. For example, for `app.codeqr.io/acme`, the projectSlug is `acme`.","schema":{"type":"string","description":"The slug of the project to which the link belongs. For example, for `app.codeqr.io/acme`, the projectSlug is `acme`."}},{"in":"query","name":"domain","description":"The domain to filter the links. For example, `ac.me`. If not provided, all links of the project will be returned.","schema":{"type":"string","description":"The domain to filter the links. For example, `ac.me`. If not provided, all links of the project will be returned."}},{"in":"query","name":"tagId","description":"[OBSOLETO (use tagIds em vez disso)]: The unique ID of the tag assigned to the short link.","schema":{"type":"string","description":"[OBSOLETO (use tagIds em vez disso)]: The unique ID of the tag assigned to the short link.","deprecated":true}},{"in":"query","name":"tagIds","description":"The IDs of the tags to filter the links.","schema":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}],"description":"The IDs of the tags to filter the links."}},{"in":"query","name":"tagNames","description":"The unique name of the tags assigned to the short link (case insensitive).","schema":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}],"description":"The unique name of the tags assigned to the short link (case insensitive)."}},{"in":"query","name":"folderId","description":"The folder ID to filter the links by.","schema":{"type":"string","description":"The folder ID to filter the links by."}},{"in":"query","name":"search","description":"The search term to filter the links. The search term will be matched against the short link slug and the destination URL.","schema":{"type":"string","description":"The search term to filter the links. The search term will be matched against the short link slug and the destination URL."}},{"in":"query","name":"userId","description":"The ID of the user to filter by.","schema":{"type":"string","description":"The ID of the user to filter by."}},{"in":"query","name":"showArchived","description":"If should include archived links in the response. The default is `false` if not provided.","schema":{"type":"boolean","default":"false","description":"If should include archived links in the response. The default is `false` if not provided."}},{"in":"query","name":"password","description":"The password to filter by.","schema":{"type":"string","description":"The password to filter by."}},{"in":"query","name":"expiresAt","schema":{"type":"string","nullable":true,"format":"date-time","description":"The date and time the short link will expire in ISO-8601 format. Must be in the future."}},{"in":"query","name":"geo","description":"Geographic segmentation information for the short link in JSON format `{[COUNTRY]: https://example.com }`.","schema":{"type":"object","nullable":true,"properties":{"AF":{"type":"string"},"AL":{"type":"string"},"DZ":{"type":"string"},"AS":{"type":"string"},"AD":{"type":"string"},"AO":{"type":"string"},"AI":{"type":"string"},"AQ":{"type":"string"},"AG":{"type":"string"},"AR":{"type":"string"},"AM":{"type":"string"},"AW":{"type":"string"},"AU":{"type":"string"},"AT":{"type":"string"},"AZ":{"type":"string"},"BS":{"type":"string"},"BH":{"type":"string"},"BD":{"type":"string"},"BB":{"type":"string"},"BY":{"type":"string"},"BE":{"type":"string"},"BZ":{"type":"string"},"BJ":{"type":"string"},"BM":{"type":"string"},"BT":{"type":"string"},"BO":{"type":"string"},"BA":{"type":"string"},"BW":{"type":"string"},"BV":{"type":"string"},"BR":{"type":"string"},"IO":{"type":"string"},"BN":{"type":"string"},"BG":{"type":"string"},"BF":{"type":"string"},"BI":{"type":"string"},"KH":{"type":"string"},"CM":{"type":"string"},"CA":{"type":"string"},"CV":{"type":"string"},"KY":{"type":"string"},"CF":{"type":"string"},"TD":{"type":"string"},"CL":{"type":"string"},"CN":{"type":"string"},"CX":{"type":"string"},"CC":{"type":"string"},"CO":{"type":"string"},"KM":{"type":"string"},"CG":{"type":"string"},"CD":{"type":"string"},"CK":{"type":"string"},"CR":{"type":"string"},"CI":{"type":"string"},"HR":{"type":"string"},"CU":{"type":"string"},"CY":{"type":"string"},"CZ":{"type":"string"},"DK":{"type":"string"},"DJ":{"type":"string"},"DM":{"type":"string"},"DO":{"type":"string"},"EC":{"type":"string"},"EG":{"type":"string"},"SV":{"type":"string"},"GQ":{"type":"string"},"ER":{"type":"string"},"EE":{"type":"string"},"ET":{"type":"string"},"FK":{"type":"string"},"FO":{"type":"string"},"FJ":{"type":"string"},"FI":{"type":"string"},"FR":{"type":"string"},"GF":{"type":"string"},"PF":{"type":"string"},"TF":{"type":"string"},"GA":{"type":"string"},"GM":{"type":"string"},"GE":{"type":"string"},"DE":{"type":"string"},"GH":{"type":"string"},"GI":{"type":"string"},"GR":{"type":"string"},"GL":{"type":"string"},"GD":{"type":"string"},"GP":{"type":"string"},"GU":{"type":"string"},"GT":{"type":"string"},"GN":{"type":"string"},"GW":{"type":"string"},"GY":{"type":"string"},"HT":{"type":"string"},"HM":{"type":"string"},"VA":{"type":"string"},"HN":{"type":"string"},"HK":{"type":"string"},"HU":{"type":"string"},"IS":{"type":"string"},"IN":{"type":"string"},"ID":{"type":"string"},"IR":{"type":"string"},"IQ":{"type":"string"},"IE":{"type":"string"},"IL":{"type":"string"},"IT":{"type":"string"},"JM":{"type":"string"},"JP":{"type":"string"},"JO":{"type":"string"},"KZ":{"type":"string"},"KE":{"type":"string"},"KI":{"type":"string"},"KP":{"type":"string"},"KR":{"type":"string"},"KW":{"type":"string"},"KG":{"type":"string"},"LA":{"type":"string"},"LV":{"type":"string"},"LB":{"type":"string"},"LS":{"type":"string"},"LR":{"type":"string"},"LY":{"type":"string"},"LI":{"type":"string"},"LT":{"type":"string"},"LU":{"type":"string"},"MO":{"type":"string"},"MG":{"type":"string"},"MW":{"type":"string"},"MY":{"type":"string"},"MV":{"type":"string"},"ML":{"type":"string"},"MT":{"type":"string"},"MH":{"type":"string"},"MQ":{"type":"string"},"MR":{"type":"string"},"MU":{"type":"string"},"YT":{"type":"string"},"MX":{"type":"string"},"FM":{"type":"string"},"MD":{"type":"string"},"MC":{"type":"string"},"MN":{"type":"string"},"MS":{"type":"string"},"MA":{"type":"string"},"MZ":{"type":"string"},"MM":{"type":"string"},"NA":{"type":"string"},"NR":{"type":"string"},"NP":{"type":"string"},"NL":{"type":"string"},"NC":{"type":"string"},"NZ":{"type":"string"},"NI":{"type":"string"},"NE":{"type":"string"},"NG":{"type":"string"},"NU":{"type":"string"},"NF":{"type":"string"},"MK":{"type":"string"},"MP":{"type":"string"},"NO":{"type":"string"},"OM":{"type":"string"},"PK":{"type":"string"},"PW":{"type":"string"},"PS":{"type":"string"},"PA":{"type":"string"},"PG":{"type":"string"},"PY":{"type":"string"},"PE":{"type":"string"},"PH":{"type":"string"},"PN":{"type":"string"},"PL":{"type":"string"},"PT":{"type":"string"},"PR":{"type":"string"},"QA":{"type":"string"},"RE":{"type":"string"},"RO":{"type":"string"},"RU":{"type":"string"},"RW":{"type":"string"},"SH":{"type":"string"},"KN":{"type":"string"},"LC":{"type":"string"},"PM":{"type":"string"},"VC":{"type":"string"},"WS":{"type":"string"},"SM":{"type":"string"},"ST":{"type":"string"},"SA":{"type":"string"},"SN":{"type":"string"},"SC":{"type":"string"},"SL":{"type":"string"},"SG":{"type":"string"},"SK":{"type":"string"},"SI":{"type":"string"},"SB":{"type":"string"},"SO":{"type":"string"},"ZA":{"type":"string"},"GS":{"type":"string"},"ES":{"type":"string"},"LK":{"type":"string"},"SD":{"type":"string"},"SR":{"type":"string"},"SJ":{"type":"string"},"SZ":{"type":"string"},"SE":{"type":"string"},"CH":{"type":"string"},"SY":{"type":"string"},"TW":{"type":"string"},"TJ":{"type":"string"},"TZ":{"type":"string"},"TH":{"type":"string"},"TL":{"type":"string"},"TG":{"type":"string"},"TK":{"type":"string"},"TO":{"type":"string"},"TT":{"type":"string"},"TN":{"type":"string"},"TR":{"type":"string"},"TM":{"type":"string"},"TC":{"type":"string"},"TV":{"type":"string"},"UG":{"type":"string"},"UA":{"type":"string"},"AE":{"type":"string"},"GB":{"type":"string"},"US":{"type":"string"},"UM":{"type":"string"},"UY":{"type":"string"},"UZ":{"type":"string"},"VU":{"type":"string"},"VE":{"type":"string"},"VN":{"type":"string"},"VG":{"type":"string"},"VI":{"type":"string"},"WF":{"type":"string"},"EH":{"type":"string"},"YE":{"type":"string"},"ZM":{"type":"string"},"ZW":{"type":"string"},"AX":{"type":"string"},"BQ":{"type":"string"},"CW":{"type":"string"},"GG":{"type":"string"},"IM":{"type":"string"},"JE":{"type":"string"},"ME":{"type":"string"},"BL":{"type":"string"},"MF":{"type":"string"},"RS":{"type":"string"},"SX":{"type":"string"},"SS":{"type":"string"},"XK":{"type":"string"}},"additionalProperties":false,"default":null,"description":"Geographic segmentation information for the short link in JSON format `{[COUNTRY]: https://example.com }`."}},{"in":"query","name":"ios","description":"The iOS device to filter by.","schema":{"type":"string","description":"The iOS device to filter by."}},{"in":"query","name":"android","description":"The Android device to filter by.","schema":{"type":"string","description":"The Android device to filter by."}},{"in":"query","name":"comments","description":"The comments to filter by.","schema":{"type":"string","description":"The comments to filter by."}},{"in":"query","name":"withTags","description":"If should include tags in the response. The default is `false` if not provided.","schema":{"type":"boolean","default":"false","description":"If should include tags in the response. The default is `false` if not provided."}},{"in":"query","name":"trackConversion","description":"If should include links with conversion tracking enabled. The default is `false` if not provided.","schema":{"type":"boolean","default":"false","description":"If should include links with conversion tracking enabled. The default is `false` if not provided."}},{"in":"query","name":"useAsTemplate","description":"Filter links marked as templates.","schema":{"type":"boolean","description":"Filter links marked as templates."}},{"in":"query","name":"hasPassword","description":"Filter links that have password protection (any password)","schema":{"type":"boolean","description":"Filter links that have password protection (any password)"}},{"in":"query","name":"hasExpiration","description":"Filter links that have expiration date (any expiration)","schema":{"type":"boolean","description":"Filter links that have expiration date (any expiration)"}},{"in":"query","name":"hasUTM","description":"Filter links that have UTM parameters","schema":{"type":"boolean","description":"Filter links that have UTM parameters"}},{"in":"query","name":"hasCustomSocial","description":"Filter links that have custom social media cards","schema":{"type":"boolean","description":"Filter links that have custom social media cards"}},{"in":"query","name":"hasGeo","description":"Filter links that have geo-targeting","schema":{"type":"boolean","description":"Filter links that have geo-targeting"}},{"in":"query","name":"hasDevice","description":"Filter links that have device targeting","schema":{"type":"boolean","description":"Filter links that have device targeting"}},{"in":"query","name":"hasComments","description":"Filter links that have comments (any comments)","schema":{"type":"boolean","description":"Filter links that have comments (any comments)"}},{"in":"query","name":"hasTags","description":"Filter links that have tags (any tags)","schema":{"type":"boolean","description":"Filter links that have tags (any tags)"}},{"in":"query","name":"createdAfter","description":"Created after date (ISO string)","schema":{"type":"string","format":"date-time","description":"Created after date (ISO string)"}},{"in":"query","name":"createdBefore","description":"Created before date (ISO string)","schema":{"type":"string","format":"date-time","description":"Created before date (ISO string)"}},{"in":"query","name":"expiresAfter","description":"Expires after date (ISO string)","schema":{"type":"string","format":"date-time","description":"Expires after date (ISO string)"}},{"in":"query","name":"expiresBefore","description":"Expires before date (ISO string)","schema":{"type":"string","format":"date-time","description":"Expires before date (ISO string)"}},{"in":"query","name":"clicksMin","description":"Minimum number of clicks","schema":{"type":"integer","minimum":0,"description":"Minimum number of clicks"}},{"in":"query","name":"clicksMax","description":"Maximum number of clicks","schema":{"type":"integer","minimum":0,"description":"Maximum number of clicks"}},{"in":"query","name":"utm_source","description":"Filter by UTM source value","schema":{"type":"string","description":"Filter by UTM source value"}},{"in":"query","name":"utm_medium","description":"Filter by UTM medium value","schema":{"type":"string","description":"Filter by UTM medium value"}},{"in":"query","name":"utm_campaign","description":"Filter by UTM campaign value","schema":{"type":"string","description":"Filter by UTM campaign value"}},{"in":"query","name":"utm_content","description":"Filter by UTM content value","schema":{"type":"string","description":"Filter by UTM content value"}},{"in":"query","name":"utm_term","description":"Filter by UTM term value","schema":{"type":"string","description":"Filter by UTM term value"}},{"in":"query","name":"sort","description":"The field to sort the links by. The default is `createdAt`, and sort order is always descending.","schema":{"type":"string","enum":["createdAt","clicks","lastClicked"],"default":"createdAt","description":"The field to sort the links by. The default is `createdAt`, and sort order is always descending."}},{"in":"query","name":"linkIds","description":"Link IDs to filter by.","schema":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}],"description":"Link IDs to filter by."}},{"in":"query","name":"page","description":"The page number for pagination.","schema":{"type":"number","minimum":0,"exclusiveMinimum":true,"default":1,"description":"The page number for pagination.","example":1}},{"in":"query","name":"pageSize","description":"The number of items per page.","schema":{"type":"number","minimum":0,"exclusiveMinimum":true,"maximum":100,"default":100,"description":"The number of items per page.","example":50}}],"responses":{"200":{"description":"A list of links","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/LinkSchema"}}}}},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"403":{"$ref":"#/components/responses/403"},"404":{"$ref":"#/components/responses/404"},"409":{"$ref":"#/components/responses/409"},"410":{"$ref":"#/components/responses/410"},"422":{"$ref":"#/components/responses/422"},"429":{"$ref":"#/components/responses/429"},"500":{"$ref":"#/components/responses/500"}}}},"/links/count":{"get":{"operationId":"getLinksCount","x-speakeasy-name-override":"count","summary":"Retrieve links count","description":"Retrieve the number of links for the authenticated workspace.","tags":["Links"],"security":[{"token":[]}],"parameters":[{"in":"query","name":"projectSlug","description":"The slug of the project to which the link belongs. For example, for `app.codeqr.io/acme`, the projectSlug is `acme`.","schema":{"type":"string","description":"The slug of the project to which the link belongs. For example, for `app.codeqr.io/acme`, the projectSlug is `acme`."}},{"in":"query","name":"domain","description":"The domain to filter the links. For example, `ac.me`. If not provided, all links of the project will be returned.","schema":{"type":"string","description":"The domain to filter the links. For example, `ac.me`. If not provided, all links of the project will be returned."}},{"in":"query","name":"tagId","description":"[OBSOLETO (use tagIds em vez disso)]: The unique ID of the tag assigned to the short link.","schema":{"type":"string","description":"[OBSOLETO (use tagIds em vez disso)]: The unique ID of the tag assigned to the short link.","deprecated":true}},{"in":"query","name":"tagIds","description":"The IDs of the tags to filter the links.","schema":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}],"description":"The IDs of the tags to filter the links."}},{"in":"query","name":"tagNames","description":"The unique name of the tags assigned to the short link (case insensitive).","schema":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}],"description":"The unique name of the tags assigned to the short link (case insensitive)."}},{"in":"query","name":"folderId","description":"The folder ID to filter the links by.","schema":{"type":"string","description":"The folder ID to filter the links by."}},{"in":"query","name":"search","description":"The search term to filter the links. The search term will be matched against the short link slug and the destination URL.","schema":{"type":"string","description":"The search term to filter the links. The search term will be matched against the short link slug and the destination URL."}},{"in":"query","name":"userId","description":"The ID of the user to filter by.","schema":{"type":"string","description":"The ID of the user to filter by."}},{"in":"query","name":"showArchived","description":"If should include archived links in the response. The default is `false` if not provided.","schema":{"type":"boolean","default":"false","description":"If should include archived links in the response. The default is `false` if not provided."}},{"in":"query","name":"password","description":"The password to filter by.","schema":{"type":"string","description":"The password to filter by."}},{"in":"query","name":"expiresAt","schema":{"type":"string","nullable":true,"format":"date-time","description":"The date and time the short link will expire in ISO-8601 format. Must be in the future."}},{"in":"query","name":"geo","description":"Geographic segmentation information for the short link in JSON format `{[COUNTRY]: https://example.com }`.","schema":{"type":"object","nullable":true,"properties":{"AF":{"type":"string"},"AL":{"type":"string"},"DZ":{"type":"string"},"AS":{"type":"string"},"AD":{"type":"string"},"AO":{"type":"string"},"AI":{"type":"string"},"AQ":{"type":"string"},"AG":{"type":"string"},"AR":{"type":"string"},"AM":{"type":"string"},"AW":{"type":"string"},"AU":{"type":"string"},"AT":{"type":"string"},"AZ":{"type":"string"},"BS":{"type":"string"},"BH":{"type":"string"},"BD":{"type":"string"},"BB":{"type":"string"},"BY":{"type":"string"},"BE":{"type":"string"},"BZ":{"type":"string"},"BJ":{"type":"string"},"BM":{"type":"string"},"BT":{"type":"string"},"BO":{"type":"string"},"BA":{"type":"string"},"BW":{"type":"string"},"BV":{"type":"string"},"BR":{"type":"string"},"IO":{"type":"string"},"BN":{"type":"string"},"BG":{"type":"string"},"BF":{"type":"string"},"BI":{"type":"string"},"KH":{"type":"string"},"CM":{"type":"string"},"CA":{"type":"string"},"CV":{"type":"string"},"KY":{"type":"string"},"CF":{"type":"string"},"TD":{"type":"string"},"CL":{"type":"string"},"CN":{"type":"string"},"CX":{"type":"string"},"CC":{"type":"string"},"CO":{"type":"string"},"KM":{"type":"string"},"CG":{"type":"string"},"CD":{"type":"string"},"CK":{"type":"string"},"CR":{"type":"string"},"CI":{"type":"string"},"HR":{"type":"string"},"CU":{"type":"string"},"CY":{"type":"string"},"CZ":{"type":"string"},"DK":{"type":"string"},"DJ":{"type":"string"},"DM":{"type":"string"},"DO":{"type":"string"},"EC":{"type":"string"},"EG":{"type":"string"},"SV":{"type":"string"},"GQ":{"type":"string"},"ER":{"type":"string"},"EE":{"type":"string"},"ET":{"type":"string"},"FK":{"type":"string"},"FO":{"type":"string"},"FJ":{"type":"string"},"FI":{"type":"string"},"FR":{"type":"string"},"GF":{"type":"string"},"PF":{"type":"string"},"TF":{"type":"string"},"GA":{"type":"string"},"GM":{"type":"string"},"GE":{"type":"string"},"DE":{"type":"string"},"GH":{"type":"string"},"GI":{"type":"string"},"GR":{"type":"string"},"GL":{"type":"string"},"GD":{"type":"string"},"GP":{"type":"string"},"GU":{"type":"string"},"GT":{"type":"string"},"GN":{"type":"string"},"GW":{"type":"string"},"GY":{"type":"string"},"HT":{"type":"string"},"HM":{"type":"string"},"VA":{"type":"string"},"HN":{"type":"string"},"HK":{"type":"string"},"HU":{"type":"string"},"IS":{"type":"string"},"IN":{"type":"string"},"ID":{"type":"string"},"IR":{"type":"string"},"IQ":{"type":"string"},"IE":{"type":"string"},"IL":{"type":"string"},"IT":{"type":"string"},"JM":{"type":"string"},"JP":{"type":"string"},"JO":{"type":"string"},"KZ":{"type":"string"},"KE":{"type":"string"},"KI":{"type":"string"},"KP":{"type":"string"},"KR":{"type":"string"},"KW":{"type":"string"},"KG":{"type":"string"},"LA":{"type":"string"},"LV":{"type":"string"},"LB":{"type":"string"},"LS":{"type":"string"},"LR":{"type":"string"},"LY":{"type":"string"},"LI":{"type":"string"},"LT":{"type":"string"},"LU":{"type":"string"},"MO":{"type":"string"},"MG":{"type":"string"},"MW":{"type":"string"},"MY":{"type":"string"},"MV":{"type":"string"},"ML":{"type":"string"},"MT":{"type":"string"},"MH":{"type":"string"},"MQ":{"type":"string"},"MR":{"type":"string"},"MU":{"type":"string"},"YT":{"type":"string"},"MX":{"type":"string"},"FM":{"type":"string"},"MD":{"type":"string"},"MC":{"type":"string"},"MN":{"type":"string"},"MS":{"type":"string"},"MA":{"type":"string"},"MZ":{"type":"string"},"MM":{"type":"string"},"NA":{"type":"string"},"NR":{"type":"string"},"NP":{"type":"string"},"NL":{"type":"string"},"NC":{"type":"string"},"NZ":{"type":"string"},"NI":{"type":"string"},"NE":{"type":"string"},"NG":{"type":"string"},"NU":{"type":"string"},"NF":{"type":"string"},"MK":{"type":"string"},"MP":{"type":"string"},"NO":{"type":"string"},"OM":{"type":"string"},"PK":{"type":"string"},"PW":{"type":"string"},"PS":{"type":"string"},"PA":{"type":"string"},"PG":{"type":"string"},"PY":{"type":"string"},"PE":{"type":"string"},"PH":{"type":"string"},"PN":{"type":"string"},"PL":{"type":"string"},"PT":{"type":"string"},"PR":{"type":"string"},"QA":{"type":"string"},"RE":{"type":"string"},"RO":{"type":"string"},"RU":{"type":"string"},"RW":{"type":"string"},"SH":{"type":"string"},"KN":{"type":"string"},"LC":{"type":"string"},"PM":{"type":"string"},"VC":{"type":"string"},"WS":{"type":"string"},"SM":{"type":"string"},"ST":{"type":"string"},"SA":{"type":"string"},"SN":{"type":"string"},"SC":{"type":"string"},"SL":{"type":"string"},"SG":{"type":"string"},"SK":{"type":"string"},"SI":{"type":"string"},"SB":{"type":"string"},"SO":{"type":"string"},"ZA":{"type":"string"},"GS":{"type":"string"},"ES":{"type":"string"},"LK":{"type":"string"},"SD":{"type":"string"},"SR":{"type":"string"},"SJ":{"type":"string"},"SZ":{"type":"string"},"SE":{"type":"string"},"CH":{"type":"string"},"SY":{"type":"string"},"TW":{"type":"string"},"TJ":{"type":"string"},"TZ":{"type":"string"},"TH":{"type":"string"},"TL":{"type":"string"},"TG":{"type":"string"},"TK":{"type":"string"},"TO":{"type":"string"},"TT":{"type":"string"},"TN":{"type":"string"},"TR":{"type":"string"},"TM":{"type":"string"},"TC":{"type":"string"},"TV":{"type":"string"},"UG":{"type":"string"},"UA":{"type":"string"},"AE":{"type":"string"},"GB":{"type":"string"},"US":{"type":"string"},"UM":{"type":"string"},"UY":{"type":"string"},"UZ":{"type":"string"},"VU":{"type":"string"},"VE":{"type":"string"},"VN":{"type":"string"},"VG":{"type":"string"},"VI":{"type":"string"},"WF":{"type":"string"},"EH":{"type":"string"},"YE":{"type":"string"},"ZM":{"type":"string"},"ZW":{"type":"string"},"AX":{"type":"string"},"BQ":{"type":"string"},"CW":{"type":"string"},"GG":{"type":"string"},"IM":{"type":"string"},"JE":{"type":"string"},"ME":{"type":"string"},"BL":{"type":"string"},"MF":{"type":"string"},"RS":{"type":"string"},"SX":{"type":"string"},"SS":{"type":"string"},"XK":{"type":"string"}},"additionalProperties":false,"default":null,"description":"Geographic segmentation information for the short link in JSON format `{[COUNTRY]: https://example.com }`."}},{"in":"query","name":"ios","description":"The iOS device to filter by.","schema":{"type":"string","description":"The iOS device to filter by."}},{"in":"query","name":"android","description":"The Android device to filter by.","schema":{"type":"string","description":"The Android device to filter by."}},{"in":"query","name":"comments","description":"The comments to filter by.","schema":{"type":"string","description":"The comments to filter by."}},{"in":"query","name":"withTags","description":"If should include tags in the response. The default is `false` if not provided.","schema":{"type":"boolean","default":"false","description":"If should include tags in the response. The default is `false` if not provided."}},{"in":"query","name":"trackConversion","description":"If should include links with conversion tracking enabled. The default is `false` if not provided.","schema":{"type":"boolean","default":"false","description":"If should include links with conversion tracking enabled. The default is `false` if not provided."}},{"in":"query","name":"useAsTemplate","description":"Filter links marked as templates.","schema":{"type":"boolean","description":"Filter links marked as templates."}},{"in":"query","name":"hasPassword","description":"Filter links that have password protection (any password)","schema":{"type":"boolean","description":"Filter links that have password protection (any password)"}},{"in":"query","name":"hasExpiration","description":"Filter links that have expiration date (any expiration)","schema":{"type":"boolean","description":"Filter links that have expiration date (any expiration)"}},{"in":"query","name":"hasUTM","description":"Filter links that have UTM parameters","schema":{"type":"boolean","description":"Filter links that have UTM parameters"}},{"in":"query","name":"hasCustomSocial","description":"Filter links that have custom social media cards","schema":{"type":"boolean","description":"Filter links that have custom social media cards"}},{"in":"query","name":"hasGeo","description":"Filter links that have geo-targeting","schema":{"type":"boolean","description":"Filter links that have geo-targeting"}},{"in":"query","name":"hasDevice","description":"Filter links that have device targeting","schema":{"type":"boolean","description":"Filter links that have device targeting"}},{"in":"query","name":"hasComments","description":"Filter links that have comments (any comments)","schema":{"type":"boolean","description":"Filter links that have comments (any comments)"}},{"in":"query","name":"hasTags","description":"Filter links that have tags (any tags)","schema":{"type":"boolean","description":"Filter links that have tags (any tags)"}},{"in":"query","name":"createdAfter","description":"Created after date (ISO string)","schema":{"type":"string","format":"date-time","description":"Created after date (ISO string)"}},{"in":"query","name":"createdBefore","description":"Created before date (ISO string)","schema":{"type":"string","format":"date-time","description":"Created before date (ISO string)"}},{"in":"query","name":"expiresAfter","description":"Expires after date (ISO string)","schema":{"type":"string","format":"date-time","description":"Expires after date (ISO string)"}},{"in":"query","name":"expiresBefore","description":"Expires before date (ISO string)","schema":{"type":"string","format":"date-time","description":"Expires before date (ISO string)"}},{"in":"query","name":"clicksMin","description":"Minimum number of clicks","schema":{"type":"integer","minimum":0,"description":"Minimum number of clicks"}},{"in":"query","name":"clicksMax","description":"Maximum number of clicks","schema":{"type":"integer","minimum":0,"description":"Maximum number of clicks"}},{"in":"query","name":"utm_source","description":"Filter by UTM source value","schema":{"type":"string","description":"Filter by UTM source value"}},{"in":"query","name":"utm_medium","description":"Filter by UTM medium value","schema":{"type":"string","description":"Filter by UTM medium value"}},{"in":"query","name":"utm_campaign","description":"Filter by UTM campaign value","schema":{"type":"string","description":"Filter by UTM campaign value"}},{"in":"query","name":"utm_content","description":"Filter by UTM content value","schema":{"type":"string","description":"Filter by UTM content value"}},{"in":"query","name":"utm_term","description":"Filter by UTM term value","schema":{"type":"string","description":"Filter by UTM term value"}},{"in":"query","name":"groupBy","description":"The field to group the links by.","schema":{"anyOf":[{"type":"string","enum":["domain"]},{"type":"string","enum":["tagId"]},{"type":"string","enum":["userId"]},{"type":"string","enum":["folderId"]}],"description":"The field to group the links by."}}],"responses":{"200":{"description":"A list of links","content":{"application/json":{"schema":{"type":"number","description":"The number of links matching the query."}}}},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"403":{"$ref":"#/components/responses/403"},"404":{"$ref":"#/components/responses/404"},"409":{"$ref":"#/components/responses/409"},"410":{"$ref":"#/components/responses/410"},"422":{"$ref":"#/components/responses/422"},"429":{"$ref":"#/components/responses/429"},"500":{"$ref":"#/components/responses/500"}}}},"/links/info":{"get":{"operationId":"getLinkInfo","x-speakeasy-name-override":"get","summary":"Retrieve a link","description":"Retrieve the info for a link.","tags":["Links"],"security":[{"token":[]}],"parameters":[{"in":"query","name":"projectSlug","description":"The slug of the project to which the link belongs. For example, for `app.codeqr.io/acme`, the projectSlug is `acme`.","schema":{"type":"string","minLength":1,"description":"The slug of the project to which the link belongs. For example, for `app.codeqr.io/acme`, the projectSlug is `acme`."},"required":true},{"in":"query","name":"domain","schema":{"type":"string","minLength":1,"description":"The domain of the link to be retrieved. For example, for `codeqr.link/github`, the domain is `codeqr.link`."},"required":true},{"in":"query","name":"key","description":"The key of the link to be retrieved. For example, for `codeqr.link/github`, the key is `github`.","schema":{"type":"string","minLength":1,"description":"The key of the link to be retrieved. For example, for `codeqr.link/github`, the key is `github`."},"required":true},{"in":"query","name":"linkId","description":"The unique ID of the short link.","schema":{"type":"string","description":"The unique ID of the short link.","example":"clux0rgak00011..."}},{"in":"query","name":"externalId","description":"This is the ID of the link in your database. Must be prefixed with `ext_` when passed as a query parameter.","schema":{"type":"string","description":"This is the ID of the link in your database. Must be prefixed with `ext_` when passed as a query parameter.","example":"ext_123456"}}],"responses":{"200":{"description":"The retrieved link","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LinkSchema"}}}},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"403":{"$ref":"#/components/responses/403"},"404":{"$ref":"#/components/responses/404"},"409":{"$ref":"#/components/responses/409"},"410":{"$ref":"#/components/responses/410"},"422":{"$ref":"#/components/responses/422"},"429":{"$ref":"#/components/responses/429"},"500":{"$ref":"#/components/responses/500"}}}},"/links/{linkId}":{"put":{"operationId":"updateLink","x-speakeasy-name-override":"update","x-speakeasy-max-method-params":2,"summary":"Update a link","description":"Update a link for the authenticated workspace. If there's no change, returns it as it is.","tags":["Links"],"security":[{"token":[]}],"parameters":[{"in":"path","name":"linkId","description":"The id of the link to update. You may use either `linkId` (obtained via `/links/info` endpoint) or `externalId` prefixed with `ext_`.","schema":{"type":"string","description":"The id of the link to update. You may use either `linkId` (obtained via `/links/info` endpoint) or `externalId` prefixed with `ext_`."},"required":true}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","description":"The destination URL of the short link.","example":"https://google.com"},"domain":{"type":"string","description":"The domain of the short link. If not provided, the main domain of the project will be used (or `codeqr.link` if the project has no domains)."},"key":{"type":"string","description":"The slug of the short link. If not provided, a random 7-character slug will be generated."},"externalId":{"type":"string","nullable":true,"minLength":1,"maxLength":255,"description":"This is the ID of the link in your database. If set, it can be used to identify the link in the future. Must be prefixed with `ext_` when passed as a query parameter.","example":"123456"},"prefix":{"type":"string","description":"The prefix of the short link slug for randomly generated keys (for example, if the prefix is `/c/`, the generated keys will be in the format `/c/:key`). Will be ignored if `key` is provided."},"trackConversion":{"type":"boolean","default":false,"description":"Whether to track conversions for the short link."},"useAsTemplate":{"type":"boolean","default":false,"description":"Whether this link should be used as a reusable template."},"archived":{"type":"boolean","default":false,"description":"Whether the short link is archived."},"expiresAt":{"type":"string","nullable":true,"format":"date-time","description":"The date and time when the short link will expire in ISO-8601 format. Must be in the future."},"expiredUrl":{"type":"string","nullable":true,"description":"The URL to redirect to when the short link expires."},"password":{"type":"string","nullable":true,"default":null,"description":"The password required to access the short link destination URL."},"proxy":{"type":"boolean","default":false,"description":"Whether the short link uses the custom link preview feature."},"title":{"type":"string","nullable":true,"default":null,"description":"The title of the short link generated via `api.codeqr.io/metatags`. Will be used for custom link preview if `proxy` is true."},"description":{"type":"string","nullable":true,"default":null,"description":"The description of the short link generated via `api.codeqr.io/metatags`. Will be used for custom link preview if `proxy` is true."},"image":{"type":"string","nullable":true,"default":null,"description":"The image of the short link generated via `api.codeqr.io/metatags`. Will be used for custom link preview if `proxy` is true."},"video":{"type":"string","nullable":true,"default":null,"description":"The video of the short link."},"rewrite":{"type":"boolean","default":false,"description":"Whether the short link uses link cloaking."},"ios":{"type":"string","nullable":true,"default":null,"description":"The iOS destination URL for the short link for iOS device targeting."},"android":{"type":"string","nullable":true,"default":null,"description":"The Android destination URL for the short link for Android device targeting."},"geo":{"type":"object","nullable":true,"properties":{"AF":{"type":"string"},"AL":{"type":"string"},"DZ":{"type":"string"},"AS":{"type":"string"},"AD":{"type":"string"},"AO":{"type":"string"},"AI":{"type":"string"},"AQ":{"type":"string"},"AG":{"type":"string"},"AR":{"type":"string"},"AM":{"type":"string"},"AW":{"type":"string"},"AU":{"type":"string"},"AT":{"type":"string"},"AZ":{"type":"string"},"BS":{"type":"string"},"BH":{"type":"string"},"BD":{"type":"string"},"BB":{"type":"string"},"BY":{"type":"string"},"BE":{"type":"string"},"BZ":{"type":"string"},"BJ":{"type":"string"},"BM":{"type":"string"},"BT":{"type":"string"},"BO":{"type":"string"},"BA":{"type":"string"},"BW":{"type":"string"},"BV":{"type":"string"},"BR":{"type":"string"},"IO":{"type":"string"},"BN":{"type":"string"},"BG":{"type":"string"},"BF":{"type":"string"},"BI":{"type":"string"},"KH":{"type":"string"},"CM":{"type":"string"},"CA":{"type":"string"},"CV":{"type":"string"},"KY":{"type":"string"},"CF":{"type":"string"},"TD":{"type":"string"},"CL":{"type":"string"},"CN":{"type":"string"},"CX":{"type":"string"},"CC":{"type":"string"},"CO":{"type":"string"},"KM":{"type":"string"},"CG":{"type":"string"},"CD":{"type":"string"},"CK":{"type":"string"},"CR":{"type":"string"},"CI":{"type":"string"},"HR":{"type":"string"},"CU":{"type":"string"},"CY":{"type":"string"},"CZ":{"type":"string"},"DK":{"type":"string"},"DJ":{"type":"string"},"DM":{"type":"string"},"DO":{"type":"string"},"EC":{"type":"string"},"EG":{"type":"string"},"SV":{"type":"string"},"GQ":{"type":"string"},"ER":{"type":"string"},"EE":{"type":"string"},"ET":{"type":"string"},"FK":{"type":"string"},"FO":{"type":"string"},"FJ":{"type":"string"},"FI":{"type":"string"},"FR":{"type":"string"},"GF":{"type":"string"},"PF":{"type":"string"},"TF":{"type":"string"},"GA":{"type":"string"},"GM":{"type":"string"},"GE":{"type":"string"},"DE":{"type":"string"},"GH":{"type":"string"},"GI":{"type":"string"},"GR":{"type":"string"},"GL":{"type":"string"},"GD":{"type":"string"},"GP":{"type":"string"},"GU":{"type":"string"},"GT":{"type":"string"},"GN":{"type":"string"},"GW":{"type":"string"},"GY":{"type":"string"},"HT":{"type":"string"},"HM":{"type":"string"},"VA":{"type":"string"},"HN":{"type":"string"},"HK":{"type":"string"},"HU":{"type":"string"},"IS":{"type":"string"},"IN":{"type":"string"},"ID":{"type":"string"},"IR":{"type":"string"},"IQ":{"type":"string"},"IE":{"type":"string"},"IL":{"type":"string"},"IT":{"type":"string"},"JM":{"type":"string"},"JP":{"type":"string"},"JO":{"type":"string"},"KZ":{"type":"string"},"KE":{"type":"string"},"KI":{"type":"string"},"KP":{"type":"string"},"KR":{"type":"string"},"KW":{"type":"string"},"KG":{"type":"string"},"LA":{"type":"string"},"LV":{"type":"string"},"LB":{"type":"string"},"LS":{"type":"string"},"LR":{"type":"string"},"LY":{"type":"string"},"LI":{"type":"string"},"LT":{"type":"string"},"LU":{"type":"string"},"MO":{"type":"string"},"MG":{"type":"string"},"MW":{"type":"string"},"MY":{"type":"string"},"MV":{"type":"string"},"ML":{"type":"string"},"MT":{"type":"string"},"MH":{"type":"string"},"MQ":{"type":"string"},"MR":{"type":"string"},"MU":{"type":"string"},"YT":{"type":"string"},"MX":{"type":"string"},"FM":{"type":"string"},"MD":{"type":"string"},"MC":{"type":"string"},"MN":{"type":"string"},"MS":{"type":"string"},"MA":{"type":"string"},"MZ":{"type":"string"},"MM":{"type":"string"},"NA":{"type":"string"},"NR":{"type":"string"},"NP":{"type":"string"},"NL":{"type":"string"},"NC":{"type":"string"},"NZ":{"type":"string"},"NI":{"type":"string"},"NE":{"type":"string"},"NG":{"type":"string"},"NU":{"type":"string"},"NF":{"type":"string"},"MK":{"type":"string"},"MP":{"type":"string"},"NO":{"type":"string"},"OM":{"type":"string"},"PK":{"type":"string"},"PW":{"type":"string"},"PS":{"type":"string"},"PA":{"type":"string"},"PG":{"type":"string"},"PY":{"type":"string"},"PE":{"type":"string"},"PH":{"type":"string"},"PN":{"type":"string"},"PL":{"type":"string"},"PT":{"type":"string"},"PR":{"type":"string"},"QA":{"type":"string"},"RE":{"type":"string"},"RO":{"type":"string"},"RU":{"type":"string"},"RW":{"type":"string"},"SH":{"type":"string"},"KN":{"type":"string"},"LC":{"type":"string"},"PM":{"type":"string"},"VC":{"type":"string"},"WS":{"type":"string"},"SM":{"type":"string"},"ST":{"type":"string"},"SA":{"type":"string"},"SN":{"type":"string"},"SC":{"type":"string"},"SL":{"type":"string"},"SG":{"type":"string"},"SK":{"type":"string"},"SI":{"type":"string"},"SB":{"type":"string"},"SO":{"type":"string"},"ZA":{"type":"string"},"GS":{"type":"string"},"ES":{"type":"string"},"LK":{"type":"string"},"SD":{"type":"string"},"SR":{"type":"string"},"SJ":{"type":"string"},"SZ":{"type":"string"},"SE":{"type":"string"},"CH":{"type":"string"},"SY":{"type":"string"},"TW":{"type":"string"},"TJ":{"type":"string"},"TZ":{"type":"string"},"TH":{"type":"string"},"TL":{"type":"string"},"TG":{"type":"string"},"TK":{"type":"string"},"TO":{"type":"string"},"TT":{"type":"string"},"TN":{"type":"string"},"TR":{"type":"string"},"TM":{"type":"string"},"TC":{"type":"string"},"TV":{"type":"string"},"UG":{"type":"string"},"UA":{"type":"string"},"AE":{"type":"string"},"GB":{"type":"string"},"US":{"type":"string"},"UM":{"type":"string"},"UY":{"type":"string"},"UZ":{"type":"string"},"VU":{"type":"string"},"VE":{"type":"string"},"VN":{"type":"string"},"VG":{"type":"string"},"VI":{"type":"string"},"WF":{"type":"string"},"EH":{"type":"string"},"YE":{"type":"string"},"ZM":{"type":"string"},"ZW":{"type":"string"},"AX":{"type":"string"},"BQ":{"type":"string"},"CW":{"type":"string"},"GG":{"type":"string"},"IM":{"type":"string"},"JE":{"type":"string"},"ME":{"type":"string"},"BL":{"type":"string"},"MF":{"type":"string"},"RS":{"type":"string"},"SX":{"type":"string"},"SS":{"type":"string"},"XK":{"type":"string"}},"additionalProperties":false,"default":null,"description":"Geographic targeting information for the short link in JSON format `{[COUNTRY]: https://example.com }`."},"rules":{"type":"array","nullable":true,"items":{"type":"object","properties":{"attribute":{"type":"string","enum":["device","country","utm_source","utm_medium","utm_campaign","referrer","language"]},"operator":{"type":"string","enum":["equals","not_equals"]},"value":{"type":"string","minLength":1,"maxLength":190},"url":{"type":"string"}},"required":["attribute","operator","value","url"]},"maxItems":20,"description":"Smart rules for conditional destination routing by request attribute."},"doIndex":{"type":"boolean","default":false,"description":"Allow search engines to index your short link. Default is `false` if not provided. Learn more: https://codeqr.link/noindex"},"webhookIds":{"type":"array","nullable":true,"items":{"type":"string"},"description":"An array of webhook IDs to trigger when the link is clicked. These webhooks will receive click event data."},"publicStats":{"type":"boolean","default":false,"description":"Whether the short link statistics are publicly accessible."},"tagId":{"type":"string","nullable":true,"description":"The unique ID of the tag assigned to the short link. This field is deprecated – use `tagIds` instead.","deprecated":true},"tagIds":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}],"description":"The unique IDs of the tags assigned to the short link.","example":["clux0rgak00011..."]},"tagNames":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}],"description":"The unique name of the tags assigned to the short link (case insensitive)."},"folderId":{"type":"string","nullable":true,"description":"The unique ID existing folder to assign the short link to."},"comments":{"type":"string","nullable":true,"description":"The comments for the short link."},"flexible":{"type":"boolean","default":false,"description":"Whether the short link is flexible."},"preRedirection":{"type":"boolean","default":false,"description":"Whether the short link has pre-redirection."},"pageId":{"type":"string","nullable":true,"description":"The ID of the page to redirect to before the link destination."},"pageUrl":{"type":"string","nullable":true,"description":"The URL of the page to redirect to before the link destination."},"isFormMandatory":{"type":"boolean","default":false,"description":"If the form is mandatory for the page."}}}}}},"responses":{"200":{"description":"The updated link","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LinkSchema"}}}},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"403":{"$ref":"#/components/responses/403"},"404":{"$ref":"#/components/responses/404"},"409":{"$ref":"#/components/responses/409"},"410":{"$ref":"#/components/responses/410"},"422":{"$ref":"#/components/responses/422"},"429":{"$ref":"#/components/responses/429"},"500":{"$ref":"#/components/responses/500"}}},"delete":{"operationId":"deleteLink","x-speakeasy-name-override":"delete","x-speakeasy-max-method-params":1,"summary":"Delete a link","description":"Delete a link for the authenticated workspace.","tags":["Links"],"security":[{"token":[]}],"parameters":[{"in":"path","name":"linkId","description":"The id of the link to delete. You may use either `linkId` (obtained via `/links/info` endpoint) or `externalId` prefixed with `ext_`.","schema":{"type":"string","description":"The id of the link to delete. You may use either `linkId` (obtained via `/links/info` endpoint) or `externalId` prefixed with `ext_`."},"required":true}],"responses":{"200":{"description":"The deleted link ID.","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","description":"The ID of the link."}},"required":["id"]}}}},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"403":{"$ref":"#/components/responses/403"},"404":{"$ref":"#/components/responses/404"},"409":{"$ref":"#/components/responses/409"},"410":{"$ref":"#/components/responses/410"},"422":{"$ref":"#/components/responses/422"},"429":{"$ref":"#/components/responses/429"},"500":{"$ref":"#/components/responses/500"}}}},"/links/bulk":{"post":{"operationId":"bulkCreateLinks","x-speakeasy-name-override":"createMany","summary":"Bulk create links","description":"Bulk create up to 100 links for the authenticated workspace.","tags":["Links"],"security":[{"token":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string","description":"The destination URL of the short link.","example":"https://google.com"},"domain":{"type":"string","description":"The domain of the short link. If not provided, the main domain of the project will be used (or `codeqr.link` if the project has no domains)."},"key":{"type":"string","description":"The slug of the short link. If not provided, a random 7-character slug will be generated."},"externalId":{"type":"string","nullable":true,"minLength":1,"maxLength":255,"description":"This is the ID of the link in your database. If set, it can be used to identify the link in the future. Must be prefixed with `ext_` when passed as a query parameter.","example":"123456"},"prefix":{"type":"string","description":"The prefix of the short link slug for randomly generated keys (for example, if the prefix is `/c/`, the generated keys will be in the format `/c/:key`). Will be ignored if `key` is provided."},"trackConversion":{"type":"boolean","default":false,"description":"Whether to track conversions for the short link."},"useAsTemplate":{"type":"boolean","default":false,"description":"Whether this link should be used as a reusable template."},"archived":{"type":"boolean","default":false,"description":"Whether the short link is archived."},"expiresAt":{"type":"string","nullable":true,"format":"date-time","description":"The date and time when the short link will expire in ISO-8601 format. Must be in the future."},"expiredUrl":{"type":"string","nullable":true,"description":"The URL to redirect to when the short link expires."},"password":{"type":"string","nullable":true,"default":null,"description":"The password required to access the short link destination URL."},"proxy":{"type":"boolean","default":false,"description":"Whether the short link uses the custom link preview feature."},"title":{"type":"string","nullable":true,"default":null,"description":"The title of the short link generated via `api.codeqr.io/metatags`. Will be used for custom link preview if `proxy` is true."},"description":{"type":"string","nullable":true,"default":null,"description":"The description of the short link generated via `api.codeqr.io/metatags`. Will be used for custom link preview if `proxy` is true."},"image":{"type":"string","nullable":true,"default":null,"description":"The image of the short link generated via `api.codeqr.io/metatags`. Will be used for custom link preview if `proxy` is true."},"video":{"type":"string","nullable":true,"default":null,"description":"The video of the short link."},"rewrite":{"type":"boolean","default":false,"description":"Whether the short link uses link cloaking."},"ios":{"type":"string","nullable":true,"default":null,"description":"The iOS destination URL for the short link for iOS device targeting."},"android":{"type":"string","nullable":true,"default":null,"description":"The Android destination URL for the short link for Android device targeting."},"geo":{"type":"object","nullable":true,"properties":{"AF":{"type":"string"},"AL":{"type":"string"},"DZ":{"type":"string"},"AS":{"type":"string"},"AD":{"type":"string"},"AO":{"type":"string"},"AI":{"type":"string"},"AQ":{"type":"string"},"AG":{"type":"string"},"AR":{"type":"string"},"AM":{"type":"string"},"AW":{"type":"string"},"AU":{"type":"string"},"AT":{"type":"string"},"AZ":{"type":"string"},"BS":{"type":"string"},"BH":{"type":"string"},"BD":{"type":"string"},"BB":{"type":"string"},"BY":{"type":"string"},"BE":{"type":"string"},"BZ":{"type":"string"},"BJ":{"type":"string"},"BM":{"type":"string"},"BT":{"type":"string"},"BO":{"type":"string"},"BA":{"type":"string"},"BW":{"type":"string"},"BV":{"type":"string"},"BR":{"type":"string"},"IO":{"type":"string"},"BN":{"type":"string"},"BG":{"type":"string"},"BF":{"type":"string"},"BI":{"type":"string"},"KH":{"type":"string"},"CM":{"type":"string"},"CA":{"type":"string"},"CV":{"type":"string"},"KY":{"type":"string"},"CF":{"type":"string"},"TD":{"type":"string"},"CL":{"type":"string"},"CN":{"type":"string"},"CX":{"type":"string"},"CC":{"type":"string"},"CO":{"type":"string"},"KM":{"type":"string"},"CG":{"type":"string"},"CD":{"type":"string"},"CK":{"type":"string"},"CR":{"type":"string"},"CI":{"type":"string"},"HR":{"type":"string"},"CU":{"type":"string"},"CY":{"type":"string"},"CZ":{"type":"string"},"DK":{"type":"string"},"DJ":{"type":"string"},"DM":{"type":"string"},"DO":{"type":"string"},"EC":{"type":"string"},"EG":{"type":"string"},"SV":{"type":"string"},"GQ":{"type":"string"},"ER":{"type":"string"},"EE":{"type":"string"},"ET":{"type":"string"},"FK":{"type":"string"},"FO":{"type":"string"},"FJ":{"type":"string"},"FI":{"type":"string"},"FR":{"type":"string"},"GF":{"type":"string"},"PF":{"type":"string"},"TF":{"type":"string"},"GA":{"type":"string"},"GM":{"type":"string"},"GE":{"type":"string"},"DE":{"type":"string"},"GH":{"type":"string"},"GI":{"type":"string"},"GR":{"type":"string"},"GL":{"type":"string"},"GD":{"type":"string"},"GP":{"type":"string"},"GU":{"type":"string"},"GT":{"type":"string"},"GN":{"type":"string"},"GW":{"type":"string"},"GY":{"type":"string"},"HT":{"type":"string"},"HM":{"type":"string"},"VA":{"type":"string"},"HN":{"type":"string"},"HK":{"type":"string"},"HU":{"type":"string"},"IS":{"type":"string"},"IN":{"type":"string"},"ID":{"type":"string"},"IR":{"type":"string"},"IQ":{"type":"string"},"IE":{"type":"string"},"IL":{"type":"string"},"IT":{"type":"string"},"JM":{"type":"string"},"JP":{"type":"string"},"JO":{"type":"string"},"KZ":{"type":"string"},"KE":{"type":"string"},"KI":{"type":"string"},"KP":{"type":"string"},"KR":{"type":"string"},"KW":{"type":"string"},"KG":{"type":"string"},"LA":{"type":"string"},"LV":{"type":"string"},"LB":{"type":"string"},"LS":{"type":"string"},"LR":{"type":"string"},"LY":{"type":"string"},"LI":{"type":"string"},"LT":{"type":"string"},"LU":{"type":"string"},"MO":{"type":"string"},"MG":{"type":"string"},"MW":{"type":"string"},"MY":{"type":"string"},"MV":{"type":"string"},"ML":{"type":"string"},"MT":{"type":"string"},"MH":{"type":"string"},"MQ":{"type":"string"},"MR":{"type":"string"},"MU":{"type":"string"},"YT":{"type":"string"},"MX":{"type":"string"},"FM":{"type":"string"},"MD":{"type":"string"},"MC":{"type":"string"},"MN":{"type":"string"},"MS":{"type":"string"},"MA":{"type":"string"},"MZ":{"type":"string"},"MM":{"type":"string"},"NA":{"type":"string"},"NR":{"type":"string"},"NP":{"type":"string"},"NL":{"type":"string"},"NC":{"type":"string"},"NZ":{"type":"string"},"NI":{"type":"string"},"NE":{"type":"string"},"NG":{"type":"string"},"NU":{"type":"string"},"NF":{"type":"string"},"MK":{"type":"string"},"MP":{"type":"string"},"NO":{"type":"string"},"OM":{"type":"string"},"PK":{"type":"string"},"PW":{"type":"string"},"PS":{"type":"string"},"PA":{"type":"string"},"PG":{"type":"string"},"PY":{"type":"string"},"PE":{"type":"string"},"PH":{"type":"string"},"PN":{"type":"string"},"PL":{"type":"string"},"PT":{"type":"string"},"PR":{"type":"string"},"QA":{"type":"string"},"RE":{"type":"string"},"RO":{"type":"string"},"RU":{"type":"string"},"RW":{"type":"string"},"SH":{"type":"string"},"KN":{"type":"string"},"LC":{"type":"string"},"PM":{"type":"string"},"VC":{"type":"string"},"WS":{"type":"string"},"SM":{"type":"string"},"ST":{"type":"string"},"SA":{"type":"string"},"SN":{"type":"string"},"SC":{"type":"string"},"SL":{"type":"string"},"SG":{"type":"string"},"SK":{"type":"string"},"SI":{"type":"string"},"SB":{"type":"string"},"SO":{"type":"string"},"ZA":{"type":"string"},"GS":{"type":"string"},"ES":{"type":"string"},"LK":{"type":"string"},"SD":{"type":"string"},"SR":{"type":"string"},"SJ":{"type":"string"},"SZ":{"type":"string"},"SE":{"type":"string"},"CH":{"type":"string"},"SY":{"type":"string"},"TW":{"type":"string"},"TJ":{"type":"string"},"TZ":{"type":"string"},"TH":{"type":"string"},"TL":{"type":"string"},"TG":{"type":"string"},"TK":{"type":"string"},"TO":{"type":"string"},"TT":{"type":"string"},"TN":{"type":"string"},"TR":{"type":"string"},"TM":{"type":"string"},"TC":{"type":"string"},"TV":{"type":"string"},"UG":{"type":"string"},"UA":{"type":"string"},"AE":{"type":"string"},"GB":{"type":"string"},"US":{"type":"string"},"UM":{"type":"string"},"UY":{"type":"string"},"UZ":{"type":"string"},"VU":{"type":"string"},"VE":{"type":"string"},"VN":{"type":"string"},"VG":{"type":"string"},"VI":{"type":"string"},"WF":{"type":"string"},"EH":{"type":"string"},"YE":{"type":"string"},"ZM":{"type":"string"},"ZW":{"type":"string"},"AX":{"type":"string"},"BQ":{"type":"string"},"CW":{"type":"string"},"GG":{"type":"string"},"IM":{"type":"string"},"JE":{"type":"string"},"ME":{"type":"string"},"BL":{"type":"string"},"MF":{"type":"string"},"RS":{"type":"string"},"SX":{"type":"string"},"SS":{"type":"string"},"XK":{"type":"string"}},"additionalProperties":false,"default":null,"description":"Geographic targeting information for the short link in JSON format `{[COUNTRY]: https://example.com }`."},"rules":{"type":"array","nullable":true,"items":{"type":"object","properties":{"attribute":{"type":"string","enum":["device","country","utm_source","utm_medium","utm_campaign","referrer","language"]},"operator":{"type":"string","enum":["equals","not_equals"]},"value":{"type":"string","minLength":1,"maxLength":190},"url":{"type":"string"}},"required":["attribute","operator","value","url"]},"maxItems":20,"description":"Smart rules for conditional destination routing by request attribute."},"doIndex":{"type":"boolean","default":false,"description":"Allow search engines to index your short link. Default is `false` if not provided. Learn more: https://codeqr.link/noindex"},"webhookIds":{"type":"array","nullable":true,"items":{"type":"string"},"description":"An array of webhook IDs to trigger when the link is clicked. These webhooks will receive click event data."},"publicStats":{"type":"boolean","default":false,"description":"Whether the short link statistics are publicly accessible."},"tagId":{"type":"string","nullable":true,"description":"The unique ID of the tag assigned to the short link. This field is deprecated – use `tagIds` instead.","deprecated":true},"tagIds":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}],"description":"The unique IDs of the tags assigned to the short link.","example":["clux0rgak00011..."]},"tagNames":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}],"description":"The unique name of the tags assigned to the short link (case insensitive)."},"folderId":{"type":"string","nullable":true,"description":"The unique ID existing folder to assign the short link to."},"comments":{"type":"string","nullable":true,"description":"The comments for the short link."},"flexible":{"type":"boolean","default":false,"description":"Whether the short link is flexible."},"preRedirection":{"type":"boolean","default":false,"description":"Whether the short link has pre-redirection."},"pageId":{"type":"string","nullable":true,"description":"The ID of the page to redirect to before the link destination."},"pageUrl":{"type":"string","nullable":true,"description":"The URL of the page to redirect to before the link destination."},"isFormMandatory":{"type":"boolean","default":false,"description":"If the form is mandatory for the page."}},"required":["url"]}}}}},"responses":{"200":{"description":"The created links","content":{"application/json":{"schema":{"type":"array","items":{"oneOf":[{"$ref":"#/components/schemas/LinkSchema"},{"$ref":"#/components/schemas/LinkErrorSchema"}]}}}}},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"403":{"$ref":"#/components/responses/403"},"404":{"$ref":"#/components/responses/404"},"409":{"$ref":"#/components/responses/409"},"410":{"$ref":"#/components/responses/410"},"422":{"$ref":"#/components/responses/422"},"429":{"$ref":"#/components/responses/429"},"500":{"$ref":"#/components/responses/500"}}},"delete":{"operationId":"bulkDeleteLinks","x-speakeasy-name-override":"deleteMany","summary":"Bulk delete links","description":"Bulk delete up to 100 links for the authenticated workspace.","tags":["Links"],"security":[{"token":[]}],"parameters":[{"in":"query","name":"linkIds","description":"Comma-separated list of link IDs to delete. Maximum of 100 IDs. Non-existing IDs will be ignored.","explode":false,"style":"form","schema":{"type":"array","items":{"type":"string"},"description":"Comma-separated list of link IDs to delete. Maximum of 100 IDs. Non-existing IDs will be ignored.","example":["clux0rgak00011...","clux0rgak00022..."]},"required":true}],"responses":{"200":{"description":"The deleted links count.","content":{"application/json":{"schema":{"type":"object","properties":{"deletedCount":{"type":"number","description":"The number of links deleted."}},"required":["deletedCount"]}}}},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"403":{"$ref":"#/components/responses/403"},"404":{"$ref":"#/components/responses/404"},"409":{"$ref":"#/components/responses/409"},"410":{"$ref":"#/components/responses/410"},"422":{"$ref":"#/components/responses/422"},"429":{"$ref":"#/components/responses/429"},"500":{"$ref":"#/components/responses/500"}}}},"/links/update":{"patch":{"operationId":"upsertLink","x-speakeasy-name-override":"upsert","x-speakeasy-usage-example":true,"summary":"Upsert a link","description":"Upsert a link for the authenticated workspace by its URL. If a link with the same URL already exists, return it (or update it if there are any changes). Otherwise, a new link will be created.","tags":["Links"],"security":[{"token":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","description":"The destination URL of the short link.","example":"https://google.com"},"domain":{"type":"string","description":"The domain of the short link. If not provided, the main domain of the project will be used (or `codeqr.link` if the project has no domains)."},"key":{"type":"string","description":"The slug of the short link. If not provided, a random 7-character slug will be generated."},"externalId":{"type":"string","nullable":true,"minLength":1,"maxLength":255,"description":"This is the ID of the link in your database. If set, it can be used to identify the link in the future. Must be prefixed with `ext_` when passed as a query parameter.","example":"123456"},"prefix":{"type":"string","description":"The prefix of the short link slug for randomly generated keys (for example, if the prefix is `/c/`, the generated keys will be in the format `/c/:key`). Will be ignored if `key` is provided."},"trackConversion":{"type":"boolean","default":false,"description":"Whether to track conversions for the short link."},"useAsTemplate":{"type":"boolean","default":false,"description":"Whether this link should be used as a reusable template."},"archived":{"type":"boolean","default":false,"description":"Whether the short link is archived."},"expiresAt":{"type":"string","nullable":true,"format":"date-time","description":"The date and time when the short link will expire in ISO-8601 format. Must be in the future."},"expiredUrl":{"type":"string","nullable":true,"description":"The URL to redirect to when the short link expires."},"password":{"type":"string","nullable":true,"default":null,"description":"The password required to access the short link destination URL."},"proxy":{"type":"boolean","default":false,"description":"Whether the short link uses the custom link preview feature."},"title":{"type":"string","nullable":true,"default":null,"description":"The title of the short link generated via `api.codeqr.io/metatags`. Will be used for custom link preview if `proxy` is true."},"description":{"type":"string","nullable":true,"default":null,"description":"The description of the short link generated via `api.codeqr.io/metatags`. Will be used for custom link preview if `proxy` is true."},"image":{"type":"string","nullable":true,"default":null,"description":"The image of the short link generated via `api.codeqr.io/metatags`. Will be used for custom link preview if `proxy` is true."},"video":{"type":"string","nullable":true,"default":null,"description":"The video of the short link."},"rewrite":{"type":"boolean","default":false,"description":"Whether the short link uses link cloaking."},"ios":{"type":"string","nullable":true,"default":null,"description":"The iOS destination URL for the short link for iOS device targeting."},"android":{"type":"string","nullable":true,"default":null,"description":"The Android destination URL for the short link for Android device targeting."},"geo":{"type":"object","nullable":true,"properties":{"AF":{"type":"string"},"AL":{"type":"string"},"DZ":{"type":"string"},"AS":{"type":"string"},"AD":{"type":"string"},"AO":{"type":"string"},"AI":{"type":"string"},"AQ":{"type":"string"},"AG":{"type":"string"},"AR":{"type":"string"},"AM":{"type":"string"},"AW":{"type":"string"},"AU":{"type":"string"},"AT":{"type":"string"},"AZ":{"type":"string"},"BS":{"type":"string"},"BH":{"type":"string"},"BD":{"type":"string"},"BB":{"type":"string"},"BY":{"type":"string"},"BE":{"type":"string"},"BZ":{"type":"string"},"BJ":{"type":"string"},"BM":{"type":"string"},"BT":{"type":"string"},"BO":{"type":"string"},"BA":{"type":"string"},"BW":{"type":"string"},"BV":{"type":"string"},"BR":{"type":"string"},"IO":{"type":"string"},"BN":{"type":"string"},"BG":{"type":"string"},"BF":{"type":"string"},"BI":{"type":"string"},"KH":{"type":"string"},"CM":{"type":"string"},"CA":{"type":"string"},"CV":{"type":"string"},"KY":{"type":"string"},"CF":{"type":"string"},"TD":{"type":"string"},"CL":{"type":"string"},"CN":{"type":"string"},"CX":{"type":"string"},"CC":{"type":"string"},"CO":{"type":"string"},"KM":{"type":"string"},"CG":{"type":"string"},"CD":{"type":"string"},"CK":{"type":"string"},"CR":{"type":"string"},"CI":{"type":"string"},"HR":{"type":"string"},"CU":{"type":"string"},"CY":{"type":"string"},"CZ":{"type":"string"},"DK":{"type":"string"},"DJ":{"type":"string"},"DM":{"type":"string"},"DO":{"type":"string"},"EC":{"type":"string"},"EG":{"type":"string"},"SV":{"type":"string"},"GQ":{"type":"string"},"ER":{"type":"string"},"EE":{"type":"string"},"ET":{"type":"string"},"FK":{"type":"string"},"FO":{"type":"string"},"FJ":{"type":"string"},"FI":{"type":"string"},"FR":{"type":"string"},"GF":{"type":"string"},"PF":{"type":"string"},"TF":{"type":"string"},"GA":{"type":"string"},"GM":{"type":"string"},"GE":{"type":"string"},"DE":{"type":"string"},"GH":{"type":"string"},"GI":{"type":"string"},"GR":{"type":"string"},"GL":{"type":"string"},"GD":{"type":"string"},"GP":{"type":"string"},"GU":{"type":"string"},"GT":{"type":"string"},"GN":{"type":"string"},"GW":{"type":"string"},"GY":{"type":"string"},"HT":{"type":"string"},"HM":{"type":"string"},"VA":{"type":"string"},"HN":{"type":"string"},"HK":{"type":"string"},"HU":{"type":"string"},"IS":{"type":"string"},"IN":{"type":"string"},"ID":{"type":"string"},"IR":{"type":"string"},"IQ":{"type":"string"},"IE":{"type":"string"},"IL":{"type":"string"},"IT":{"type":"string"},"JM":{"type":"string"},"JP":{"type":"string"},"JO":{"type":"string"},"KZ":{"type":"string"},"KE":{"type":"string"},"KI":{"type":"string"},"KP":{"type":"string"},"KR":{"type":"string"},"KW":{"type":"string"},"KG":{"type":"string"},"LA":{"type":"string"},"LV":{"type":"string"},"LB":{"type":"string"},"LS":{"type":"string"},"LR":{"type":"string"},"LY":{"type":"string"},"LI":{"type":"string"},"LT":{"type":"string"},"LU":{"type":"string"},"MO":{"type":"string"},"MG":{"type":"string"},"MW":{"type":"string"},"MY":{"type":"string"},"MV":{"type":"string"},"ML":{"type":"string"},"MT":{"type":"string"},"MH":{"type":"string"},"MQ":{"type":"string"},"MR":{"type":"string"},"MU":{"type":"string"},"YT":{"type":"string"},"MX":{"type":"string"},"FM":{"type":"string"},"MD":{"type":"string"},"MC":{"type":"string"},"MN":{"type":"string"},"MS":{"type":"string"},"MA":{"type":"string"},"MZ":{"type":"string"},"MM":{"type":"string"},"NA":{"type":"string"},"NR":{"type":"string"},"NP":{"type":"string"},"NL":{"type":"string"},"NC":{"type":"string"},"NZ":{"type":"string"},"NI":{"type":"string"},"NE":{"type":"string"},"NG":{"type":"string"},"NU":{"type":"string"},"NF":{"type":"string"},"MK":{"type":"string"},"MP":{"type":"string"},"NO":{"type":"string"},"OM":{"type":"string"},"PK":{"type":"string"},"PW":{"type":"string"},"PS":{"type":"string"},"PA":{"type":"string"},"PG":{"type":"string"},"PY":{"type":"string"},"PE":{"type":"string"},"PH":{"type":"string"},"PN":{"type":"string"},"PL":{"type":"string"},"PT":{"type":"string"},"PR":{"type":"string"},"QA":{"type":"string"},"RE":{"type":"string"},"RO":{"type":"string"},"RU":{"type":"string"},"RW":{"type":"string"},"SH":{"type":"string"},"KN":{"type":"string"},"LC":{"type":"string"},"PM":{"type":"string"},"VC":{"type":"string"},"WS":{"type":"string"},"SM":{"type":"string"},"ST":{"type":"string"},"SA":{"type":"string"},"SN":{"type":"string"},"SC":{"type":"string"},"SL":{"type":"string"},"SG":{"type":"string"},"SK":{"type":"string"},"SI":{"type":"string"},"SB":{"type":"string"},"SO":{"type":"string"},"ZA":{"type":"string"},"GS":{"type":"string"},"ES":{"type":"string"},"LK":{"type":"string"},"SD":{"type":"string"},"SR":{"type":"string"},"SJ":{"type":"string"},"SZ":{"type":"string"},"SE":{"type":"string"},"CH":{"type":"string"},"SY":{"type":"string"},"TW":{"type":"string"},"TJ":{"type":"string"},"TZ":{"type":"string"},"TH":{"type":"string"},"TL":{"type":"string"},"TG":{"type":"string"},"TK":{"type":"string"},"TO":{"type":"string"},"TT":{"type":"string"},"TN":{"type":"string"},"TR":{"type":"string"},"TM":{"type":"string"},"TC":{"type":"string"},"TV":{"type":"string"},"UG":{"type":"string"},"UA":{"type":"string"},"AE":{"type":"string"},"GB":{"type":"string"},"US":{"type":"string"},"UM":{"type":"string"},"UY":{"type":"string"},"UZ":{"type":"string"},"VU":{"type":"string"},"VE":{"type":"string"},"VN":{"type":"string"},"VG":{"type":"string"},"VI":{"type":"string"},"WF":{"type":"string"},"EH":{"type":"string"},"YE":{"type":"string"},"ZM":{"type":"string"},"ZW":{"type":"string"},"AX":{"type":"string"},"BQ":{"type":"string"},"CW":{"type":"string"},"GG":{"type":"string"},"IM":{"type":"string"},"JE":{"type":"string"},"ME":{"type":"string"},"BL":{"type":"string"},"MF":{"type":"string"},"RS":{"type":"string"},"SX":{"type":"string"},"SS":{"type":"string"},"XK":{"type":"string"}},"additionalProperties":false,"default":null,"description":"Geographic targeting information for the short link in JSON format `{[COUNTRY]: https://example.com }`."},"rules":{"type":"array","nullable":true,"items":{"type":"object","properties":{"attribute":{"type":"string","enum":["device","country","utm_source","utm_medium","utm_campaign","referrer","language"]},"operator":{"type":"string","enum":["equals","not_equals"]},"value":{"type":"string","minLength":1,"maxLength":190},"url":{"type":"string"}},"required":["attribute","operator","value","url"]},"maxItems":20,"description":"Smart rules for conditional destination routing by request attribute."},"doIndex":{"type":"boolean","default":false,"description":"Allow search engines to index your short link. Default is `false` if not provided. Learn more: https://codeqr.link/noindex"},"webhookIds":{"type":"array","nullable":true,"items":{"type":"string"},"description":"An array of webhook IDs to trigger when the link is clicked. These webhooks will receive click event data."},"publicStats":{"type":"boolean","default":false,"description":"Whether the short link statistics are publicly accessible."},"tagId":{"type":"string","nullable":true,"description":"The unique ID of the tag assigned to the short link. This field is deprecated – use `tagIds` instead.","deprecated":true},"tagIds":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}],"description":"The unique IDs of the tags assigned to the short link.","example":["clux0rgak00011..."]},"tagNames":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}],"description":"The unique name of the tags assigned to the short link (case insensitive)."},"folderId":{"type":"string","nullable":true,"description":"The unique ID existing folder to assign the short link to."},"comments":{"type":"string","nullable":true,"description":"The comments for the short link."},"flexible":{"type":"boolean","default":false,"description":"Whether the short link is flexible."},"preRedirection":{"type":"boolean","default":false,"description":"Whether the short link has pre-redirection."},"pageId":{"type":"string","nullable":true,"description":"The ID of the page to redirect to before the link destination."},"pageUrl":{"type":"string","nullable":true,"description":"The URL of the page to redirect to before the link destination."},"isFormMandatory":{"type":"boolean","default":false,"description":"If the form is mandatory for the page."}},"required":["url"]}}}},"responses":{"200":{"description":"The upserted link","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LinkSchema"}}}},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"403":{"$ref":"#/components/responses/403"},"404":{"$ref":"#/components/responses/404"},"409":{"$ref":"#/components/responses/409"},"410":{"$ref":"#/components/responses/410"},"422":{"$ref":"#/components/responses/422"},"429":{"$ref":"#/components/responses/429"},"500":{"$ref":"#/components/responses/500"}}}},"/qrcodes":{"post":{"operationId":"createQRCode","x-speakeasy-name-override":"create","x-speakeasy-usage-example":true,"summary":"Create a new QR Code","description":"Create a new QR Code for the authenticated workspace.","tags":["QR Codes"],"security":[{"token":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"domain":{"type":"string","description":"The domain of the QR code. If not provided, the main domain of the project will be used (or `codeqr.link` if the project does not have domains)."},"key":{"type":"string","description":"The slug of the QR code. If not provided, a random slug of 7 characters will be generated."},"prefix":{"type":"string","description":"The prefix for the randomly generated key. If provided, the key will be prefixed with this value."},"externalId":{"type":"string","nullable":true,"minLength":1,"maxLength":255,"description":"This is the ID of the QR code in your database. If defined, it can be used to identify the QR code in the future. It must be prefixed with `ext_` when passed as a query parameter.","example":"123456"},"trackConversion":{"type":"boolean","default":false,"description":"If should track conversions for the QR code."},"templateId":{"type":"string","nullable":true,"description":"ID of a QR code (in the same project) marked as a template. Its customization fields (colors, logo, pattern, shape, frame) will be applied to the new QR code unless explicitly overridden."},"useAsTemplate":{"type":"boolean","default":false,"description":"Whether this QR code should be used as a reusable template."},"archived":{"type":"boolean","default":false,"description":"If the QR code is archived."},"expiresAt":{"type":"string","nullable":true,"format":"date-time","description":"The date and time the QR code will expire in ISO-8601 format. Must be in the future."},"expiredUrl":{"type":"string","nullable":true,"description":"The URL to redirect when the QR code expires."},"password":{"type":"string","nullable":true,"description":"The password required to access the destination URL of the QR code."},"proxy":{"type":"boolean","default":false,"description":"If the QR code uses the custom link preview feature."},"title":{"type":"string","nullable":true,"description":"The title of the QR code generated via `api.codeqr.io/metatags`. Will be used for custom link preview if `proxy` is true."},"description":{"type":"string","nullable":true,"description":"The description of the QR code generated via `api.codeqr.io/metatags`. Will be used for custom link preview if `proxy` is true."},"image":{"type":"string","nullable":true,"description":"The image of the QR code generated via `api.codeqr.io/metatags`. Will be used for custom link preview if `proxy` is true."},"rewrite":{"type":"boolean","default":false,"description":"If the QR code uses link cloaking."},"ios":{"type":"string","nullable":true,"description":"The destination URL for iOS for the QR code for device targeting iOS."},"android":{"type":"string","nullable":true,"description":"The destination URL for Android for the QR code for device targeting Android."},"geo":{"type":"object","nullable":true,"properties":{"AF":{"type":"string"},"AL":{"type":"string"},"DZ":{"type":"string"},"AS":{"type":"string"},"AD":{"type":"string"},"AO":{"type":"string"},"AI":{"type":"string"},"AQ":{"type":"string"},"AG":{"type":"string"},"AR":{"type":"string"},"AM":{"type":"string"},"AW":{"type":"string"},"AU":{"type":"string"},"AT":{"type":"string"},"AZ":{"type":"string"},"BS":{"type":"string"},"BH":{"type":"string"},"BD":{"type":"string"},"BB":{"type":"string"},"BY":{"type":"string"},"BE":{"type":"string"},"BZ":{"type":"string"},"BJ":{"type":"string"},"BM":{"type":"string"},"BT":{"type":"string"},"BO":{"type":"string"},"BA":{"type":"string"},"BW":{"type":"string"},"BV":{"type":"string"},"BR":{"type":"string"},"IO":{"type":"string"},"BN":{"type":"string"},"BG":{"type":"string"},"BF":{"type":"string"},"BI":{"type":"string"},"KH":{"type":"string"},"CM":{"type":"string"},"CA":{"type":"string"},"CV":{"type":"string"},"KY":{"type":"string"},"CF":{"type":"string"},"TD":{"type":"string"},"CL":{"type":"string"},"CN":{"type":"string"},"CX":{"type":"string"},"CC":{"type":"string"},"CO":{"type":"string"},"KM":{"type":"string"},"CG":{"type":"string"},"CD":{"type":"string"},"CK":{"type":"string"},"CR":{"type":"string"},"CI":{"type":"string"},"HR":{"type":"string"},"CU":{"type":"string"},"CY":{"type":"string"},"CZ":{"type":"string"},"DK":{"type":"string"},"DJ":{"type":"string"},"DM":{"type":"string"},"DO":{"type":"string"},"EC":{"type":"string"},"EG":{"type":"string"},"SV":{"type":"string"},"GQ":{"type":"string"},"ER":{"type":"string"},"EE":{"type":"string"},"ET":{"type":"string"},"FK":{"type":"string"},"FO":{"type":"string"},"FJ":{"type":"string"},"FI":{"type":"string"},"FR":{"type":"string"},"GF":{"type":"string"},"PF":{"type":"string"},"TF":{"type":"string"},"GA":{"type":"string"},"GM":{"type":"string"},"GE":{"type":"string"},"DE":{"type":"string"},"GH":{"type":"string"},"GI":{"type":"string"},"GR":{"type":"string"},"GL":{"type":"string"},"GD":{"type":"string"},"GP":{"type":"string"},"GU":{"type":"string"},"GT":{"type":"string"},"GN":{"type":"string"},"GW":{"type":"string"},"GY":{"type":"string"},"HT":{"type":"string"},"HM":{"type":"string"},"VA":{"type":"string"},"HN":{"type":"string"},"HK":{"type":"string"},"HU":{"type":"string"},"IS":{"type":"string"},"IN":{"type":"string"},"ID":{"type":"string"},"IR":{"type":"string"},"IQ":{"type":"string"},"IE":{"type":"string"},"IL":{"type":"string"},"IT":{"type":"string"},"JM":{"type":"string"},"JP":{"type":"string"},"JO":{"type":"string"},"KZ":{"type":"string"},"KE":{"type":"string"},"KI":{"type":"string"},"KP":{"type":"string"},"KR":{"type":"string"},"KW":{"type":"string"},"KG":{"type":"string"},"LA":{"type":"string"},"LV":{"type":"string"},"LB":{"type":"string"},"LS":{"type":"string"},"LR":{"type":"string"},"LY":{"type":"string"},"LI":{"type":"string"},"LT":{"type":"string"},"LU":{"type":"string"},"MO":{"type":"string"},"MG":{"type":"string"},"MW":{"type":"string"},"MY":{"type":"string"},"MV":{"type":"string"},"ML":{"type":"string"},"MT":{"type":"string"},"MH":{"type":"string"},"MQ":{"type":"string"},"MR":{"type":"string"},"MU":{"type":"string"},"YT":{"type":"string"},"MX":{"type":"string"},"FM":{"type":"string"},"MD":{"type":"string"},"MC":{"type":"string"},"MN":{"type":"string"},"MS":{"type":"string"},"MA":{"type":"string"},"MZ":{"type":"string"},"MM":{"type":"string"},"NA":{"type":"string"},"NR":{"type":"string"},"NP":{"type":"string"},"NL":{"type":"string"},"NC":{"type":"string"},"NZ":{"type":"string"},"NI":{"type":"string"},"NE":{"type":"string"},"NG":{"type":"string"},"NU":{"type":"string"},"NF":{"type":"string"},"MK":{"type":"string"},"MP":{"type":"string"},"NO":{"type":"string"},"OM":{"type":"string"},"PK":{"type":"string"},"PW":{"type":"string"},"PS":{"type":"string"},"PA":{"type":"string"},"PG":{"type":"string"},"PY":{"type":"string"},"PE":{"type":"string"},"PH":{"type":"string"},"PN":{"type":"string"},"PL":{"type":"string"},"PT":{"type":"string"},"PR":{"type":"string"},"QA":{"type":"string"},"RE":{"type":"string"},"RO":{"type":"string"},"RU":{"type":"string"},"RW":{"type":"string"},"SH":{"type":"string"},"KN":{"type":"string"},"LC":{"type":"string"},"PM":{"type":"string"},"VC":{"type":"string"},"WS":{"type":"string"},"SM":{"type":"string"},"ST":{"type":"string"},"SA":{"type":"string"},"SN":{"type":"string"},"SC":{"type":"string"},"SL":{"type":"string"},"SG":{"type":"string"},"SK":{"type":"string"},"SI":{"type":"string"},"SB":{"type":"string"},"SO":{"type":"string"},"ZA":{"type":"string"},"GS":{"type":"string"},"ES":{"type":"string"},"LK":{"type":"string"},"SD":{"type":"string"},"SR":{"type":"string"},"SJ":{"type":"string"},"SZ":{"type":"string"},"SE":{"type":"string"},"CH":{"type":"string"},"SY":{"type":"string"},"TW":{"type":"string"},"TJ":{"type":"string"},"TZ":{"type":"string"},"TH":{"type":"string"},"TL":{"type":"string"},"TG":{"type":"string"},"TK":{"type":"string"},"TO":{"type":"string"},"TT":{"type":"string"},"TN":{"type":"string"},"TR":{"type":"string"},"TM":{"type":"string"},"TC":{"type":"string"},"TV":{"type":"string"},"UG":{"type":"string"},"UA":{"type":"string"},"AE":{"type":"string"},"GB":{"type":"string"},"US":{"type":"string"},"UM":{"type":"string"},"UY":{"type":"string"},"UZ":{"type":"string"},"VU":{"type":"string"},"VE":{"type":"string"},"VN":{"type":"string"},"VG":{"type":"string"},"VI":{"type":"string"},"WF":{"type":"string"},"EH":{"type":"string"},"YE":{"type":"string"},"ZM":{"type":"string"},"ZW":{"type":"string"},"AX":{"type":"string"},"BQ":{"type":"string"},"CW":{"type":"string"},"GG":{"type":"string"},"IM":{"type":"string"},"JE":{"type":"string"},"ME":{"type":"string"},"BL":{"type":"string"},"MF":{"type":"string"},"RS":{"type":"string"},"SX":{"type":"string"},"SS":{"type":"string"},"XK":{"type":"string"}},"additionalProperties":false,"description":"Geographic segmentation information for the QR code in the JSON format `{[COUNTRY]: https://example.com }`."},"rules":{"type":"array","nullable":true,"items":{"type":"object","properties":{"attribute":{"type":"string","enum":["device","country","utm_source","utm_medium","utm_campaign","referrer","language"]},"operator":{"type":"string","enum":["equals","not_equals"]},"value":{"type":"string","minLength":1,"maxLength":190},"url":{"type":"string"}},"required":["attribute","operator","value","url"]},"maxItems":20,"description":"Smart rules for conditional destination routing by request attribute."},"doIndex":{"type":"boolean","default":false,"description":"Allow search engines to index your QR code. The default is `false` if not provided. Learn more: https://codeqr.link/noindex"},"webhookIds":{"type":"array","nullable":true,"items":{"type":"string"},"description":"An array of webhook IDs to trigger when the link is clicked. These webhooks will receive click event data."},"publicStats":{"type":"boolean","default":false,"description":"If the statistics of the QR code are publicly accessible."},"tagId":{"type":"string","nullable":true,"description":"The unique ID of the tag assigned to the QR code. This field is deprecated – use `tagIds` instead.","deprecated":true},"tagIds":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}],"description":"The unique IDs of the tags assigned to the QR code.","example":["clux0rgak00011..."]},"tagNames":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}],"description":"The unique name of the tags assigned to the QR code (case insensitive)."},"folderId":{"type":"string","nullable":true,"description":"The unique ID of the folder assigned to the QR code. Omit or set to null for no folder."},"comments":{"type":"string","nullable":true,"description":"The comments for the QR code."},"flexible":{"type":"boolean","default":false,"description":"If the QR code is flexible."},"filled":{"type":"boolean","default":false,"description":"If the QR code is filled."},"static":{"type":"boolean","default":false,"description":"If the QR code is static."},"useDisplayPage":{"type":"boolean","default":true,"description":"For dynamic QR codes with phone, email, or sms types: if true (default), shows an action page with buttons. If false, redirects directly to tel:/mailto:/sms: URI."},"type":{"type":"string","enum":["url","text","email","wifi","phone","vcard","crypto","sms","facetime","geo","latlog","pix","whatsapp"],"description":"The type of content of the QR code."},"contentStatic":{"type":"string","nullable":true,"description":"The static content of the QR code."},"text":{"type":"string","nullable":true,"description":"The text of the QR code."},"email":{"type":"object","nullable":true,"additionalProperties":{"type":"string"},"description":"The email information of the QR code."},"wifi":{"type":"object","nullable":true,"additionalProperties":{"type":"string"},"description":"The WiFi information of the QR code."},"url":{"type":"string","nullable":true,"description":"The destination URL of the QR code."},"phone":{"type":"string","nullable":true,"description":"The phone number of the QR code."},"vcard":{"type":"object","nullable":true,"additionalProperties":{"type":"string"},"description":"The vCard information of the QR code."},"crypto":{"type":"object","nullable":true,"additionalProperties":{"type":"string"},"description":"The cryptocurrency information of the QR code."},"sms":{"type":"object","nullable":true,"additionalProperties":{"type":"string"},"description":"The SMS information of the QR code."},"whatsapp":{"type":"object","nullable":true,"properties":{"number":{"type":"string","pattern":"^[1-9]\\d{7,14}$"},"message":{"type":"string","maxLength":1000}},"required":["number"],"description":"The WhatsApp click-to-chat info: E.164 number (digits only) and optional prefilled message."},"facetime":{"type":"object","nullable":true,"additionalProperties":{"type":"string"},"description":"The FaceTime information of the QR code."},"latlog":{"type":"object","nullable":true,"additionalProperties":{"type":"string"},"description":"The latitude and longitude information of the QR code."},"logo":{"type":"string","nullable":true,"description":"The logo of the QR code."},"bgColor":{"type":"string","default":"#ffffff","description":"The background color of the QR code (hex or CSS keyword). Invalid values are coerced to default."},"fgColor":{"type":"string","default":"#000000","description":"The foreground color of the QR code (hex or CSS keyword). Invalid values are coerced to default."},"size":{"type":"number","default":1024,"description":"The size of the QR code."},"level":{"type":"string","default":"M","description":"The level of error correction of the QR code."},"showLogo":{"type":"boolean","default":true,"description":"If the logo should be displayed in the QR code."},"src":{"type":"string","nullable":true,"description":"The image URL of the QR code."},"height":{"type":"number","description":"Logo height in pixels. When omitted, a proportional size is used based on the QR code size (about 10–20% depending on size)."},"width":{"type":"number","description":"Logo width in pixels. When omitted, a proportional size is used based on the QR code size (about 10–20% depending on size)."},"excavate":{"type":"boolean","default":true,"description":"If the QR code should have excavated areas."},"pattern":{"type":"string","default":"default","description":"The pattern of the modules of the QR code."},"shape":{"type":"string","default":"none","description":"The shape of the design around the QR code (none, square, circle)."},"frame":{"type":"string","default":"none","description":"The type of frame of the QR code (e.g. none, frame-1, frame-2, frame-3, frame-5, frame-6). frame-5/6 are top-bar variants. Unknown ids fall back to no frame at render."},"frameColor":{"type":"string","default":"#000000","description":"The color of the frame (hex or CSS keyword). Invalid values are coerced to default."},"frameText":{"type":"string","maxLength":200,"description":"Label text rendered inside the frame (e.g. \"SCAN ME\", a product SKU). Maximum 200 characters. Word-wraps to multiple lines at larger sizes; the frame bar grows vertically to fit.","example":"SKU-LH905461"},"frameTextColor":{"type":"string","nullable":true,"description":"Color of the frame label text (hex `#RRGGBB`, `#RGB`, `#RRGGBBAA`, or a CSS keyword from the allowlist). When omitted, a contrasting color is derived automatically from `frameColor`.","example":"#ffffff"},"frameTextStyles":{"type":"object","nullable":true,"properties":{"weight":{"type":"string","enum":["normal","bold"],"description":"Font weight of the frame label text. `bold` renders at SVG `font-weight=\"700\"`, `normal` at `400`.","example":"bold"},"style":{"type":"string","enum":["normal","italic"],"description":"Font style of the frame label text. `italic` applies `font-style=\"italic\"`.","example":"normal"},"family":{"type":"string","enum":["sans","sans-condensed","serif","serif-elegant","mono"],"description":"Font family used for the frame label text. `sans` = Arial / Helvetica (default). `sans-condensed` = Arial Narrow. `serif` = Georgia / Times New Roman. `serif-elegant` = Palatino Linotype / Book Antiqua. `mono` = Courier New. Values resolve to safe system font stacks on the rendered SVG.","example":"sans"},"size":{"type":"string","enum":["s","m","l","xl"],"description":"Font size preset for the frame label. `s` = 60 viewBox units, `m` = 89.1 (default), `l` = 120, `xl` = 150. Larger sizes grow the frame bar vertically to fit. Extremely long text auto-shrinks to keep within 4 lines (floor 48).","example":"m"}},"additionalProperties":false,"description":"Typographic styles applied to the frame label text. Every key is enum-gated — unknown keys or out-of-enum values are rejected to prevent SVG attribute injection. All fields are optional; omitted keys fall back to the default (normal weight, normal style, sans family, medium size).","example":{"weight":"bold","size":"xl","family":"sans"}},"preRedirection":{"type":"boolean","default":false,"description":"If the QR code has pre-redirection."},"pageId":{"type":"string","nullable":true,"description":"The ID of the page to redirect to before the QR code destination."},"pageUrl":{"type":"string","nullable":true,"description":"The URL of the page to redirect to before the QR code destination."},"isFormMandatory":{"type":"boolean","default":false,"description":"If the form is mandatory for the page."}},"required":["type"]}}}},"responses":{"200":{"description":"The created QR Code","content":{"application/json":{"schema":{"$ref":"#/components/schemas/QrCodeSchema"}}}},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"403":{"$ref":"#/components/responses/403"},"404":{"$ref":"#/components/responses/404"},"409":{"$ref":"#/components/responses/409"},"410":{"$ref":"#/components/responses/410"},"422":{"$ref":"#/components/responses/422"},"429":{"$ref":"#/components/responses/429"},"500":{"$ref":"#/components/responses/500"}}},"get":{"operationId":"getQRCodes","x-speakeasy-name-override":"list","x-speakeasy-pagination":{"type":"offsetLimit","inputs":[{"name":"page","in":"parameters","type":"page"},{"name":"pageSize","in":"parameters","type":"limit"}],"outputs":{"results":"$"}},"summary":"Retrieve a list of QR Codes","description":"Retrieve a paginated list of QR Codes for the authenticated workspace.","tags":["QR Codes"],"security":[{"token":[]}],"parameters":[{"in":"query","name":"projectSlug","description":"The slug of the project to which the QR code belongs. For example, for `app.codeqr.io/acme`, the projectSlug is `acme`.","schema":{"type":"string","description":"The slug of the project to which the QR code belongs. For example, for `app.codeqr.io/acme`, the projectSlug is `acme`."}},{"in":"query","name":"domain","description":"The domain to filter the QR codes. For example, `ac.me`. If not provided, all QR codes of the project will be returned.","schema":{"type":"string","description":"The domain to filter the QR codes. For example, `ac.me`. If not provided, all QR codes of the project will be returned."}},{"in":"query","name":"tagId","description":"[DEPRECATED (use tagIds instead)]: The unique ID of the tag assigned to the QR code.","schema":{"type":"string","description":"[DEPRECATED (use tagIds instead)]: The unique ID of the tag assigned to the QR code.","deprecated":true}},{"in":"query","name":"tagIds","description":"The IDs of the tags to filter the QR codes.","schema":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}],"description":"The IDs of the tags to filter the QR codes."}},{"in":"query","name":"tagNames","description":"The unique name of the tags assigned to the QR code (case insensitive).","schema":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}],"description":"The unique name of the tags assigned to the QR code (case insensitive)."}},{"in":"query","name":"folderId","description":"The folder ID to filter the QR codes by.","schema":{"type":"string","description":"The folder ID to filter the QR codes by."}},{"in":"query","name":"search","description":"The search term to filter the QR codes. The search term will be matched against the QR code slug, title, and the destination URL.","schema":{"type":"string","description":"The search term to filter the QR codes. The search term will be matched against the QR code slug, title, and the destination URL."}},{"in":"query","name":"userId","description":"The ID of the user to filter by.","schema":{"type":"string","description":"The ID of the user to filter by."}},{"in":"query","name":"showArchived","description":"If should include archived QR codes in the response. The default is `false` if not provided.","schema":{"type":"boolean","default":"false","description":"If should include archived QR codes in the response. The default is `false` if not provided."}},{"in":"query","name":"comments","description":"The comments to filter by.","schema":{"type":"string","description":"The comments to filter by."}},{"in":"query","name":"password","description":"The password to filter by.","schema":{"type":"string","description":"The password to filter by."}},{"in":"query","name":"expiresAt","schema":{"type":"string","nullable":true,"format":"date-time","description":"The date and time the QR code will expire in ISO-8601 format. Must be in the future."}},{"in":"query","name":"trackConversion","description":"If should include QR codes with conversion tracking enabled. The default is `false` if not provided.","schema":{"type":"boolean","default":"false","description":"If should include QR codes with conversion tracking enabled. The default is `false` if not provided."}},{"in":"query","name":"withTags","description":"If should include tags in the response. The default is `false` if not provided.","schema":{"type":"boolean","default":"false","description":"If should include tags in the response. The default is `false` if not provided."}},{"in":"query","name":"useAsTemplate","description":"Filter QR codes marked as templates.","schema":{"type":"boolean","description":"Filter QR codes marked as templates."}},{"in":"query","name":"format","description":"Filter by QR code format - static or dynamic","schema":{"type":"string","enum":["static","dynamic"],"description":"Filter by QR code format - static or dynamic"}},{"in":"query","name":"type","description":"Filter by QR code type","schema":{"type":"string","enum":["url","text","email","wifi","phone","vcard","crypto","sms","facetime","geo","latlog","pix","whatsapp"],"description":"Filter by QR code type"}},{"in":"query","name":"hasPassword","description":"Filter QR codes with/without password protection","schema":{"type":"boolean","description":"Filter QR codes with/without password protection"}},{"in":"query","name":"hasExpiration","description":"Filter QR codes with/without expiration date","schema":{"type":"boolean","description":"Filter QR codes with/without expiration date"}},{"in":"query","name":"hasUTM","description":"Filter QR codes with/without UTM parameters","schema":{"type":"boolean","description":"Filter QR codes with/without UTM parameters"}},{"in":"query","name":"hasCustomSocial","description":"Filter QR codes with/without custom social media cards","schema":{"type":"boolean","description":"Filter QR codes with/without custom social media cards"}},{"in":"query","name":"hasGeo","description":"Filter QR codes with/without geo-targeting","schema":{"type":"boolean","description":"Filter QR codes with/without geo-targeting"}},{"in":"query","name":"hasDevice","description":"Filter QR codes with/without device targeting","schema":{"type":"boolean","description":"Filter QR codes with/without device targeting"}},{"in":"query","name":"hasComments","description":"Filter QR codes with/without comments","schema":{"type":"boolean","description":"Filter QR codes with/without comments"}},{"in":"query","name":"hasTags","description":"Filter QR codes with/without tags","schema":{"type":"boolean","description":"Filter QR codes with/without tags"}},{"in":"query","name":"createdAfter","description":"Filter QR codes created after this date","schema":{"type":"string","format":"date-time","description":"Filter QR codes created after this date"}},{"in":"query","name":"createdBefore","description":"Filter QR codes created before this date","schema":{"type":"string","format":"date-time","description":"Filter QR codes created before this date"}},{"in":"query","name":"expiresAfter","description":"Filter QR codes expiring after this date","schema":{"type":"string","format":"date-time","description":"Filter QR codes expiring after this date"}},{"in":"query","name":"expiresBefore","description":"Filter QR codes expiring before this date","schema":{"type":"string","format":"date-time","description":"Filter QR codes expiring before this date"}},{"in":"query","name":"scansMin","description":"Minimum number of scans","schema":{"type":"integer","minimum":0,"description":"Minimum number of scans"}},{"in":"query","name":"scansMax","description":"Maximum number of scans","schema":{"type":"integer","minimum":0,"description":"Maximum number of scans"}},{"in":"query","name":"utm_source","description":"Filter by UTM source value","schema":{"type":"string","description":"Filter by UTM source value"}},{"in":"query","name":"utm_medium","description":"Filter by UTM medium value","schema":{"type":"string","description":"Filter by UTM medium value"}},{"in":"query","name":"utm_campaign","description":"Filter by UTM campaign value","schema":{"type":"string","description":"Filter by UTM campaign value"}},{"in":"query","name":"utm_content","description":"Filter by UTM content value","schema":{"type":"string","description":"Filter by UTM content value"}},{"in":"query","name":"utm_term","description":"Filter by UTM term value","schema":{"type":"string","description":"Filter by UTM term value"}},{"in":"query","name":"sort","description":"The field to order the QR codes. The default is `createdAt`, and the order of sorting is always descending.","schema":{"type":"string","enum":["createdAt","scans","lastClicked"],"default":"createdAt","description":"The field to order the QR codes. The default is `createdAt`, and the order of sorting is always descending."}},{"in":"query","name":"page","description":"The page number for pagination.","schema":{"type":"number","minimum":0,"exclusiveMinimum":true,"default":1,"description":"The page number for pagination.","example":1}},{"in":"query","name":"pageSize","description":"The number of items per page.","schema":{"type":"number","minimum":0,"exclusiveMinimum":true,"maximum":100,"default":100,"description":"The number of items per page.","example":50}}],"responses":{"200":{"description":"A list of QR Codes","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/QrCodeSchema"}}}}},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"403":{"$ref":"#/components/responses/403"},"404":{"$ref":"#/components/responses/404"},"409":{"$ref":"#/components/responses/409"},"410":{"$ref":"#/components/responses/410"},"422":{"$ref":"#/components/responses/422"},"429":{"$ref":"#/components/responses/429"},"500":{"$ref":"#/components/responses/500"}}}},"/qrcodes/count":{"get":{"operationId":"getQRCodesCount","x-speakeasy-name-override":"count","summary":"Retrieve QR Codes count","description":"Retrieve the number of QR Codes for the authenticated workspace.","tags":["QR Codes"],"security":[{"token":[]}],"parameters":[{"in":"query","name":"projectSlug","description":"The slug of the project to which the QR code belongs. For example, for `app.codeqr.io/acme`, the projectSlug is `acme`.","schema":{"type":"string","description":"The slug of the project to which the QR code belongs. For example, for `app.codeqr.io/acme`, the projectSlug is `acme`."}},{"in":"query","name":"domain","description":"The domain to filter the QR codes. For example, `ac.me`. If not provided, all QR codes of the project will be returned.","schema":{"type":"string","description":"The domain to filter the QR codes. For example, `ac.me`. If not provided, all QR codes of the project will be returned."}},{"in":"query","name":"tagId","description":"[DEPRECATED (use tagIds instead)]: The unique ID of the tag assigned to the QR code.","schema":{"type":"string","description":"[DEPRECATED (use tagIds instead)]: The unique ID of the tag assigned to the QR code.","deprecated":true}},{"in":"query","name":"tagIds","description":"The IDs of the tags to filter the QR codes.","schema":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}],"description":"The IDs of the tags to filter the QR codes."}},{"in":"query","name":"tagNames","description":"The unique name of the tags assigned to the QR code (case insensitive).","schema":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}],"description":"The unique name of the tags assigned to the QR code (case insensitive)."}},{"in":"query","name":"folderId","description":"The folder ID to filter the QR codes by.","schema":{"type":"string","description":"The folder ID to filter the QR codes by."}},{"in":"query","name":"search","description":"The search term to filter the QR codes. The search term will be matched against the QR code slug, title, and the destination URL.","schema":{"type":"string","description":"The search term to filter the QR codes. The search term will be matched against the QR code slug, title, and the destination URL."}},{"in":"query","name":"userId","description":"The ID of the user to filter by.","schema":{"type":"string","description":"The ID of the user to filter by."}},{"in":"query","name":"showArchived","description":"If should include archived QR codes in the response. The default is `false` if not provided.","schema":{"type":"boolean","default":"false","description":"If should include archived QR codes in the response. The default is `false` if not provided."}},{"in":"query","name":"comments","description":"The comments to filter by.","schema":{"type":"string","description":"The comments to filter by."}},{"in":"query","name":"password","description":"The password to filter by.","schema":{"type":"string","description":"The password to filter by."}},{"in":"query","name":"expiresAt","schema":{"type":"string","nullable":true,"format":"date-time","description":"The date and time the QR code will expire in ISO-8601 format. Must be in the future."}},{"in":"query","name":"trackConversion","description":"If should include QR codes with conversion tracking enabled. The default is `false` if not provided.","schema":{"type":"boolean","default":"false","description":"If should include QR codes with conversion tracking enabled. The default is `false` if not provided."}},{"in":"query","name":"withTags","description":"If should include tags in the response. The default is `false` if not provided.","schema":{"type":"boolean","default":"false","description":"If should include tags in the response. The default is `false` if not provided."}},{"in":"query","name":"useAsTemplate","description":"Filter QR codes marked as templates.","schema":{"type":"boolean","description":"Filter QR codes marked as templates."}},{"in":"query","name":"format","description":"Filter by QR code format - static or dynamic","schema":{"type":"string","enum":["static","dynamic"],"description":"Filter by QR code format - static or dynamic"}},{"in":"query","name":"type","description":"Filter by QR code type","schema":{"type":"string","enum":["url","text","email","wifi","phone","vcard","crypto","sms","facetime","geo","latlog","pix","whatsapp"],"description":"Filter by QR code type"}},{"in":"query","name":"hasPassword","description":"Filter QR codes with/without password protection","schema":{"type":"boolean","description":"Filter QR codes with/without password protection"}},{"in":"query","name":"hasExpiration","description":"Filter QR codes with/without expiration date","schema":{"type":"boolean","description":"Filter QR codes with/without expiration date"}},{"in":"query","name":"hasUTM","description":"Filter QR codes with/without UTM parameters","schema":{"type":"boolean","description":"Filter QR codes with/without UTM parameters"}},{"in":"query","name":"hasCustomSocial","description":"Filter QR codes with/without custom social media cards","schema":{"type":"boolean","description":"Filter QR codes with/without custom social media cards"}},{"in":"query","name":"hasGeo","description":"Filter QR codes with/without geo-targeting","schema":{"type":"boolean","description":"Filter QR codes with/without geo-targeting"}},{"in":"query","name":"hasDevice","description":"Filter QR codes with/without device targeting","schema":{"type":"boolean","description":"Filter QR codes with/without device targeting"}},{"in":"query","name":"hasComments","description":"Filter QR codes with/without comments","schema":{"type":"boolean","description":"Filter QR codes with/without comments"}},{"in":"query","name":"hasTags","description":"Filter QR codes with/without tags","schema":{"type":"boolean","description":"Filter QR codes with/without tags"}},{"in":"query","name":"createdAfter","description":"Filter QR codes created after this date","schema":{"type":"string","format":"date-time","description":"Filter QR codes created after this date"}},{"in":"query","name":"createdBefore","description":"Filter QR codes created before this date","schema":{"type":"string","format":"date-time","description":"Filter QR codes created before this date"}},{"in":"query","name":"expiresAfter","description":"Filter QR codes expiring after this date","schema":{"type":"string","format":"date-time","description":"Filter QR codes expiring after this date"}},{"in":"query","name":"expiresBefore","description":"Filter QR codes expiring before this date","schema":{"type":"string","format":"date-time","description":"Filter QR codes expiring before this date"}},{"in":"query","name":"scansMin","description":"Minimum number of scans","schema":{"type":"integer","minimum":0,"description":"Minimum number of scans"}},{"in":"query","name":"scansMax","description":"Maximum number of scans","schema":{"type":"integer","minimum":0,"description":"Maximum number of scans"}},{"in":"query","name":"utm_source","description":"Filter by UTM source value","schema":{"type":"string","description":"Filter by UTM source value"}},{"in":"query","name":"utm_medium","description":"Filter by UTM medium value","schema":{"type":"string","description":"Filter by UTM medium value"}},{"in":"query","name":"utm_campaign","description":"Filter by UTM campaign value","schema":{"type":"string","description":"Filter by UTM campaign value"}},{"in":"query","name":"utm_content","description":"Filter by UTM content value","schema":{"type":"string","description":"Filter by UTM content value"}},{"in":"query","name":"utm_term","description":"Filter by UTM term value","schema":{"type":"string","description":"Filter by UTM term value"}},{"in":"query","name":"groupBy","description":"The field to group the QR codes.","schema":{"anyOf":[{"type":"string","enum":["domain"]},{"type":"string","enum":["tagId"]},{"type":"string","enum":["userId"]},{"type":"string","enum":["folderId"]}],"description":"The field to group the QR codes."}}],"responses":{"200":{"description":"The count of QR Codes","content":{"application/json":{"schema":{"type":"number","description":"The number of QR Codes matching the query."}}}},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"403":{"$ref":"#/components/responses/403"},"404":{"$ref":"#/components/responses/404"},"409":{"$ref":"#/components/responses/409"},"410":{"$ref":"#/components/responses/410"},"422":{"$ref":"#/components/responses/422"},"429":{"$ref":"#/components/responses/429"},"500":{"$ref":"#/components/responses/500"}}}},"/qrcodes/info":{"get":{"operationId":"getQRCodeInfo","x-speakeasy-name-override":"get","summary":"Retrieve a QR Code","description":"Retrieve the info for a QR Code.","tags":["QR Codes"],"security":[{"token":[]}],"parameters":[{"in":"query","name":"projectSlug","description":"The slug of the project to which the QR code belongs. For example, for `app.codeqr.io/acme`, the projectSlug is `acme`.","schema":{"type":"string","minLength":1,"description":"The slug of the project to which the QR code belongs. For example, for `app.codeqr.io/acme`, the projectSlug is `acme`."},"required":true},{"in":"query","name":"domain","schema":{"type":"string","minLength":1,"description":"The domain of the QR code to be retrieved. For example, for `codeqr.link/github`, the domain is `codeqr.link`."},"required":true},{"in":"query","name":"key","description":"The key of the QR code to be retrieved. For example, for `codeqr.link/github`, the key is `github`.","schema":{"type":"string","minLength":1,"description":"The key of the QR code to be retrieved. For example, for `codeqr.link/github`, the key is `github`."},"required":true},{"in":"query","name":"qrCodeId","description":"The unique ID of the QR code.","schema":{"type":"string","description":"The unique ID of the QR code."}},{"in":"query","name":"externalId","description":"This is the ID of the QR code in your database. It must be prefixed with `ext_` when passed as a query parameter.","schema":{"type":"string","description":"This is the ID of the QR code in your database. It must be prefixed with `ext_` when passed as a query parameter.","example":"ext_123456"}}],"responses":{"200":{"description":"The retrieved QR Code","content":{"application/json":{"schema":{"$ref":"#/components/schemas/QrCodeSchema"}}}},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"403":{"$ref":"#/components/responses/403"},"404":{"$ref":"#/components/responses/404"},"409":{"$ref":"#/components/responses/409"},"410":{"$ref":"#/components/responses/410"},"422":{"$ref":"#/components/responses/422"},"429":{"$ref":"#/components/responses/429"},"500":{"$ref":"#/components/responses/500"}}}},"/qrcodes/{qrcodeId}":{"put":{"operationId":"updateQRCode","x-speakeasy-name-override":"update","x-speakeasy-max-method-params":2,"summary":"Update a QR Code","description":"Update a QR Code for the authenticated workspace. If there's no change, returns it as it is.","tags":["QR Codes"],"security":[{"token":[]}],"parameters":[{"in":"path","name":"qrcodeId","description":"The id of the QR Code to update. You may use either `qrcodeId` (obtained via `/qrcodes/info` endpoint) or `externalId` prefixed with `ext_`.","schema":{"type":"string","description":"The id of the QR Code to update. You may use either `qrcodeId` (obtained via `/qrcodes/info` endpoint) or `externalId` prefixed with `ext_`."},"required":true}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"domain":{"type":"string","description":"The domain of the QR code. If not provided, the main domain of the project will be used (or `codeqr.link` if the project does not have domains)."},"key":{"type":"string","description":"The slug of the QR code. If not provided, a random slug of 7 characters will be generated."},"prefix":{"type":"string","description":"The prefix for the randomly generated key. If provided, the key will be prefixed with this value."},"externalId":{"type":"string","nullable":true,"minLength":1,"maxLength":255,"description":"This is the ID of the QR code in your database. If defined, it can be used to identify the QR code in the future. It must be prefixed with `ext_` when passed as a query parameter.","example":"123456"},"trackConversion":{"type":"boolean","default":false,"description":"If should track conversions for the QR code."},"templateId":{"type":"string","nullable":true,"description":"ID of a QR code (in the same project) marked as a template. Its customization fields (colors, logo, pattern, shape, frame) will be applied to the new QR code unless explicitly overridden."},"useAsTemplate":{"type":"boolean","default":false,"description":"Whether this QR code should be used as a reusable template."},"archived":{"type":"boolean","default":false,"description":"If the QR code is archived."},"expiresAt":{"type":"string","nullable":true,"format":"date-time","description":"The date and time the QR code will expire in ISO-8601 format. Must be in the future."},"expiredUrl":{"type":"string","nullable":true,"description":"The URL to redirect when the QR code expires."},"password":{"type":"string","nullable":true,"description":"The password required to access the destination URL of the QR code."},"proxy":{"type":"boolean","default":false,"description":"If the QR code uses the custom link preview feature."},"title":{"type":"string","nullable":true,"description":"The title of the QR code generated via `api.codeqr.io/metatags`. Will be used for custom link preview if `proxy` is true."},"description":{"type":"string","nullable":true,"description":"The description of the QR code generated via `api.codeqr.io/metatags`. Will be used for custom link preview if `proxy` is true."},"image":{"type":"string","nullable":true,"description":"The image of the QR code generated via `api.codeqr.io/metatags`. Will be used for custom link preview if `proxy` is true."},"rewrite":{"type":"boolean","default":false,"description":"If the QR code uses link cloaking."},"ios":{"type":"string","nullable":true,"description":"The destination URL for iOS for the QR code for device targeting iOS."},"android":{"type":"string","nullable":true,"description":"The destination URL for Android for the QR code for device targeting Android."},"geo":{"type":"object","nullable":true,"properties":{"AF":{"type":"string"},"AL":{"type":"string"},"DZ":{"type":"string"},"AS":{"type":"string"},"AD":{"type":"string"},"AO":{"type":"string"},"AI":{"type":"string"},"AQ":{"type":"string"},"AG":{"type":"string"},"AR":{"type":"string"},"AM":{"type":"string"},"AW":{"type":"string"},"AU":{"type":"string"},"AT":{"type":"string"},"AZ":{"type":"string"},"BS":{"type":"string"},"BH":{"type":"string"},"BD":{"type":"string"},"BB":{"type":"string"},"BY":{"type":"string"},"BE":{"type":"string"},"BZ":{"type":"string"},"BJ":{"type":"string"},"BM":{"type":"string"},"BT":{"type":"string"},"BO":{"type":"string"},"BA":{"type":"string"},"BW":{"type":"string"},"BV":{"type":"string"},"BR":{"type":"string"},"IO":{"type":"string"},"BN":{"type":"string"},"BG":{"type":"string"},"BF":{"type":"string"},"BI":{"type":"string"},"KH":{"type":"string"},"CM":{"type":"string"},"CA":{"type":"string"},"CV":{"type":"string"},"KY":{"type":"string"},"CF":{"type":"string"},"TD":{"type":"string"},"CL":{"type":"string"},"CN":{"type":"string"},"CX":{"type":"string"},"CC":{"type":"string"},"CO":{"type":"string"},"KM":{"type":"string"},"CG":{"type":"string"},"CD":{"type":"string"},"CK":{"type":"string"},"CR":{"type":"string"},"CI":{"type":"string"},"HR":{"type":"string"},"CU":{"type":"string"},"CY":{"type":"string"},"CZ":{"type":"string"},"DK":{"type":"string"},"DJ":{"type":"string"},"DM":{"type":"string"},"DO":{"type":"string"},"EC":{"type":"string"},"EG":{"type":"string"},"SV":{"type":"string"},"GQ":{"type":"string"},"ER":{"type":"string"},"EE":{"type":"string"},"ET":{"type":"string"},"FK":{"type":"string"},"FO":{"type":"string"},"FJ":{"type":"string"},"FI":{"type":"string"},"FR":{"type":"string"},"GF":{"type":"string"},"PF":{"type":"string"},"TF":{"type":"string"},"GA":{"type":"string"},"GM":{"type":"string"},"GE":{"type":"string"},"DE":{"type":"string"},"GH":{"type":"string"},"GI":{"type":"string"},"GR":{"type":"string"},"GL":{"type":"string"},"GD":{"type":"string"},"GP":{"type":"string"},"GU":{"type":"string"},"GT":{"type":"string"},"GN":{"type":"string"},"GW":{"type":"string"},"GY":{"type":"string"},"HT":{"type":"string"},"HM":{"type":"string"},"VA":{"type":"string"},"HN":{"type":"string"},"HK":{"type":"string"},"HU":{"type":"string"},"IS":{"type":"string"},"IN":{"type":"string"},"ID":{"type":"string"},"IR":{"type":"string"},"IQ":{"type":"string"},"IE":{"type":"string"},"IL":{"type":"string"},"IT":{"type":"string"},"JM":{"type":"string"},"JP":{"type":"string"},"JO":{"type":"string"},"KZ":{"type":"string"},"KE":{"type":"string"},"KI":{"type":"string"},"KP":{"type":"string"},"KR":{"type":"string"},"KW":{"type":"string"},"KG":{"type":"string"},"LA":{"type":"string"},"LV":{"type":"string"},"LB":{"type":"string"},"LS":{"type":"string"},"LR":{"type":"string"},"LY":{"type":"string"},"LI":{"type":"string"},"LT":{"type":"string"},"LU":{"type":"string"},"MO":{"type":"string"},"MG":{"type":"string"},"MW":{"type":"string"},"MY":{"type":"string"},"MV":{"type":"string"},"ML":{"type":"string"},"MT":{"type":"string"},"MH":{"type":"string"},"MQ":{"type":"string"},"MR":{"type":"string"},"MU":{"type":"string"},"YT":{"type":"string"},"MX":{"type":"string"},"FM":{"type":"string"},"MD":{"type":"string"},"MC":{"type":"string"},"MN":{"type":"string"},"MS":{"type":"string"},"MA":{"type":"string"},"MZ":{"type":"string"},"MM":{"type":"string"},"NA":{"type":"string"},"NR":{"type":"string"},"NP":{"type":"string"},"NL":{"type":"string"},"NC":{"type":"string"},"NZ":{"type":"string"},"NI":{"type":"string"},"NE":{"type":"string"},"NG":{"type":"string"},"NU":{"type":"string"},"NF":{"type":"string"},"MK":{"type":"string"},"MP":{"type":"string"},"NO":{"type":"string"},"OM":{"type":"string"},"PK":{"type":"string"},"PW":{"type":"string"},"PS":{"type":"string"},"PA":{"type":"string"},"PG":{"type":"string"},"PY":{"type":"string"},"PE":{"type":"string"},"PH":{"type":"string"},"PN":{"type":"string"},"PL":{"type":"string"},"PT":{"type":"string"},"PR":{"type":"string"},"QA":{"type":"string"},"RE":{"type":"string"},"RO":{"type":"string"},"RU":{"type":"string"},"RW":{"type":"string"},"SH":{"type":"string"},"KN":{"type":"string"},"LC":{"type":"string"},"PM":{"type":"string"},"VC":{"type":"string"},"WS":{"type":"string"},"SM":{"type":"string"},"ST":{"type":"string"},"SA":{"type":"string"},"SN":{"type":"string"},"SC":{"type":"string"},"SL":{"type":"string"},"SG":{"type":"string"},"SK":{"type":"string"},"SI":{"type":"string"},"SB":{"type":"string"},"SO":{"type":"string"},"ZA":{"type":"string"},"GS":{"type":"string"},"ES":{"type":"string"},"LK":{"type":"string"},"SD":{"type":"string"},"SR":{"type":"string"},"SJ":{"type":"string"},"SZ":{"type":"string"},"SE":{"type":"string"},"CH":{"type":"string"},"SY":{"type":"string"},"TW":{"type":"string"},"TJ":{"type":"string"},"TZ":{"type":"string"},"TH":{"type":"string"},"TL":{"type":"string"},"TG":{"type":"string"},"TK":{"type":"string"},"TO":{"type":"string"},"TT":{"type":"string"},"TN":{"type":"string"},"TR":{"type":"string"},"TM":{"type":"string"},"TC":{"type":"string"},"TV":{"type":"string"},"UG":{"type":"string"},"UA":{"type":"string"},"AE":{"type":"string"},"GB":{"type":"string"},"US":{"type":"string"},"UM":{"type":"string"},"UY":{"type":"string"},"UZ":{"type":"string"},"VU":{"type":"string"},"VE":{"type":"string"},"VN":{"type":"string"},"VG":{"type":"string"},"VI":{"type":"string"},"WF":{"type":"string"},"EH":{"type":"string"},"YE":{"type":"string"},"ZM":{"type":"string"},"ZW":{"type":"string"},"AX":{"type":"string"},"BQ":{"type":"string"},"CW":{"type":"string"},"GG":{"type":"string"},"IM":{"type":"string"},"JE":{"type":"string"},"ME":{"type":"string"},"BL":{"type":"string"},"MF":{"type":"string"},"RS":{"type":"string"},"SX":{"type":"string"},"SS":{"type":"string"},"XK":{"type":"string"}},"additionalProperties":false,"description":"Geographic segmentation information for the QR code in the JSON format `{[COUNTRY]: https://example.com }`."},"rules":{"type":"array","nullable":true,"items":{"type":"object","properties":{"attribute":{"type":"string","enum":["device","country","utm_source","utm_medium","utm_campaign","referrer","language"]},"operator":{"type":"string","enum":["equals","not_equals"]},"value":{"type":"string","minLength":1,"maxLength":190},"url":{"type":"string"}},"required":["attribute","operator","value","url"]},"maxItems":20,"description":"Smart rules for conditional destination routing by request attribute."},"doIndex":{"type":"boolean","default":false,"description":"Allow search engines to index your QR code. The default is `false` if not provided. Learn more: https://codeqr.link/noindex"},"webhookIds":{"type":"array","nullable":true,"items":{"type":"string"},"description":"An array of webhook IDs to trigger when the link is clicked. These webhooks will receive click event data."},"publicStats":{"type":"boolean","default":false,"description":"If the statistics of the QR code are publicly accessible."},"tagId":{"type":"string","nullable":true,"description":"The unique ID of the tag assigned to the QR code. This field is deprecated – use `tagIds` instead.","deprecated":true},"tagIds":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}],"description":"The unique IDs of the tags assigned to the QR code.","example":["clux0rgak00011..."]},"tagNames":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}],"description":"The unique name of the tags assigned to the QR code (case insensitive)."},"folderId":{"type":"string","nullable":true,"description":"The unique ID of the folder assigned to the QR code. Omit or set to null for no folder."},"comments":{"type":"string","nullable":true,"description":"The comments for the QR code."},"flexible":{"type":"boolean","default":false,"description":"If the QR code is flexible."},"filled":{"type":"boolean","default":false,"description":"If the QR code is filled."},"static":{"type":"boolean","default":false,"description":"If the QR code is static."},"useDisplayPage":{"type":"boolean","default":true,"description":"For dynamic QR codes with phone, email, or sms types: if true (default), shows an action page with buttons. If false, redirects directly to tel:/mailto:/sms: URI."},"type":{"type":"string","enum":["url","text","email","wifi","phone","vcard","crypto","sms","facetime","geo","latlog","pix","whatsapp"],"description":"The type of content of the QR code."},"contentStatic":{"type":"string","nullable":true,"description":"The static content of the QR code."},"text":{"type":"string","nullable":true,"description":"The text of the QR code."},"email":{"type":"object","nullable":true,"additionalProperties":{"type":"string"},"description":"The email information of the QR code."},"wifi":{"type":"object","nullable":true,"additionalProperties":{"type":"string"},"description":"The WiFi information of the QR code."},"url":{"type":"string","nullable":true,"description":"The destination URL of the QR code."},"phone":{"type":"string","nullable":true,"description":"The phone number of the QR code."},"vcard":{"type":"object","nullable":true,"additionalProperties":{"type":"string"},"description":"The vCard information of the QR code."},"crypto":{"type":"object","nullable":true,"additionalProperties":{"type":"string"},"description":"The cryptocurrency information of the QR code."},"sms":{"type":"object","nullable":true,"additionalProperties":{"type":"string"},"description":"The SMS information of the QR code."},"whatsapp":{"type":"object","nullable":true,"properties":{"number":{"type":"string","pattern":"^[1-9]\\d{7,14}$"},"message":{"type":"string","maxLength":1000}},"required":["number"],"description":"The WhatsApp click-to-chat info: E.164 number (digits only) and optional prefilled message."},"facetime":{"type":"object","nullable":true,"additionalProperties":{"type":"string"},"description":"The FaceTime information of the QR code."},"latlog":{"type":"object","nullable":true,"additionalProperties":{"type":"string"},"description":"The latitude and longitude information of the QR code."},"logo":{"type":"string","nullable":true,"description":"The logo of the QR code."},"bgColor":{"type":"string","default":"#ffffff","description":"The background color of the QR code (hex or CSS keyword). Invalid values are coerced to default."},"fgColor":{"type":"string","default":"#000000","description":"The foreground color of the QR code (hex or CSS keyword). Invalid values are coerced to default."},"size":{"type":"number","default":1024,"description":"The size of the QR code."},"level":{"type":"string","default":"M","description":"The level of error correction of the QR code."},"showLogo":{"type":"boolean","default":true,"description":"If the logo should be displayed in the QR code."},"src":{"type":"string","nullable":true,"description":"The image URL of the QR code."},"height":{"type":"number","description":"Logo height in pixels. When omitted, a proportional size is used based on the QR code size (about 10–20% depending on size)."},"width":{"type":"number","description":"Logo width in pixels. When omitted, a proportional size is used based on the QR code size (about 10–20% depending on size)."},"excavate":{"type":"boolean","default":true,"description":"If the QR code should have excavated areas."},"pattern":{"type":"string","default":"default","description":"The pattern of the modules of the QR code."},"shape":{"type":"string","default":"none","description":"The shape of the design around the QR code (none, square, circle)."},"frame":{"type":"string","default":"none","description":"The type of frame of the QR code (e.g. none, frame-1, frame-2, frame-3, frame-5, frame-6). frame-5/6 are top-bar variants. Unknown ids fall back to no frame at render."},"frameColor":{"type":"string","default":"#000000","description":"The color of the frame (hex or CSS keyword). Invalid values are coerced to default."},"frameText":{"type":"string","maxLength":200,"description":"Label text rendered inside the frame (e.g. \"SCAN ME\", a product SKU). Maximum 200 characters. Word-wraps to multiple lines at larger sizes; the frame bar grows vertically to fit.","example":"SKU-LH905461"},"frameTextColor":{"type":"string","nullable":true,"description":"Color of the frame label text (hex `#RRGGBB`, `#RGB`, `#RRGGBBAA`, or a CSS keyword from the allowlist). When omitted, a contrasting color is derived automatically from `frameColor`.","example":"#ffffff"},"frameTextStyles":{"type":"object","nullable":true,"properties":{"weight":{"type":"string","enum":["normal","bold"],"description":"Font weight of the frame label text. `bold` renders at SVG `font-weight=\"700\"`, `normal` at `400`.","example":"bold"},"style":{"type":"string","enum":["normal","italic"],"description":"Font style of the frame label text. `italic` applies `font-style=\"italic\"`.","example":"normal"},"family":{"type":"string","enum":["sans","sans-condensed","serif","serif-elegant","mono"],"description":"Font family used for the frame label text. `sans` = Arial / Helvetica (default). `sans-condensed` = Arial Narrow. `serif` = Georgia / Times New Roman. `serif-elegant` = Palatino Linotype / Book Antiqua. `mono` = Courier New. Values resolve to safe system font stacks on the rendered SVG.","example":"sans"},"size":{"type":"string","enum":["s","m","l","xl"],"description":"Font size preset for the frame label. `s` = 60 viewBox units, `m` = 89.1 (default), `l` = 120, `xl` = 150. Larger sizes grow the frame bar vertically to fit. Extremely long text auto-shrinks to keep within 4 lines (floor 48).","example":"m"}},"additionalProperties":false,"description":"Typographic styles applied to the frame label text. Every key is enum-gated — unknown keys or out-of-enum values are rejected to prevent SVG attribute injection. All fields are optional; omitted keys fall back to the default (normal weight, normal style, sans family, medium size).","example":{"weight":"bold","size":"xl","family":"sans"}},"preRedirection":{"type":"boolean","default":false,"description":"If the QR code has pre-redirection."},"pageId":{"type":"string","nullable":true,"description":"The ID of the page to redirect to before the QR code destination."},"pageUrl":{"type":"string","nullable":true,"description":"The URL of the page to redirect to before the QR code destination."},"isFormMandatory":{"type":"boolean","default":false,"description":"If the form is mandatory for the page."}}}}}},"responses":{"200":{"description":"The updated QR Code","content":{"application/json":{"schema":{"$ref":"#/components/schemas/QrCodeSchema"}}}},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"403":{"$ref":"#/components/responses/403"},"404":{"$ref":"#/components/responses/404"},"409":{"$ref":"#/components/responses/409"},"410":{"$ref":"#/components/responses/410"},"422":{"$ref":"#/components/responses/422"},"429":{"$ref":"#/components/responses/429"},"500":{"$ref":"#/components/responses/500"}}},"delete":{"operationId":"deleteQRCode","x-speakeasy-name-override":"delete","x-speakeasy-max-method-params":1,"summary":"Delete a QR Code","description":"Delete a QR Code for the authenticated workspace.","tags":["QR Codes"],"security":[{"token":[]}],"parameters":[{"in":"path","name":"qrcodeId","description":"The id of the QR Code to delete. You may use either `qrcodeId` (obtained via `/qrcodes/info` endpoint) or `externalId` prefixed with `ext_`.","schema":{"type":"string","description":"The id of the QR Code to delete. You may use either `qrcodeId` (obtained via `/qrcodes/info` endpoint) or `externalId` prefixed with `ext_`."},"required":true}],"responses":{"200":{"description":"The deleted QR Code ID.","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","description":"The ID of the QR Code."}},"required":["id"]}}}},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"403":{"$ref":"#/components/responses/403"},"404":{"$ref":"#/components/responses/404"},"409":{"$ref":"#/components/responses/409"},"410":{"$ref":"#/components/responses/410"},"422":{"$ref":"#/components/responses/422"},"429":{"$ref":"#/components/responses/429"},"500":{"$ref":"#/components/responses/500"}}}},"/qrcodes/bulk":{"post":{"operationId":"bulkCreateQRCodes","x-speakeasy-name-override":"createMany","summary":"Bulk create QR Codes","description":"Bulk create up to 100 QR Codes for the authenticated workspace.","tags":["QR Codes"],"security":[{"token":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"domain":{"type":"string","description":"The domain of the QR code. If not provided, the main domain of the project will be used (or `codeqr.link` if the project does not have domains)."},"key":{"type":"string","description":"The slug of the QR code. If not provided, a random slug of 7 characters will be generated."},"prefix":{"type":"string","description":"The prefix for the randomly generated key. If provided, the key will be prefixed with this value."},"externalId":{"type":"string","nullable":true,"minLength":1,"maxLength":255,"description":"This is the ID of the QR code in your database. If defined, it can be used to identify the QR code in the future. It must be prefixed with `ext_` when passed as a query parameter.","example":"123456"},"trackConversion":{"type":"boolean","default":false,"description":"If should track conversions for the QR code."},"templateId":{"type":"string","nullable":true,"description":"ID of a QR code (in the same project) marked as a template. Its customization fields (colors, logo, pattern, shape, frame) will be applied to the new QR code unless explicitly overridden."},"useAsTemplate":{"type":"boolean","default":false,"description":"Whether this QR code should be used as a reusable template."},"archived":{"type":"boolean","default":false,"description":"If the QR code is archived."},"expiresAt":{"type":"string","nullable":true,"format":"date-time","description":"The date and time the QR code will expire in ISO-8601 format. Must be in the future."},"expiredUrl":{"type":"string","nullable":true,"description":"The URL to redirect when the QR code expires."},"password":{"type":"string","nullable":true,"description":"The password required to access the destination URL of the QR code."},"proxy":{"type":"boolean","default":false,"description":"If the QR code uses the custom link preview feature."},"title":{"type":"string","nullable":true,"description":"The title of the QR code generated via `api.codeqr.io/metatags`. Will be used for custom link preview if `proxy` is true."},"description":{"type":"string","nullable":true,"description":"The description of the QR code generated via `api.codeqr.io/metatags`. Will be used for custom link preview if `proxy` is true."},"image":{"type":"string","nullable":true,"description":"The image of the QR code generated via `api.codeqr.io/metatags`. Will be used for custom link preview if `proxy` is true."},"rewrite":{"type":"boolean","default":false,"description":"If the QR code uses link cloaking."},"ios":{"type":"string","nullable":true,"description":"The destination URL for iOS for the QR code for device targeting iOS."},"android":{"type":"string","nullable":true,"description":"The destination URL for Android for the QR code for device targeting Android."},"geo":{"type":"object","nullable":true,"properties":{"AF":{"type":"string"},"AL":{"type":"string"},"DZ":{"type":"string"},"AS":{"type":"string"},"AD":{"type":"string"},"AO":{"type":"string"},"AI":{"type":"string"},"AQ":{"type":"string"},"AG":{"type":"string"},"AR":{"type":"string"},"AM":{"type":"string"},"AW":{"type":"string"},"AU":{"type":"string"},"AT":{"type":"string"},"AZ":{"type":"string"},"BS":{"type":"string"},"BH":{"type":"string"},"BD":{"type":"string"},"BB":{"type":"string"},"BY":{"type":"string"},"BE":{"type":"string"},"BZ":{"type":"string"},"BJ":{"type":"string"},"BM":{"type":"string"},"BT":{"type":"string"},"BO":{"type":"string"},"BA":{"type":"string"},"BW":{"type":"string"},"BV":{"type":"string"},"BR":{"type":"string"},"IO":{"type":"string"},"BN":{"type":"string"},"BG":{"type":"string"},"BF":{"type":"string"},"BI":{"type":"string"},"KH":{"type":"string"},"CM":{"type":"string"},"CA":{"type":"string"},"CV":{"type":"string"},"KY":{"type":"string"},"CF":{"type":"string"},"TD":{"type":"string"},"CL":{"type":"string"},"CN":{"type":"string"},"CX":{"type":"string"},"CC":{"type":"string"},"CO":{"type":"string"},"KM":{"type":"string"},"CG":{"type":"string"},"CD":{"type":"string"},"CK":{"type":"string"},"CR":{"type":"string"},"CI":{"type":"string"},"HR":{"type":"string"},"CU":{"type":"string"},"CY":{"type":"string"},"CZ":{"type":"string"},"DK":{"type":"string"},"DJ":{"type":"string"},"DM":{"type":"string"},"DO":{"type":"string"},"EC":{"type":"string"},"EG":{"type":"string"},"SV":{"type":"string"},"GQ":{"type":"string"},"ER":{"type":"string"},"EE":{"type":"string"},"ET":{"type":"string"},"FK":{"type":"string"},"FO":{"type":"string"},"FJ":{"type":"string"},"FI":{"type":"string"},"FR":{"type":"string"},"GF":{"type":"string"},"PF":{"type":"string"},"TF":{"type":"string"},"GA":{"type":"string"},"GM":{"type":"string"},"GE":{"type":"string"},"DE":{"type":"string"},"GH":{"type":"string"},"GI":{"type":"string"},"GR":{"type":"string"},"GL":{"type":"string"},"GD":{"type":"string"},"GP":{"type":"string"},"GU":{"type":"string"},"GT":{"type":"string"},"GN":{"type":"string"},"GW":{"type":"string"},"GY":{"type":"string"},"HT":{"type":"string"},"HM":{"type":"string"},"VA":{"type":"string"},"HN":{"type":"string"},"HK":{"type":"string"},"HU":{"type":"string"},"IS":{"type":"string"},"IN":{"type":"string"},"ID":{"type":"string"},"IR":{"type":"string"},"IQ":{"type":"string"},"IE":{"type":"string"},"IL":{"type":"string"},"IT":{"type":"string"},"JM":{"type":"string"},"JP":{"type":"string"},"JO":{"type":"string"},"KZ":{"type":"string"},"KE":{"type":"string"},"KI":{"type":"string"},"KP":{"type":"string"},"KR":{"type":"string"},"KW":{"type":"string"},"KG":{"type":"string"},"LA":{"type":"string"},"LV":{"type":"string"},"LB":{"type":"string"},"LS":{"type":"string"},"LR":{"type":"string"},"LY":{"type":"string"},"LI":{"type":"string"},"LT":{"type":"string"},"LU":{"type":"string"},"MO":{"type":"string"},"MG":{"type":"string"},"MW":{"type":"string"},"MY":{"type":"string"},"MV":{"type":"string"},"ML":{"type":"string"},"MT":{"type":"string"},"MH":{"type":"string"},"MQ":{"type":"string"},"MR":{"type":"string"},"MU":{"type":"string"},"YT":{"type":"string"},"MX":{"type":"string"},"FM":{"type":"string"},"MD":{"type":"string"},"MC":{"type":"string"},"MN":{"type":"string"},"MS":{"type":"string"},"MA":{"type":"string"},"MZ":{"type":"string"},"MM":{"type":"string"},"NA":{"type":"string"},"NR":{"type":"string"},"NP":{"type":"string"},"NL":{"type":"string"},"NC":{"type":"string"},"NZ":{"type":"string"},"NI":{"type":"string"},"NE":{"type":"string"},"NG":{"type":"string"},"NU":{"type":"string"},"NF":{"type":"string"},"MK":{"type":"string"},"MP":{"type":"string"},"NO":{"type":"string"},"OM":{"type":"string"},"PK":{"type":"string"},"PW":{"type":"string"},"PS":{"type":"string"},"PA":{"type":"string"},"PG":{"type":"string"},"PY":{"type":"string"},"PE":{"type":"string"},"PH":{"type":"string"},"PN":{"type":"string"},"PL":{"type":"string"},"PT":{"type":"string"},"PR":{"type":"string"},"QA":{"type":"string"},"RE":{"type":"string"},"RO":{"type":"string"},"RU":{"type":"string"},"RW":{"type":"string"},"SH":{"type":"string"},"KN":{"type":"string"},"LC":{"type":"string"},"PM":{"type":"string"},"VC":{"type":"string"},"WS":{"type":"string"},"SM":{"type":"string"},"ST":{"type":"string"},"SA":{"type":"string"},"SN":{"type":"string"},"SC":{"type":"string"},"SL":{"type":"string"},"SG":{"type":"string"},"SK":{"type":"string"},"SI":{"type":"string"},"SB":{"type":"string"},"SO":{"type":"string"},"ZA":{"type":"string"},"GS":{"type":"string"},"ES":{"type":"string"},"LK":{"type":"string"},"SD":{"type":"string"},"SR":{"type":"string"},"SJ":{"type":"string"},"SZ":{"type":"string"},"SE":{"type":"string"},"CH":{"type":"string"},"SY":{"type":"string"},"TW":{"type":"string"},"TJ":{"type":"string"},"TZ":{"type":"string"},"TH":{"type":"string"},"TL":{"type":"string"},"TG":{"type":"string"},"TK":{"type":"string"},"TO":{"type":"string"},"TT":{"type":"string"},"TN":{"type":"string"},"TR":{"type":"string"},"TM":{"type":"string"},"TC":{"type":"string"},"TV":{"type":"string"},"UG":{"type":"string"},"UA":{"type":"string"},"AE":{"type":"string"},"GB":{"type":"string"},"US":{"type":"string"},"UM":{"type":"string"},"UY":{"type":"string"},"UZ":{"type":"string"},"VU":{"type":"string"},"VE":{"type":"string"},"VN":{"type":"string"},"VG":{"type":"string"},"VI":{"type":"string"},"WF":{"type":"string"},"EH":{"type":"string"},"YE":{"type":"string"},"ZM":{"type":"string"},"ZW":{"type":"string"},"AX":{"type":"string"},"BQ":{"type":"string"},"CW":{"type":"string"},"GG":{"type":"string"},"IM":{"type":"string"},"JE":{"type":"string"},"ME":{"type":"string"},"BL":{"type":"string"},"MF":{"type":"string"},"RS":{"type":"string"},"SX":{"type":"string"},"SS":{"type":"string"},"XK":{"type":"string"}},"additionalProperties":false,"description":"Geographic segmentation information for the QR code in the JSON format `{[COUNTRY]: https://example.com }`."},"rules":{"type":"array","nullable":true,"items":{"type":"object","properties":{"attribute":{"type":"string","enum":["device","country","utm_source","utm_medium","utm_campaign","referrer","language"]},"operator":{"type":"string","enum":["equals","not_equals"]},"value":{"type":"string","minLength":1,"maxLength":190},"url":{"type":"string"}},"required":["attribute","operator","value","url"]},"maxItems":20,"description":"Smart rules for conditional destination routing by request attribute."},"doIndex":{"type":"boolean","default":false,"description":"Allow search engines to index your QR code. The default is `false` if not provided. Learn more: https://codeqr.link/noindex"},"webhookIds":{"type":"array","nullable":true,"items":{"type":"string"},"description":"An array of webhook IDs to trigger when the link is clicked. These webhooks will receive click event data."},"publicStats":{"type":"boolean","default":false,"description":"If the statistics of the QR code are publicly accessible."},"tagId":{"type":"string","nullable":true,"description":"The unique ID of the tag assigned to the QR code. This field is deprecated – use `tagIds` instead.","deprecated":true},"tagIds":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}],"description":"The unique IDs of the tags assigned to the QR code.","example":["clux0rgak00011..."]},"tagNames":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}],"description":"The unique name of the tags assigned to the QR code (case insensitive)."},"folderId":{"type":"string","nullable":true,"description":"The unique ID of the folder assigned to the QR code. Omit or set to null for no folder."},"comments":{"type":"string","nullable":true,"description":"The comments for the QR code."},"flexible":{"type":"boolean","default":false,"description":"If the QR code is flexible."},"filled":{"type":"boolean","default":false,"description":"If the QR code is filled."},"static":{"type":"boolean","default":false,"description":"If the QR code is static."},"useDisplayPage":{"type":"boolean","default":true,"description":"For dynamic QR codes with phone, email, or sms types: if true (default), shows an action page with buttons. If false, redirects directly to tel:/mailto:/sms: URI."},"type":{"type":"string","enum":["url","text","email","wifi","phone","vcard","crypto","sms","facetime","geo","latlog","pix","whatsapp"],"description":"The type of content of the QR code."},"contentStatic":{"type":"string","nullable":true,"description":"The static content of the QR code."},"text":{"type":"string","nullable":true,"description":"The text of the QR code."},"email":{"type":"object","nullable":true,"additionalProperties":{"type":"string"},"description":"The email information of the QR code."},"wifi":{"type":"object","nullable":true,"additionalProperties":{"type":"string"},"description":"The WiFi information of the QR code."},"url":{"type":"string","nullable":true,"description":"The destination URL of the QR code."},"phone":{"type":"string","nullable":true,"description":"The phone number of the QR code."},"vcard":{"type":"object","nullable":true,"additionalProperties":{"type":"string"},"description":"The vCard information of the QR code."},"crypto":{"type":"object","nullable":true,"additionalProperties":{"type":"string"},"description":"The cryptocurrency information of the QR code."},"sms":{"type":"object","nullable":true,"additionalProperties":{"type":"string"},"description":"The SMS information of the QR code."},"whatsapp":{"type":"object","nullable":true,"properties":{"number":{"type":"string","pattern":"^[1-9]\\d{7,14}$"},"message":{"type":"string","maxLength":1000}},"required":["number"],"description":"The WhatsApp click-to-chat info: E.164 number (digits only) and optional prefilled message."},"facetime":{"type":"object","nullable":true,"additionalProperties":{"type":"string"},"description":"The FaceTime information of the QR code."},"latlog":{"type":"object","nullable":true,"additionalProperties":{"type":"string"},"description":"The latitude and longitude information of the QR code."},"logo":{"type":"string","nullable":true,"description":"The logo of the QR code."},"bgColor":{"type":"string","default":"#ffffff","description":"The background color of the QR code (hex or CSS keyword). Invalid values are coerced to default."},"fgColor":{"type":"string","default":"#000000","description":"The foreground color of the QR code (hex or CSS keyword). Invalid values are coerced to default."},"size":{"type":"number","default":1024,"description":"The size of the QR code."},"level":{"type":"string","default":"M","description":"The level of error correction of the QR code."},"showLogo":{"type":"boolean","default":true,"description":"If the logo should be displayed in the QR code."},"src":{"type":"string","nullable":true,"description":"The image URL of the QR code."},"height":{"type":"number","description":"Logo height in pixels. When omitted, a proportional size is used based on the QR code size (about 10–20% depending on size)."},"width":{"type":"number","description":"Logo width in pixels. When omitted, a proportional size is used based on the QR code size (about 10–20% depending on size)."},"excavate":{"type":"boolean","default":true,"description":"If the QR code should have excavated areas."},"pattern":{"type":"string","default":"default","description":"The pattern of the modules of the QR code."},"shape":{"type":"string","default":"none","description":"The shape of the design around the QR code (none, square, circle)."},"frame":{"type":"string","default":"none","description":"The type of frame of the QR code (e.g. none, frame-1, frame-2, frame-3, frame-5, frame-6). frame-5/6 are top-bar variants. Unknown ids fall back to no frame at render."},"frameColor":{"type":"string","default":"#000000","description":"The color of the frame (hex or CSS keyword). Invalid values are coerced to default."},"frameText":{"type":"string","maxLength":200,"description":"Label text rendered inside the frame (e.g. \"SCAN ME\", a product SKU). Maximum 200 characters. Word-wraps to multiple lines at larger sizes; the frame bar grows vertically to fit.","example":"SKU-LH905461"},"frameTextColor":{"type":"string","nullable":true,"description":"Color of the frame label text (hex `#RRGGBB`, `#RGB`, `#RRGGBBAA`, or a CSS keyword from the allowlist). When omitted, a contrasting color is derived automatically from `frameColor`.","example":"#ffffff"},"frameTextStyles":{"type":"object","nullable":true,"properties":{"weight":{"type":"string","enum":["normal","bold"],"description":"Font weight of the frame label text. `bold` renders at SVG `font-weight=\"700\"`, `normal` at `400`.","example":"bold"},"style":{"type":"string","enum":["normal","italic"],"description":"Font style of the frame label text. `italic` applies `font-style=\"italic\"`.","example":"normal"},"family":{"type":"string","enum":["sans","sans-condensed","serif","serif-elegant","mono"],"description":"Font family used for the frame label text. `sans` = Arial / Helvetica (default). `sans-condensed` = Arial Narrow. `serif` = Georgia / Times New Roman. `serif-elegant` = Palatino Linotype / Book Antiqua. `mono` = Courier New. Values resolve to safe system font stacks on the rendered SVG.","example":"sans"},"size":{"type":"string","enum":["s","m","l","xl"],"description":"Font size preset for the frame label. `s` = 60 viewBox units, `m` = 89.1 (default), `l` = 120, `xl` = 150. Larger sizes grow the frame bar vertically to fit. Extremely long text auto-shrinks to keep within 4 lines (floor 48).","example":"m"}},"additionalProperties":false,"description":"Typographic styles applied to the frame label text. Every key is enum-gated — unknown keys or out-of-enum values are rejected to prevent SVG attribute injection. All fields are optional; omitted keys fall back to the default (normal weight, normal style, sans family, medium size).","example":{"weight":"bold","size":"xl","family":"sans"}},"preRedirection":{"type":"boolean","default":false,"description":"If the QR code has pre-redirection."},"pageId":{"type":"string","nullable":true,"description":"The ID of the page to redirect to before the QR code destination."},"pageUrl":{"type":"string","nullable":true,"description":"The URL of the page to redirect to before the QR code destination."},"isFormMandatory":{"type":"boolean","default":false,"description":"If the form is mandatory for the page."}},"required":["type"]}}}}},"responses":{"200":{"description":"The created QR Codes","content":{"application/json":{"schema":{"type":"array","items":{"oneOf":[{"$ref":"#/components/schemas/QrCodeSchema"},{"$ref":"#/components/schemas/QrCodeErrorSchema"}]}}}}},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"403":{"$ref":"#/components/responses/403"},"404":{"$ref":"#/components/responses/404"},"409":{"$ref":"#/components/responses/409"},"410":{"$ref":"#/components/responses/410"},"422":{"$ref":"#/components/responses/422"},"429":{"$ref":"#/components/responses/429"},"500":{"$ref":"#/components/responses/500"}}},"delete":{"operationId":"bulkDeleteQRCodes","x-speakeasy-name-override":"deleteMany","summary":"Bulk delete QR Codes","description":"Bulk delete up to 100 QR Codes for the authenticated workspace.","tags":["QR Codes"],"security":[{"token":[]}],"parameters":[{"in":"query","name":"qrcodeIds","description":"Comma-separated list of QR Code IDs to delete. Maximum of 100 IDs. Non-existing IDs will be ignored.","explode":false,"style":"form","schema":{"type":"array","items":{"type":"string"},"description":"Comma-separated list of QR Code IDs to delete. Maximum of 100 IDs. Non-existing IDs will be ignored.","example":["clux0rgak00011...","clux0rgak00022..."]},"required":true}],"responses":{"200":{"description":"The deleted QR Codes count.","content":{"application/json":{"schema":{"type":"object","properties":{"deletedCount":{"type":"number","description":"The number of QR Codes deleted."}},"required":["deletedCount"]}}}},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"403":{"$ref":"#/components/responses/403"},"404":{"$ref":"#/components/responses/404"},"409":{"$ref":"#/components/responses/409"},"410":{"$ref":"#/components/responses/410"},"422":{"$ref":"#/components/responses/422"},"429":{"$ref":"#/components/responses/429"},"500":{"$ref":"#/components/responses/500"}}}},"/qrcodes/upsert":{"patch":{"operationId":"upsertQRCode","x-speakeasy-name-override":"upsert","x-speakeasy-usage-example":true,"summary":"Upsert a QR Code","description":"Upsert a QR Code for the authenticated workspace by its URL. If a QR Code with the same URL already exists, return it (or update it if there are any changes). Otherwise, a new QR Code will be created.","tags":["QR Codes"],"security":[{"token":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"domain":{"type":"string","description":"The domain of the QR code. If not provided, the main domain of the project will be used (or `codeqr.link` if the project does not have domains)."},"key":{"type":"string","description":"The slug of the QR code. If not provided, a random slug of 7 characters will be generated."},"prefix":{"type":"string","description":"The prefix for the randomly generated key. If provided, the key will be prefixed with this value."},"externalId":{"type":"string","nullable":true,"minLength":1,"maxLength":255,"description":"This is the ID of the QR code in your database. If defined, it can be used to identify the QR code in the future. It must be prefixed with `ext_` when passed as a query parameter.","example":"123456"},"trackConversion":{"type":"boolean","default":false,"description":"If should track conversions for the QR code."},"templateId":{"type":"string","nullable":true,"description":"ID of a QR code (in the same project) marked as a template. Its customization fields (colors, logo, pattern, shape, frame) will be applied to the new QR code unless explicitly overridden."},"useAsTemplate":{"type":"boolean","default":false,"description":"Whether this QR code should be used as a reusable template."},"archived":{"type":"boolean","default":false,"description":"If the QR code is archived."},"expiresAt":{"type":"string","nullable":true,"format":"date-time","description":"The date and time the QR code will expire in ISO-8601 format. Must be in the future."},"expiredUrl":{"type":"string","nullable":true,"description":"The URL to redirect when the QR code expires."},"password":{"type":"string","nullable":true,"description":"The password required to access the destination URL of the QR code."},"proxy":{"type":"boolean","default":false,"description":"If the QR code uses the custom link preview feature."},"title":{"type":"string","nullable":true,"description":"The title of the QR code generated via `api.codeqr.io/metatags`. Will be used for custom link preview if `proxy` is true."},"description":{"type":"string","nullable":true,"description":"The description of the QR code generated via `api.codeqr.io/metatags`. Will be used for custom link preview if `proxy` is true."},"image":{"type":"string","nullable":true,"description":"The image of the QR code generated via `api.codeqr.io/metatags`. Will be used for custom link preview if `proxy` is true."},"rewrite":{"type":"boolean","default":false,"description":"If the QR code uses link cloaking."},"ios":{"type":"string","nullable":true,"description":"The destination URL for iOS for the QR code for device targeting iOS."},"android":{"type":"string","nullable":true,"description":"The destination URL for Android for the QR code for device targeting Android."},"geo":{"type":"object","nullable":true,"properties":{"AF":{"type":"string"},"AL":{"type":"string"},"DZ":{"type":"string"},"AS":{"type":"string"},"AD":{"type":"string"},"AO":{"type":"string"},"AI":{"type":"string"},"AQ":{"type":"string"},"AG":{"type":"string"},"AR":{"type":"string"},"AM":{"type":"string"},"AW":{"type":"string"},"AU":{"type":"string"},"AT":{"type":"string"},"AZ":{"type":"string"},"BS":{"type":"string"},"BH":{"type":"string"},"BD":{"type":"string"},"BB":{"type":"string"},"BY":{"type":"string"},"BE":{"type":"string"},"BZ":{"type":"string"},"BJ":{"type":"string"},"BM":{"type":"string"},"BT":{"type":"string"},"BO":{"type":"string"},"BA":{"type":"string"},"BW":{"type":"string"},"BV":{"type":"string"},"BR":{"type":"string"},"IO":{"type":"string"},"BN":{"type":"string"},"BG":{"type":"string"},"BF":{"type":"string"},"BI":{"type":"string"},"KH":{"type":"string"},"CM":{"type":"string"},"CA":{"type":"string"},"CV":{"type":"string"},"KY":{"type":"string"},"CF":{"type":"string"},"TD":{"type":"string"},"CL":{"type":"string"},"CN":{"type":"string"},"CX":{"type":"string"},"CC":{"type":"string"},"CO":{"type":"string"},"KM":{"type":"string"},"CG":{"type":"string"},"CD":{"type":"string"},"CK":{"type":"string"},"CR":{"type":"string"},"CI":{"type":"string"},"HR":{"type":"string"},"CU":{"type":"string"},"CY":{"type":"string"},"CZ":{"type":"string"},"DK":{"type":"string"},"DJ":{"type":"string"},"DM":{"type":"string"},"DO":{"type":"string"},"EC":{"type":"string"},"EG":{"type":"string"},"SV":{"type":"string"},"GQ":{"type":"string"},"ER":{"type":"string"},"EE":{"type":"string"},"ET":{"type":"string"},"FK":{"type":"string"},"FO":{"type":"string"},"FJ":{"type":"string"},"FI":{"type":"string"},"FR":{"type":"string"},"GF":{"type":"string"},"PF":{"type":"string"},"TF":{"type":"string"},"GA":{"type":"string"},"GM":{"type":"string"},"GE":{"type":"string"},"DE":{"type":"string"},"GH":{"type":"string"},"GI":{"type":"string"},"GR":{"type":"string"},"GL":{"type":"string"},"GD":{"type":"string"},"GP":{"type":"string"},"GU":{"type":"string"},"GT":{"type":"string"},"GN":{"type":"string"},"GW":{"type":"string"},"GY":{"type":"string"},"HT":{"type":"string"},"HM":{"type":"string"},"VA":{"type":"string"},"HN":{"type":"string"},"HK":{"type":"string"},"HU":{"type":"string"},"IS":{"type":"string"},"IN":{"type":"string"},"ID":{"type":"string"},"IR":{"type":"string"},"IQ":{"type":"string"},"IE":{"type":"string"},"IL":{"type":"string"},"IT":{"type":"string"},"JM":{"type":"string"},"JP":{"type":"string"},"JO":{"type":"string"},"KZ":{"type":"string"},"KE":{"type":"string"},"KI":{"type":"string"},"KP":{"type":"string"},"KR":{"type":"string"},"KW":{"type":"string"},"KG":{"type":"string"},"LA":{"type":"string"},"LV":{"type":"string"},"LB":{"type":"string"},"LS":{"type":"string"},"LR":{"type":"string"},"LY":{"type":"string"},"LI":{"type":"string"},"LT":{"type":"string"},"LU":{"type":"string"},"MO":{"type":"string"},"MG":{"type":"string"},"MW":{"type":"string"},"MY":{"type":"string"},"MV":{"type":"string"},"ML":{"type":"string"},"MT":{"type":"string"},"MH":{"type":"string"},"MQ":{"type":"string"},"MR":{"type":"string"},"MU":{"type":"string"},"YT":{"type":"string"},"MX":{"type":"string"},"FM":{"type":"string"},"MD":{"type":"string"},"MC":{"type":"string"},"MN":{"type":"string"},"MS":{"type":"string"},"MA":{"type":"string"},"MZ":{"type":"string"},"MM":{"type":"string"},"NA":{"type":"string"},"NR":{"type":"string"},"NP":{"type":"string"},"NL":{"type":"string"},"NC":{"type":"string"},"NZ":{"type":"string"},"NI":{"type":"string"},"NE":{"type":"string"},"NG":{"type":"string"},"NU":{"type":"string"},"NF":{"type":"string"},"MK":{"type":"string"},"MP":{"type":"string"},"NO":{"type":"string"},"OM":{"type":"string"},"PK":{"type":"string"},"PW":{"type":"string"},"PS":{"type":"string"},"PA":{"type":"string"},"PG":{"type":"string"},"PY":{"type":"string"},"PE":{"type":"string"},"PH":{"type":"string"},"PN":{"type":"string"},"PL":{"type":"string"},"PT":{"type":"string"},"PR":{"type":"string"},"QA":{"type":"string"},"RE":{"type":"string"},"RO":{"type":"string"},"RU":{"type":"string"},"RW":{"type":"string"},"SH":{"type":"string"},"KN":{"type":"string"},"LC":{"type":"string"},"PM":{"type":"string"},"VC":{"type":"string"},"WS":{"type":"string"},"SM":{"type":"string"},"ST":{"type":"string"},"SA":{"type":"string"},"SN":{"type":"string"},"SC":{"type":"string"},"SL":{"type":"string"},"SG":{"type":"string"},"SK":{"type":"string"},"SI":{"type":"string"},"SB":{"type":"string"},"SO":{"type":"string"},"ZA":{"type":"string"},"GS":{"type":"string"},"ES":{"type":"string"},"LK":{"type":"string"},"SD":{"type":"string"},"SR":{"type":"string"},"SJ":{"type":"string"},"SZ":{"type":"string"},"SE":{"type":"string"},"CH":{"type":"string"},"SY":{"type":"string"},"TW":{"type":"string"},"TJ":{"type":"string"},"TZ":{"type":"string"},"TH":{"type":"string"},"TL":{"type":"string"},"TG":{"type":"string"},"TK":{"type":"string"},"TO":{"type":"string"},"TT":{"type":"string"},"TN":{"type":"string"},"TR":{"type":"string"},"TM":{"type":"string"},"TC":{"type":"string"},"TV":{"type":"string"},"UG":{"type":"string"},"UA":{"type":"string"},"AE":{"type":"string"},"GB":{"type":"string"},"US":{"type":"string"},"UM":{"type":"string"},"UY":{"type":"string"},"UZ":{"type":"string"},"VU":{"type":"string"},"VE":{"type":"string"},"VN":{"type":"string"},"VG":{"type":"string"},"VI":{"type":"string"},"WF":{"type":"string"},"EH":{"type":"string"},"YE":{"type":"string"},"ZM":{"type":"string"},"ZW":{"type":"string"},"AX":{"type":"string"},"BQ":{"type":"string"},"CW":{"type":"string"},"GG":{"type":"string"},"IM":{"type":"string"},"JE":{"type":"string"},"ME":{"type":"string"},"BL":{"type":"string"},"MF":{"type":"string"},"RS":{"type":"string"},"SX":{"type":"string"},"SS":{"type":"string"},"XK":{"type":"string"}},"additionalProperties":false,"description":"Geographic segmentation information for the QR code in the JSON format `{[COUNTRY]: https://example.com }`."},"rules":{"type":"array","nullable":true,"items":{"type":"object","properties":{"attribute":{"type":"string","enum":["device","country","utm_source","utm_medium","utm_campaign","referrer","language"]},"operator":{"type":"string","enum":["equals","not_equals"]},"value":{"type":"string","minLength":1,"maxLength":190},"url":{"type":"string"}},"required":["attribute","operator","value","url"]},"maxItems":20,"description":"Smart rules for conditional destination routing by request attribute."},"doIndex":{"type":"boolean","default":false,"description":"Allow search engines to index your QR code. The default is `false` if not provided. Learn more: https://codeqr.link/noindex"},"webhookIds":{"type":"array","nullable":true,"items":{"type":"string"},"description":"An array of webhook IDs to trigger when the link is clicked. These webhooks will receive click event data."},"publicStats":{"type":"boolean","default":false,"description":"If the statistics of the QR code are publicly accessible."},"tagId":{"type":"string","nullable":true,"description":"The unique ID of the tag assigned to the QR code. This field is deprecated – use `tagIds` instead.","deprecated":true},"tagIds":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}],"description":"The unique IDs of the tags assigned to the QR code.","example":["clux0rgak00011..."]},"tagNames":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}],"description":"The unique name of the tags assigned to the QR code (case insensitive)."},"folderId":{"type":"string","nullable":true,"description":"The unique ID of the folder assigned to the QR code. Omit or set to null for no folder."},"comments":{"type":"string","nullable":true,"description":"The comments for the QR code."},"flexible":{"type":"boolean","default":false,"description":"If the QR code is flexible."},"filled":{"type":"boolean","default":false,"description":"If the QR code is filled."},"static":{"type":"boolean","default":false,"description":"If the QR code is static."},"useDisplayPage":{"type":"boolean","default":true,"description":"For dynamic QR codes with phone, email, or sms types: if true (default), shows an action page with buttons. If false, redirects directly to tel:/mailto:/sms: URI."},"type":{"type":"string","enum":["url","text","email","wifi","phone","vcard","crypto","sms","facetime","geo","latlog","pix","whatsapp"],"description":"The type of content of the QR code."},"contentStatic":{"type":"string","nullable":true,"description":"The static content of the QR code."},"text":{"type":"string","nullable":true,"description":"The text of the QR code."},"email":{"type":"object","nullable":true,"additionalProperties":{"type":"string"},"description":"The email information of the QR code."},"wifi":{"type":"object","nullable":true,"additionalProperties":{"type":"string"},"description":"The WiFi information of the QR code."},"url":{"type":"string","nullable":true,"description":"The destination URL of the QR code."},"phone":{"type":"string","nullable":true,"description":"The phone number of the QR code."},"vcard":{"type":"object","nullable":true,"additionalProperties":{"type":"string"},"description":"The vCard information of the QR code."},"crypto":{"type":"object","nullable":true,"additionalProperties":{"type":"string"},"description":"The cryptocurrency information of the QR code."},"sms":{"type":"object","nullable":true,"additionalProperties":{"type":"string"},"description":"The SMS information of the QR code."},"whatsapp":{"type":"object","nullable":true,"properties":{"number":{"type":"string","pattern":"^[1-9]\\d{7,14}$"},"message":{"type":"string","maxLength":1000}},"required":["number"],"description":"The WhatsApp click-to-chat info: E.164 number (digits only) and optional prefilled message."},"facetime":{"type":"object","nullable":true,"additionalProperties":{"type":"string"},"description":"The FaceTime information of the QR code."},"latlog":{"type":"object","nullable":true,"additionalProperties":{"type":"string"},"description":"The latitude and longitude information of the QR code."},"logo":{"type":"string","nullable":true,"description":"The logo of the QR code."},"bgColor":{"type":"string","default":"#ffffff","description":"The background color of the QR code (hex or CSS keyword). Invalid values are coerced to default."},"fgColor":{"type":"string","default":"#000000","description":"The foreground color of the QR code (hex or CSS keyword). Invalid values are coerced to default."},"size":{"type":"number","default":1024,"description":"The size of the QR code."},"level":{"type":"string","default":"M","description":"The level of error correction of the QR code."},"showLogo":{"type":"boolean","default":true,"description":"If the logo should be displayed in the QR code."},"src":{"type":"string","nullable":true,"description":"The image URL of the QR code."},"height":{"type":"number","description":"Logo height in pixels. When omitted, a proportional size is used based on the QR code size (about 10–20% depending on size)."},"width":{"type":"number","description":"Logo width in pixels. When omitted, a proportional size is used based on the QR code size (about 10–20% depending on size)."},"excavate":{"type":"boolean","default":true,"description":"If the QR code should have excavated areas."},"pattern":{"type":"string","default":"default","description":"The pattern of the modules of the QR code."},"shape":{"type":"string","default":"none","description":"The shape of the design around the QR code (none, square, circle)."},"frame":{"type":"string","default":"none","description":"The type of frame of the QR code (e.g. none, frame-1, frame-2, frame-3, frame-5, frame-6). frame-5/6 are top-bar variants. Unknown ids fall back to no frame at render."},"frameColor":{"type":"string","default":"#000000","description":"The color of the frame (hex or CSS keyword). Invalid values are coerced to default."},"frameText":{"type":"string","maxLength":200,"description":"Label text rendered inside the frame (e.g. \"SCAN ME\", a product SKU). Maximum 200 characters. Word-wraps to multiple lines at larger sizes; the frame bar grows vertically to fit.","example":"SKU-LH905461"},"frameTextColor":{"type":"string","nullable":true,"description":"Color of the frame label text (hex `#RRGGBB`, `#RGB`, `#RRGGBBAA`, or a CSS keyword from the allowlist). When omitted, a contrasting color is derived automatically from `frameColor`.","example":"#ffffff"},"frameTextStyles":{"type":"object","nullable":true,"properties":{"weight":{"type":"string","enum":["normal","bold"],"description":"Font weight of the frame label text. `bold` renders at SVG `font-weight=\"700\"`, `normal` at `400`.","example":"bold"},"style":{"type":"string","enum":["normal","italic"],"description":"Font style of the frame label text. `italic` applies `font-style=\"italic\"`.","example":"normal"},"family":{"type":"string","enum":["sans","sans-condensed","serif","serif-elegant","mono"],"description":"Font family used for the frame label text. `sans` = Arial / Helvetica (default). `sans-condensed` = Arial Narrow. `serif` = Georgia / Times New Roman. `serif-elegant` = Palatino Linotype / Book Antiqua. `mono` = Courier New. Values resolve to safe system font stacks on the rendered SVG.","example":"sans"},"size":{"type":"string","enum":["s","m","l","xl"],"description":"Font size preset for the frame label. `s` = 60 viewBox units, `m` = 89.1 (default), `l` = 120, `xl` = 150. Larger sizes grow the frame bar vertically to fit. Extremely long text auto-shrinks to keep within 4 lines (floor 48).","example":"m"}},"additionalProperties":false,"description":"Typographic styles applied to the frame label text. Every key is enum-gated — unknown keys or out-of-enum values are rejected to prevent SVG attribute injection. All fields are optional; omitted keys fall back to the default (normal weight, normal style, sans family, medium size).","example":{"weight":"bold","size":"xl","family":"sans"}},"preRedirection":{"type":"boolean","default":false,"description":"If the QR code has pre-redirection."},"pageId":{"type":"string","nullable":true,"description":"The ID of the page to redirect to before the QR code destination."},"pageUrl":{"type":"string","nullable":true,"description":"The URL of the page to redirect to before the QR code destination."},"isFormMandatory":{"type":"boolean","default":false,"description":"If the form is mandatory for the page."}},"required":["type"]}}}},"responses":{"200":{"description":"The upserted QR Code","content":{"application/json":{"schema":{"$ref":"#/components/schemas/QrCodeSchema"}}}},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"403":{"$ref":"#/components/responses/403"},"404":{"$ref":"#/components/responses/404"},"409":{"$ref":"#/components/responses/409"},"410":{"$ref":"#/components/responses/410"},"422":{"$ref":"#/components/responses/422"},"429":{"$ref":"#/components/responses/429"},"500":{"$ref":"#/components/responses/500"}}}},"/analytics":{"get":{"operationId":"retrieveAnalytics","x-speakeasy-name-override":"retrieve","summary":"Retrieve analytics for a link, a domain, or the authenticated workspace.","description":"Retrieve analytics for a link, a domain, or the authenticated workspace. The response type depends on the `event` and `type` query parameters.","tags":["Analytics"],"security":[{"token":[]}],"parameters":[{"in":"query","name":"event","description":"The type of event to retrieve analytics for. Defaults to 'analytics'.","schema":{"type":"string","enum":["clicks","leads","sales","scans","views","composite"],"default":"clicks","description":"The type of event to retrieve analytics for. Defaults to 'analytics'."}},{"in":"query","name":"groupBy","description":"The parameter to group the analytics data points by. Defaults to 'count' if undefined.","schema":{"type":"string","enum":["timeseries","clicks","count","totals","top_urls","top_links","top_qrcodes","top_pages","top_events","scans","views","country","city","region","devices","browsers","os","referers","referer_urls","trend_live","kpis","analytics","continents","countries","cities","clicks","scans","views","leads","sales","composite","utm_sources","utm_mediums","utm_campaigns","utm_contents","utm_terms"],"default":"count","description":"The parameter to group the analytics data points by. Defaults to 'count' if undefined."}},{"in":"query","name":"domain","description":"The domain of the short link.","schema":{"type":"string","description":"The domain of the short link."}},{"in":"query","name":"key","description":"The short link slug.","schema":{"type":"string","description":"The short link slug."}},{"in":"query","name":"linkId","description":"The unique ID of the short link on CodeQR.","schema":{"type":"string","description":"The unique ID of the short link on CodeQR."}},{"in":"query","name":"qrcodeId","description":"The unique ID of the QR code on CodeQR.","schema":{"type":"string","description":"The unique ID of the QR code on CodeQR."}},{"in":"query","name":"pageId","description":"The unique ID of the page on CodeQR.","schema":{"type":"string","description":"The unique ID of the page on CodeQR."}},{"in":"query","name":"externalId","description":"This is the ID of the link in the your database. Must be prefixed with 'ext_' when passed as a query parameter.","schema":{"type":"string","description":"This is the ID of the link in the your database. Must be prefixed with 'ext_' when passed as a query parameter."}},{"in":"query","name":"interval","description":"The interval to retrieve analytics for. Takes precedence over start and end.","schema":{"type":"string","enum":["1h","24h","7d","30d","90d","ytd","1y","all","all_unfiltered"],"description":"The interval to retrieve analytics for. Takes precedence over start and end."}},{"in":"query","name":"start","description":"The start date and time when to retrieve analytics from.","schema":{"type":"string","description":"The start date and time when to retrieve analytics from."}},{"in":"query","name":"end","description":"The end date and time when to retrieve analytics from. If not provided, defaults to the current date.","schema":{"type":"string","description":"The end date and time when to retrieve analytics from. If not provided, defaults to the current date."}},{"in":"query","name":"timezone","description":"The IANA time zone code for aligning timeseries granularity (e.g. America/New_York). Defaults to UTC.","schema":{"type":"string","description":"The IANA time zone code for aligning timeseries granularity (e.g. America/New_York). Defaults to UTC.","example":"America/New_York","default":"UTC"}},{"in":"query","name":"continent","description":"The continent to retrieve analytics for.","schema":{"$ref":"#/components/schemas/continentCode"}},{"in":"query","name":"country","description":"The country to retrieve analytics for.","schema":{"$ref":"#/components/schemas/countryCode"}},{"in":"query","name":"city","description":"The city to retrieve analytics for.","schema":{"type":"string","description":"The city to retrieve analytics for.","example":"New York"}},{"in":"query","name":"device","description":"The device to retrieve analytics for.","schema":{"type":"string","description":"The device to retrieve analytics for.","example":"Desktop"}},{"in":"query","name":"browser","description":"The browser to retrieve analytics for.","schema":{"type":"string","description":"The browser to retrieve analytics for.","example":"Chrome"}},{"in":"query","name":"os","description":"The OS to retrieve analytics for.","schema":{"type":"string","description":"The OS to retrieve analytics for.","example":"Windows"}},{"in":"query","name":"referer","description":"The referer to retrieve analytics for.","schema":{"type":"string","description":"The referer to retrieve analytics for.","example":"google.com"}},{"in":"query","name":"url","description":"The URL to retrieve analytics for.","schema":{"type":"string","description":"The URL to retrieve analytics for."}},{"in":"query","name":"excludeRoot","description":"Whether to exclude the root link from the response.","schema":{"type":"boolean","description":"Whether to exclude the root link from the response."}},{"in":"query","name":"root","description":"Filter for root domains. If true, filter for domains only. If false, filter for links only. If undefined, return both.","schema":{"type":"boolean","description":"Filter for root domains. If true, filter for domains only. If false, filter for links only. If undefined, return both."}},{"in":"query","name":"tagId","description":"The tag ID to retrieve analytics for.","schema":{"type":"string","description":"The tag ID to retrieve analytics for."}},{"in":"query","name":"utm_source","description":"UTM source to filter analytics by.","schema":{"type":"string","description":"UTM source to filter analytics by."}},{"in":"query","name":"utm_medium","description":"UTM medium to filter analytics by.","schema":{"type":"string","description":"UTM medium to filter analytics by."}},{"in":"query","name":"utm_campaign","description":"UTM campaign to filter analytics by.","schema":{"type":"string","description":"UTM campaign to filter analytics by."}},{"in":"query","name":"utm_content","description":"UTM content to filter analytics by.","schema":{"type":"string","description":"UTM content to filter analytics by."}},{"in":"query","name":"utm_term","description":"UTM term to filter analytics by.","schema":{"type":"string","description":"UTM term to filter analytics by."}},{"in":"query","name":"type","description":"The type of analytics to retrieve.","schema":{"type":"string","description":"The type of analytics to retrieve."}},{"in":"query","name":"types","description":"The types of analytics to retrieve.","schema":{"type":"string","description":"The types of analytics to retrieve."}}],"responses":{"200":{"description":"Analytics data","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/AnalyticsCount"},{"type":"array","items":{"$ref":"#/components/schemas/AnalyticsTimeseries"},"title":"AnalyticsTimeseries"},{"type":"array","items":{"$ref":"#/components/schemas/AnalyticsContinents"},"title":"AnalyticsContinents"},{"type":"array","items":{"$ref":"#/components/schemas/AnalyticsCountries"},"title":"AnalyticsCountries"},{"type":"array","items":{"$ref":"#/components/schemas/AnalyticsRegions"},"title":"AnalyticsRegions"},{"type":"array","items":{"$ref":"#/components/schemas/AnalyticsCities"},"title":"AnalyticsCities"},{"type":"array","items":{"$ref":"#/components/schemas/AnalyticsDevices"},"title":"AnalyticsDevices"},{"type":"array","items":{"$ref":"#/components/schemas/AnalyticsBrowsers"},"title":"AnalyticsBrowsers"},{"type":"array","items":{"$ref":"#/components/schemas/AnalyticsOS"},"title":"AnalyticsOS"},{"type":"array","items":{"$ref":"#/components/schemas/AnalyticsReferers"},"title":"AnalyticsReferers"},{"type":"array","items":{"$ref":"#/components/schemas/AnalyticsRefererUrls"},"title":"AnalyticsRefererUrls"},{"type":"array","items":{"$ref":"#/components/schemas/AnalyticsTopLinks"},"title":"AnalyticsTopLinks"},{"type":"array","items":{"$ref":"#/components/schemas/AnalyticsTopUrls"},"title":"AnalyticsTopUrls"}]}}}},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"403":{"$ref":"#/components/responses/403"},"404":{"$ref":"#/components/responses/404"},"409":{"$ref":"#/components/responses/409"},"410":{"$ref":"#/components/responses/410"},"422":{"$ref":"#/components/responses/422"},"429":{"$ref":"#/components/responses/429"},"500":{"$ref":"#/components/responses/500"}}}},"/events":{"get":{"operationId":"listEvents","x-speakeasy-name-override":"list","summary":"Retrieve a list of events","description":"Retrieve a paginated list of events for the authenticated workspace.","tags":["Events"],"security":[{"token":[]}],"parameters":[{"in":"query","name":"event","description":"The type of event to retrieve analytics for. Defaults to 'clicks'.","schema":{"type":"string","enum":["clicks","leads","sales","scans","views"],"default":"clicks","description":"The type of event to retrieve analytics for. Defaults to 'clicks'."}},{"in":"query","name":"domain","description":"The domain of the short link.","schema":{"type":"string","description":"The domain of the short link."}},{"in":"query","name":"key","description":"The short link slug.","schema":{"type":"string","description":"The short link slug."}},{"in":"query","name":"linkId","description":"The unique ID of the short link on CodeQR.","schema":{"type":"string","description":"The unique ID of the short link on CodeQR."}},{"in":"query","name":"qrcodeId","description":"The unique ID of the QR code on CodeQR.","schema":{"type":"string","description":"The unique ID of the QR code on CodeQR."}},{"in":"query","name":"pageId","description":"The unique ID of the page on CodeQR.","schema":{"type":"string","description":"The unique ID of the page on CodeQR."}},{"in":"query","name":"externalId","description":"This is the ID of the link in the your database. Must be prefixed with 'ext_' when passed as a query parameter.","schema":{"type":"string","description":"This is the ID of the link in the your database. Must be prefixed with 'ext_' when passed as a query parameter."}},{"in":"query","name":"interval","description":"The interval to retrieve events for. Takes precedence over start and end. If undefined, defaults to 24h.","schema":{"type":"string","enum":["24h","7d","30d","90d","ytd","1y","all"],"default":"24h","description":"The interval to retrieve events for. Takes precedence over start and end. If undefined, defaults to 24h."}},{"in":"query","name":"start","description":"The start date and time when to retrieve analytics from.","schema":{"type":"string","description":"The start date and time when to retrieve analytics from."}},{"in":"query","name":"end","description":"The end date and time when to retrieve analytics from. If not provided, defaults to the current date.","schema":{"type":"string","description":"The end date and time when to retrieve analytics from. If not provided, defaults to the current date."}},{"in":"query","name":"timezone","description":"The IANA time zone code for aligning timeseries granularity (e.g. America/New_York). Defaults to UTC.","schema":{"type":"string","description":"The IANA time zone code for aligning timeseries granularity (e.g. America/New_York). Defaults to UTC.","example":"America/New_York","default":"UTC"}},{"in":"query","name":"continent","description":"The continent to retrieve analytics for.","schema":{"$ref":"#/components/schemas/continentCode"}},{"in":"query","name":"country","description":"The country to retrieve analytics for.","schema":{"$ref":"#/components/schemas/countryCode"}},{"in":"query","name":"city","description":"The city to retrieve analytics for.","schema":{"type":"string","description":"The city to retrieve analytics for.","example":"New York"}},{"in":"query","name":"device","description":"The device to retrieve analytics for.","schema":{"type":"string","description":"The device to retrieve analytics for.","example":"Desktop"}},{"in":"query","name":"browser","description":"The browser to retrieve analytics for.","schema":{"type":"string","description":"The browser to retrieve analytics for.","example":"Chrome"}},{"in":"query","name":"os","description":"The OS to retrieve analytics for.","schema":{"type":"string","description":"The OS to retrieve analytics for.","example":"Windows"}},{"in":"query","name":"referer","description":"The referer to retrieve analytics for.","schema":{"type":"string","description":"The referer to retrieve analytics for.","example":"google.com"}},{"in":"query","name":"url","description":"The URL to retrieve analytics for.","schema":{"type":"string","description":"The URL to retrieve analytics for."}},{"in":"query","name":"excludeRoot","description":"Whether to exclude the root link from the response.","schema":{"type":"boolean","description":"Whether to exclude the root link from the response."}},{"in":"query","name":"root","description":"Filter for root domains. If true, filter for domains only. If false, filter for links only. If undefined, return both.","schema":{"type":"boolean","description":"Filter for root domains. If true, filter for domains only. If false, filter for links only. If undefined, return both."}},{"in":"query","name":"tagId","description":"The tag ID to retrieve analytics for.","schema":{"type":"string","description":"The tag ID to retrieve analytics for."}},{"in":"query","name":"utm_source","description":"UTM source to filter analytics by.","schema":{"type":"string","description":"UTM source to filter analytics by."}},{"in":"query","name":"utm_medium","description":"UTM medium to filter analytics by.","schema":{"type":"string","description":"UTM medium to filter analytics by."}},{"in":"query","name":"utm_campaign","description":"UTM campaign to filter analytics by.","schema":{"type":"string","description":"UTM campaign to filter analytics by."}},{"in":"query","name":"utm_content","description":"UTM content to filter analytics by.","schema":{"type":"string","description":"UTM content to filter analytics by."}},{"in":"query","name":"utm_term","description":"UTM term to filter analytics by.","schema":{"type":"string","description":"UTM term to filter analytics by."}},{"in":"query","name":"type","description":"The type of analytics to retrieve.","schema":{"type":"string","description":"The type of analytics to retrieve."}},{"in":"query","name":"types","description":"The types of analytics to retrieve.","schema":{"type":"string","description":"The types of analytics to retrieve."}},{"in":"query","name":"page","schema":{"type":"number","default":1}},{"in":"query","name":"limit","schema":{"type":"number","default":100}},{"in":"query","name":"order","schema":{"type":"string","enum":["asc","desc"],"default":"desc"}},{"in":"query","name":"sortBy","schema":{"type":"string","enum":["timestamp"],"default":"timestamp"}}],"responses":{"200":{"description":"A list of events","content":{"application/json":{"schema":{"type":"array","items":{"oneOf":[{"$ref":"#/components/schemas/ClickEvent"},{"$ref":"#/components/schemas/LeadEvent"},{"$ref":"#/components/schemas/SaleEvent"}],"discriminator":{"propertyName":"event","mapping":{"click":"#/components/schemas/ClickEvent","lead":"#/components/schemas/LeadEvent","sale":"#/components/schemas/SaleEvent"}}}}}}},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"403":{"$ref":"#/components/responses/403"},"404":{"$ref":"#/components/responses/404"},"409":{"$ref":"#/components/responses/409"},"410":{"$ref":"#/components/responses/410"},"422":{"$ref":"#/components/responses/422"},"429":{"$ref":"#/components/responses/429"},"500":{"$ref":"#/components/responses/500"}}}},"/tags":{"post":{"operationId":"createTag","summary":"Create a new tag","description":"Create a new tag for the authenticated project.","tags":["Tags"],"security":[{"token":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","nullable":true,"description":"The name of the tag to create."},"tag":{"type":"string","nullable":true,"description":"The name of the tag to create."},"color":{"type":"string","enum":["red","yellow","green","blue","purple","pink","brown"],"description":"The color of the tag. If not provided, a random color will be used from the list: red, yellow, green, blue, purple, pink, brown."}}}}}},"responses":{"201":{"description":"The created tag","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TagSchema"}}}},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"403":{"$ref":"#/components/responses/403"},"404":{"$ref":"#/components/responses/404"},"409":{"$ref":"#/components/responses/409"},"410":{"$ref":"#/components/responses/410"},"422":{"$ref":"#/components/responses/422"},"429":{"$ref":"#/components/responses/429"},"500":{"$ref":"#/components/responses/500"}}},"get":{"operationId":"getTags","summary":"Retrieve a list of tags","description":"Retrieve a list of tags for the authenticated workspace.","tags":["Tags"],"security":[{"token":[]}],"parameters":[{"in":"query","name":"sortBy","description":"The field to sort the tags by.","schema":{"type":"string","enum":["name","createdAt"],"default":"name","description":"The field to sort the tags by."}},{"in":"query","name":"sortOrder","description":"The order to sort the tags by.","schema":{"type":"string","enum":["asc","desc"],"default":"asc","description":"The order to sort the tags by."}},{"in":"query","name":"search","description":"The search term to filter the tags by.","schema":{"type":"string","description":"The search term to filter the tags by."}},{"in":"query","name":"ids","description":"IDs of tags to filter by.","schema":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}],"description":"IDs of tags to filter by."}},{"in":"query","name":"page","description":"The page number for pagination.","schema":{"type":"number","minimum":0,"exclusiveMinimum":true,"default":1,"description":"The page number for pagination.","example":1}},{"in":"query","name":"pageSize","description":"The number of items per page.","schema":{"type":"number","minimum":0,"exclusiveMinimum":true,"maximum":100,"default":100,"description":"The number of items per page.","example":50}}],"responses":{"200":{"description":"A list of tags","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/TagSchema"}}}}},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"403":{"$ref":"#/components/responses/403"},"404":{"$ref":"#/components/responses/404"},"409":{"$ref":"#/components/responses/409"},"410":{"$ref":"#/components/responses/410"},"422":{"$ref":"#/components/responses/422"},"429":{"$ref":"#/components/responses/429"},"500":{"$ref":"#/components/responses/500"}}}},"/tags/{id}":{"put":{"operationId":"updateTag","x-speakeasy-name-override":"update","x-speakeasy-max-method-params":2,"summary":"Update a tag","description":"Update a tag in the workspace.","tags":["Tags"],"security":[{"token":[]}],"parameters":[{"in":"path","name":"id","description":"The ID of the tag to update.","schema":{"type":"string","description":"The ID of the tag to update."},"required":true}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1},"color":{"type":"string","enum":["red","yellow","green","blue","purple","pink","brown"],"description":"The color of the tag"}},"required":["name"]}}}},"responses":{"200":{"description":"The updated tag.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TagSchema"}}}},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"403":{"$ref":"#/components/responses/403"},"404":{"$ref":"#/components/responses/404"},"409":{"$ref":"#/components/responses/409"},"410":{"$ref":"#/components/responses/410"},"422":{"$ref":"#/components/responses/422"},"429":{"$ref":"#/components/responses/429"},"500":{"$ref":"#/components/responses/500"}}},"delete":{"operationId":"deleteTag","summary":"Delete a tag","description":"Delete a tag from the workspace. All existing links will still work, but they will no longer be associated with this tag.","tags":["Tags"],"security":[{"token":[]}],"parameters":[{"in":"path","name":"id","description":"The ID of the tag to delete.","schema":{"type":"string","description":"The ID of the tag to delete."},"required":true}],"responses":{"200":{"description":"The deleted tag ID.","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","description":"The ID of the deleted tag."}},"required":["id"]}}}},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"403":{"$ref":"#/components/responses/403"},"404":{"$ref":"#/components/responses/404"},"409":{"$ref":"#/components/responses/409"},"410":{"$ref":"#/components/responses/410"},"422":{"$ref":"#/components/responses/422"},"429":{"$ref":"#/components/responses/429"},"500":{"$ref":"#/components/responses/500"}}}},"/folders":{"post":{"operationId":"createFolder","summary":"Create a folder","description":"Create a folder for the authenticated workspace.","tags":["Folders"],"security":[{"token":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":3,"maxLength":190,"description":"The name of the folder."},"accessLevel":{"type":"string","nullable":true,"enum":["write","read",null],"default":null,"description":"The access level of the folder within the workspace."}},"required":["name"]}}}},"responses":{"201":{"description":"The created folder","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FolderSchema"}}}},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"403":{"$ref":"#/components/responses/403"},"404":{"$ref":"#/components/responses/404"},"409":{"$ref":"#/components/responses/409"},"410":{"$ref":"#/components/responses/410"},"422":{"$ref":"#/components/responses/422"},"429":{"$ref":"#/components/responses/429"},"500":{"$ref":"#/components/responses/500"}}},"get":{"operationId":"listFolders","summary":"Retrieve a list of folders","description":"Retrieve a list of folders for the authenticated workspace.","tags":["Folders"],"security":[{"token":[]}],"parameters":[{"in":"query","name":"search","description":"The search term to filter the folders by.","schema":{"type":"string","description":"The search term to filter the folders by."}},{"in":"query","name":"page","description":"The page number for pagination.","schema":{"type":"number","minimum":0,"exclusiveMinimum":true,"default":1,"description":"The page number for pagination.","example":1}},{"in":"query","name":"pageSize","description":"The number of items per page.","schema":{"type":"number","minimum":0,"exclusiveMinimum":true,"maximum":50,"default":50,"description":"The number of items per page.","example":50}}],"responses":{"200":{"description":"A list of folders","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/FolderSchema"}}}}},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"403":{"$ref":"#/components/responses/403"},"404":{"$ref":"#/components/responses/404"},"409":{"$ref":"#/components/responses/409"},"410":{"$ref":"#/components/responses/410"},"422":{"$ref":"#/components/responses/422"},"429":{"$ref":"#/components/responses/429"},"500":{"$ref":"#/components/responses/500"}}}},"/folders/{id}":{"patch":{"operationId":"updateFolder","summary":"Update a folder","description":"Update a folder in the workspace.","tags":["Folders"],"security":[{"token":[]}],"parameters":[{"in":"path","name":"id","description":"The ID of the folder to update.","schema":{"type":"string","description":"The ID of the folder to update."},"required":true}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":3,"maxLength":190,"description":"The name of the folder."},"accessLevel":{"type":"string","nullable":true,"enum":["write","read",null],"default":null,"description":"The access level of the folder within the workspace."}}}}}},"responses":{"200":{"description":"The updated folder.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FolderSchema"}}}},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"403":{"$ref":"#/components/responses/403"},"404":{"$ref":"#/components/responses/404"},"409":{"$ref":"#/components/responses/409"},"410":{"$ref":"#/components/responses/410"},"422":{"$ref":"#/components/responses/422"},"429":{"$ref":"#/components/responses/429"},"500":{"$ref":"#/components/responses/500"}}},"delete":{"operationId":"deleteFolder","summary":"Delete a folder","description":"Delete a folder from the workspace. All existing links will still work, but they will no longer be associated with this folder.","tags":["Folders"],"security":[{"token":[]}],"parameters":[{"in":"path","name":"id","description":"The ID of the folder to delete.","schema":{"type":"string","description":"The ID of the folder to delete."},"required":true}],"responses":{"200":{"description":"The deleted folder ID.","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","description":"The ID of the deleted folder."}},"required":["id"]}}}},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"403":{"$ref":"#/components/responses/403"},"404":{"$ref":"#/components/responses/404"},"409":{"$ref":"#/components/responses/409"},"410":{"$ref":"#/components/responses/410"},"422":{"$ref":"#/components/responses/422"},"429":{"$ref":"#/components/responses/429"},"500":{"$ref":"#/components/responses/500"}}}},"/domains":{"post":{"operationId":"createDomain","x-speakeasy-name-override":"create","summary":"Create a domain","description":"Create a domain for the authenticated workspace.","tags":["Domains"],"security":[{"token":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"slug":{"type":"string","minLength":1,"description":"Name of the domain.","example":"acme.com"},"target":{"type":"string","nullable":true,"description":"The target URL to redirect to when accessing the domain root.","example":"https://acme.com"},"type":{"type":"string","enum":["redirect","rewrite"],"default":"redirect","description":"The behavior type for the domain root redirect."},"expiredUrl":{"type":"string","nullable":true,"description":"Redirect users to a specific URL when any link under this domain has expired.","example":"https://acme.com/expired"},"archived":{"type":"boolean","default":false,"description":"Whether to archive this domain. `false` will unarchive a previously archived domain.","example":false},"placeholder":{"type":"string","nullable":true,"default":"https://codeqr.io/help/article/what-is-codeqr","description":"Provide context to your teammates in the link creation modal by showing them an example of a link to be shortened.","example":"https://codeqr.io/help/article/what-is-codeqr"}},"required":["slug"]}}}},"responses":{"201":{"description":"The domain was created.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DomainSchema"}}}},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"403":{"$ref":"#/components/responses/403"},"404":{"$ref":"#/components/responses/404"},"409":{"$ref":"#/components/responses/409"},"410":{"$ref":"#/components/responses/410"},"422":{"$ref":"#/components/responses/422"},"429":{"$ref":"#/components/responses/429"},"500":{"$ref":"#/components/responses/500"}}},"get":{"operationId":"listDomains","x-speakeasy-name-override":"list","x-speakeasy-pagination":{"type":"offsetLimit","inputs":[{"name":"page","in":"parameters","type":"page"},{"name":"pageSize","in":"parameters","type":"limit"}],"outputs":{"results":"$"}},"summary":"Retrieve a list of domains","description":"Retrieve a list of domains associated with the authenticated workspace.","tags":["Domains"],"security":[{"token":[]}],"parameters":[{"in":"query","name":"archived","description":"Whether to include archived domains in the response. Defaults to `false` if not provided.","schema":{"type":"boolean","default":"false","description":"Whether to include archived domains in the response. Defaults to `false` if not provided."}},{"in":"query","name":"search","description":"The search term to filter the domains by.","schema":{"type":"string","description":"The search term to filter the domains by."}},{"in":"query","name":"page","description":"The page number for pagination.","schema":{"type":"number","minimum":0,"exclusiveMinimum":true,"default":1,"description":"The page number for pagination.","example":1}},{"in":"query","name":"pageSize","description":"The number of items per page.","schema":{"type":"number","minimum":0,"exclusiveMinimum":true,"maximum":50,"default":50,"description":"The number of items per page.","example":50}}],"responses":{"200":{"description":"The domains were retrieved.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/DomainSchema"}}}}},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"403":{"$ref":"#/components/responses/403"},"404":{"$ref":"#/components/responses/404"},"409":{"$ref":"#/components/responses/409"},"410":{"$ref":"#/components/responses/410"},"422":{"$ref":"#/components/responses/422"},"429":{"$ref":"#/components/responses/429"},"500":{"$ref":"#/components/responses/500"}}}},"/domains/{slug}":{"patch":{"operationId":"updateDomain","x-speakeasy-name-override":"update","x-speakeasy-max-method-params":2,"summary":"Update a domain","description":"Update a domain for the authenticated workspace.","tags":["Domains"],"security":[{"token":[]}],"parameters":[{"in":"path","name":"slug","description":"The domain name.","schema":{"type":"string","description":"The domain name.","example":"acme.com"},"required":true}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"slug":{"type":"string","minLength":1,"description":"Name of the domain.","example":"acme.com"},"target":{"type":"string","nullable":true,"description":"The target URL to redirect to when accessing the domain root.","example":"https://acme.com"},"type":{"type":"string","enum":["redirect","rewrite"],"default":"redirect","description":"The behavior type for the domain root redirect."},"expiredUrl":{"type":"string","nullable":true,"description":"Redirect users to a specific URL when any link under this domain has expired.","example":"https://acme.com/expired"},"archived":{"type":"boolean","default":false,"description":"Whether to archive this domain. `false` will unarchive a previously archived domain.","example":false},"placeholder":{"type":"string","nullable":true,"default":"https://codeqr.io/help/article/what-is-codeqr","description":"Provide context to your teammates in the link creation modal by showing them an example of a link to be shortened.","example":"https://codeqr.io/help/article/what-is-codeqr"}}}}}},"responses":{"200":{"description":"The domain was updated.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DomainSchema"}}}},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"403":{"$ref":"#/components/responses/403"},"404":{"$ref":"#/components/responses/404"},"409":{"$ref":"#/components/responses/409"},"410":{"$ref":"#/components/responses/410"},"422":{"$ref":"#/components/responses/422"},"429":{"$ref":"#/components/responses/429"},"500":{"$ref":"#/components/responses/500"}}},"delete":{"operationId":"deleteDomain","x-speakeasy-name-override":"delete","x-speakeasy-max-method-params":1,"summary":"Delete a domain","description":"Delete a domain from a workspace. It cannot be undone. This will also delete all the links associated with the domain.","tags":["Domains"],"security":[{"token":[]}],"parameters":[{"in":"path","name":"slug","description":"The domain name.","schema":{"type":"string","description":"The domain name.","example":"acme.com"},"required":true}],"responses":{"200":{"description":"The domain was deleted.","content":{"application/json":{"schema":{"type":"object","properties":{"slug":{"type":"string","description":"The domain name.","example":"acme.com"}},"required":["slug"]}}}},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"403":{"$ref":"#/components/responses/403"},"404":{"$ref":"#/components/responses/404"},"409":{"$ref":"#/components/responses/409"},"410":{"$ref":"#/components/responses/410"},"422":{"$ref":"#/components/responses/422"},"429":{"$ref":"#/components/responses/429"},"500":{"$ref":"#/components/responses/500"}}}},"/track/lead":{"post":{"operationId":"trackLead","x-speakeasy-name-override":"lead","summary":"Track a lead","description":"Track a lead for a short link.","tags":["Track"],"security":[{"token":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"clickId":{"type":"string","description":"The unique ID of the click that the lead conversion event is attributed to. You can read this value from `cq_id` cookie. If an empty string is provided, CodeQR will try to find an existing customer with the provided `customerExternalId` and use the `clickId` from the customer if found."},"eventName":{"type":"string","minLength":1,"maxLength":255,"description":"The name of the lead event to track. Can also be used as a unique identifier to associate a given lead event for a customer for a subsequent sale event (via the `leadEventName` prop in `/track/sale`).","example":"Sign up"},"customerExternalId":{"type":"string","minLength":1,"maxLength":100,"description":"The unique ID of the customer in your system. Will be used to identify and attribute all future events to this customer."},"customerName":{"type":"string","nullable":true,"maxLength":100,"default":null,"description":"The name of the customer. If not passed, a random name will be generated (e.g. “Big Red Caribou”)."},"customerEmail":{"type":"string","nullable":true,"format":"email","maxLength":100,"default":null,"description":"The email address of the customer."},"customerAvatar":{"type":"string","nullable":true,"default":null,"description":"The avatar URL of the customer."},"mode":{"type":"string","enum":["async","wait","deferred"],"default":"async","description":"The mode to use for tracking the lead event. `async` will not block the request; `wait` will block the request until the lead event is fully recorded in CodeQR; `deferred` will defer the lead event creation to a subsequent request."},"eventQuantity":{"type":"number","nullable":true,"description":"The numerical value associated with this lead event (e.g., number of provisioned seats in a free trial). If defined as N, the lead event will be tracked N times."},"metadata":{"type":"object","nullable":true,"additionalProperties":{},"default":null,"description":"Additional metadata to be stored with the lead event. Max 10,000 characters."}},"required":["clickId","eventName","customerExternalId"]}}}},"responses":{"200":{"description":"A lead was tracked.","content":{"application/json":{"schema":{"type":"object","properties":{"click":{"type":"object","properties":{"id":{"type":"string"}},"required":["id"]},"customer":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string","nullable":true},"email":{"type":"string","nullable":true},"avatar":{"type":"string","nullable":true}},"required":["id"]}},"required":["click","customer"]}}}},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"403":{"$ref":"#/components/responses/403"},"404":{"$ref":"#/components/responses/404"},"409":{"$ref":"#/components/responses/409"},"410":{"$ref":"#/components/responses/410"},"422":{"$ref":"#/components/responses/422"},"429":{"$ref":"#/components/responses/429"},"500":{"$ref":"#/components/responses/500"}}}},"/track/sale":{"post":{"operationId":"trackSale","x-speakeasy-name-override":"sale","summary":"Track a sale","description":"Track a sale for a short link.","tags":["Track"],"security":[{"token":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"customerExternalId":{"type":"string","minLength":1,"maxLength":100,"description":"The unique ID of the customer in your system. Will be used to identify and attribute all future events to this customer."},"amount":{"type":"integer","minimum":0,"description":"The amount of the sale in the smallest unit of `currency` — cents for two-decimal currencies, the full integer for zero-decimal ones (e.g. `1437` JPY), thousandths for three-decimal ones (e.g. `1437` KWD fils)."},"currency":{"type":"string","default":"usd","description":"The currency of the sale, as an ISO 4217 code. Reporting is always in USD: non-USD sales are converted at the exchange rate of the day the sale is recorded, and the original amount and currency are kept on the event. The rate is not re-applied later, so reported totals do not move with the exchange rate."},"eventName":{"type":"string","maxLength":255,"default":"Purchase","description":"The name of the sale event. Recommended format: `Invoice paid` or `Subscription created`.","example":"Invoice paid"},"paymentProcessor":{"type":"string","enum":["stripe","shopify","polar","paddle","revenuecat","custom","manual"],"default":"custom","description":"The payment processor via which the sale was made."},"invoiceId":{"type":"string","nullable":true,"default":null,"description":"The invoice ID of the sale. Can be used as a idempotency key – only one sale event can be recorded for a given invoice ID."},"metadata":{"type":"object","nullable":true,"additionalProperties":{},"default":null,"description":"Additional metadata to be stored with the sale event. Max 10,000 characters when stringified."},"leadEventName":{"type":"string","nullable":true,"default":null,"description":"The name of the lead event that occurred before the sale (case-sensitive). This is used to associate the sale event with a particular lead event (instead of the latest lead event for a link-customer combination, which is the default behavior). For direct sale tracking, this field can also be used to specify the lead event name.","example":"Cloned template 1481267"},"clickId":{"type":"string","nullable":true,"description":"[For direct sale tracking]: The unique ID of the click that the sale conversion event is attributed to. You can read this value from `cq_id` cookie."},"customerName":{"type":"string","nullable":true,"maxLength":100,"default":null,"description":"[For direct sale tracking]: The name of the customer. If not passed, a random name will be generated (e.g. “Big Red Caribou”)."},"customerEmail":{"type":"string","nullable":true,"format":"email","maxLength":100,"default":null,"description":"[For direct sale tracking]: The email address of the customer."},"customerAvatar":{"type":"string","nullable":true,"default":null,"description":"[For direct sale tracking]: The avatar URL of the customer."}},"required":["customerExternalId","amount"]}}}},"responses":{"200":{"description":"A sale was tracked.","content":{"application/json":{"schema":{"type":"object","properties":{"eventName":{"type":"string"},"customerId":{"type":"string"},"amount":{"type":"number"},"paymentProcessor":{"type":"string"},"invoiceId":{"type":"string","nullable":true},"currency":{"type":"string"},"metadata":{"type":"object","nullable":true,"additionalProperties":{}}},"required":["eventName","customerId","amount","paymentProcessor","invoiceId","currency","metadata"]}}}},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"403":{"$ref":"#/components/responses/403"},"404":{"$ref":"#/components/responses/404"},"409":{"$ref":"#/components/responses/409"},"410":{"$ref":"#/components/responses/410"},"422":{"$ref":"#/components/responses/422"},"429":{"$ref":"#/components/responses/429"},"500":{"$ref":"#/components/responses/500"}}}},"/projects":{"get":{"operationId":"getProjects","summary":"Retrieve a list of projects","description":"Retrieve a list of projects for the authenticated user.","tags":["Projects"],"security":[{"token":[]}],"responses":{"200":{"description":"A list of projects","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ProjectSchema"}}}}},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"403":{"$ref":"#/components/responses/403"},"404":{"$ref":"#/components/responses/404"},"409":{"$ref":"#/components/responses/409"},"410":{"$ref":"#/components/responses/410"},"422":{"$ref":"#/components/responses/422"},"429":{"$ref":"#/components/responses/429"},"500":{"$ref":"#/components/responses/500"}}}},"/projects/{projectSlug}":{"get":{"operationId":"getProject","summary":"Retrieve a project","description":"Retrieve a project for the authenticated user.","tags":["Projects"],"security":[{"token":[]}],"parameters":[{"in":"path","name":"projectSlug","description":"The slug for the project to retrieve. E.g. for `app.codeqr.io/acme`, the projectSlug is `acme`.","schema":{"type":"string","description":"The slug for the project to retrieve. E.g. for `app.codeqr.io/acme`, the projectSlug is `acme`."},"required":true}],"responses":{"200":{"description":"The retrieved project","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectSchema"}}}},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"403":{"$ref":"#/components/responses/403"},"404":{"$ref":"#/components/responses/404"},"409":{"$ref":"#/components/responses/409"},"410":{"$ref":"#/components/responses/410"},"422":{"$ref":"#/components/responses/422"},"429":{"$ref":"#/components/responses/429"},"500":{"$ref":"#/components/responses/500"}}}}},"components":{"securitySchemes":{"token":{"type":"http","description":"Default authentication mechanism","scheme":"bearer"}},"schemas":{"LinkSchema":{"type":"object","properties":{"id":{"type":"string","description":"The unique ID of the short link."},"domain":{"type":"string","description":"The domain of the short link. If not provided, the main domain of the project will be used (or `codeqr.link` if the project has no domains)."},"key":{"type":"string","description":"The slug of the short link. If not provided, a random 7-character slug will be generated."},"url":{"type":"string","format":"uri","description":"The destination URL of the short link."},"archived":{"type":"boolean","default":false,"description":"Whether the short link is archived."},"expiresAt":{"type":"string","nullable":true,"description":"The date and time when the short link will expire in ISO-8601 format. Must be in the future."},"expiredUrl":{"type":"string","nullable":true,"format":"uri","description":"The URL to redirect to when the short link expires."},"trackConversion":{"type":"boolean","default":false,"description":"[BETA] Whether to track conversions for the short link."},"flexible":{"type":"boolean","default":false,"description":"Whether the short link is flexible."},"doIndex":{"type":"boolean","default":false,"description":"Whether search engines can index the short link."},"password":{"type":"string","nullable":true,"description":"The password required to access the short link destination URL."},"externalId":{"type":"string","nullable":true,"description":"This is the ID of the link in your database."},"proxy":{"type":"boolean","default":false,"description":"Whether the short link uses the custom link preview feature."},"title":{"type":"string","nullable":true,"description":"The title of the short link generated via `api.codeqr.io/metatags`. Will be used for custom link preview if `proxy` is true."},"description":{"type":"string","nullable":true,"description":"The description of the short link generated via `api.codeqr.io/metatags`. Will be used for custom link preview if `proxy` is true."},"image":{"type":"string","nullable":true,"description":"The image of the short link generated via `api.codeqr.io/metatags`. Will be used for custom link preview if `proxy` is true."},"video":{"type":"string","nullable":true,"description":"The video of the short link."},"rewrite":{"type":"boolean","default":false,"description":"Whether the short link uses link cloaking."},"ios":{"type":"string","nullable":true,"description":"The iOS destination URL for the short link for iOS device targeting."},"android":{"type":"string","nullable":true,"description":"The Android destination URL for the short link for Android device targeting."},"geo":{"type":"object","nullable":true,"additionalProperties":{"type":"string"},"description":"Geographic targeting information for the short link in JSON format `{[COUNTRY]: https://example.com }`. Learn more: https://codeqr.link/geo"},"rules":{"type":"array","nullable":true,"items":{"type":"object","properties":{"attribute":{"type":"string","enum":["device","country","utm_source","utm_medium","utm_campaign","referrer","language"]},"operator":{"type":"string","enum":["equals","not_equals"]},"value":{"type":"string"},"url":{"type":"string"}},"required":["attribute","operator","value","url"]},"description":"Smart rules for conditional destination routing by request attribute."},"publicStats":{"type":"boolean","default":false,"description":"Whether the short link statistics are publicly accessible."},"tagId":{"type":"string","nullable":true,"description":"[DEPRECATED (use `tags` instead)]: The unique ID of the tag assigned to the short link.","deprecated":true},"tags":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/TagSchema"},"description":"The tags assigned to the short link."},"folderId":{"type":"string","nullable":true,"description":"The unique ID of the folder assigned to the short link."},"comments":{"type":"string","nullable":true,"description":"The comments for the short link."},"notificationToken":{"type":"string","nullable":true,"description":"The notification token of the short link."},"shortLink":{"type":"string","format":"uri","description":"The complete URL of the short link, including the https protocol (for example, `https://codeqr.link/try`)."},"qrCode":{"type":"string","format":"uri","description":"The complete QR code URL for the short link (for example, `https://api.codeqr.io/qr?url=https://codeqr.link/try`)."},"utm_source":{"type":"string","nullable":true,"description":"The UTM source of the short link."},"utm_medium":{"type":"string","nullable":true,"description":"The UTM medium of the short link."},"utm_campaign":{"type":"string","nullable":true,"description":"The UTM campaign of the short link."},"utm_term":{"type":"string","nullable":true,"description":"The UTM term of the short link."},"utm_content":{"type":"string","nullable":true,"description":"The UTM content of the short link."},"userId":{"type":"string","description":"The ID of the user who created the short link."},"projectId":{"type":"string","description":"The ID of the project of the short link."},"clicks":{"type":"number","default":0,"description":"The number of clicks on the short link."},"leads":{"type":"number","default":0,"description":"The number of leads generated by the short link."},"sales":{"type":"number","default":0,"description":"The number of sales generated by the short link."},"saleAmount":{"type":"number","default":0,"description":"The amount of the sale generated by the link."},"lastClicked":{"type":"string","nullable":true,"description":"The date and time when the short link was last clicked."},"createdAt":{"type":"string","description":"The date and time when the short link was created."},"updatedAt":{"type":"string","description":"The date and time when the short link was last updated."},"preRedirection":{"type":"boolean","default":false,"description":"Whether the short link has pre-redirection."},"pageId":{"type":"string","nullable":true,"description":"The ID of the page to redirect to before the link destination."},"pageUrl":{"type":"string","nullable":true,"description":"The URL of the page to redirect to before the link destination."},"isFormMandatory":{"type":"boolean","default":false,"description":"If the form is mandatory for the page."},"filled":{"type":"boolean","default":false,"description":"Whether the link is filled or not."},"useAsTemplate":{"type":"boolean","default":false,"description":"Whether this link should be used as a reusable template."}},"required":["id","domain","key","url","archived","expiresAt","expiredUrl","trackConversion","flexible","doIndex","password","externalId","proxy","title","description","image","video","rewrite","ios","android","geo","rules","publicStats","tagId","tags","folderId","comments","notificationToken","utm_source","utm_medium","utm_campaign","utm_term","utm_content","userId","projectId","clicks","leads","sales","saleAmount","lastClicked","createdAt","updatedAt","preRedirection","isFormMandatory","filled","useAsTemplate"],"title":"Link"},"QrCodeSchema":{"type":"object","properties":{"id":{"type":"string","description":"The unique ID of the QR code."},"domain":{"type":"string","description":"The domain of the QR code. If not provided, the main domain of the project will be used (or `codeqr.link` if the project does not have domains)."},"key":{"type":"string","description":"The slug of the QR code. If not provided, a random slug of 7 characters will be generated."},"archived":{"type":"boolean","default":false,"description":"If the QR code is archived."},"expiresAt":{"type":"string","nullable":true,"description":"The date and time the QR code will expire in ISO-8601 format. Must be in the future."},"expiredUrl":{"type":"string","nullable":true,"description":"The destination URL when the QR code expires."},"password":{"type":"string","nullable":true,"description":"The password required to access the destination URL of the QR code."},"externalId":{"type":"string","nullable":true,"description":"The external ID associated with the QR code."},"trackConversion":{"type":"boolean","default":false,"description":"[BETA] If should track conversions for the QR code."},"proxy":{"type":"boolean","default":false,"description":"If the QR code uses the custom link preview feature."},"title":{"type":"string","nullable":true,"description":"The title of the QR code generated via `api.codeqr.io/metatags`. Will be used for custom link preview if `proxy` is true."},"description":{"type":"string","nullable":true,"description":"The description of the QR code generated via `api.codeqr.io/metatags`. Will be used for custom link preview if `proxy` is true."},"image":{"type":"string","nullable":true,"description":"The image of the QR code generated via `api.codeqr.io/metatags`. Will be used for custom link preview if `proxy` is true."},"utm_source":{"type":"string","nullable":true,"description":"The source UTM of the QR code."},"utm_medium":{"type":"string","nullable":true,"description":"The medium UTM of the QR code."},"utm_campaign":{"type":"string","nullable":true,"description":"The campaign UTM of the QR code."},"utm_term":{"type":"string","nullable":true,"description":"The term UTM of the QR code."},"utm_content":{"type":"string","nullable":true,"description":"The content UTM of the QR code."},"rewrite":{"type":"boolean","default":false,"description":"If the QR code uses link cloaking."},"doIndex":{"type":"boolean","default":false,"description":"If the QR code should be indexed."},"flexible":{"type":"boolean","default":false,"description":"If the QR code is flexible."},"filled":{"type":"boolean","default":false,"description":"If the QR code is filled."},"ios":{"type":"string","nullable":true,"description":"The destination URL for iOS for the QR code for device targeting iOS."},"android":{"type":"string","nullable":true,"description":"The destination URL for Android for the QR code for device targeting Android."},"geo":{"type":"object","nullable":true,"additionalProperties":{"type":"string"},"description":"Geographic segmentation information for the QR code in the JSON format `{[COUNTRY]: https://example.com }`. Learn more: https://codeqr.link/geo"},"rules":{"type":"array","nullable":true,"items":{"type":"object","properties":{"attribute":{"type":"string","enum":["device","country","utm_source","utm_medium","utm_campaign","referrer","language"]},"operator":{"type":"string","enum":["equals","not_equals"]},"value":{"type":"string"},"url":{"type":"string"}},"required":["attribute","operator","value","url"]},"description":"Smart rules for conditional destination routing by request attribute."},"static":{"type":"boolean","default":false,"description":"If the QR code is static."},"useDisplayPage":{"type":"boolean","default":true,"description":"For dynamic QR codes with phone, email, or sms types: if true (default), shows an action page with buttons. If false, redirects directly to tel:/mailto:/sms: URI."},"type":{"type":"string","enum":["url","text","email","wifi","phone","vcard","crypto","sms","facetime","geo","latlog","pix","whatsapp"],"description":"The type of the QR code."},"contentStatic":{"type":"string","nullable":true,"description":"The static content of the QR code."},"text":{"type":"string","nullable":true,"description":"The text of the QR code."},"email":{"type":"object","nullable":true,"additionalProperties":{"type":"string"},"description":"The email information of the QR code."},"wifi":{"type":"object","nullable":true,"additionalProperties":{"type":"string"},"description":"The WiFi information of the QR code."},"url":{"type":"string","nullable":true,"description":"The URL of the QR code."},"phone":{"type":"string","nullable":true,"description":"The phone number of the QR code."},"vcard":{"type":"object","nullable":true,"additionalProperties":{"type":"string"},"description":"The vCard information of the QR code."},"crypto":{"type":"object","nullable":true,"additionalProperties":{"type":"string"},"description":"The cryptocurrency information of the QR code."},"sms":{"type":"object","nullable":true,"additionalProperties":{"type":"string"},"description":"The SMS information of the QR code."},"whatsapp":{"type":"object","nullable":true,"properties":{"number":{"type":"string","pattern":"^[1-9]\\d{7,14}$"},"message":{"type":"string","maxLength":1000}},"required":["number"],"description":"The WhatsApp click-to-chat info: E.164 number (digits only) and optional prefilled message."},"facetime":{"type":"object","nullable":true,"additionalProperties":{"type":"string"},"description":"The FaceTime information of the QR code."},"latlog":{"type":"object","nullable":true,"additionalProperties":{"type":"string"},"description":"The latitude and longitude information of the QR code."},"logo":{"type":"string","nullable":true,"description":"The logo of the QR code."},"bgColor":{"type":"string","description":"The background color of the QR code."},"fgColor":{"type":"string","description":"The foreground color of the QR code."},"size":{"type":"number","description":"The size of the QR code."},"level":{"type":"string","description":"The level of error correction of the QR code."},"showLogo":{"type":"boolean","default":false,"description":"If the logo should be displayed in the QR code."},"src":{"type":"string","nullable":true,"description":"The source of the QR code."},"height":{"type":"number","description":"The height of the QR code."},"width":{"type":"number","description":"The width of the QR code."},"excavate":{"type":"boolean","default":false,"description":"If the QR code should be excavated."},"userId":{"type":"string","nullable":true,"description":"The ID of the user that created the QR code."},"projectId":{"type":"string","nullable":true,"description":"The ID of the project of the QR code."},"publicStats":{"type":"boolean","default":false,"description":"If the statistics of the QR code are publicly accessible."},"scans":{"type":"number","default":0,"description":"The number of scans of the QR code."},"lastClicked":{"type":"string","nullable":true,"description":"The date and time the QR code was scanned last."},"leads":{"type":"number","default":0,"description":"The number of leads generated by the QR code."},"sales":{"type":"number","default":0,"description":"The number of sales generated by the QR code."},"saleAmount":{"type":"number","default":0,"description":"The amount of the sale generated by the link."},"createdAt":{"type":"string","description":"The date and time the QR code was created."},"updatedAt":{"type":"string","description":"The date and time the QR code was updated last."},"tagId":{"type":"string","nullable":true,"description":"[DEPRECATED (use `tags` instead)]: The unique ID of the tag assigned to the QR code.","deprecated":true},"tags":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/TagSchema"},"description":"The tags assigned to the QR code."},"folderId":{"type":"string","nullable":true,"description":"The unique ID of the folder assigned to the QR code."},"comments":{"type":"string","nullable":true,"description":"The comments for the QR code."},"frameTextStyles":{"type":"object","nullable":true,"properties":{"weight":{"type":"string","enum":["normal","bold"]},"style":{"type":"string","enum":["normal","italic"]},"family":{"type":"string","enum":["sans","sans-condensed","serif","serif-elegant","mono"]},"size":{"type":"string","enum":["s","m","l","xl"]}},"description":"Typographic styles applied to the frame label text. Object with optional keys: `weight` (`normal` | `bold`), `style` (`normal` | `italic`), `family` (`sans` | `sans-condensed` | `serif` | `serif-elegant` | `mono`), `size` (`s` | `m` | `l` | `xl`). Every field is enum-gated on write; omitted keys render with defaults.","example":{"weight":"bold","size":"xl","family":"sans"}},"notificationToken":{"type":"string","nullable":true,"description":"The notification token of the QR code."},"preRedirection":{"type":"boolean","default":false,"description":"If the QR code has pre-redirection."},"pageId":{"type":"string","nullable":true,"description":"The ID of the page to redirect to before the QR code destination."},"pageUrl":{"type":"string","nullable":true,"description":"The URL of the page to redirect to before the QR code destination."},"isFormMandatory":{"type":"boolean","default":false,"description":"If the form is mandatory for the page."}},"required":["id","domain","key","archived","expiresAt","expiredUrl","password","externalId","trackConversion","proxy","title","description","image","utm_source","utm_medium","utm_campaign","utm_term","utm_content","rewrite","doIndex","flexible","filled","ios","android","geo","rules","static","useDisplayPage","type","contentStatic","text","email","wifi","url","phone","vcard","crypto","sms","whatsapp","facetime","latlog","logo","bgColor","fgColor","size","level","showLogo","src","height","width","excavate","userId","projectId","publicStats","scans","lastClicked","leads","sales","saleAmount","createdAt","updatedAt","tagId","tags","folderId","comments","notificationToken","preRedirection","isFormMandatory"],"title":"QRCode"},"ProjectSchema":{"type":"object","properties":{"id":{"type":"string","description":"The unique ID of the project."},"name":{"type":"string","description":"The name of the project."},"slug":{"type":"string","description":"The slug of the project."},"logo":{"type":"string","nullable":true,"default":null,"description":"The logo of the project."},"usage":{"type":"number","description":"The usage of the project."},"usageLimit":{"type":"number","description":"The usage limit of the project."},"linksUsage":{"type":"number","description":"The links usage of the project."},"linksLimit":{"type":"number","description":"The links limit of the project."},"domainsLimit":{"type":"number","description":"The domains limit of the project."},"tagsLimit":{"type":"number","description":"The tags limit of the project."},"usersLimit":{"type":"number","description":"The users limit of the project."},"plan":{"type":"string","enum":["free","starter","pro","business","scale","enterprise"],"description":"The plan of the project."},"stripeId":{"type":"string","nullable":true,"description":"The Stripe ID of the project."},"billingCycleStart":{"type":"number","description":"The date and time when the billing cycle starts for the project."},"stripeConnectId":{"type":"string","nullable":true,"description":"[BETA]: The Stripe Connect ID of the project."},"createdAt":{"type":"string","description":"The date and time when the project was created."},"users":{"type":"array","items":{"type":"object","properties":{"role":{"type":"string","enum":["owner","member"],"description":"The role of the authenticated user in the project."}},"required":["role"]},"description":"The role of the authenticated user in the project."},"domains":{"type":"array","items":{"type":"object","properties":{"slug":{"type":"string","description":"The domain of the project."}},"required":["slug"]},"description":"The domains of the project."},"metadata":{"type":"object","properties":{"defaultDomains":{"type":"array","items":{"type":"string"}}},"required":["defaultDomains"]}},"required":["id","name","slug","logo","usage","usageLimit","linksUsage","linksLimit","domainsLimit","tagsLimit","usersLimit","plan","stripeId","billingCycleStart","stripeConnectId","createdAt","users","domains","metadata"],"title":"Project"},"TagSchema":{"type":"object","properties":{"id":{"type":"string","description":"The unique ID of the tag."},"name":{"type":"string","description":"The name of the tag."},"color":{"type":"string","enum":["red","yellow","green","blue","purple","pink","brown"],"description":"The color of the tag."}},"required":["id","name","color"],"title":"Tag"},"FolderSchema":{"type":"object","properties":{"id":{"type":"string","description":"The unique ID of the folder."},"name":{"type":"string","description":"The name of the folder."},"type":{"type":"string","enum":["default","templates"]},"accessLevel":{"type":"string","nullable":true,"enum":["write","read",null],"default":null,"description":"The access level of the folder within the workspace."},"createdAt":{"type":"string","description":"The date the folder was created."},"updatedAt":{"type":"string","description":"The date the folder was updated."}},"required":["id","name","type","accessLevel","createdAt","updatedAt"]},"DomainSchema":{"type":"object","properties":{"id":{"type":"string","description":"The unique identifier of the domain."},"slug":{"type":"string","description":"The domain name.","example":"acme.com"},"verified":{"type":"boolean","default":false,"description":"Whether the domain is verified."},"primary":{"type":"boolean","default":false,"description":"Whether the domain is the primary domain for the project."},"archived":{"type":"boolean","description":"Whether the domain is archived.","default":false},"target":{"type":"string","nullable":true,"description":"The target URL to redirect to when accessing the domain root.","example":"https://acme.com"},"type":{"type":"string","enum":["redirect","rewrite"],"default":"redirect","description":"The behavior type for the domain root redirect."},"placeholder":{"type":"string","description":"Provide context to your teammates in the link creation modal by showing them an example of a link to be shortened.","default":"https://codeqr.io/help/article/what-is-codeqr","example":"https://codeqr.io/help/article/what-is-codeqr"},"expiredUrl":{"type":"string","nullable":true,"description":"The URL to redirect to when a link under this domain has expired.","example":"https://acme.com/expired"},"createdAt":{"type":"string","description":"The date the domain was created."},"updatedAt":{"type":"string","description":"The date the domain was last updated."}},"required":["id","slug","verified","primary","archived","target","type","placeholder","expiredUrl","createdAt","updatedAt"]},"webhookDataPayloadSchema":{"type":"object","properties":{"eventName":{"type":"string"},"customer":{"type":"object","properties":{"id":{"type":"string","description":"The unique ID of the customer. You may use either the customer's `id` on CodeQR (obtained via `/customers` endpoint) or their `externalId` (unique ID within your system, prefixed with `ext_`, e.g. `ext_123`)."},"externalId":{"type":"string","description":"Unique identifier for the customer in the client's app."},"name":{"type":"string","description":"Name of the customer."},"email":{"type":"string","nullable":true,"description":"Email of the customer."},"avatar":{"type":"string","nullable":true,"description":"Avatar URL of the customer."},"country":{"type":"string","nullable":true,"description":"Country of the customer."},"createdAt":{"type":"string","description":"The date the customer was created."},"link":{"type":"object","nullable":true,"properties":{"id":{"type":"string","description":"The unique ID of the short link."},"domain":{"type":"string","description":"The domain of the short link. If not provided, the main domain of the project will be used (or `codeqr.link` if the project has no domains)."},"key":{"type":"string","description":"The slug of the short link. If not provided, a random 7-character slug will be generated."},"shortLink":{"type":"string","format":"uri","description":"The complete URL of the short link, including the https protocol (for example, `https://codeqr.link/try`)."}},"required":["id","domain","key"]},"customFields":{"type":"object","nullable":true,"additionalProperties":{"type":"string"},"description":"Custom fields of the customer."}},"required":["id","externalId","name","createdAt"]},"interaction":{"type":"object","properties":{"timestamp":{"type":"string"},"click_id":{"type":"string"},"link_id":{"type":"string"},"url":{"type":"string"},"continent":{"type":"string","nullable":true,"default":"NA"},"country":{"type":"string","nullable":true},"city":{"type":"string","nullable":true},"region":{"type":"string","nullable":true},"latitude":{"type":"string","nullable":true},"longitude":{"type":"string","nullable":true},"device":{"type":"string","nullable":true},"device_model":{"type":"string","nullable":true},"device_vendor":{"type":"string","nullable":true},"browser":{"type":"string","nullable":true},"browser_version":{"type":"string","nullable":true},"os":{"type":"string","nullable":true},"os_version":{"type":"string","nullable":true},"engine":{"type":"string","nullable":true},"engine_version":{"type":"string","nullable":true},"cpu_architecture":{"type":"string","nullable":true},"ua":{"type":"string","nullable":true},"bot":{"type":"number","nullable":true},"referer":{"type":"string","nullable":true},"referer_url":{"type":"string","nullable":true},"ip":{"type":"string","nullable":true},"type":{"type":"string","nullable":true},"event_name":{"type":"string","nullable":true}},"required":["timestamp","click_id","link_id","url","continent","country","city","region","latitude","longitude","device","device_model","device_vendor","browser","browser_version","os","os_version","engine","engine_version","cpu_architecture","ua","bot","referer","referer_url","type","event_name"]},"link":{"type":"object","properties":{"id":{"type":"string","description":"The unique ID of the short link."},"domain":{"type":"string","description":"The domain of the short link. If not provided, the main domain of the project will be used (or `codeqr.link` if the project has no domains)."},"key":{"type":"string","description":"The slug of the short link. If not provided, a random 7-character slug will be generated."},"url":{"type":"string"},"archived":{"type":"boolean"},"expiresAt":{"type":"string","nullable":true},"expiredUrl":{"type":"string","nullable":true,"format":"uri","default":null},"trackConversion":{"type":"boolean"},"flexible":{"type":"boolean","default":false,"description":"Whether the short link is flexible."},"doIndex":{"type":"boolean"},"password":{"type":"string","nullable":true,"default":null},"externalId":{"type":"string","nullable":true},"proxy":{"type":"boolean"},"title":{"type":"string","nullable":true,"default":null},"description":{"type":"string","nullable":true,"default":null},"image":{"type":"string","nullable":true,"default":null},"video":{"type":"string","nullable":true,"default":null},"rewrite":{"type":"boolean"},"ios":{"type":"string","nullable":true,"default":null},"android":{"type":"string","nullable":true,"default":null},"geo":{"type":"object","nullable":true,"additionalProperties":{"type":"string"},"default":null},"rules":{"type":"array","nullable":true,"items":{"type":"object","properties":{"attribute":{"type":"string","enum":["device","country","utm_source","utm_medium","utm_campaign","referrer","language"]},"operator":{"type":"string","enum":["equals","not_equals"]},"value":{"type":"string"},"url":{"type":"string"}},"required":["attribute","operator","value","url"]}},"publicStats":{"type":"boolean"},"tagId":{"type":"string","nullable":true,"default":null},"tags":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/TagSchema"},"default":null},"folderId":{"type":"string","nullable":true,"default":null},"comments":{"type":"string","nullable":true,"default":null},"notificationToken":{"type":"string","nullable":true,"default":null},"shortLink":{"type":"string","format":"uri","description":"The complete URL of the short link, including the https protocol (for example, `https://codeqr.link/try`)."},"qrCode":{"type":"string","format":"uri","description":"The complete QR code URL for the short link (for example, `https://api.codeqr.io/qr?url=https://codeqr.link/try`)."},"utm_source":{"type":"string","nullable":true,"default":null},"utm_medium":{"type":"string","nullable":true,"default":null},"utm_campaign":{"type":"string","nullable":true,"default":null},"utm_term":{"type":"string","nullable":true,"default":null},"utm_content":{"type":"string","nullable":true,"default":null},"userId":{"type":"string","nullable":true},"projectId":{"type":"string","description":"The ID of the project of the short link."},"clicks":{"type":"number","default":0,"description":"The number of clicks on the short link."},"leads":{"type":"number","default":0,"description":"The number of leads generated by the short link."},"sales":{"type":"number","default":0,"description":"The number of sales generated by the short link."},"saleAmount":{"type":"number","default":0,"description":"The amount of the sale generated by the link."},"lastClicked":{"nullable":true,"anyOf":[{"type":"string"},{"type":"string"}]},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"preRedirection":{"type":"boolean","default":false,"description":"Whether the short link has pre-redirection."},"pageId":{"type":"string","nullable":true,"description":"The ID of the page to redirect to before the link destination."},"pageUrl":{"type":"string","nullable":true,"description":"The URL of the page to redirect to before the link destination."},"isFormMandatory":{"type":"boolean","default":false,"description":"If the form is mandatory for the page."},"filled":{"type":"boolean","default":false,"description":"Whether the link is filled or not."},"useAsTemplate":{"type":"boolean","default":false,"description":"Whether this link should be used as a reusable template."}},"required":["id","domain","key","expiredUrl","flexible","password","title","description","image","video","ios","android","geo","tagId","tags","folderId","comments","notificationToken","utm_source","utm_medium","utm_campaign","utm_term","utm_content","projectId","clicks","leads","sales","saleAmount","createdAt","updatedAt","preRedirection","isFormMandatory","filled","useAsTemplate"]},"qrcode":{"type":"object","properties":{"id":{"type":"string","description":"The unique ID of the QR code."},"domain":{"type":"string","description":"The domain of the QR code. If not provided, the main domain of the project will be used (or `codeqr.link` if the project does not have domains)."},"key":{"type":"string","description":"The slug of the QR code. If not provided, a random slug of 7 characters will be generated."},"archived":{"type":"boolean"},"expiresAt":{"type":"string"},"expiredUrl":{"type":"string","nullable":true,"description":"The destination URL when the QR code expires."},"password":{"type":"string","nullable":true,"description":"The password required to access the destination URL of the QR code."},"externalId":{"type":"string","nullable":true,"description":"The external ID associated with the QR code."},"trackConversion":{"type":"boolean"},"proxy":{"type":"boolean"},"title":{"type":"string","nullable":true,"description":"The title of the QR code generated via `api.codeqr.io/metatags`. Will be used for custom link preview if `proxy` is true."},"description":{"type":"string","nullable":true,"description":"The description of the QR code generated via `api.codeqr.io/metatags`. Will be used for custom link preview if `proxy` is true."},"image":{"type":"string","nullable":true,"description":"The image of the QR code generated via `api.codeqr.io/metatags`. Will be used for custom link preview if `proxy` is true."},"utm_source":{"type":"string","nullable":true,"description":"The source UTM of the QR code."},"utm_medium":{"type":"string","nullable":true,"description":"The medium UTM of the QR code."},"utm_campaign":{"type":"string","nullable":true,"description":"The campaign UTM of the QR code."},"utm_term":{"type":"string","nullable":true,"description":"The term UTM of the QR code."},"utm_content":{"type":"string","nullable":true,"description":"The content UTM of the QR code."},"rewrite":{"type":"boolean"},"doIndex":{"type":"boolean"},"flexible":{"type":"boolean","default":false,"description":"If the QR code is flexible."},"filled":{"type":"boolean","default":false,"description":"If the QR code is filled."},"ios":{"type":"string","nullable":true,"description":"The destination URL for iOS for the QR code for device targeting iOS."},"android":{"type":"string","nullable":true,"description":"The destination URL for Android for the QR code for device targeting Android."},"geo":{"type":"object","nullable":true,"additionalProperties":{"type":"string"},"description":"Geographic segmentation information for the QR code in the JSON format `{[COUNTRY]: https://example.com }`. Learn more: https://codeqr.link/geo"},"rules":{"type":"array","nullable":true,"items":{"type":"object","properties":{"attribute":{"type":"string","enum":["device","country","utm_source","utm_medium","utm_campaign","referrer","language"]},"operator":{"type":"string","enum":["equals","not_equals"]},"value":{"type":"string"},"url":{"type":"string"}},"required":["attribute","operator","value","url"]},"description":"Smart rules for conditional destination routing by request attribute."},"static":{"type":"boolean","default":false,"description":"If the QR code is static."},"useDisplayPage":{"type":"boolean","default":true,"description":"For dynamic QR codes with phone, email, or sms types: if true (default), shows an action page with buttons. If false, redirects directly to tel:/mailto:/sms: URI."},"type":{"type":"string","enum":["url","text","email","wifi","phone","vcard","crypto","sms","facetime","geo","latlog","pix","whatsapp"],"description":"The type of the QR code."},"contentStatic":{"type":"string","nullable":true,"description":"The static content of the QR code."},"text":{"type":"string","nullable":true,"description":"The text of the QR code."},"email":{"type":"object","nullable":true,"additionalProperties":{"type":"string"},"description":"The email information of the QR code."},"wifi":{"type":"object","nullable":true,"additionalProperties":{"type":"string"},"description":"The WiFi information of the QR code."},"url":{"type":"string","nullable":true},"phone":{"type":"string","nullable":true,"description":"The phone number of the QR code."},"vcard":{"type":"object","nullable":true,"additionalProperties":{"type":"string"},"description":"The vCard information of the QR code."},"crypto":{"type":"object","nullable":true,"additionalProperties":{"type":"string"},"description":"The cryptocurrency information of the QR code."},"sms":{"type":"object","nullable":true,"additionalProperties":{"type":"string"},"description":"The SMS information of the QR code."},"whatsapp":{"type":"object","nullable":true,"properties":{"number":{"type":"string","pattern":"^[1-9]\\d{7,14}$"},"message":{"type":"string","maxLength":1000}},"required":["number"],"description":"The WhatsApp click-to-chat info: E.164 number (digits only) and optional prefilled message."},"facetime":{"type":"object","nullable":true,"additionalProperties":{"type":"string"},"description":"The FaceTime information of the QR code."},"latlog":{"type":"object","nullable":true,"additionalProperties":{"type":"string"},"description":"The latitude and longitude information of the QR code."},"logo":{"type":"string","nullable":true,"description":"The logo of the QR code."},"bgColor":{"type":"string","description":"The background color of the QR code."},"fgColor":{"type":"string","description":"The foreground color of the QR code."},"size":{"type":"number","description":"The size of the QR code."},"level":{"type":"string","description":"The level of error correction of the QR code."},"showLogo":{"type":"boolean","default":false,"description":"If the logo should be displayed in the QR code."},"src":{"type":"string","nullable":true,"description":"The source of the QR code."},"height":{"type":"number","description":"The height of the QR code."},"width":{"type":"number","description":"The width of the QR code."},"excavate":{"type":"boolean","default":false,"description":"If the QR code should be excavated."},"userId":{"type":"string","nullable":true},"projectId":{"type":"string","nullable":true,"description":"The ID of the project of the QR code."},"publicStats":{"type":"boolean"},"scans":{"type":"number","default":0,"description":"The number of scans of the QR code."},"lastClicked":{"type":"string"},"leads":{"type":"number","default":0,"description":"The number of leads generated by the QR code."},"sales":{"type":"number","default":0,"description":"The number of sales generated by the QR code."},"saleAmount":{"type":"number","default":0,"description":"The amount of the sale generated by the link."},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"tagId":{"type":"string","nullable":true,"description":"[DEPRECATED (use `tags` instead)]: The unique ID of the tag assigned to the QR code.","deprecated":true},"tags":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/TagSchema"},"description":"The tags assigned to the QR code."},"folderId":{"type":"string","nullable":true,"description":"The unique ID of the folder assigned to the QR code."},"comments":{"type":"string","nullable":true,"description":"The comments for the QR code."},"frameTextStyles":{"type":"object","nullable":true,"properties":{"weight":{"type":"string","enum":["normal","bold"]},"style":{"type":"string","enum":["normal","italic"]},"family":{"type":"string","enum":["sans","sans-condensed","serif","serif-elegant","mono"]},"size":{"type":"string","enum":["s","m","l","xl"]}},"description":"Typographic styles applied to the frame label text. Object with optional keys: `weight` (`normal` | `bold`), `style` (`normal` | `italic`), `family` (`sans` | `sans-condensed` | `serif` | `serif-elegant` | `mono`), `size` (`s` | `m` | `l` | `xl`). Every field is enum-gated on write; omitted keys render with defaults.","example":{"weight":"bold","size":"xl","family":"sans"}},"notificationToken":{"type":"string","nullable":true,"description":"The notification token of the QR code."},"preRedirection":{"type":"boolean","default":false,"description":"If the QR code has pre-redirection."},"pageId":{"type":"string","nullable":true,"description":"The ID of the page to redirect to before the QR code destination."},"pageUrl":{"type":"string","nullable":true,"description":"The URL of the page to redirect to before the QR code destination."},"isFormMandatory":{"type":"boolean","default":false,"description":"If the form is mandatory for the page."}},"required":["id","domain","key","expiresAt","expiredUrl","password","externalId","title","description","image","utm_source","utm_medium","utm_campaign","utm_term","utm_content","flexible","filled","ios","android","geo","rules","static","useDisplayPage","type","contentStatic","text","email","wifi","url","phone","vcard","crypto","sms","whatsapp","facetime","latlog","logo","bgColor","fgColor","size","level","showLogo","src","height","width","excavate","userId","projectId","scans","lastClicked","leads","sales","saleAmount","createdAt","updatedAt","tagId","tags","folderId","comments","notificationToken","preRedirection","isFormMandatory"]},"page":{"type":"object","properties":{"id":{"type":"string","description":"The unique ID of the page."},"domain":{"type":"string","description":"The domain of the page. If not provided, the main domain of the project will be used (or `codeqr.link` if the project has no domains)."},"key":{"type":"string","description":"The slug of the page. If not provided, a random 7-character slug will be generated."},"name":{"type":"string","nullable":true,"description":"The name of the page."},"description":{"type":"string","nullable":true,"description":"The description of the page."},"logo":{"type":"string","nullable":true,"description":"The logo of the page."},"image":{"type":"string","nullable":true,"description":"The image of the page."},"imageBlurhash":{"type":"string","nullable":true,"description":"The blurhash of the page image."},"externalId":{"type":"string","nullable":true,"description":"The external ID associated with the page."},"trackConversion":{"type":"boolean"},"message404":{"type":"string","nullable":true,"description":"The custom 404 error message for the page."},"type":{"type":"string","description":"The type of the page."},"pageTitle":{"type":"string","description":"The title of the page."},"pageSubtitle":{"type":"string","description":"The subtitle of the page."},"heroButtonLink":{"type":"string","nullable":true,"description":"The hero button link."},"heroButtonText":{"type":"string","nullable":true,"description":"The hero button text."},"heroShowButton":{"type":"boolean","default":false,"description":"Whether to show the hero button."},"pageBackgroundType":{"type":"string","description":"The background type of the page."},"pageBackgroundStyles":{"type":"object","additionalProperties":{},"description":"The background styles of the page."},"pageFormType":{"type":"string","description":"The form type of the page."},"pageFromStyles":{"type":"object","additionalProperties":{},"description":"The form styles of the page."},"inputStyle":{"type":"string","nullable":true,"description":"The input field style of the page."},"buttonType":{"type":"string","description":"The button type of the page."},"buttonStyles":{"type":"object","additionalProperties":{},"description":"The button styles of the page."},"submitButtonType":{"type":"string","description":"The submit button type of the page."},"submitButtonStyles":{"type":"object","additionalProperties":{},"description":"The submit button styles of the page."},"fontFamily":{"type":"string","description":"The font family of the page."},"fontColor":{"type":"string","description":"The font color of the page."},"items":{"description":"The items of the page."},"views":{"type":"number","default":0,"description":"The number of views of the page."},"lastClicked":{"type":"string"},"leads":{"type":"number","default":0,"description":"The number of leads of the page."},"sales":{"type":"number","default":0,"description":"The number of sales of the page."},"saleAmount":{"type":"number","default":0,"description":"The total amount of sales of the page (in cents)."},"publicStats":{"type":"boolean"},"hiddenLogo":{"type":"boolean","default":false,"description":"Whether the logo should be hidden on the page."},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"projectId":{"type":"string","description":"The ID of the project of the page."},"userId":{"type":"string","nullable":true},"notificationToken":{"type":"string","nullable":true,"description":"The notification token of the page."},"socialMediaLinks":{"type":"object","nullable":true,"additionalProperties":{},"description":"The social media links of the page."},"feedbacksCount":{"type":"number","default":0,"description":"The number of feedbacks received by the page."},"thankYouTitle":{"type":"string","description":"The thank you message title displayed after form submission."},"thankYouDescription":{"type":"string","description":"The thank you message description displayed after form submission."},"thankYouRedirectUrl":{"type":"string","nullable":true,"description":"The redirect URL after form submission."},"url":{"type":"string"},"folderId":{"type":"string","nullable":true}},"required":["id","domain","key","name","description","logo","image","imageBlurhash","externalId","message404","type","pageTitle","pageSubtitle","heroButtonLink","heroButtonText","heroShowButton","pageBackgroundType","pageBackgroundStyles","pageFormType","pageFromStyles","inputStyle","buttonType","buttonStyles","submitButtonType","submitButtonStyles","fontFamily","fontColor","views","lastClicked","leads","sales","saleAmount","hiddenLogo","createdAt","updatedAt","projectId","userId","notificationToken","socialMediaLinks","feedbacksCount","folderId"]},"sale":{"type":"object","properties":{"amount":{"type":"number"},"currency":{"type":"string"},"payment_processor":{"type":"string"},"invoice_id":{"type":"string","nullable":true}},"required":["amount","currency","payment_processor","invoice_id"]}}},"LinkErrorSchema":{"type":"object","properties":{"link":{"description":"The link that caused the error."},"error":{"type":"string","description":"The error message."},"code":{"type":"string","enum":["bad_request","not_found","internal_server_error","unauthorized","forbidden","rate_limit_exceeded","invite_expired","invite_pending","exceeded_limit","conflict","unprocessable_entity","service_unavailable"],"description":"The error code."}},"required":["error","code"],"title":"LinkError"},"QrCodeErrorSchema":{"type":"object","properties":{"qrcode":{"description":"The QR Code that caused the error."},"error":{"type":"string","description":"The error message."},"code":{"type":"string","enum":["bad_request","not_found","internal_server_error","unauthorized","forbidden","rate_limit_exceeded","invite_expired","invite_pending","exceeded_limit","conflict","unprocessable_entity","service_unavailable"],"description":"The error code."}},"required":["error","code"],"title":"QRCodeError"},"continentCode":{"type":"string","enum":["AF","AN","AS","EU","NA","OC","SA"],"description":"The continent to retrieve analytics for."},"countryCode":{"type":"string","enum":["AF","AL","DZ","AS","AD","AO","AI","AQ","AG","AR","AM","AW","AU","AT","AZ","BS","BH","BD","BB","BY","BE","BZ","BJ","BM","BT","BO","BA","BW","BV","BR","IO","BN","BG","BF","BI","KH","CM","CA","CV","KY","CF","TD","CL","CN","CX","CC","CO","KM","CG","CD","CK","CR","CI","HR","CU","CY","CZ","DK","DJ","DM","DO","EC","EG","SV","GQ","ER","EE","ET","FK","FO","FJ","FI","FR","GF","PF","TF","GA","GM","GE","DE","GH","GI","GR","GL","GD","GP","GU","GT","GN","GW","GY","HT","HM","VA","HN","HK","HU","IS","IN","ID","IR","IQ","IE","IL","IT","JM","JP","JO","KZ","KE","KI","KP","KR","KW","KG","LA","LV","LB","LS","LR","LY","LI","LT","LU","MO","MG","MW","MY","MV","ML","MT","MH","MQ","MR","MU","YT","MX","FM","MD","MC","MN","MS","MA","MZ","MM","NA","NR","NP","NL","NC","NZ","NI","NE","NG","NU","NF","MK","MP","NO","OM","PK","PW","PS","PA","PG","PY","PE","PH","PN","PL","PT","PR","QA","RE","RO","RU","RW","SH","KN","LC","PM","VC","WS","SM","ST","SA","SN","SC","SL","SG","SK","SI","SB","SO","ZA","GS","ES","LK","SD","SR","SJ","SZ","SE","CH","SY","TW","TJ","TZ","TH","TL","TG","TK","TO","TT","TN","TR","TM","TC","TV","UG","UA","AE","GB","US","UM","UY","UZ","VU","VE","VN","VG","VI","WF","EH","YE","ZM","ZW","AX","BQ","CW","GG","IM","JE","ME","BL","MF","RS","SX","SS","XK"],"description":"The country to retrieve analytics for."},"AnalyticsCount":{"type":"object","properties":{"clicks":{"type":"number","description":"The total number of clicks","default":0},"scans":{"type":"number","description":"The total number of scans","default":0},"views":{"type":"number","description":"The total number of views","default":0},"leads":{"type":"number","description":"The total number of leads","default":0},"sales":{"type":"number","description":"The total number of sales","default":0},"saleAmount":{"type":"number","description":"The total amount of sales, in cents","default":0}},"required":["clicks","scans","views","leads","sales","saleAmount"],"title":"AnalyticsCount"},"AnalyticsTimeseries":{"type":"object","properties":{"start":{"type":"string","description":"The starting timestamp of the interval"},"clicks":{"type":"number","description":"The number of clicks in the interval","default":0},"scans":{"type":"number","description":"The number of scans in the interval","default":0},"views":{"type":"number","description":"The number of views in the interval","default":0},"leads":{"type":"number","description":"The number of leads in the interval","default":0},"sales":{"type":"number","description":"The number of sales in the interval","default":0},"saleAmount":{"type":"number","description":"The total amount of sales in the interval, in cents","default":0}},"required":["start","clicks","scans","views","leads","sales","saleAmount"]},"AnalyticsContinents":{"type":"object","properties":{"continent":{"type":"string","enum":["AF","AN","AS","EU","NA","OC","SA"],"description":"The 2-letter ISO 3166-1 code representing the continent associated with the location of the user."},"clicks":{"type":"number","description":"The number of clicks from this continent","default":0},"leads":{"type":"number","description":"The number of leads from this continent","default":0},"sales":{"type":"number","description":"The number of sales from this continent","default":0},"saleAmount":{"type":"number","description":"The total amount of sales from this continent, in cents","default":0}},"required":["clicks","leads","sales","saleAmount"]},"AnalyticsCountries":{"type":"object","properties":{"country":{"type":"string","enum":["AF","AL","DZ","AS","AD","AO","AI","AQ","AG","AR","AM","AW","AU","AT","AZ","BS","BH","BD","BB","BY","BE","BZ","BJ","BM","BT","BO","BA","BW","BV","BR","IO","BN","BG","BF","BI","KH","CM","CA","CV","KY","CF","TD","CL","CN","CX","CC","CO","KM","CG","CD","CK","CR","CI","HR","CU","CY","CZ","DK","DJ","DM","DO","EC","EG","SV","GQ","ER","EE","ET","FK","FO","FJ","FI","FR","GF","PF","TF","GA","GM","GE","DE","GH","GI","GR","GL","GD","GP","GU","GT","GN","GW","GY","HT","HM","VA","HN","HK","HU","IS","IN","ID","IR","IQ","IE","IL","IT","JM","JP","JO","KZ","KE","KI","KP","KR","KW","KG","LA","LV","LB","LS","LR","LY","LI","LT","LU","MO","MG","MW","MY","MV","ML","MT","MH","MQ","MR","MU","YT","MX","FM","MD","MC","MN","MS","MA","MZ","MM","NA","NR","NP","NL","NC","NZ","NI","NE","NG","NU","NF","MK","MP","NO","OM","PK","PW","PS","PA","PG","PY","PE","PH","PN","PL","PT","PR","QA","RE","RO","RU","RW","SH","KN","LC","PM","VC","WS","SM","ST","SA","SN","SC","SL","SG","SK","SI","SB","SO","ZA","GS","ES","LK","SD","SR","SJ","SZ","SE","CH","SY","TW","TJ","TZ","TH","TL","TG","TK","TO","TT","TN","TR","TM","TC","TV","UG","UA","AE","GB","US","UM","UY","UZ","VU","VE","VN","VG","VI","WF","EH","YE","ZM","ZW","AX","BQ","CW","GG","IM","JE","ME","BL","MF","RS","SX","SS","XK"],"description":"The 2-letter ISO 3166-1 country code for the country associated with the location of the user. Learn more: https://codeqr.io/geo"},"city":{"type":"string","enum":["*"],"default":"*"},"clicks":{"type":"number","description":"The number of clicks from this country","default":0},"leads":{"type":"number","description":"The number of leads from this country","default":0},"sales":{"type":"number","description":"The number of sales from this country","default":0},"saleAmount":{"type":"number","description":"The total amount of sales from this country, in cents","default":0}},"required":["country","city","clicks","leads","sales","saleAmount"]},"AnalyticsRegions":{"type":"object","properties":{"country":{"type":"string","enum":["AF","AL","DZ","AS","AD","AO","AI","AQ","AG","AR","AM","AW","AU","AT","AZ","BS","BH","BD","BB","BY","BE","BZ","BJ","BM","BT","BO","BA","BW","BV","BR","IO","BN","BG","BF","BI","KH","CM","CA","CV","KY","CF","TD","CL","CN","CX","CC","CO","KM","CG","CD","CK","CR","CI","HR","CU","CY","CZ","DK","DJ","DM","DO","EC","EG","SV","GQ","ER","EE","ET","FK","FO","FJ","FI","FR","GF","PF","TF","GA","GM","GE","DE","GH","GI","GR","GL","GD","GP","GU","GT","GN","GW","GY","HT","HM","VA","HN","HK","HU","IS","IN","ID","IR","IQ","IE","IL","IT","JM","JP","JO","KZ","KE","KI","KP","KR","KW","KG","LA","LV","LB","LS","LR","LY","LI","LT","LU","MO","MG","MW","MY","MV","ML","MT","MH","MQ","MR","MU","YT","MX","FM","MD","MC","MN","MS","MA","MZ","MM","NA","NR","NP","NL","NC","NZ","NI","NE","NG","NU","NF","MK","MP","NO","OM","PK","PW","PS","PA","PG","PY","PE","PH","PN","PL","PT","PR","QA","RE","RO","RU","RW","SH","KN","LC","PM","VC","WS","SM","ST","SA","SN","SC","SL","SG","SK","SI","SB","SO","ZA","GS","ES","LK","SD","SR","SJ","SZ","SE","CH","SY","TW","TJ","TZ","TH","TL","TG","TK","TO","TT","TN","TR","TM","TC","TV","UG","UA","AE","GB","US","UM","UY","UZ","VU","VE","VN","VG","VI","WF","EH","YE","ZM","ZW","AX","BQ","CW","GG","IM","JE","ME","BL","MF","RS","SX","SS","XK"],"description":"The 2-letter ISO 3166-1 alpha-2 country code of the region."},"region":{"type":"string","description":"The 2-letter ISO 3166-2 region code representing the region associated with the location of the user."},"city":{"type":"string","enum":["*"],"default":"*"},"clicks":{"type":"number","description":"The number of clicks from this region","default":0},"leads":{"type":"number","description":"The number of leads from this region","default":0},"sales":{"type":"number","description":"The number of sales from this region","default":0},"saleAmount":{"type":"number","description":"The total amount of sales from this region, in cents","default":0}},"required":["country","region","city","clicks","leads","sales","saleAmount"]},"AnalyticsCities":{"type":"object","properties":{"city":{"type":"string","description":"The name of the city"},"country":{"type":"string","enum":["AF","AL","DZ","AS","AD","AO","AI","AQ","AG","AR","AM","AW","AU","AT","AZ","BS","BH","BD","BB","BY","BE","BZ","BJ","BM","BT","BO","BA","BW","BV","BR","IO","BN","BG","BF","BI","KH","CM","CA","CV","KY","CF","TD","CL","CN","CX","CC","CO","KM","CG","CD","CK","CR","CI","HR","CU","CY","CZ","DK","DJ","DM","DO","EC","EG","SV","GQ","ER","EE","ET","FK","FO","FJ","FI","FR","GF","PF","TF","GA","GM","GE","DE","GH","GI","GR","GL","GD","GP","GU","GT","GN","GW","GY","HT","HM","VA","HN","HK","HU","IS","IN","ID","IR","IQ","IE","IL","IT","JM","JP","JO","KZ","KE","KI","KP","KR","KW","KG","LA","LV","LB","LS","LR","LY","LI","LT","LU","MO","MG","MW","MY","MV","ML","MT","MH","MQ","MR","MU","YT","MX","FM","MD","MC","MN","MS","MA","MZ","MM","NA","NR","NP","NL","NC","NZ","NI","NE","NG","NU","NF","MK","MP","NO","OM","PK","PW","PS","PA","PG","PY","PE","PH","PN","PL","PT","PR","QA","RE","RO","RU","RW","SH","KN","LC","PM","VC","WS","SM","ST","SA","SN","SC","SL","SG","SK","SI","SB","SO","ZA","GS","ES","LK","SD","SR","SJ","SZ","SE","CH","SY","TW","TJ","TZ","TH","TL","TG","TK","TO","TT","TN","TR","TM","TC","TV","UG","UA","AE","GB","US","UM","UY","UZ","VU","VE","VN","VG","VI","WF","EH","YE","ZM","ZW","AX","BQ","CW","GG","IM","JE","ME","BL","MF","RS","SX","SS","XK"],"description":"The 2-letter country code of the city: https://codeqr.io/geo"},"clicks":{"type":"number","description":"The number of clicks from this city","default":0},"leads":{"type":"number","description":"The number of leads from this city","default":0},"sales":{"type":"number","description":"The number of sales from this city","default":0},"saleAmount":{"type":"number","description":"The total amount of sales from this city, in cents","default":0}},"required":["city","country","clicks","leads","sales","saleAmount"]},"AnalyticsDevices":{"type":"object","properties":{"device":{"type":"string","description":"The name of the device"},"clicks":{"type":"number","description":"The number of clicks from this device","default":0},"leads":{"type":"number","description":"The number of leads from this device","default":0},"sales":{"type":"number","description":"The number of sales from this device","default":0},"saleAmount":{"type":"number","description":"The total amount of sales from this device, in cents","default":0}},"required":["device","clicks","leads","sales","saleAmount"]},"AnalyticsBrowsers":{"type":"object","properties":{"browser":{"type":"string","description":"The name of the browser"},"clicks":{"type":"number","description":"The number of clicks from this browser","default":0},"leads":{"type":"number","description":"The number of leads from this browser","default":0},"sales":{"type":"number","description":"The number of sales from this browser","default":0},"saleAmount":{"type":"number","description":"The total amount of sales from this browser, in cents","default":0}},"required":["browser","clicks","leads","sales","saleAmount"]},"AnalyticsOS":{"type":"object","properties":{"os":{"type":"string","description":"The name of the OS"},"clicks":{"type":"number","description":"The number of clicks from this OS","default":0},"leads":{"type":"number","description":"The number of leads from this OS","default":0},"sales":{"type":"number","description":"The number of sales from this OS","default":0},"saleAmount":{"type":"number","description":"The total amount of sales from this OS, in cents","default":0}},"required":["os","clicks","leads","sales","saleAmount"]},"AnalyticsReferers":{"type":"object","properties":{"referer":{"type":"string","description":"The name of the referer. If unknown, this will be `(direct)`"},"clicks":{"type":"number","description":"The number of clicks from this referer","default":0},"leads":{"type":"number","description":"The number of leads from this referer","default":0},"sales":{"type":"number","description":"The number of sales from this referer","default":0},"saleAmount":{"type":"number","description":"The total amount of sales from this referer, in cents","default":0}},"required":["referer","clicks","leads","sales","saleAmount"]},"AnalyticsRefererUrls":{"type":"object","properties":{"refererUrl":{"type":"string","description":"The full URL of the referer. If unknown, this will be `(direct)`"},"clicks":{"type":"number","description":"The number of clicks from this referer to this URL","default":0},"leads":{"type":"number","description":"The number of leads from this referer to this URL","default":0},"sales":{"type":"number","description":"The number of sales from this referer to this URL","default":0},"saleAmount":{"type":"number","description":"The total amount of sales from this referer to this URL, in cents","default":0}},"required":["refererUrl","clicks","leads","sales","saleAmount"]},"AnalyticsTopLinks":{"type":"object","properties":{"link":{"type":"string","description":"The unique ID of the short link","deprecated":true},"id":{"type":"string","description":"The unique ID of the short link"},"domain":{"type":"string","description":"The domain of the short link"},"key":{"type":"string","description":"The key of the short link"},"shortLink":{"type":"string","description":"The short link URL"},"url":{"type":"string","description":"The destination URL of the short link"},"createdAt":{"type":"string","description":"The creation timestamp of the short link"},"clicks":{"type":"number","description":"The number of clicks from this link","default":0},"leads":{"type":"number","description":"The number of leads from this link","default":0}},"required":["link","id","domain","key","shortLink","url","createdAt","clicks","leads"]},"AnalyticsTopUrls":{"type":"object","properties":{"url":{"type":"string","description":"The destination URL"},"clicks":{"type":"number","description":"The number of clicks from this URL","default":0},"leads":{"type":"number","description":"The number of leads from this URL","default":0},"sales":{"type":"number","description":"The number of sales from this URL","default":0},"saleAmount":{"type":"number","description":"The total amount of sales from this URL, in cents","default":0}},"required":["url","clicks","leads","sales","saleAmount"]},"ClickEvent":{"type":"object","properties":{"event":{"type":"string","enum":["click"]},"timestamp":{"type":"string"},"click":{"type":"object","properties":{"id":{"type":"string"},"url":{"type":"string"},"continent":{"type":"string"},"country":{"type":"string"},"city":{"type":"string"},"device":{"type":"string"},"browser":{"type":"string"},"os":{"type":"string"},"referer":{"type":"string"},"refererUrl":{"type":"string"},"type":{"type":"string"},"ip":{"type":"string"}},"required":["id","url","continent","country","city","device","browser","os","referer","refererUrl","type","ip"]},"link":{"type":"object","properties":{"id":{"type":"string","description":"The unique ID of the short link."},"domain":{"type":"string","description":"The domain of the short link. If not provided, the main domain of the project will be used (or `codeqr.link` if the project has no domains)."},"key":{"type":"string","description":"The slug of the short link. If not provided, a random 7-character slug will be generated."},"url":{"type":"string"},"archived":{"type":"boolean"},"expiresAt":{"type":"string","nullable":true},"expiredUrl":{"type":"string","nullable":true,"format":"uri","default":null},"trackConversion":{"type":"boolean"},"flexible":{"type":"boolean","default":false,"description":"Whether the short link is flexible."},"doIndex":{"type":"boolean"},"password":{"type":"string","nullable":true,"default":null},"externalId":{"type":"string","nullable":true},"proxy":{"type":"boolean"},"title":{"type":"string","nullable":true,"default":null},"description":{"type":"string","nullable":true,"default":null},"image":{"type":"string","nullable":true,"default":null},"video":{"type":"string","nullable":true,"default":null},"rewrite":{"type":"boolean"},"ios":{"type":"string","nullable":true,"default":null},"android":{"type":"string","nullable":true,"default":null},"geo":{"type":"object","nullable":true,"additionalProperties":{"type":"string"},"default":null},"rules":{"type":"array","nullable":true,"items":{"type":"object","properties":{"attribute":{"type":"string","enum":["device","country","utm_source","utm_medium","utm_campaign","referrer","language"]},"operator":{"type":"string","enum":["equals","not_equals"]},"value":{"type":"string"},"url":{"type":"string"}},"required":["attribute","operator","value","url"]}},"publicStats":{"type":"boolean"},"tagId":{"type":"string","nullable":true,"default":null},"tags":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/TagSchema"},"default":null},"folderId":{"type":"string","nullable":true,"default":null},"comments":{"type":"string","nullable":true,"default":null},"notificationToken":{"type":"string","nullable":true,"default":null},"shortLink":{"type":"string","format":"uri","description":"The complete URL of the short link, including the https protocol (for example, `https://codeqr.link/try`)."},"qrCode":{"type":"string","format":"uri","description":"The complete QR code URL for the short link (for example, `https://api.codeqr.io/qr?url=https://codeqr.link/try`)."},"utm_source":{"type":"string","nullable":true,"default":null},"utm_medium":{"type":"string","nullable":true,"default":null},"utm_campaign":{"type":"string","nullable":true,"default":null},"utm_term":{"type":"string","nullable":true,"default":null},"utm_content":{"type":"string","nullable":true,"default":null},"userId":{"type":"string","nullable":true},"projectId":{"type":"string","description":"The ID of the project of the short link."},"clicks":{"type":"number","default":0,"description":"The number of clicks on the short link."},"leads":{"type":"number","default":0,"description":"The number of leads generated by the short link."},"sales":{"type":"number","default":0,"description":"The number of sales generated by the short link."},"saleAmount":{"type":"number","default":0,"description":"The amount of the sale generated by the link."},"lastClicked":{"nullable":true,"anyOf":[{"type":"string"},{"type":"string"}]},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"preRedirection":{"type":"boolean","default":false,"description":"Whether the short link has pre-redirection."},"pageId":{"type":"string","nullable":true,"description":"The ID of the page to redirect to before the link destination."},"pageUrl":{"type":"string","nullable":true,"description":"The URL of the page to redirect to before the link destination."},"isFormMandatory":{"type":"boolean","default":false,"description":"If the form is mandatory for the page."},"filled":{"type":"boolean","default":false,"description":"Whether the link is filled or not."},"useAsTemplate":{"type":"boolean","default":false,"description":"Whether this link should be used as a reusable template."}},"required":["id","domain","key","expiredUrl","flexible","password","title","description","image","video","ios","android","geo","tagId","tags","folderId","comments","notificationToken","utm_source","utm_medium","utm_campaign","utm_term","utm_content","projectId","clicks","leads","sales","saleAmount","createdAt","updatedAt","preRedirection","isFormMandatory","filled","useAsTemplate"]},"click_id":{"type":"string","description":"Deprecated. Use `click.id` instead.","deprecated":true},"link_id":{"type":"string","description":"Deprecated. Use `link.id` instead.","deprecated":true},"domain":{"type":"string","description":"Deprecated. Use `link.domain` instead.","deprecated":true},"key":{"type":"string","description":"Deprecated. Use `link.key` instead.","deprecated":true},"url":{"type":"string","description":"Deprecated. Use `click.url` instead.","deprecated":true},"continent":{"type":"string","description":"Deprecated. Use `click.continent` instead.","deprecated":true},"country":{"type":"string","description":"Deprecated. Use `click.country` instead.","deprecated":true},"city":{"type":"string","description":"Deprecated. Use `click.city` instead.","deprecated":true},"device":{"type":"string","description":"Deprecated. Use `click.device` instead.","deprecated":true},"browser":{"type":"string","description":"Deprecated. Use `click.browser` instead.","deprecated":true},"os":{"type":"string","description":"Deprecated. Use `click.os` instead.","deprecated":true},"type":{"type":"string","description":"Deprecated. Use `click.qr` instead.","deprecated":true},"ip":{"type":"string","description":"Deprecated. Use `click.ip` instead.","deprecated":true}},"required":["event","click","link","click_id","link_id","domain","key","url","continent","country","city","device","browser","os","type","ip"],"title":"ClickEvent"},"LeadEvent":{"type":"object","properties":{"event":{"type":"string","enum":["lead"]},"timestamp":{"type":"string"},"eventId":{"type":"string"},"eventName":{"type":"string"},"click":{"type":"object","properties":{"id":{"type":"string"},"url":{"type":"string"},"continent":{"type":"string"},"country":{"type":"string"},"city":{"type":"string"},"device":{"type":"string"},"browser":{"type":"string"},"os":{"type":"string"},"referer":{"type":"string"},"refererUrl":{"type":"string"},"type":{"type":"string"},"ip":{"type":"string"}},"required":["id","url","continent","country","city","device","browser","os","referer","refererUrl","type","ip"]},"link":{},"customer":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"email":{"type":"string"},"avatar":{"type":"string"}},"required":["id","name","email","avatar"]},"click_id":{"type":"string","description":"Deprecated. Use `click.id` instead.","deprecated":true},"link_id":{"type":"string","description":"Deprecated. Use `link.id` instead.","deprecated":true},"domain":{"type":"string","description":"Deprecated. Use `link.domain` instead.","deprecated":true},"key":{"type":"string","description":"Deprecated. Use `link.key` instead.","deprecated":true},"url":{"type":"string","description":"Deprecated. Use `click.url` instead.","deprecated":true},"continent":{"type":"string","description":"Deprecated. Use `click.continent` instead.","deprecated":true},"country":{"type":"string","description":"Deprecated. Use `click.country` instead.","deprecated":true},"city":{"type":"string","description":"Deprecated. Use `click.city` instead.","deprecated":true},"device":{"type":"string","description":"Deprecated. Use `click.device` instead.","deprecated":true},"browser":{"type":"string","description":"Deprecated. Use `click.browser` instead.","deprecated":true},"os":{"type":"string","description":"Deprecated. Use `click.os` instead.","deprecated":true},"type":{"type":"string","description":"Deprecated. Use `click.qr` instead.","deprecated":true},"ip":{"type":"string","description":"Deprecated. Use `click.ip` instead.","deprecated":true}},"required":["event","eventId","eventName","click","customer","click_id","link_id","domain","key","url","continent","country","city","device","browser","os","type","ip"],"title":"LeadEvent"},"SaleEvent":{"type":"object","properties":{"event":{"type":"string","enum":["sale"]},"timestamp":{"type":"string"},"eventId":{"type":"string"},"eventName":{"type":"string"},"link":{"type":"object","properties":{"id":{"type":"string","description":"The unique ID of the short link."},"domain":{"type":"string","description":"The domain of the short link. If not provided, the main domain of the project will be used (or `codeqr.link` if the project has no domains)."},"key":{"type":"string","description":"The slug of the short link. If not provided, a random 7-character slug will be generated."},"url":{"type":"string"},"archived":{"type":"boolean"},"expiresAt":{"type":"string","nullable":true},"expiredUrl":{"type":"string","nullable":true,"format":"uri","default":null},"trackConversion":{"type":"boolean"},"flexible":{"type":"boolean","default":false,"description":"Whether the short link is flexible."},"doIndex":{"type":"boolean"},"password":{"type":"string","nullable":true,"default":null},"externalId":{"type":"string","nullable":true},"proxy":{"type":"boolean"},"title":{"type":"string","nullable":true,"default":null},"description":{"type":"string","nullable":true,"default":null},"image":{"type":"string","nullable":true,"default":null},"video":{"type":"string","nullable":true,"default":null},"rewrite":{"type":"boolean"},"ios":{"type":"string","nullable":true,"default":null},"android":{"type":"string","nullable":true,"default":null},"geo":{"type":"object","nullable":true,"additionalProperties":{"type":"string"},"default":null},"rules":{"type":"array","nullable":true,"items":{"type":"object","properties":{"attribute":{"type":"string","enum":["device","country","utm_source","utm_medium","utm_campaign","referrer","language"]},"operator":{"type":"string","enum":["equals","not_equals"]},"value":{"type":"string"},"url":{"type":"string"}},"required":["attribute","operator","value","url"]}},"publicStats":{"type":"boolean"},"tagId":{"type":"string","nullable":true,"default":null},"tags":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/TagSchema"},"default":null},"folderId":{"type":"string","nullable":true,"default":null},"comments":{"type":"string","nullable":true,"default":null},"notificationToken":{"type":"string","nullable":true,"default":null},"shortLink":{"type":"string","format":"uri","description":"The complete URL of the short link, including the https protocol (for example, `https://codeqr.link/try`)."},"qrCode":{"type":"string","format":"uri","description":"The complete QR code URL for the short link (for example, `https://api.codeqr.io/qr?url=https://codeqr.link/try`)."},"utm_source":{"type":"string","nullable":true,"default":null},"utm_medium":{"type":"string","nullable":true,"default":null},"utm_campaign":{"type":"string","nullable":true,"default":null},"utm_term":{"type":"string","nullable":true,"default":null},"utm_content":{"type":"string","nullable":true,"default":null},"userId":{"type":"string","nullable":true},"projectId":{"type":"string","description":"The ID of the project of the short link."},"clicks":{"type":"number","default":0,"description":"The number of clicks on the short link."},"leads":{"type":"number","default":0,"description":"The number of leads generated by the short link."},"sales":{"type":"number","default":0,"description":"The number of sales generated by the short link."},"saleAmount":{"type":"number","default":0,"description":"The amount of the sale generated by the link."},"lastClicked":{"nullable":true,"anyOf":[{"type":"string"},{"type":"string"}]},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"preRedirection":{"type":"boolean","default":false,"description":"Whether the short link has pre-redirection."},"pageId":{"type":"string","nullable":true,"description":"The ID of the page to redirect to before the link destination."},"pageUrl":{"type":"string","nullable":true,"description":"The URL of the page to redirect to before the link destination."},"isFormMandatory":{"type":"boolean","default":false,"description":"If the form is mandatory for the page."},"filled":{"type":"boolean","default":false,"description":"Whether the link is filled or not."},"useAsTemplate":{"type":"boolean","default":false,"description":"Whether this link should be used as a reusable template."}},"required":["id","domain","key","expiredUrl","flexible","password","title","description","image","video","ios","android","geo","tagId","tags","folderId","comments","notificationToken","utm_source","utm_medium","utm_campaign","utm_term","utm_content","projectId","clicks","leads","sales","saleAmount","createdAt","updatedAt","preRedirection","isFormMandatory","filled","useAsTemplate"]},"click":{"type":"object","properties":{"id":{"type":"string"},"url":{"type":"string"},"continent":{"type":"string"},"country":{"type":"string"},"city":{"type":"string"},"device":{"type":"string"},"browser":{"type":"string"},"os":{"type":"string"},"referer":{"type":"string"},"refererUrl":{"type":"string"},"type":{"type":"string"},"ip":{"type":"string"}},"required":["id","url","continent","country","city","device","browser","os","referer","refererUrl","type","ip"]},"customer":{"type":"object","properties":{"id":{"type":"string","description":"The unique ID of the customer. You may use either the customer's `id` on CodeQR (obtained via `/customers` endpoint) or their `externalId` (unique ID within your system, prefixed with `ext_`, e.g. `ext_123`)."},"externalId":{"type":"string","description":"Unique identifier for the customer in the client's app."},"name":{"type":"string","description":"Name of the customer."},"email":{"type":"string","nullable":true,"description":"Email of the customer."},"avatar":{"type":"string","nullable":true,"description":"Avatar URL of the customer."},"country":{"type":"string","nullable":true,"description":"Country of the customer."},"createdAt":{"type":"string","description":"The date the customer was created."},"link":{"type":"object","nullable":true,"properties":{"id":{"type":"string","description":"The unique ID of the short link."},"domain":{"type":"string","description":"The domain of the short link. If not provided, the main domain of the project will be used (or `codeqr.link` if the project has no domains)."},"key":{"type":"string","description":"The slug of the short link. If not provided, a random 7-character slug will be generated."},"shortLink":{"type":"string","format":"uri","description":"The complete URL of the short link, including the https protocol (for example, `https://codeqr.link/try`)."}},"required":["id","domain","key"]},"customFields":{"type":"object","nullable":true,"additionalProperties":{"type":"string"},"description":"Custom fields of the customer."}},"required":["id","externalId","name","createdAt"]},"sale":{"type":"object","properties":{"amount":{"type":"integer","minimum":0,"description":"The amount of the sale in the smallest unit of `currency` — cents for two-decimal currencies, the full integer for zero-decimal ones (e.g. `1437` JPY), thousandths for three-decimal ones (e.g. `1437` KWD fils)."},"invoiceId":{"type":"string","nullable":true,"default":null,"description":"The invoice ID of the sale. Can be used as a idempotency key – only one sale event can be recorded for a given invoice ID."},"paymentProcessor":{"type":"string","enum":["stripe","shopify","polar","paddle","revenuecat","custom","manual"],"default":"custom","description":"The payment processor via which the sale was made."}},"required":["amount","invoiceId","paymentProcessor"]},"saleAmount":{"type":"number","description":"Deprecated. Use `sale.amount` instead.","deprecated":true},"invoice_id":{"type":"string","description":"Deprecated. Use `sale.invoiceId` instead.","deprecated":true},"payment_processor":{"type":"string","description":"Deprecated. Use `sale.paymentProcessor` instead."},"metadata":{"type":"string"},"click_id":{"type":"string","description":"Deprecated. Use `click.id` instead.","deprecated":true},"link_id":{"type":"string","description":"Deprecated. Use `link.id` instead.","deprecated":true},"domain":{"type":"string","description":"Deprecated. Use `link.domain` instead.","deprecated":true},"key":{"type":"string","description":"Deprecated. Use `link.key` instead.","deprecated":true},"url":{"type":"string","description":"Deprecated. Use `click.url` instead.","deprecated":true},"continent":{"type":"string","description":"Deprecated. Use `click.continent` instead.","deprecated":true},"country":{"type":"string","description":"Deprecated. Use `click.country` instead.","deprecated":true},"city":{"type":"string","description":"Deprecated. Use `click.city` instead.","deprecated":true},"device":{"type":"string","description":"Deprecated. Use `click.device` instead.","deprecated":true},"browser":{"type":"string","description":"Deprecated. Use `click.browser` instead.","deprecated":true},"os":{"type":"string","description":"Deprecated. Use `click.os` instead.","deprecated":true},"type":{"type":"string","description":"Deprecated. Use `click.qr` instead.","deprecated":true},"ip":{"type":"string","description":"Deprecated. Use `click.ip` instead.","deprecated":true}},"required":["event","eventId","eventName","link","click","customer","sale","saleAmount","invoice_id","payment_processor","metadata","click_id","link_id","domain","key","url","continent","country","city","device","browser","os","type","ip"],"title":"SaleEvent"}},"responses":{"400":{"description":"The server cannot or will not process the request due to something that is perceived to be a client error (e.g., malformed request syntax, invalid request message framing, or deceptive request routing).","content":{"application/json":{"schema":{"x-speakeasy-name-override":"BadRequest","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["bad_request"],"description":"A short code indicating the error code returned.","example":"bad_request"},"message":{"x-speakeasy-error-message":true,"type":"string","description":"A human readable explanation of what went wrong.","example":"The requested resource was not found."},"doc_url":{"type":"string","description":"A link to our documentation with more details about this error code","example":"https://docs.codeqr.io/api-reference/errors#bad-request"}},"required":["code","message"]}},"required":["error"]}}}},"401":{"description":"Although the HTTP standard specifies \"unauthorized\", semantically this response means \"unauthenticated\". That is, the client must authenticate itself to get the requested response.","content":{"application/json":{"schema":{"x-speakeasy-name-override":"Unauthorized","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["unauthorized"],"description":"A short code indicating the error code returned.","example":"unauthorized"},"message":{"x-speakeasy-error-message":true,"type":"string","description":"A human readable explanation of what went wrong.","example":"The requested resource was not found."},"doc_url":{"type":"string","description":"A link to our documentation with more details about this error code","example":"https://docs.codeqr.io/api-reference/errors#unauthorized"}},"required":["code","message"]}},"required":["error"]}}}},"403":{"description":"The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource. Unlike 401 Unauthorized, the client's identity is known to the server.","content":{"application/json":{"schema":{"x-speakeasy-name-override":"Forbidden","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["forbidden"],"description":"A short code indicating the error code returned.","example":"forbidden"},"message":{"x-speakeasy-error-message":true,"type":"string","description":"A human readable explanation of what went wrong.","example":"The requested resource was not found."},"doc_url":{"type":"string","description":"A link to our documentation with more details about this error code","example":"https://docs.codeqr.io/api-reference/errors#forbidden"}},"required":["code","message"]}},"required":["error"]}}}},"404":{"description":"The server cannot find the requested resource.","content":{"application/json":{"schema":{"x-speakeasy-name-override":"NotFound","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["not_found"],"description":"A short code indicating the error code returned.","example":"not_found"},"message":{"x-speakeasy-error-message":true,"type":"string","description":"A human readable explanation of what went wrong.","example":"The requested resource was not found."},"doc_url":{"type":"string","description":"A link to our documentation with more details about this error code","example":"https://docs.codeqr.io/api-reference/errors#not-found"}},"required":["code","message"]}},"required":["error"]}}}},"409":{"description":"This response is sent when a request conflicts with the current state of the server.","content":{"application/json":{"schema":{"x-speakeasy-name-override":"Conflict","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["conflict"],"description":"A short code indicating the error code returned.","example":"conflict"},"message":{"x-speakeasy-error-message":true,"type":"string","description":"A human readable explanation of what went wrong.","example":"The requested resource was not found."},"doc_url":{"type":"string","description":"A link to our documentation with more details about this error code","example":"https://docs.codeqr.io/api-reference/errors#conflict"}},"required":["code","message"]}},"required":["error"]}}}},"410":{"description":"This response is sent when the requested content has been permanently deleted from server, with no forwarding address.","content":{"application/json":{"schema":{"x-speakeasy-name-override":"InviteExpired","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["invite_expired"],"description":"A short code indicating the error code returned.","example":"invite_expired"},"message":{"x-speakeasy-error-message":true,"type":"string","description":"A human readable explanation of what went wrong.","example":"The requested resource was not found."},"doc_url":{"type":"string","description":"A link to our documentation with more details about this error code","example":"https://docs.codeqr.io/api-reference/errors#invite-expired"}},"required":["code","message"]}},"required":["error"]}}}},"422":{"description":"The request was well-formed but was unable to be followed due to semantic errors.","content":{"application/json":{"schema":{"x-speakeasy-name-override":"UnprocessableEntity","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["unprocessable_entity"],"description":"A short code indicating the error code returned.","example":"unprocessable_entity"},"message":{"x-speakeasy-error-message":true,"type":"string","description":"A human readable explanation of what went wrong.","example":"The requested resource was not found."},"doc_url":{"type":"string","description":"A link to our documentation with more details about this error code","example":"https://docs.codeqr.io/api-reference/errors#unprocessable-entity"}},"required":["code","message"]}},"required":["error"]}}}},"429":{"description":"The user has sent too many requests in a given amount of time (\"rate limiting\")","content":{"application/json":{"schema":{"x-speakeasy-name-override":"RateLimitExceeded","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["rate_limit_exceeded"],"description":"A short code indicating the error code returned.","example":"rate_limit_exceeded"},"message":{"x-speakeasy-error-message":true,"type":"string","description":"A human readable explanation of what went wrong.","example":"The requested resource was not found."},"doc_url":{"type":"string","description":"A link to our documentation with more details about this error code","example":"https://docs.codeqr.io/api-reference/errors#rate-limit_exceeded"}},"required":["code","message"]}},"required":["error"]}}}},"500":{"description":"The server has encountered a situation it does not know how to handle.","content":{"application/json":{"schema":{"x-speakeasy-name-override":"InternalServerError","type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["internal_server_error"],"description":"A short code indicating the error code returned.","example":"internal_server_error"},"message":{"x-speakeasy-error-message":true,"type":"string","description":"A human readable explanation of what went wrong.","example":"The requested resource was not found."},"doc_url":{"type":"string","description":"A link to our documentation with more details about this error code","example":"https://docs.codeqr.io/api-reference/errors#internal-server_error"}},"required":["code","message"]}},"required":["error"]}}}}}}}