Eliminate small-asset HTTP requests
Inline tiny icons, loaders, and placeholders as data URLs in CSS or HTML to reduce round-trips, which matters most for assets loaded before first paint.
500+ fast, free tools. Most run in your browser only; Image & PDF tools upload files to the backend when you run them.
Build and decode data URLs with MIME, charset, and Base64 options.
Data URL Builder encodes any text or small binary payload into a valid RFC 2397 data: URL and decodes existing data: URLs back to their original content with full metadata display. A data URL embeds file content directly in a URL string using Base64 or plain-text encoding, eliminating an HTTP request for the resource. They are widely used to inline small images, fonts, SVGs, and JSON payloads in HTML, CSS, and JavaScript without separate file references. This tool lets you choose the MIME type, charset, and encoding mode (Base64 or URL-encoded plain text), preview the generated data URL, and measure its byte size — critical for deciding whether inlining is worth the cost. The decoder path extracts MIME type, charset, Base64 flag, and raw content from any data: URL you paste in. Everything runs locally in the browser.
Inline tiny icons, loaders, and placeholders as data URLs in CSS or HTML to reduce round-trips, which matters most for assets loaded before first paint.
CSS background-image cannot reference inline SVG elements. Data URLs solve this — encode your SVG as a data:image/svg+xml URL and use it in url() without a separate file or HTTP request.
Embed images and assets directly in HTML files, JSON payloads, or email templates to create self-contained documents that work without external file references.
When a data: URL appears in a network trace, DOM inspection, or a bug report, paste it into the decoder to instantly read the original content without writing JavaScript.
Encode JSON or XML payloads as data URLs for use in href attributes, data- attributes, or test fixtures that require a URL format but need to carry structured data inline.
Enter text content directly or paste raw Base64 — no file picker needed. Everything stays in the browser tab. Suitable for use in secure or air-gapped environments.
Input: MIME: image/svg+xml | Encoding: URL-encoded | Content: <svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'><circle cx='8' cy='8' r='6' fill='%23f5c842'/></svg>
Output: data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2016%2016%27%3E%3Ccircle%20cx%3D%278%27%20cy%3D%278%27%20r%3D%276%27%20fill%3D%27%23f5c842%27%2F%3E%3C%2Fsvg%3E (174 bytes)
Input: MIME: application/json | Encoding: Base64 | Content: {"name":"UtilityKit","version":"1.0"}
Output: data:application/json;base64,eyJuYW1lIjoiVXRpbGl0eUtpdCIsInZlcnNpb24iOiIxLjAifQ== (68 bytes)
Input: data:text/html;charset=utf-8,%3Ch1%3EHello%20World%3C%2Fh1%3E
Output: MIME: text/html | Charset: utf-8 | Base64: No | Decoded content: <h1>Hello World</h1>