{"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 }`."},"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 }`."},"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 }`."},"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 }`."},"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."},"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 }`."},"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","latlog"],"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."},"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":"The text of the frame of the QR code."},"frameTextColor":{"type":"string","description":"The color of the text inside the frame (hex or CSS keyword). When not set, a contrasting color is derived from the frame color."},"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 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 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","latlog","pix"],"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 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 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","latlog","pix"],"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."},"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 }`."},"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","latlog"],"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."},"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":"The text of the frame of the QR code."},"frameTextColor":{"type":"string","description":"The color of the text inside the frame (hex or CSS keyword). When not set, a contrasting color is derived from the frame color."},"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."},"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 }`."},"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","latlog"],"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."},"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":"The text of the frame of the QR code."},"frameTextColor":{"type":"string","description":"The color of the text inside the frame (hex or CSS keyword). When not set, a contrasting color is derived from the frame color."},"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."},"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 }`."},"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","latlog"],"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."},"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":"The text of the frame of the QR code."},"frameTextColor":{"type":"string","description":"The color of the text inside the frame (hex or CSS keyword). When not set, a contrasting color is derived from the frame color."},"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 `cd_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 cents (for all two-decimal currencies). If the sale is in a zero-decimal currency, pass the full integer value (e.g. `1437` JPY). Learn more: https://d.to/currency"},"currency":{"type":"string","default":"usd","description":"The currency of the sale. Accepts ISO 4217 currency codes. Sales will be automatically converted and stored as USD at the latest exchange rates. Learn more: https://d.to/currency"},"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"},"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","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"},"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","latlog","pix"],"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."},"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."},"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","static","useDisplayPage","type","contentStatic","text","email","wifi","url","phone","vcard","crypto","sms","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"]},"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},"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"},"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","latlog","pix"],"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."},"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."},"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","static","useDisplayPage","type","contentStatic","text","email","wifi","url","phone","vcard","crypto","sms","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 country code of the region: https://d.to/geo"},"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},"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},"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 cents (for all two-decimal currencies). If the sale is in a zero-decimal currency, pass the full integer value (e.g. `1437` JPY). Learn more: https://d.to/currency"},"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"]}}}}}}}