TL;DR: Get production-ready results in 1 HTTP call. No signup, no credit card, no rate limit.
Free CSS Minifier API - Compress Stylesheets Without Losing Styles
CSS files bloat over time. Comments, whitespace, inefficient selectors waste bandwidth. Minifying CSS reduces file size by 20-40%, improving page load times. Tools like cssnano help locally, but integrating them into build pipelines is tedious. What if you could minify CSS via REST API without installing build tools?
The CSS Minifier API compresses stylesheets instantly by: removing comments, stripping whitespace, optimizing selectors, merging rules, removing unused declarations. Perfect for build automation, performance optimization, CDN optimization, and static site generation.
Why Use This API?
CSS minification matters:
- Performance – Smaller CSS files load faster
- Bandwidth – Reduce data consumption for mobile users
- Build Pipelines – Automate optimization without tools
- CDN Efficiency – Compress for edge distribution
- Compliance – Meet performance budgets
Quick Example - cURL
# Minify CSS
curl -X POST "https://css-minifier-api.p.rapidapi.com/minify" \
-H "X-RapidAPI-Key: YOUR_KEY" \
-H "X-RapidAPI-Host: css-minifier-api.p.rapidapi.com" \
-H "Content-Type: application/json" \
-d '{"css": "body { background: white; /* main */ margin: 0; }"}'
Response:
{
"success": true,
"original_size": 58,
"minified_size": 30,
"compression_ratio": 0.52,
"minified": "body{background:#fff;margin:0}",
"saved_bytes": 28
}
Python Example
import requests
url = "https://css-minifier-api.p.rapidapi.com/minify"
headers = {
"X-RapidAPI-Key": "YOUR_API_KEY",
"X-RapidAPI-Host": "css-minifier-api.p.rapidapi.com",
"Content-Type": "application/json"
}
# Minify stylesheet before deployment
with open("styles.css") as f:
css_code = f.read()
payload = {"css": css_code}
response = requests.post(url, json=payload, headers=headers)
data = response.json()
# Save minified version
with open("styles.min.css", "w") as f:
f.write(data["minified"])
print(f"Saved {data['saved_bytes']} bytes")
print(f"Compression: {data['compression_ratio']:.0%}")
JavaScript / Node.js Example
const axios = require("axios");
const fs = require("fs");
const minifyCSS = async (cssCode) => {
const response = await axios.post(
"https://css-minifier-api.p.rapidapi.com/minify",
{ css: cssCode },
{
headers: {
"X-RapidAPI-Key": process.env.RAPIDAPI_KEY,
"X-RapidAPI-Host": "css-minifier-api.p.rapidapi.com"
}
}
);
return response.data.minified;
};
// Build process: read → minify → write
const buildCSS = async () => {
const cssCode = fs.readFileSync("./src/styles.css", "utf-8");
const minified = await minifyCSS(cssCode);
fs.writeFileSync("./dist/styles.min.css", minified);
console.log("CSS minified and written to dist/");
};
buildCSS();
Optimization Techniques
Comment Removal
/* Before */
/* Main layout styles */
body { margin: 0; /* reset */ }
/* After */
body{margin:0}
Whitespace Removal
/* Before */
h1 {
color: red;
font-size: 24px;
}
/* After */
h1{color:red;font-size:24px}
Color Optimization
/* Before */
.btn { color: #ffffff; background: #000000; }
/* After */
.btn{color:#fff;background:#000}
Selector Merging
/* Before */
.btn { padding: 10px; }
.btn:hover { padding: 10px; }
/* After */
.btn,.btn:hover{padding:10px}
Real-World Use Cases
1. Automated Build Pipeline
Integrate CSS minification into deployment.
def build_for_production():
# Collect all CSS files
css_files = glob.glob("src/**/*.css")
all_css = ""
for file in css_files:
with open(file) as f:
all_css += f.read()
# Minify combined CSS
minified = minify_css(all_css)
# Write to dist
with open("dist/app.min.css", "w") as f:
f.write(minified)
2. Content Delivery Network (CDN) Optimization
Compress before uploading to CDN.
def upload_to_cdn(css_file):
css_content = read_file(css_file)
minified = minify_css(css_content)
# Upload minified version
cdn.upload(
key=f"css/{filename}.min.css",
body=minified,
headers={"Cache-Control": "max-age=31536000"}
)
3. Dynamic CSS Generation
Minify dynamically generated styles.
def generate_theme_css(theme_config):
# Build CSS rules from config
css = f"""
:root {{
--primary: {theme_config['primary']};
--secondary: {theme_config['secondary']};
}}
.btn {{ background: var(--primary); }}
"""
# Minify before serving
minified = minify_css(css)
return minified
4. Performance Reporting
Track CSS file size improvements.
def report_css_stats():
before = os.path.getsize("src/styles.css")
after = os.path.getsize("dist/styles.min.css")
saved = before - after
ratio = (saved / before) * 100
print(f"CSS Optimization: {before} → {after} bytes")
print(f"Saved: {saved} bytes ({ratio:.1f}%)")
5. Email CSS Inlining
Minify before inlining styles in HTML emails.
def send_styled_email(recipient, css, html):
# Minify CSS for email
minified_css = minify_css(css)
# Inline styles into HTML
email_html = inline_css(minified_css, html)
send_email(recipient, email_html)
6. Static Site Generation
Optimize CSS during build.
def build_static_site():
for page in pages:
# Extract page CSS
css = page.get_styles()
# Minify
minified = minify_css(css)
# Embed in HTML
page.embed_css(minified)
page.write_to_dist()
Performance Impact
| Action | Size Before | Size After | Saving |
|---|---|---|---|
| Minify only | 45KB | 32KB | 28% |
| Minify + gzip | 45KB | 9KB | 80% |
| Minify + gzip + CDN cache | 45KB → 0 requests | 9KB cached | 100% |
Pricing
| Plan | Cost | Requests/Month | Best For |
|---|---|---|---|
| Free | $0 | 500 | Development, testing |
| Pro | $5.99 | 50,000 | Build pipelines |
| Ultra | $14.99 | 500,000 | High-volume optimization |
Related APIs
- JavaScript Minifier API – Minify JS alongside CSS
- Markdown to HTML API – Generate and minify HTML/CSS
- Random Data API – Generate test CSS
- String Utilities API – Post-process minified output
Get Started Now
No credit card. 500 free requests to compress stylesheets.
Optimizing for performance? Share your CSS file size improvements in the comments!
Top comments (0)