Readme Typing SVG API
Free animated SVG API with no key: generate a typing-and-deleting text animation from URL parameters, embeddable anywhere an image works. Tested example included.
Endpoint tested and returned HTTP 200 on 2026-08-21
What is the Readme Typing SVG API?
Readme Typing SVG generates an animated typing effect as an SVG from query parameters, with no API key. Because the animation is pure SVG with SMIL, it renders inside an image tag on GitHub and anywhere else static images are allowed.
GitHub strips JavaScript from README files, which is why profile pages that appear to animate are almost always doing it with SVG. This service generates exactly that: a self-contained SVG with the typing and deleting animation baked in, referenced as an ordinary image. No script executes and nothing is blocked.
Every aspect is a query parameter — `lines` holds semicolon-separated strings to cycle through, and `font`, `size`, `color`, `duration`, `pause`, `width`, `height` and `center` control the rest. Text must be URL-encoded, which is where most problems start: an unencoded semicolon or ampersand silently truncates the animation. The project is open source and self-hostable, and the returned SVG carries a source comment identifying it. Note that GitHub's image proxy caches aggressively, so an updated URL may show the old animation for a while.
Quick facts
- Base URL
https://readme-typing-svg.demolab.com- Authentication
- No API key and no account. Self-hosting is supported and encouraged for heavy use.
- Rate limit
- No published limit. Images are cached by GitHub's proxy in the common case.
- Pricing
- Free and open source.
- CORS
- Not enabled — call it from your server
- Official docs
- Read the docs
How to use the Readme Typing SVG API
Every request below was executed against the live API on 2026-08-21, and the response shown is the real body it returned — not an illustration.
1. Generate an animated typing SVG
GET https://readme-typing-svg.demolab.com/?lines=Hello+ByteTools
curl 'https://readme-typing-svg.demolab.com/?lines=Hello+ByteTools'const res = await fetch("https://readme-typing-svg.demolab.com/?lines=Hello+ByteTools");
if (!res.ok) throw new Error(`Request failed: ${res.status}`);
const data = await res.json();
console.log(data);import requests
res = requests.get("https://readme-typing-svg.demolab.com/?lines=Hello+ByteTools", timeout=20)
res.raise_for_status()
print(res.json())<!-- https://github.com/DenverCoder1/readme-typing-svg/ -->
<svg xmlns='http://www.w3.org/2000/svg'
xmlns:xlink='http://www.w3.org/1999/xlink'
viewBox='0 0 400 50'
style='background-color: #00000000;'
width='400px' height='50px'>
<path id='path0'>
<!-- Single line -->
<animate id='d0' attributeName='dParameters
| Parameter | Type | Required | Description |
|---|---|---|---|
lines | query | Required | Semicolon-separated lines to type in sequence. URL-encode the whole value. Hello+ByteTools |
font | query | Optional | Google Font family name. Fira+Code |
size | query | Optional | Font size in pixels. 24 |
color | query | Optional | Text colour as a hex value without the leading hash. 36BCF7 |
duration | query | Optional | Milliseconds per line. 3000 |
pause | query | Optional | Milliseconds to pause between lines. 1000 |
width / height | query | Optional | SVG dimensions in pixels. 435 |
center / vCenter | query | Optional | Centre the text horizontally or vertically. true |
Response fields
(body)image/svg+xml- The animated SVG, opening with a source comment identifying the project. Self-contained with no external dependencies.
Content-Typeheader- `image/svg+xml`. The animation uses SMIL, so it plays wherever SVG animation is supported.
(embedding)behaviour- Works inside a Markdown image reference, which is the whole point — GitHub strips scripts but renders animated SVG.
What you can build with the Readme Typing SVG API
- Animate a heading on a GitHub profile README
- Add a typing effect to a documentation landing page
- Cycle through a list of technologies or taglines
- Generate an animated banner without writing any CSS or JavaScript
Common errors and how to fix them
Animation stops after the first line
An unencoded semicolon or ampersand truncated the parameter.
Fix: URL-encode the entire `lines` value. This is by far the most common problem.
Font is ignored
Only Google Fonts families are available, by exact name.
Fix: Use the family name as Google Fonts spells it, with `+` for spaces. Unknown names fall back to a default.
Text is clipped
The SVG has fixed dimensions.
Fix: Increase `width` and `height` to fit your longest line. There is no automatic sizing.
Old animation still showing
GitHub's image proxy caches aggressively.
Fix: Change a parameter to bust the cache, or wait for the proxy to expire it.
Readme Typing SVG API — frequently asked questions
Is Readme Typing SVG free?
Yes, free with no key. It is an open source project and can be self-hosted, which the maintainers encourage for heavy use.
How does animation work inside a GitHub README?
The animation is SMIL inside the SVG itself, so no script executes. GitHub strips JavaScript but renders animated SVG in an image tag, which is what makes this work.
Why does only my first line appear?
Almost certainly an unencoded semicolon or ampersand in the `lines` parameter, which truncates it. URL-encode the whole value.
Can I use a custom font?
Only Google Fonts families, referenced by their exact name with `+` for spaces. Anything unrecognised falls back to the default.
Tools that pair with this API
SVG Minifier
Minify SVG files in your browser: strip comments, metadata and editor junk, round coordinates, collapse whitespace — with a live preview and size savings.
URL Encoder
Percent-encode text for URLs instantly. Switch between encodeURIComponent and encodeURI modes, see live output and copy the result. Free URL encoder.
Gradient Text Generator
Create gradient text in CSS with background-clip, an animated shimmer option, a solid-colour fallback and a live contrast check on light or dark backgrounds.
Readme Typing SVG is an independent third-party service and is not affiliated with ByteTools or ByteVancer. Details on this page were verified on 2026-08-21; always check the official documentation before relying on this API in production, as terms and limits can change.