add_block | Add a block to the profile. Blocks appear in order — new blocks are added at the end by default, or at a specific position. Block types: link (clickable button), header (section heading), text (paragraph), divider (visual separator), image (full-width image), embed (YouTube/Spotify/SoundCloud), spacer (vertical gap), marquee (scrolling text). |
add_block_v2 | Add a block with full prototype parity (gallery, countdown, product, embed presets). |
add_social_link | Add a social link to the profile's social icon bar. Common platforms: twitter, instagram, github, linkedin, youtube, tiktok, facebook, twitch, discord, spotify, email, website. |
apply_qr_templatedestructive | Apply a saved QR style template to a shortlink — copies the template's full style (colors, shapes, center logo/emblem) onto that link's QR. Reference the template by its name or id (see list_qr_templates). |
apply_themedestructive | Apply a canonical theme preset (paper, aurora, galaxy, …). Legacy names are aliases. |
bulk_create_links | Create multiple shortlinks at once (max 50). Use this when you need to create several links in one operation. |
create_alias | Create a username/alias for the user. This is REQUIRED before any profile operations — the alias becomes the public URL (urlinks.me/{alias}). Rules: 5+ characters, alphanumeric only, must be unique. |
create_shortlink | Create a new shortlink. The shortlink path must start with 'my/' (personal) or 'yt/' (YouTube globals). Once created, my/ shortlinks resolve publicly at https://urlinks.me/{alias}/{name} (assuming the user has set an alias via create_alias) — that's the URL QR codes encode for click tracking. Group shortlinks (e.g. work/foo) aren't supported through the API yet; use the web dashboard for those. |
delete_linkdestructive | Delete a shortlink permanently. This cannot be undone. |
delete_qr_templatedestructive | Delete a saved QR style template by its name or id. |
edit_linkdestructive | Update a shortlink's destination URL or description. |
get_aliasread-only | Check if the user has a username/alias set. An alias is required before a profile can be created — it becomes the public URL (urlinks.me/{alias}). Call this first when starting profile setup. |
get_custom_cssread-only | Get the user's current custom CSS for all profile concerns. Shows which concerns have active CSS and what CSS is applied to each. |
get_customization_rulesread-only | Get the complete rule set for customizing a URLinks profile page via CSS. Returns the concern map (which CSS classes target which profile elements), the actual HTML structure each class wraps, example CSS for each concern, allowed properties, blocked patterns, and tips. Always call this FIRST before writing any custom CSS — it tells you exactly what to target, what the DOM looks like, and what's blocked. |
get_link_analyticsread-only | Get click analytics for a shortlink — total clicks, daily breakdown, and last clicked time. |
get_profileread-only | Get the user's current profile — display name, bio, blocks, social links, theme, custom CSS, and published status. Requires an alias to be set first (use get_alias to check, create_alias to set one). |
get_profile_analyticsread-only | Get analytics for the user's profile — total views, per-link click counts, and daily breakdowns. Shows which links are getting the most engagement. |
get_public_profileread-only | View any user's public profile by username. Returns the published profile as visitors see it. |
get_qr_configread-only | Get the QR code configuration for a shortlink, including whether one has been set up. |
get_qr_imageread-only | Generate a QR code image (SVG or PNG) for a shortlink. The QR encodes the urlinks.me redirect URL (NOT the bare destination) so scans count as clicks: my/foo → urlinks.me/{alias}/foo, yt/foo → urlinks.me/yt/foo. Personal (my/) shortlinks therefore require the user to have an alias set — call get_alias to check, create_alias to set one. Renders the link's saved QR Studio styling (dot/corner shapes, colors, gradient, logo) with the same engine as the dashboard, so the image is identical to what QR Studio shows. Override colors with fg/bg if needed. |
list_linksread-only | List all your shortlinks. Returns shortlink slugs, destination URLs, descriptions, and the public scan URL each one resolves at (e.g. urlinks.me/{alias}/foo). The public URL is what QR codes and shareable links use. |
list_profile_style_optionsread-only | Catalog of profile style options — fonts, scenes, gradients, animations, block types, embed providers. |
list_qr_templatesread-only | List the user's saved QR style templates — reusable styles (colors, shapes, center logo/emblem) they can apply to any link with apply_qr_template. |
list_themesread-only | List theme presets. Prefer list_themes_v2 for the full canonical catalog. Use set_theme or apply_theme to apply one. |
list_themes_v2read-only | List canonical theme presets (editor prototype). |
publish_profiledestructive | Publish or unpublish the profile. A published profile is visible at urlinks.me/{username}. An unpublished profile is a draft — only the owner can see it in the editor. |
remove_blockdestructive | Remove a block from the profile by its position (0-based index). Use get_profile first to see the block list and positions. |
remove_social_linkdestructive | Remove a social link by platform name. |
reorder_blocksdestructive | Move a block from one position to another. Use get_profile to see current positions first. |
reset_custom_cssdestructive | Reset/remove custom CSS for specific concerns, or all concerns at once. This removes the custom styling and reverts to the default appearance. |
save_qr_configdestructive | Save a QR code style configuration for an existing shortlink. The generated QR encodes the urlinks.me redirect URL (https://urlinks.me/{alias}/{name} for my/ links, or https://urlinks.me/{shortlink} for yt/ and group links) — NOT the destination URL directly — so every scan is counted as a click. Personal (my/) shortlinks therefore require the user to have an alias set; use get_alias to check and create_alias to set one. Available styles: dot shapes (square, circle, rounded, classy, classy-rounded, diamond, star, heart, plus, hexagon, octagon, drop), corner styles (same set — novelty shapes fill only the inner pip), an outer frame (none/square/circle/rounded), colors, center logo or a built-in emblem (heart/star/bolt/clover/shield/moon), and a scan-me frame. Gradients are dashboard-only for now. |
search_linksread-only | Search your shortlinks by name, URL, or description. Use this to find an existing link before creating a new one. |
set_themedestructive | Apply a visual theme preset. Uses @urlinks/profile-presets (paper, aurora, galaxy, …). Legacy names (clean, cream, dark, …) are aliases. Prefer apply_theme for the same behavior. You can also set custom colors as overrides. |
submit_custom_cssdestructive | Submit custom CSS for one or more profile concerns. The CSS is sanitized server-side and stored per-concern. Call get_customization_rules first to understand what selectors and properties are available. CSS must target .pc-* classes only. url() is blocked — use gradients and solid colors. @keyframes are supported. |
update_aliasdestructive | Change the user's alias/username to a new one. Their profile URL will change from urlinks.me/{old} to urlinks.me/{new}. The profile is automatically migrated. |
update_blockdestructive | Update block content/style by position or block_id. |
update_page_styledestructive | Merge visual/layout fields into page_style. Syncs displayName/bio/avatarUrl to top-level profile when set. |
update_profiledestructive | Update the profile's basic info — display name, bio, or avatar URL. Only the fields you provide will change; everything else stays the same. This does NOT publish the profile — use publish_profile for that. |