Skip to main content

Documentation Index

Fetch the complete documentation index at: https://rocks.docs.rive.wtf/llms.txt

Use this file to discover all available pages before exploring further.

Every API key is tied to one IP. To apply for a key, DM southctrl on Discord.
Use the endpoint path below, replace the required params, and send Authorization: Bearer YOUR_API_KEY.

Quick Start

1

Choose a username

Use the guns.lol username you want to look up.
2

Call the profile route

Send a request to /api/gunslol?username=....
3

Read the profile data

Response includes profile info, social links, extras, and discovered metadata.
Best for profile lookup tools, user cards, and bio viewers.

Overview

The Guns.lol API allows you to fetch complete profile data from guns.lol by username. The response includes identity info, social links, and deep page metadata such as images, videos, scripts, and JSON-LD blocks.

Get Profile

Retrieve a full guns.lol profile.

Endpoint

GET /api/gunslol

Query Parameters

username
string
required
guns.lol username. Case-insensitive.

Example Request

curl "https://rocks.rive.wtf/api/gunslol?username=prison" \
  -H "Authorization: Bearer YOUR_API_KEY"

Example Response

{
  "username": "prison",
  "profile_url": "https://guns.lol/prison",
  "data_obj": {
    "_id": "653d7dca72b3186863a866e8",
    "account_created": 1698528714,
    "aliases": [
      "southctrl"
    ],
    "config": {
      "animated_title": true,
      "audio": [],
      "audio_player": true,
      "avatar": "",
      "background_effects": "snowflakes",
      "badge_glow": true,
      "bg_color": "#ffffff",
      "blur": 0,
      "color": "#ffffff",
      "custom_badges": [],
      "custom_cursor": "https://r2.guns.lol/8716d850-91f9-4e44-a18f-e253aeb741bd.png",
      "description": "@southctrl ",
      "discord_avatar_decoration": false,
      "display_name": "Bernard",
      "gradient_1": "#0c0c0c",
      "gradient_2": "#000000",
      "icon_color": "#ffffff",
      "location": "Rive's DB",
      "monochrome": true,
      "opacity": 0,
      "page_views": 503,
      "premium": {
        "animation": "fade",
        "avatar_radius": 35,
        "badge_color": "#ffffff",
        "banner": "",
        "border_color": "#000000",
        "border_enabled": true,
        "border_radius": 0,
        "border_width": 2,
        "button_border_radius": 12,
        "button_shadow": false,
        "buttons": [],
        "cursor_effects": "snowflakes",
        "effects_color": "#cdd6f4",
        "font": "jetbrains_mono",
        "hide_views": false,
        "layout": "modern",
        "metadata": {
          "description": "",
          "favicon": "",
          "image": "https://r2.guns.lol/4d70342d-be3b-46eb-9443-1cdce2effaf4.jpg",
          "information_overlay": false,
          "title": ""
        },
        "monochrome_badges": true,
        "page_enter_text": "[ Click ]",
        "parallax_animation": true,
        "second_tab": {
          "discord": "https://discord.gg/PF5WN3FEA5"
        },
        "second_tab_enabled": false,
        "show_url": false,
        "text_align": "center",
        "typewriter": [],
        "typewriter_delete_speed": 6,
        "typewriter_enabled": false,
        "typewriter_speed": 6
      },
      "presence": "enabled",
      "profile_gradient": false,
      "shuffle_audios": false,
      "social_glow": true,
      "socials": [
        {
          "glow_color": "",
          "icon": "",
          "id": "343f0b59-6ccb-4acc-a142-047270fc2ccd",
          "mode": "link",
          "social": "custom_url",
          "value": "https://rive.wtf"
        },
        {
          "icon": "",
          "id": "01f60914-d288-41d6-aa43-45b9b5fe6f90",
          "mode": "link",
          "social": "github",
          "value": "https://github.com/southctrl"
        },
        {
          "icon": "",
          "id": "1684d0b8-82a6-4406-a2c6-5b01dc0e902f",
          "mode": "link",
          "social": "discord",
          "value": "https://discord.com/users/1252001166703853588"
        },
        {
          "icon": "",
          "id": "ef0b710a-bc85-4f7e-8de5-aadff8ba3763",
          "mode": "link",
          "social": "spotify",
          "value": "https://open.spotify.com//track/4CIyxiObT9G35HrSItAblR?si=e1688ad4b417479b"
        }
      ],
      "swap_colors": false,
      "text_color": "#ffffff",
      "url": "https://r2.guns.lol/64633ff9-4369-4d2e-b014-c98b051039ae.mp4",
      "use_discord_avatar": false,
      "user_badges": [
        { "enabled": true, "name": "premium" },
        { "enabled": true, "name": "imagehost_access" },
        { "enabled": true, "name": "hone" },
        { "enabled": true, "name": "domain_legend" }
      ],
      "username_effects": "typewriter",
      "username_glow": true,
      "volume_control": true
    },
    "premium": true,
    "profile_url": "https://guns.lol/prison",
    "success": true,
    "uid": 2572,
    "username": "prison",
    "verified": true
  },
  "html_extras": {
    "canonical_url": "https://guns.lol/prison",
    "description_meta": "@southctrl ",
    "og_description": "@southctrl ",
    "og_image": "https://r2.guns.lol/4d70342d-be3b-46eb-9443-1cdce2effaf4.jpg",
    "og_title": "@Bernard | guns.lol",
    "r2_urls": [
      "https://r2.guns.lol/64633ff9-4369-4d2e-b014-c98b051039ae.mp4",
      "https://r2.guns.lol/8716d850-91f9-4e44-a18f-e253aeb741bd.png",
      "https://r2.guns.lol/4d70342d-be3b-46eb-9443-1cdce2effaf4.jpg"
    ],
    "twitter_description": "@southctrl ",
    "twitter_image": "https://r2.guns.lol/4d70342d-be3b-46eb-9443-1cdce2effaf4.jpg",
    "twitter_title": "@Bernard | guns.lol",
    "external_hrefs": [
      "https://assets.guns.lol/fonts/X6XYTKIVDUW7GZTZPZNN4EUM5KH54KHF.css",
      "https://fonts.googleapis.com/css2?family=Onest:wght@300;400;500&display=swap",
      "https://sa.guns.lol/latest.js",
      "https://assets.guns.lol/cursor-effects.js",
      "https://challenges.cloudflare.com/turnstile/v0/api.js",
      "https://rive.wtf",
      "https://github.com/southctrl",
      "https://discord.com/users/1252001166703853588",
      "https://open.spotify.com//track/4CIyxiObT9G35HrSItAblR?si=e1688ad4b417479b"
    ],
    "script_urls": [
      "/_next/static/chunks/4bd1b696-10cb4c9d2844a506.js",
      "/_next/static/chunks/3794-c66343cd6a42366f.js",
      "/_next/static/chunks/main-app-082cd9849c9757d5.js",
      "/_next/static/chunks/app/layout-bd88cee0b2af66b6.js",
      "/_next/static/chunks/8500-98e13bcce54aa7a0.js",
      "/_next/static/chunks/3200-dcb7a3f977e9982b.js",
      "/_next/static/chunks/app/error-fbefe58c77f0d981.js",
      "/_next/static/chunks/app/not-found-62584ac957e833d4.js",
      "/_next/static/chunks/bd904a5c-db11e8dd0ccca285.js",
      "/_next/static/chunks/a3cd4a83-1cc35fbafc988384.js",
      "/_next/static/chunks/b536a0f1-749ba99425f353bd.js",
      "/_next/static/chunks/1329d575-11f8217038eb1571.js",
      "/_next/static/chunks/f6211eb1-fde3d3265b53e700.js",
      "/_next/static/chunks/c15bf2b0-568dbd28b3f3aa7b.js",
      "/_next/static/chunks/4564-83c32037d7a21f91.js",
      "/_next/static/chunks/5263-cbc618d501a7869a.js",
      "/_next/static/chunks/5395-f705b969fb4d9c55.js",
      "/_next/static/chunks/7231-7930d9f909f9876e.js",
      "/_next/static/chunks/8542-dde2d9264548ff9e.js",
      "/_next/static/chunks/8305-a0434c3e8a569dbf.js",
      "/_next/static/chunks/app/%5Busername%5D/page-3191f4f26b5a4163.js",
      "/_next/static/chunks/polyfills-42372ed130431b0a.js",
      "/_next/static/chunks/webpack-d5e0b98392af1779.js",
      "https://static.cloudflareinsights.com/beacon.min.js/v8c78df7c7c0f484497ecbca7046644da1771523124516"
    ]
  },
  "profile_data": {
    "aliases": ["southctrl"],
    "avatar": {
      "source": "config.premium.metadata.image",
      "url": "https://r2.guns.lol/4d70342d-be3b-46eb-9443-1cdce2effaf4.jpg"
    },
    "badges": {
      "custom_badges": [],
      "user_badges": [
        "premium",
        "imagehost_access",
        "hone",
        "domain_legend"
      ]
    },
    "banner": {
      "source": "config.url",
      "url": "https://r2.guns.lol/64633ff9-4369-4d2e-b014-c98b051039ae.mp4"
    },
    "canonical_url": "https://guns.lol/prison",
    "description": {
      "source": "config.description",
      "text": "@southctrl"
    },
    "discord": {
      "invite_url": null,
      "presence": null,
      "use_discord_avatar": false
    },
    "display_name": null,
    "effects": {
      "animation_effects": [],
      "background_effects": "snowflakes",
      "cursor_effects": [],
      "font_effects": [],
      "username_effects": "typewriter"
    },
    "join_date": {
      "iso8601": "2023-10-28T21:31:54Z",
      "source": "account_created",
      "timestamp": 1698528714
    },
    "location": null,
    "premium_info": {
      "animation": "fade",
      "font": "jetbrains_mono",
      "is_premium": true,
      "layout": "modern"
    },
    "profile_url": "https://guns.lol/prison",
    "r2_asset_urls": [
      "https://r2.guns.lol/64633ff9-4369-4d2e-b014-c98b051039ae.mp4",
      "https://r2.guns.lol/8716d850-91f9-4e44-a18f-e253aeb741bd.png",
      "https://r2.guns.lol/4d70342d-be3b-46eb-9443-1cdce2effaf4.jpg"
    ],
    "socials": [
      {
        "name": "Tiktok",
        "platform": "tiktok",
        "url": "https://tiktok.com/@guns.lol"
      }
    ],
    "songs": [],
    "theme": {
      "colors": {
        "background": null,
        "gradient": null,
        "icon": "#ffffff",
        "text": "#ffffff"
      },
      "fonts": {
        "border_style": null,
        "border_type": null,
        "border_width": null,
        "font": null,
        "layout": null,
        "text_align": null
      }
    },
    "uid": "2572",
    "username": "prison",
    "verified": true,
    "views": {
      "source": "regex_payload",
      "views": 503
    },
    "html_meta": {
      "application-name": "guns.lol",
      "author": "@Bernard | guns.lol",
      "description": "@southctrl ",
      "generator": "guns.lol",
      "google": "notranslate",
      "og:description": "@southctrl ",
      "og:image": "https://r2.guns.lol/4d70342d-be3b-46eb-9443-1cdce2effaf4.jpg",
      "og:title": "@Bernard | guns.lol",
      "og:type": "website",
      "referrer": "strict-origin-when-cross-origin",
      "robots": "index, follow",
      "theme-color": "#ffffff",
      "twitter:card": "summary_large_image",
      "twitter:description": "@southctrl ",
      "twitter:image": "https://r2.guns.lol/4d70342d-be3b-46eb-9443-1cdce2effaf4.jpg",
      "twitter:title": "@Bernard | guns.lol",
      "viewport": "width=device-width, initial-scale=1"
    },
    "html_links": [
      { "href": "/_next/static/css/63408633f2b71c8c.css", "rel": "stylesheet" },
      { "href": "/_next/static/css/33f570c6bf010dda.css", "rel": "stylesheet" },
      { "href": "/_next/static/css/a75a360d5e4ba66c.css", "rel": "stylesheet" },
      { "href": "/_next/static/css/8ac3306ad4a9fd92.css", "rel": "stylesheet" },
      { "href": "/_next/static/css/4bcb1e88bc1a9df5.css", "rel": "stylesheet" },
      { "href": "/_next/static/css/1c6572e8bfeeb4a6.css", "rel": "stylesheet" },
      { "href": "https://assets.guns.lol/favicon/apple-touch-icon.png", "rel": "apple-touch-icon" },
      { "href": "https://assets.guns.lol/favicon/favicon-32x32.png", "rel": "icon" },
      { "href": "https://assets.guns.lol/favicon/favicon-16x16.png", "rel": "icon" },
      { "href": "https://assets.guns.lol/favicon/site.webmanifest", "rel": "manifest" },
      { "href": "https://guns.lol/prison", "rel": "canonical" }
    ],
    "script_urls": [
      "/_next/static/chunks/4bd1b696-10cb4c9d2844a506.js",
      "/_next/static/chunks/3794-c66343cd6a42366f.js",
      "/_next/static/chunks/main-app-082cd9849c9757d5.js",
      "/_next/static/chunks/app/layout-bd88cee0b2af66b6.js",
      "/_next/static/chunks/8500-98e13bcce54aa7a0.js",
      "/_next/static/chunks/3200-dcb7a3f977e9982b.js",
      "/_next/static/chunks/app/error-fbefe58c77f0d981.js",
      "/_next/static/chunks/app/not-found-62584ac957e833d4.js",
      "/_next/static/chunks/bd904a5c-db11e8dd0ccca285.js",
      "/_next/static/chunks/a3cd4a83-1cc35fbafc988384.js",
      "/_next/static/chunks/b536a0f1-749ba99425f353bd.js",
      "/_next/static/chunks/1329d575-11f8217038eb1571.js",
      "/_next/static/chunks/f6211eb1-fde3d3265b53e700.js",
      "/_next/static/chunks/c15bf2b0-568dbd28b3f3aa7b.js",
      "/_next/static/chunks/4564-83c32037d7a21f91.js",
      "/_next/static/chunks/5263-cbc618d501a7869a.js",
      "/_next/static/chunks/5395-f705b969fb4d9c55.js",
      "/_next/static/chunks/7231-7930d9f909f9876e.js",
      "/_next/static/chunks/8542-dde2d9264548ff9e.js",
      "/_next/static/chunks/8305-a0434c3e8a569dbf.js",
      "/_next/static/chunks/app/%5Busername%5D/page-3191f4f26b5a4163.js",
      "/_next/static/chunks/polyfills-42372ed130431b0a.js",
      "/_next/static/chunks/webpack-d5e0b98392af1779.js"
    ]
  }
}

Response Fields

Top-Level

FieldTypeDescription
usernamestringThe queried guns.lol username
profile_urlstringFull URL to the guns.lol profile page
data_objobjectRaw profile object from the guns.lol API
html_extrasobjectScraped HTML metadata from the profile page
profile_dataobjectNormalized/processed profile information

data_obj

The raw response from guns.lol containing the full user record.
FieldTypeDescription
_idstringMongoDB document ID
account_createdintegerUnix timestamp of account creation
aliasesarrayPrevious or alternate usernames
uidintegerUnique numeric user ID
usernamestringCurrent guns.lol username
premiumbooleanWhether the user has a premium subscription
verifiedbooleanWhether the user is verified
successbooleanWhether the API lookup succeeded
profile_urlstringCanonical profile URL
configobjectFull profile configuration (see below)

data_obj.config

FieldTypeDescription
descriptionstringProfile bio/description
display_namestringDisplayed name on the profile
colorstringPrimary hex color
text_colorstringText hex color
bg_colorstringBackground hex color
icon_colorstringIcon hex color
gradient_1stringFirst gradient hex color
gradient_2stringSecond gradient hex color
profile_gradientbooleanWhether gradient is applied to the profile
avatarstringAvatar image URL (empty if not set)
custom_cursorstringURL of the custom cursor image
urlstringBackground media URL (video/image)
animated_titlebooleanWhether the page title is animated
monochromebooleanWhether monochrome mode is enabled
audioarrayList of audio track URLs
audio_playerbooleanWhether the audio player is shown
shuffle_audiosbooleanWhether audio tracks are shuffled
volume_controlbooleanWhether volume control is visible
background_effectsstringBackground particle effect (e.g. "snowflakes")
username_effectsstringEffect applied to the username display
username_glowbooleanWhether username has a glow effect
social_glowbooleanWhether social icons have a glow effect
badge_glowbooleanWhether badges have a glow effect
swap_colorsbooleanWhether colors are swapped
blurintegerBackground blur intensity
opacityintegerBackground opacity level
presencestringDiscord presence display mode (e.g. "enabled")
use_discord_avatarbooleanWhether to use the Discord avatar
discord_avatar_decorationbooleanWhether Discord avatar decoration is shown
locationstringUser-set location string
page_viewsintegerTotal profile page view count
socialsarrayList of social link objects (see below)
user_badgesarrayList of badge objects (see below)
custom_badgesarrayCustom badge definitions
premiumobjectPremium configuration block (see below)

data_obj.config.socials[]

FieldTypeDescription
idstringUUID of the social entry
socialstringPlatform identifier (e.g. "github", "discord", "custom_url")
valuestringURL or handle value
modestringDisplay mode (e.g. "link")
iconstringCustom icon URL (empty if not set)
glow_colorstringGlow hex color (empty if not set)

data_obj.config.user_badges[]

FieldTypeDescription
namestringBadge identifier (e.g. "premium", "domain_legend")
enabledbooleanWhether the badge is displayed

data_obj.config.premium

FieldTypeDescription
animationstringPage enter animation type (e.g. "fade")
avatar_radiusintegerAvatar border radius in pixels
badge_colorstringBadge hex color
bannerstringBanner image URL (empty if not set)
border_colorstringProfile card border hex color
border_enabledbooleanWhether the profile border is shown
border_radiusintegerProfile card border radius
border_widthintegerProfile card border width in pixels
button_border_radiusintegerButton border radius in pixels
button_shadowbooleanWhether buttons have a shadow
buttonsarrayCustom button definitions
cursor_effectsstringCursor particle effect (e.g. "snowflakes")
effects_colorstringParticle effects hex color
fontstringFont family identifier (e.g. "jetbrains_mono")
hide_viewsbooleanWhether the view count is hidden
layoutstringProfile layout style (e.g. "modern")
monochrome_badgesbooleanWhether badges are rendered in monochrome
page_enter_textstringText shown on the click-to-enter overlay
parallax_animationbooleanWhether parallax scrolling is enabled
second_tab_enabledbooleanWhether a second tab link is enabled
second_tabobjectSecond tab configuration (e.g. Discord invite)
show_urlbooleanWhether the profile URL is displayed
text_alignstringText alignment (e.g. "center")
typewriter_enabledbooleanWhether the typewriter effect is active
typewriterarrayList of typewriter strings
typewriter_speedintegerTypewriter typing speed
typewriter_delete_speedintegerTypewriter delete speed
metadataobjectCustom OG/SEO metadata overrides
metadata.titlestringCustom page title (empty if not set)
metadata.descriptionstringCustom page description (empty if not set)
metadata.imagestringCustom OG image URL
metadata.faviconstringCustom favicon URL (empty if not set)
metadata.information_overlaybooleanWhether info overlay is shown

html_extras

Scraped metadata from the rendered profile page HTML.
FieldTypeDescription
canonical_urlstringCanonical page URL
description_metastringContent of the <meta name="description"> tag
og_titlestringOpen Graph title
og_descriptionstringOpen Graph description
og_imagestringOpen Graph image URL
twitter_titlestringTwitter card title
twitter_descriptionstringTwitter card description
twitter_imagestringTwitter card image URL
r2_urlsarrayCloudflare R2 asset URLs found on the page
external_hrefsarrayAll external href values found in the HTML
script_urlsarrayAll script source URLs found on the page

profile_data

Normalized profile information extracted and structured from the raw data.
FieldTypeDescription
usernamestringguns.lol username
uidstringUnique user ID (as string)
verifiedbooleanWhether the user is verified
aliasesarrayPrevious or alternate usernames
display_namestring|nullDisplayed name (null if not set separately)
canonical_urlstringCanonical profile URL
profile_urlstringFull profile URL
locationstring|nullUser-set location (null if not set)

profile_data.avatar

FieldTypeDescription
urlstringResolved avatar image URL
sourcestringWhich config field the avatar was pulled from

profile_data.banner

FieldTypeDescription
urlstringResolved banner media URL
sourcestringWhich config field the banner was pulled from

profile_data.description

FieldTypeDescription
textstringResolved bio text
sourcestringWhich config field the description was pulled from

profile_data.badges

FieldTypeDescription
user_badgesarrayList of badge name strings (enabled only)
custom_badgesarrayCustom badge definitions

profile_data.discord

FieldTypeDescription
invite_urlstring|nullDiscord server invite URL (null if not set)
presenceobject|nullLive Discord presence data (null if unavailable)
use_discord_avatarbooleanWhether Discord avatar is used as profile avatar

profile_data.effects

FieldTypeDescription
background_effectsstringActive background particle effect
username_effectsstringActive username display effect
animation_effectsarrayList of active animation effects
cursor_effectsarrayList of active cursor effects
font_effectsarrayList of active font effects

profile_data.join_date

FieldTypeDescription
timestampintegerUnix timestamp of account creation
iso8601stringISO 8601 formatted join date
sourcestringWhich field the timestamp was derived from

profile_data.premium_info

FieldTypeDescription
is_premiumbooleanWhether the user has premium
fontstringActive font identifier
layoutstringActive layout identifier
animationstringActive page animation type

profile_data.socials[]

FieldTypeDescription
namestringHuman-readable platform name
platformstringPlatform identifier
urlstringSocial link URL

profile_data.theme

FieldTypeDescription
colors.backgroundstring|nullBackground color
colors.gradientstring|nullGradient value
colors.iconstringIcon hex color
colors.textstringText hex color
fonts.fontstring|nullFont family
fonts.layoutstring|nullLayout identifier
fonts.text_alignstring|nullText alignment
fonts.border_stylestring|nullBorder style
fonts.border_typestring|nullBorder type
fonts.border_widthstring|nullBorder width

profile_data.views

FieldTypeDescription
viewsnumberTotal view count
sourcestringHow the view count was obtained

profile_data.html_meta

Full key-value map of every meta tag found on the page. Common keys:
KeyDescription
og:titleOpen Graph title
og:descriptionOpen Graph description
og:imageOpen Graph image URL
og:typeOpen Graph type
twitter:cardTwitter card type
twitter:titleTwitter card title
twitter:descriptionTwitter card description
twitter:imageTwitter card image
theme-colorBrowser theme hex color
authorPage author string
descriptionPage meta description
robotsRobots crawl directive
application-nameApplication name
generatorGenerator platform name
referrerReferrer policy
viewportViewport settings
googleGoogle translation directive

profile_data.r2_asset_urls

Array of Cloudflare R2 CDN asset URLs discovered on the profile page (images, videos, custom cursors, etc.).
FieldTypeDescription
hrefstringLink href value
relstringLink relationship (e.g. "stylesheet", "icon", "canonical")

profile_data.script_urls

Array of all script source URLs found on the profile page, including Next.js chunks and third-party scripts.

profile_data.songs

Array of audio track objects configured on the profile. Empty array if no audio is set.

Error Responses

StatusCodeDescription
404not_foundUsername does not exist on guns.lol
401unauthorizedMissing or invalid API key
500internal_errorServer-side error
{
  "code": "not_found",
  "status": 404
}