MARKETING · MARKETING
Branded short links, folders, tags and QR codes under their own API key.
Each user connects their own account. Every call carries both identities — the agent and the person it is acting for — so the agent can never reach past what that individual can already do.
Tokens live in the vault and attach server-side at call time. The agent holds a session, not a secret, and revoking access does not mean rotating a key.
Who asked, which agent acted, which action ran, and the verdict that let it through — one audit trail across every integration, not one per vendor.
Each action is granted on its own. An agent allowed to read is not thereby allowed to write, and the scope beside each row is what the acting user must have connected for it to run at all.
shortio_delete_domains_allowedhostnames_by_domainidWRITERemoves a hostname from the domain's allowed-hostnames list. via DELETE /domains/allowedHostnames/{domainId}
shortio_delete_domains_dnsrecordWRITEDeletes DNS records of the given name and type. Omit `value` to remove every matching record. via DELETE /domains/dnsRecord
shortio_delete_domains_favicon_by_domainidWRITEDeletes the domain's favicon. via DELETE /domains/favicon/{domainId}
shortio_delete_domains_favorite_by_domainidWRITERemoves the domain from the current user's favorites. via DELETE /domains/favorite/{domainId}
shortio_delete_domains_ipexclusions_by_domainidWRITERemoves an IP address from the domain's exclusion list. via DELETE /domains/ipExclusions/{domainId}
shortio_delete_domains_link_signature_key_by_domainidWRITERemoves the domain's link-signature key (sets it to null), disabling redirect URL signing for the domain. via DELETE /domains/link-signature-key/{domainId}
shortio_delete_domains_qrcodesettings_by_domainidWRITEDeletes the domain's QR code settings, reverting to defaults. via DELETE /domains/qrCodeSettings/{domainId}
shortio_delete_domains_s3exports_by_domainidWRITEDisables daily S3 click export for the domain. via DELETE /domains/s3exports/{domainId}
shortio_delete_domains_theme_by_domainidWRITEDeletes theme settings for the domain, reverting it to the default theme. via DELETE /domains/theme/{domainId}
shortio_delete_link_country_by_linkid_by_countryWRITEDelete link country via DELETE /link_country/{linkId}/{country}
shortio_delete_link_region_by_linkid_by_country_by_regionWRITEDelete link region by country via DELETE /link_region/{linkId}/{country}/{region}
shortio_delete_linksWRITEDelete links of a domain within a created-at date interval. Provide any combination of bounds (at least one is required): - `createdAfter` / `createdBefore`: Unix timestamps in milliseconds - `days`: relative upper bound (delete links older than N days) Optionally restrict deletion to links whose `conditionalColumn` matches `conditionalMatch`. Deletion runs asynchronously. via DELETE /links
shortio_delete_links_bundle_by_idWRITEDeletes a bundle by ULID id via DELETE /links/bundle/{id}
shortio_delete_links_bundle_by_id_links_by_linktemplateidWRITERemoves a link from a bundle by its link template ID via DELETE /links/bundle/{id}/links/{linkTemplateId}
shortio_delete_links_by_link_idWRITEDelete link by id **Rate limit**: 20/s via DELETE /links/{link_id}
shortio_delete_links_delete_bulkWRITEDelete links in bulk by ids **Rate limit**: 1/s via DELETE /links/delete_bulk
shortio_delete_links_permissions_by_domainid_by_linkid_by_useridWRITEDelete link permissions via DELETE /links/permissions/{domainId}/{linkId}/{userId}
shortio_delete_links_post_by_idWRITEDelete post via DELETE /links/post/{id}
shortio_delete_links_qr_hosted_by_idWRITERevoke a hosted QR code via DELETE /links/qr/hosted/{id}
shortio_get_api_domainsREADShows all domains of current user via GET /api/domains
shortio_get_api_linksREADGet domain links via GET /api/links
shortio_get_auditREADLists audit log entries for a team or a domain. via GET /audit
shortio_get_domains_allowedhostnames_by_domainidREADReturns the domain's allowed-hostnames list. via GET /domains/allowedHostnames/{domainId}
shortio_get_domains_by_domainidREADGet domain details by id via GET /domains/{domainId}
shortio_get_domains_dnsrecordREADReturns the customer-managed DNS records for a domain registered through Short.io. via GET /domains/dnsRecord
shortio_get_domains_password_by_domainidREADReturns the custom CSS applied to the domain's password prompt page. via GET /domains/password/{domainId}
shortio_get_domains_qrcodesettings_by_domainidREADReturns the default QR code settings applied to the domain's links. via GET /domains/qrCodeSettings/{domainId}
shortio_get_domains_s3exports_by_domainidREADReturns the S3 click-export configuration and status for the domain. via GET /domains/s3exports/{domainId}
shortio_get_domains_theme_by_domainidREADReturns theme settings for the domain. via GET /domains/theme/{domainId}
shortio_get_domains_universallinks_by_domainidREADReturns the iOS/Android universal-link (app association) configuration for the domain. via GET /domains/universalLinks/{domainId}
shortio_get_link_country_by_linkidREADGet link countries via GET /link_country/{linkId}
shortio_get_link_region_by_linkidREADGet link regions via GET /link_region/{linkId}
shortio_get_link_region_list_by_countryREADGet all regions by country via GET /link_region/list/{country}
shortio_get_links_bundle_by_idREADReturns bundle details by ULID id via GET /links/bundle/{id}
shortio_get_links_bundle_by_id_linksREADReturns all links in a bundle, ordered by sort order via GET /links/bundle/{id}/links
shortio_get_links_bundle_templatesREADReturns all available bundle templates via GET /links/bundle/templates
shortio_get_links_by_linkidREADGet link info by link id. Rate limit: 20/s via GET /links/{linkId}
shortio_get_links_by_original_urlREAD**DEPRECATED** Get link info by original URL. Returns 404 if the domain does not exist in your organization. Rate limit: 20/s via GET /links/by-original-url
shortio_get_links_expandREADGet link info by path. Returns 404 if the domain does not exist in your organization. Rate limit: 20/s via GET /links/expand
shortio_get_links_folders_by_domainidREADGet links folders for the specified domain id via GET /links/folders/{domainId}
shortio_get_links_folders_by_domainid_by_folderidREADGet links folder for the specified domain id and user id via GET /links/folders/{domainId}/{folderId}
shortio_get_links_multiple_by_urlREADReturns all links with the same original URL. Returns 404 if the domain does not exist in your organization. via GET /links/multiple-by-url
shortio_get_links_opengraph_by_domainid_by_linkidREADGet link opengraph properties via GET /links/opengraph/{domainId}/{linkId}
shortio_get_links_permissions_by_domainid_by_linkidREADGet link permissions via GET /links/permissions/{domainId}/{linkId}
shortio_get_links_post_by_idREADGet post by ID via GET /links/post/{id}
shortio_get_links_qr_hostedREADList hosted QR codes via GET /links/qr/hosted
shortio_get_links_tweetbotREADSimple version of link create endpoint. You can use it if you can not use POST method Returns 404 if the domain does not exist in your organization. **Rate limit**: 50/s via GET /links/tweetbot
shortio_get_organizations_by_organizationid_planinfoREADReturns the organization's plan tier and billing period alongside its current usage counters: domain and link counts, paid link count, AI spend in microdollars, stored bytes, and remaining Pro/Team trial days. via GET /organizations/{organizationId}/planInfo
shortio_get_tags_by_domainidREADList the tags used across a domain via GET /tags/{domainId}
shortio_get_tags_by_domainid_popularREADGet the most popular tags in a domain via GET /tags/{domainId}/popular
shortio_patch_links_bundle_by_id_linksWRITEUpdates the sort order of links in a bundle via PATCH /links/bundle/{id}/links
shortio_post_domainsWRITECreate a domain via POST /domains
shortio_post_domains_allowedhostnames_by_domainidWRITEAdds a hostname to the domain's allowed-hostnames list. via POST /domains/allowedHostnames/{domainId}
shortio_post_domains_dnsrecordWRITECreates one or more DNS records for a domain registered through Short.io. via POST /domains/dnsRecord
shortio_post_domains_favorite_by_domainidWRITEMarks the domain as a favorite for the current user. via POST /domains/favorite/{domainId}
shortio_post_domains_ipexclusions_by_domainidWRITEAdds an IP address to the domain's exclusion list, so clicks from it are not counted. via POST /domains/ipExclusions/{domainId}
shortio_post_domains_link_signature_key_by_domainidWRITEGenerates a new per-domain HMAC secret used by the redirector to sign redirect destination URLs, and returns it. Regenerating invalidates the previous key. via POST /domains/link-signature-key/{domainId}
shortio_post_domains_password_by_domainidWRITESets the custom CSS applied to the domain's password prompt page. via POST /domains/password/{domainId}
shortio_post_domains_qrcodesettings_by_domainidWRITECreates or updates the default QR code settings applied to the domain's links. via POST /domains/qrCodeSettings/{domainId}
shortio_post_domains_s3exports_by_domainidWRITEEnables daily S3 click export for the domain. via POST /domains/s3exports/{domainId}
shortio_post_domains_settings_by_domainidWRITEUpdate domain settings via POST /domains/settings/{domainId}
shortio_post_domains_theme_by_domainidWRITECreates or updates theme settings for the domain. Colors are 6- or 8-character hex strings without the leading `#` (RRGGBB, or RRGGBBAA for transparency). via POST /domains/theme/{domainId}
shortio_post_domains_universallinks_by_domainidWRITECreates or updates the iOS/Android universal-link (app association) configuration for the domain. via POST /domains/universalLinks/{domainId}
shortio_post_link_country_bulk_by_linkidWRITECreate link countries in bulk via POST /link_country/bulk/{linkId}
shortio_post_link_country_by_linkidWRITECreate link country via POST /link_country/{linkId}
shortio_post_link_region_bulk_by_linkidWRITECreate link regions in bulk via POST /link_region/bulk/{linkId}
shortio_post_link_region_by_linkidWRITEAdd region targeting to link via POST /link_region/{linkId}
shortio_post_linksWRITEThis method creates a new link. If parameter "path" is omitted, it generates path by algorithm, chosen in domain settings. Notes: 1. If URL with a given path already exists and originalURL of the URL in database is equal to originalURL argument, it returns information about existing URL 2. If URL with a given path already exists and originalURL is different from originalURL in database, it returns error with a status `409` 3. If URL with a given originalURL exists, and no path is given, it returns information about existing URL and does not create anything 4. If URL with a given originalURL exists, and custom path is given, it creates a new short URL Returns 404 if the domain does not exist in your organization. **Rate limit**: 50/s via POST /links
shortio_post_links_archiveWRITEArchive link via POST /links/archive
shortio_post_links_archive_bulkWRITEArchive links in bulk via POST /links/archive_bulk
shortio_post_links_bulkWRITEPlease use this method if you need to create big packs of links. It accepts up to 1000 links in one API call. It works almost the same as single link creation endpoint, but accepts an array of URLs and returns an array of responses. Returns list of Link objects. If any URL is failed to insert, it returns error object instead as array element. Method is not transactional – it can insert some links from the list and return an error for others. Returns 404 if the domain does not exist in your organization. **Rate limit**: 5 queries in 10 seconds via POST /links/bulk
shortio_post_links_bundleWRITECreates a new link bundle with customizable template, social media links, and branding via POST /links/bundle
shortio_post_links_bundle_by_id_linksWRITEAdds a short link to a bundle. If the link doesn't exist, it will be created. via POST /links/bundle/{id}/links
shortio_post_links_by_linkidWRITEUpdate original url, title or path for existing URL by id **Rate limit**: 20/s via POST /links/{linkId}
shortio_post_links_deeplinks_debugWRITENOT CALLABLE ON THIS CONNECTION -- refused by name; see the error for the reason. Fetch and inspect deep link configuration for a URL (public, hCaptcha-protected) via POST /links/deeplinks/debug
shortio_post_links_examplesWRITECreates a set of demo/example links to showcase various features of the short link service. Example links include: - A/B testing with split URLs - Mobile targeting (different URLs for Android/iPhone) - Expiring links with time limits - File download links - Password-protected links Returns 404 if the domain does not exist in your organization. **Rate limit**: 5/10s via POST /links/examples
shortio_post_links_foldersWRITECreate a new folder via POST /links/folders
shortio_post_links_opengraph_debugWRITENOT CALLABLE ON THIS CONNECTION -- refused by name; see the error for the reason. Fetch and inspect OpenGraph tags for a URL (public, hCaptcha-protected) via POST /links/opengraph/debug
shortio_post_links_permissions_by_domainid_by_linkid_by_useridWRITEAdd link permission via POST /links/permissions/{domainId}/{linkId}/{userId}
shortio_post_links_postWRITECreates a content page rendered at a short link via POST /links/post
shortio_post_links_publicWRITENOT CALLABLE ON THIS CONNECTION -- refused by name; see the error for the reason. This method creates a new link. Only this method should be used in client-side applications If parameter "path" is omitted, it generates path by algorithm, chosen in domain settings. You can use it with public API key in your frontend applications (client-side javascript, Android & iPhone apps) **Rate limit**: 50/s via POST /links/public
shortio_post_links_qr_by_linkidstringWRITEGenerate QR code for the link via POST /links/qr/{linkIdString}
shortio_post_links_qr_by_linkidstring_aiWRITEGenerate an AI QR code for the link via POST /links/qr/{linkIdString}/ai
shortio_post_links_qr_by_linkidstring_hostedWRITEGenerate a hosted QR code for the link via POST /links/qr/{linkIdString}/hosted
shortio_post_links_unarchiveWRITEUnarchive link via POST /links/unarchive
shortio_post_links_unarchive_bulkWRITEUnarchive links in bulk via POST /links/unarchive_bulk
shortio_post_tags_bulkWRITEAppend a single tag to the links in bulk via POST /tags/bulk
shortio_put_links_bundle_by_idWRITEUpdates bundle details, social media links, and branding via PUT /links/bundle/{id}
shortio_put_links_opengraph_by_domainid_by_linkidWRITESet link opengraph properties via PUT /links/opengraph/{domainId}/{linkId}
shortio_put_links_post_by_idWRITEUpdate post via PUT /links/post/{id}
Put Short.io behind one governed endpoint.
Same permissions, same audit trail, whatever else you connect next.