Remove duplicate rows
API · /csv-api
CSV API
A fast, fully-local CSV data toolkit: parse CSV into typed row objects (RFC-4180), compute per-column statistics (count, unique, type and top values, and for numeric columns min, max, mean, median and sum), remove duplicate rows by all or a subset of columns, sort by a column with numeric-aware ordering, and filter rows by a condition (equals, not-equals, greater/less than, contains, starts-with, empty, not-empty). Every endpoint accepts input via the query string or the request body, up to 2 MB, and returns both row objects and a CSV string. Pure server-side compute, no third-party upstream, so responses are instant and always available. Ideal for data wrangling, ETL, analytics preparation, spreadsheet tooling and data cleaning. (For plain CSV to JSON conversion, see the oanor JSON API.)
API health
healthy- Uptime
- 100.00%
- Server probes · 24h
- Avg latency
- 66 ms
- Server probes · 24h
- Subscribers
- 4,621
- active
- Total calls
- 25
- last 7 days
Pricing
Pick a tier — billed monthly, cancel anytime.
Free
Free
- 11,000 calls / month
- 2 requests / second
- Hard cap (429 above quota, no overage)
- 11,000 requests/month, 2 req/s
- All endpoints: parse, stats, dedupe, sort, filter
- No credit card
Basic
€4.00 /month
- 190,000 calls / month
- 8 requests / second
- Hard cap (429 above quota, no overage)
- 190,000 requests/month, 8 req/s
- Per-column stats + numeric-aware sort/filter
- Commercial use, up to 2 MB input
- Email support
Pro
€15.00 /month
- 1,100,000 calls / month
- 25 requests / second
- Hard cap (429 above quota, no overage)
- 1,100,000 requests/month, 25 req/s
- Full parse + stats + dedupe + sort + filter pipeline
- Priority email support
- Commercial use allowed
Mega
€38.00 /month
- 5,500,000 calls / month
- 80 requests / second
- Hard cap (429 above quota, no overage)
- 5,500,000 requests/month, 80 req/s
- Max throughput for ETL & data-cleaning pipelines
- Priority support
- Commercial use allowed
Built by
Related APIs
Other APIs with overlapping tags.
JSON API
A fast, fully-local JSON and CSV toolkit: validate JSON (with a clear error message, type and size), pretty-print and format it (with optional deep key-sorting), minify it (reporting bytes saved), and convert between CSV and JSON — RFC-4180 CSV parsing with automatic value typing, and JSON arrays to CSV. Every endpoint accepts input via the query string or the request body (up to 1 MB). Pure server-side compute, no third-party upstream, so responses are instant and always available. Ideal for data pipelines, ETL, webhooks, config tooling and developer utilities.
api.oanor.com/json-api
Planets API
Physical and orbital data for the solar system and beyond: every planet, dwarf planet, major moon and the Sun with NASA fact-sheet values (mass, radius, surface gravity, density, escape velocity, mean temperature, orbital and rotation period, semi-major axis, moon count and rings), plus a searchable catalogue of more than 6,000 confirmed exoplanets from the NASA Exoplanet Archive (radius, mass, orbital period, equilibrium temperature, distance in light-years, host star, discovery year and method). Filter exoplanets by host star, discovery method, year, size or distance, compare solar-system bodies side by side, and look up any single body or exoplanet by name. Every endpoint accepts input via the query string or the request body and returns lean JSON. Pure server-side data (no third-party upstream), so responses are instant and always available. Ideal for education, EdTech, astronomy apps, data visualisation and science tools.
api.oanor.com/planets-api
Chess Puzzles API
Serve chess tactics puzzles on demand: a random puzzle (optionally constrained by theme and rating), a single puzzle by id, full search and filtering by tactic theme and difficulty rating, and the complete list of available themes. Every puzzle includes the starting position as FEN, the full solution as UCI moves, the side to move, the difficulty rating, popularity and play count, theme and opening tags and a direct link to train it on Lichess. Built on a curated 20,000-puzzle sample of the open Lichess puzzle database (CC0) spanning 73 themes and ratings from roughly 400 to 3100. Every endpoint accepts input via the query string or the request body and returns lean JSON. Pure server-side data (no third-party upstream), so responses are instant and always available. Ideal for chess apps, training tools, "puzzle of the day" features and games.
api.oanor.com/chesspuzzles-api
Visa Requirements API
Look up visa requirements between 199 passports and 199 destinations: whether a passport holder needs a visa, can enter visa-free, gets a visa on arrival, an e-visa or an eTA, or is not admitted — including the allowed length of stay in days. Get a full breakdown for any passport (every destination with category counts and a passport-power mobility score), the reverse view for any destination (which passports may enter), a ranking that compares the mobility of several passports, and the list of supported countries. Countries can be given as ISO-2, ISO-3 or exact name, and every endpoint accepts input via the query string or the request body. Pure server-side data (no third-party upstream), so responses are instant and always available. Ideal for travel-booking flows, relocation and immigration tools, fintech onboarding and travel apps.
api.oanor.com/visa-api
Frequently asked questions
Quick answers about pricing, quotas, and integration.
How do I get an API key for CSV API?
What's the rate limit for CSV API?
How much does CSV API cost?
Can I cancel my subscription anytime?
Is CSV API GDPR-compliant?
Pick an endpoint from the list on the left to see its details and try it.
Code snippets
Sign up to get an API key, then call any path under your slug.
curl https://api.oanor.com/csv-api/SOME_PATH \
-H "x-oanor-key: oanor_test_..."
const res = await fetch("https://api.oanor.com/csv-api/SOME_PATH", {
headers: { "x-oanor-key": "oanor_test_..." }
});
const data = await res.json();
$ch = curl_init("https://api.oanor.com/csv-api/SOME_PATH");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, ["x-oanor-key: oanor_test_..."]);
$response = curl_exec($ch);
import requests
r = requests.get(
"https://api.oanor.com/csv-api/SOME_PATH",
headers={"x-oanor-key": "oanor_test_..."},
)
print(r.json())
Ratings
Sign in to rate.
No reviews yet.
Discussion
Ask questions, share usage tips, get answers from the provider and other developers. Public — anyone can read.
Sign in to start a thread or reply.
Sign inNew thread
·
-
Provider answer
🔒 This thread is locked — no new replies.
-
·
- No threads yet — start the discussion.
Support
Private 1:1 support with the provider — billing questions, integration issues, account problems. Only you and the provider team can see these threads.
Sign in to open a support ticket.
Sign inOpen new ticket
Describe what you need help with. The provider team gets an email and replies on the ticket page.
-
·
Urgent - No tickets yet for this API.