# Fingerprints

## Generate a new fingerprint (host OS)

> Returns a fully uniquified fingerprint for the \*\*host\*\* operating\
> system, without persisting it. Equivalent to\
> \`/fingerprint/new/{platform}\` with the launcher host's platform.<br>

```json
{"openapi":"3.0.3","info":{"title":"ShardX Launcher — Automation API","version":"0.1.0"},"tags":[{"name":"Fingerprints"}],"servers":[{"url":"http://127.0.0.1:40325","description":"Local launcher (default port; change in Settings)"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Permanent JWT from Settings → Automation API."}},"schemas":{"FingerprintEnvelope":{"type":"object","properties":{"fingerprint":{"$ref":"#/components/schemas/Fingerprint"}},"required":["fingerprint"]},"Fingerprint":{"type":"object","description":"Native FingerprintConfig. Documented sub-objects are the common\nones; the object is open and stored verbatim by the create\nendpoints, so any field present here is round-tripped.\n","additionalProperties":true,"properties":{"name":{"type":"string"},"notes":{"type":"string"},"seed":{"type":"integer","description":"0 = overrides-only mode (the common case)."},"navigator":{"type":"object","additionalProperties":true,"properties":{"user_agent":{"type":"string"},"platform":{"type":"string"},"hardware_concurrency":{"type":"integer"},"device_memory":{"type":"integer","enum":[8,16,32]},"language":{"type":"string"},"do_not_track":{"type":"boolean"}}},"screen":{"type":"object","additionalProperties":true,"properties":{"width":{"type":"integer"},"height":{"type":"integer"},"avail_width":{"type":"integer"},"avail_height":{"type":"integer"},"color_depth":{"type":"integer"},"device_pixel_ratio":{"type":"number"},"color_gamut":{"type":"string","enum":["","srgb","p3","rec2020"]}}},"client_hints":{"type":"object","description":"Sec-CH-UA family (browser.vision calls this `hints`).","additionalProperties":true,"properties":{"platform":{"type":"string"},"platform_version":{"type":"string"},"architecture":{"type":"string"},"bitness":{"type":"string"},"mobile":{"type":"boolean"}}},"webgl":{"type":"object","additionalProperties":true,"properties":{"unmasked_vendor":{"type":"string"},"unmasked_renderer":{"type":"string"}}},"webgpu":{"type":"object","additionalProperties":true},"webrtc":{"type":"string","description":"WebRTC handling mode.","enum":["auto","tcp_only","block"]},"noise":{"$ref":"#/components/schemas/NoisePrefs"},"network":{"type":"object","properties":{"blocked_ports":{"type":"array","items":{"type":"integer"},"description":"Local-network port-scan defense (ports_protection)."}}},"timezone":{"type":"string","description":"IANA name, or \"auto\" to resolve from the bound proxy at launch."}}},"NoisePrefs":{"type":"object","description":"Per-vector anti-fingerprint noise. Each block is `{enabled, seed}`\n(+ feature-specific knobs). `enabled:false` = pass-through.\n","properties":{"canvas":{"$ref":"#/components/schemas/NoiseBlock"},"webgl":{"allOf":[{"$ref":"#/components/schemas/NoiseBlock"}],"properties":{"intensity":{"type":"number"}}},"audio":{"allOf":[{"$ref":"#/components/schemas/NoiseBlock"}],"properties":{"intensity":{"type":"number"}}},"client_rects":{"allOf":[{"$ref":"#/components/schemas/NoiseBlock"}],"properties":{"max_offset":{"type":"number"}}},"sensors":{"$ref":"#/components/schemas/NoiseBlock"},"fonts":{"allOf":[{"$ref":"#/components/schemas/NoiseBlock"}],"description":"`enabled:true` hides a small deterministic per-profile subset of\nnon-essential fonts (real host fonts otherwise pass through).\n"}}},"NoiseBlock":{"type":"object","properties":{"enabled":{"type":"boolean"},"seed":{"type":"integer","description":"Per-profile entropy; 0 = derive automatically."}}},"Error":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}},"responses":{"Unauthorized":{"description":"Missing or invalid Bearer token."}}},"paths":{"/fingerprint/new":{"get":{"tags":["Fingerprints"],"summary":"Generate a new fingerprint (host OS)","description":"Returns a fully uniquified fingerprint for the **host** operating\nsystem, without persisting it. Equivalent to\n`/fingerprint/new/{platform}` with the launcher host's platform.\n","responses":{"200":{"description":"A uniquified, unsaved fingerprint.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FingerprintEnvelope"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"description":"The fingerprint library is empty.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}}}
```

## Generate a new fingerprint for a platform

> Picks a random library fingerprint matching \`platform\`, then\
> uniquifies it: a fresh Sec-CH-UA \`platform\_version\`, host-aware\
> \`hardware\_concurrency\`/\`device\_memory\` (never claims more than the\
> real machine), and a screen clamped to the real display. Returned\
> unsaved — feed it to a create endpoint as \`fingerprint\`.<br>

```json
{"openapi":"3.0.3","info":{"title":"ShardX Launcher — Automation API","version":"0.1.0"},"tags":[{"name":"Fingerprints"}],"servers":[{"url":"http://127.0.0.1:40325","description":"Local launcher (default port; change in Settings)"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Permanent JWT from Settings → Automation API."}},"schemas":{"FingerprintEnvelope":{"type":"object","properties":{"fingerprint":{"$ref":"#/components/schemas/Fingerprint"}},"required":["fingerprint"]},"Fingerprint":{"type":"object","description":"Native FingerprintConfig. Documented sub-objects are the common\nones; the object is open and stored verbatim by the create\nendpoints, so any field present here is round-tripped.\n","additionalProperties":true,"properties":{"name":{"type":"string"},"notes":{"type":"string"},"seed":{"type":"integer","description":"0 = overrides-only mode (the common case)."},"navigator":{"type":"object","additionalProperties":true,"properties":{"user_agent":{"type":"string"},"platform":{"type":"string"},"hardware_concurrency":{"type":"integer"},"device_memory":{"type":"integer","enum":[8,16,32]},"language":{"type":"string"},"do_not_track":{"type":"boolean"}}},"screen":{"type":"object","additionalProperties":true,"properties":{"width":{"type":"integer"},"height":{"type":"integer"},"avail_width":{"type":"integer"},"avail_height":{"type":"integer"},"color_depth":{"type":"integer"},"device_pixel_ratio":{"type":"number"},"color_gamut":{"type":"string","enum":["","srgb","p3","rec2020"]}}},"client_hints":{"type":"object","description":"Sec-CH-UA family (browser.vision calls this `hints`).","additionalProperties":true,"properties":{"platform":{"type":"string"},"platform_version":{"type":"string"},"architecture":{"type":"string"},"bitness":{"type":"string"},"mobile":{"type":"boolean"}}},"webgl":{"type":"object","additionalProperties":true,"properties":{"unmasked_vendor":{"type":"string"},"unmasked_renderer":{"type":"string"}}},"webgpu":{"type":"object","additionalProperties":true},"webrtc":{"type":"string","description":"WebRTC handling mode.","enum":["auto","tcp_only","block"]},"noise":{"$ref":"#/components/schemas/NoisePrefs"},"network":{"type":"object","properties":{"blocked_ports":{"type":"array","items":{"type":"integer"},"description":"Local-network port-scan defense (ports_protection)."}}},"timezone":{"type":"string","description":"IANA name, or \"auto\" to resolve from the bound proxy at launch."}}},"NoisePrefs":{"type":"object","description":"Per-vector anti-fingerprint noise. Each block is `{enabled, seed}`\n(+ feature-specific knobs). `enabled:false` = pass-through.\n","properties":{"canvas":{"$ref":"#/components/schemas/NoiseBlock"},"webgl":{"allOf":[{"$ref":"#/components/schemas/NoiseBlock"}],"properties":{"intensity":{"type":"number"}}},"audio":{"allOf":[{"$ref":"#/components/schemas/NoiseBlock"}],"properties":{"intensity":{"type":"number"}}},"client_rects":{"allOf":[{"$ref":"#/components/schemas/NoiseBlock"}],"properties":{"max_offset":{"type":"number"}}},"sensors":{"$ref":"#/components/schemas/NoiseBlock"},"fonts":{"allOf":[{"$ref":"#/components/schemas/NoiseBlock"}],"description":"`enabled:true` hides a small deterministic per-profile subset of\nnon-essential fonts (real host fonts otherwise pass through).\n"}}},"NoiseBlock":{"type":"object","properties":{"enabled":{"type":"boolean"},"seed":{"type":"integer","description":"Per-profile entropy; 0 = derive automatically."}}},"Error":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}},"responses":{"Unauthorized":{"description":"Missing or invalid Bearer token."}}},"paths":{"/fingerprint/new/{platform}":{"get":{"tags":["Fingerprints"],"summary":"Generate a new fingerprint for a platform","description":"Picks a random library fingerprint matching `platform`, then\nuniquifies it: a fresh Sec-CH-UA `platform_version`, host-aware\n`hardware_concurrency`/`device_memory` (never claims more than the\nreal machine), and a screen clamped to the real display. Returned\nunsaved — feed it to a create endpoint as `fingerprint`.\n","parameters":[{"name":"platform","in":"path","required":true,"description":"Case-insensitive; `win`/`osx`/`darwin` aliases accepted.","schema":{"type":"string","enum":["Windows","macOS","Linux"]}}],"responses":{"200":{"description":"A uniquified, unsaved fingerprint.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FingerprintEnvelope"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"description":"No matching fingerprint and the library is empty.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}}}
```

## List library fingerprints

> The on-disk fingerprint library (GPU presets) the launcher ships/imports.

```json
{"openapi":"3.0.3","info":{"title":"ShardX Launcher — Automation API","version":"0.1.0"},"tags":[{"name":"Fingerprints"}],"servers":[{"url":"http://127.0.0.1:40325","description":"Local launcher (default port; change in Settings)"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Permanent JWT from Settings → Automation API."}},"schemas":{"LibraryEntry":{"type":"object","properties":{"id":{"type":"string"},"label":{"type":"string"},"platform":{"type":"string","enum":["Windows","macOS","Linux"]},"chrome":{"type":"string","description":"Chrome version string."},"gpu":{"type":"string"},"builtin":{"type":"boolean","description":"Part of the bundled starter set."}}}},"responses":{"Unauthorized":{"description":"Missing or invalid Bearer token."}}},"paths":{"/fingerprints":{"get":{"tags":["Fingerprints"],"summary":"List library fingerprints","description":"The on-disk fingerprint library (GPU presets) the launcher ships/imports.","responses":{"200":{"description":"Library entries.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/LibraryEntry"}}}}},"401":{"$ref":"#/components/responses/Unauthorized"}}}}}}
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.proxyshard.com/proxyshard/shardx-launcher-api/fingerprints.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
