Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 

Repository files navigation

Quorel

Give your AI agent a live, versioned view of any website.

Note: this codebase was originally built and named Vexaro, before the product was renamed to Quorel. The code, commit history, and package names in this repo still reflect the original name. A rename pass is planned. This repo is public, you're looking at the real, current implementation right now: github.com/var-raphael/vexaro. The live product, docs, and public API are already fully rebranded as Quorel: quorel.vercel.app

Describe the fields you want, in plain English. Quorel extracts them nightly, keeps every past version permanently queryable, and hands your AI agent an MCP tool that can read, query, and even fix the data directly, without you writing a scraper.

Live and public beta: quorel.vercel.app Docs: quorel.vercel.app/docs/quickstart


What it does

Most data tools hand you today's snapshot and move on. Quorel keeps every past version, permanently queryable, so you can see what changed and when, not just what's true right now.

  • Plain-English schema definition. Describe the fields you want (title (string), the title of the article) and Quorel figures out extraction.
  • Nightly refresh, versioned. Every refresh is a saved, diffable version. Compare any two versions side by side, roll back in one click, or freeze a version so it can't change again.
  • Fork any public dataset. Start from someone else's dataset the way you'd fork a repo.
  • MCP on every plan, including Free. Claude or any MCP-compatible agent can query a dataset, ask what changed since last week, and even fix bad rows itself, publishing the correction as a new, reversible version.
  • No scraper maintenance. Extraction adapts when the underlying page layout changes, instead of silently breaking.

Try it with zero setup

Public datasets need no account, no API key. Just a GET request:

GET https://quorel.vercel.app/api/1/hacker-news-top/active/
    ?format=json
    &limit=5
    &sort=score:desc
[
  {
    "title": "Show HN: I built a source of truth for the web",
    "score": 412,
    "comments": 187,
    "url": "https://news.ycombinator.com/item?id=..."
  }
]

Browse all public datasets in the marketplace, swap the slug, and query any of them the same way.

API URL structure

https://quorel.vercel.app/api/{dataset_id}/{name-slug}/{version}/
Part Meaning
dataset_id The numeric ID of the dataset
name-slug The dataset name, lowercased and hyphenated
version active (pinned version), latest, or v1, v2, v3, etc.

Query parameters

Every endpoint accepts the same set of parameters, stack as many as you need:

Parameter Default Description
format json Output format: json, jsonl, csv, tsv, xml, parquet
limit all Max number of entities to return
offset 0 Skip the first N entities
sort none Sort by a field, e.g. sort=score:desc
keywords none Full-text search across all fields, comma-separated for OR
keywords_mode or Use and for AND search across keywords
filter none Exact match on a field, e.g. filter=category:finance. Repeatable
filter_contains none Partial match on a field. Repeatable
keep_field none Return only these fields (dot-notation supported)
drop_field none Remove these fields from the response
dedup false Remove duplicate entities. Use dedup_key=field1,field2 to dedup on specific fields
denull false Strip null and empty string values recursively
flatten false Flatten nested objects into dot-notation keys (auto-applied for csv, tsv, parquet)
sample none Return N randomly sampled entities
count false Return only the count of matched entities
alt false Return the alt version of the dataset, if one exists
include_source true Include the _source field (origin URL of each entity)
pretty true Pretty-print JSON output

Rate limits

Access Limit
Public (no auth) 100 requests/minute, per IP
Private (Bearer token) 300 requests/minute, per IP

Rate limit headers are included in every response: X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset.

Creating your own dataset

Free account, no credit card required. One dataset, up to 20 URLs.

  1. Sign up at quorel.vercel.app/auth
  2. Paste URLs or describe your intent. Import URLs directly, or describe what you want in plain English and Quorel discovers sources via web search.
  3. Define your schema. Tell Quorel which fields you want and what they mean, e.g. score (number), the upvote count.
  4. Wait for processing. Quorel crawls your URLs, runs AI extraction against your schema, and versions the result.
  5. Hit your endpoint. Query it exactly like the public example above, using your dataset ID and slug from the dashboard.

Accessing a private dataset

GET https://quorel.vercel.app/api/42/my-dataset/active/
Authorization: Bearer your_private_key

Find your private key in your dataset's dashboard page.

MCP: letting an agent work the data directly

Every dataset ships with an MCP server, on every plan, including Free. Claude or any MCP-compatible agent can filter it, sort it, ask what changed, and even fix bad rows itself.

Inside a Claude chat:

> what changed on job-board-listings this week
→ queried v14 vs v9, 23 postings added, 8 removed

> fix the missing salary fields and publish v15
→ reviewed 200 rows, filled 14 fields from listing text
→ live at /job-board-listings/v15

Agent-made changes land in the same versioned, reversible system as anything done by hand, nothing is silently overwritten. Full details: quorel.vercel.app/docs/mcp

Versioning and rollback

  • See exactly what changed. Compare any two versions side by side: added rows, removed rows, changed values.
  • Roll back in one click. A bad refresh pulled in dirty data? Revert instantly, or freeze a version so it can't change again.
  • Fork any public dataset. Start from someone else's dataset the way you'd fork a repo, add your own fields, publish your own copy.

Full details: quorel.vercel.app/docs/versioning

Pricing

Free Pro ($19/mo) Scale
Datasets 1 5 Unlimited
URLs per dataset 20 100 500
Refresh Nightly On-demand via ping URL Custom schedules
Version history & rollback
MCP access
Support Community Email Dedicated

Scale is coming soon, join the waitlist.

What people build with it

  • Competitor pricing history, every price change tracked, not just today's number
  • Job market monitoring, postings, salaries, and what got taken down
  • Real estate over time, status changes, price drops, days on market, versioned
  • Live context for AI agents, Claude checking what changed on a site since last week
  • A data backend for apps, query params in, structured API out, no scraping infra to own

Docs

About this repo

This is the working codebase for Quorel, built and maintained solo. It was originally developed under the name Vexaro; the product was later renamed to Quorel, and that rename is reflected across the live product, docs, and public-facing brand. A full rename pass across this codebase (package names, internal references) is planned.

The code is open here: github.com/var-raphael/vexaro. Issues, questions, and contributions are welcome.

Live product: quorel.vercel.app Contact: samuelraphael925@gmail.com

About

The source of truth for the live web, versioned, queryable data APIs from any website, with native MCP support for AI agents.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors