Libraccio API

Every Libraccio book by ISBN — new price, cover price and used price side by side

The Libraccio API returns libraccio.it — the Italian bookseller that sells every title new and, where it has bought a copy back, used — as clean JSON in four actions: search, isbn, detail and facets.

no credit card1,000 free credits · instant API key · pay by card or crypto
Missing a Libraccio endpoint, or need a source we don't have yet?Contact us real people · same-day reply.
L
/libraccio/v1

4 active endpoints, on 1 and 2 credit tiers.

  • POST/libraccio/v1/search
  • POST/libraccio/v1/isbn
  • POST/libraccio/v1/detail
  • POST/libraccio/v1/facets

What Libraccio endpoints does ReefAPI ship?

4 live read endpoints. Read-only data API: no writes, no account actions, no dashboard access on the target site.

4 endpoints

search

1 cr

Search Libraccio's catalogue.

required
—
optional
query, author, publisher, series, department, school_type, school_subject, character, product_type, age_band, used_in_stock, new_in_stock, min_price, max_price, min_used_price, max_used_price, year_min, year_max, page, per_page, include_pii

isbn

1 cr

Price up to 50 ISBNs/EANs against Libraccio in ONE upstream request.

required
isbns
optional
—

detail

2 cr

Everything Libraccio's product page publishes for one EAN.

required
ean
optional
—

facets

1 cr

The shape of the catalogue (or of one search) in one request.

required
—
optional
query, department, product_type, top

Every parameter, every allowed value →

Libraccio API

4 of 4 endpoints, ready to run

View docs ↗

Up to 50 ISBN-13, ISBN-10 or EAN codes in one request. Check digits are verified first; the reply keeps your order and separates found, not carried by Libraccio, and invalid.

1 credit1 required · 0 optional
POST/libraccio/v1/isbn
idle
// Press "Try it" and this pane shows exactly what the
// live site returned this second — including an empty
// result, if that is the truth. No key, no account.

How the Libraccio API works

Libraccio is a normal ReefAPI surface — the same four rules that hold for every other engine on the key.

01
Authenticate
x-api-key header

No OAuth app, no request signing, no per-site account. One key covers all 491 engines.

02
Call
POST /libraccio/v1/…

Every route is a POST with a JSON body. Parameters are validated against the published schema before anything is charged.

03
Pay
1 or 2 credits per call

Credits, not seats. Failed and blocked calls are never charged, and cache hits cost nothing.

04
Read
{ ok, data, meta, error }

One envelope everywhere. meta carries latency_ms, record_count and the endpoint that answered.

Price a class's school book list, then pick new or used per book

School lists are where Libraccio's used offer is deepest. Two calls take you from a list of ISBNs to a per-book decision.

01isbn · isbns=["9788807592867","9788808949493","9788805078622"]
POSTisbn · isbns=["9788807592867","9788808949493","9788805078622"]

One request, order kept. Each row: new_price, cover_price, used_in_stock, used_price, used_discount_pct_vs_cover and dispatch days.

02detail · ean=9788807592867
POSTdetail · ean=9788807592867

Confirm the live offers before buying: new 27.00, used 16.74, a 4.05 EUR voucher on the new copy, and the used unit count — read from the page right now.

A priced list with the used saving per book (here 10.26 EUR against new on the first title) and a live check on the books you are about to order — the index can lag a just-sold used copy, the page cannot.

request
curl -X POST https://api.reefapi.com/libraccio/v1/isbn \
  -H "x-api-key: $REEF_KEY" \
  -H "content-type: application/json" \
  -d '{"isbns":["9788807592867","9788804772132","9788828869269"]}'
response envelope
{
  "ok": true,
  "data": { … },
  "meta": {
    "api": "libraccio",
    "endpoint": "isbn",
    "mode": "live",
    "latency_ms": …,
    "record_count": …
  },
  "error": null
}

Three prices per book, and what each one means

Libraccio publishes up to three different numbers for one EAN. The API returns them as separate fields, never as one 'price'. Example values are live readings from 2026-10-14.

fieldwhat it isexample (9788857311104)note
cover_pricethe publisher's cover price ('prezzo di copertina')18.00search derives it from the new price and the new discount; matched the product page's own cover price on 32 of 32 books checked
new_priceLibraccio's selling price for a NEW copy14.40new_discount_pct 20; detail only returns it when the page actually offers a new copy
used_priceLibraccio's price for its USED copy8.10used_discount_pct_vs_cover 55 — the used discount is measured against the cover price, not the new price

There is one used price per book, not one per copy and not one per condition: Libraccio does not grade used copies. When no used copy is in stock, used_price is null. When the page sells no new copy, detail returns new_price null and keeps the cover price.

What Libraccio publishes — measured on 2026-10-14

Every row below came from live calls, including the ones that go against us.

Market

Italy, prices in EUR. One storefront.

Catalogue

About 1.16 million records: 1,028,002 books, 120,452 school textbooks, 16,430 stationery items, a few dozen e-readers. The total drifts slightly between calls and is flagged as not exhaustive.

Prices

Three separate fields: cover_price, new_price and used_price, with new_discount_pct and used_discount_pct_vs_cover. Cover price matched the product page 32 of 32; new price 30 of 30 where a new copy was offered.

Used books

One used price per book, no condition grades. Search and the live page agreed on the used price for 30 of 32 books; the other two had just been reserved.

Stock

In-stock flags and dispatch days on every search row; unit counts with a sellable flag on detail. The search new-stock flag disagreed with the page's buy box on 3 of 32 books.

Identifiers

EAN on every row; ISBN-13 and ISBN-10 for books (ISBN-10 derived for 978 codes). Stationery has an EAN and no ISBN.

Paging and order

Up to 10,000 hits per query, 1-100 per page. Relevance order only — no other sort exists on the source.

Speed

Median 818-851 ms for search, 1.1-1.4 s for detail over two acceptance runs (worst detail call 1.99 s).

What people build with Libraccio

The jobs this data is most often used for.

4

endpoints

1/2

credits per call

01

Price a school book list in one request: send the class's ISBNs to isbn and get the new price, the used price and whether a used copy is in stock for each, in your order.

02

Find the cheapest way to a textbook: filter search by school type and subject with used_in_stock=true and a max_used_price, then compare used_price with new_price on every row.

03

Track used-book supply for a title or a publisher over time: every row carries a used-in-stock flag, the used price and the shop's own 30/90/180-day sales counters.

04

Monitor Italian list prices and discounts: cover_price, new_price and new_discount_pct are separate fields, so a promotion shows up as a discount rather than as a silent price change.

What Libraccio data costs

The cheapest call here is 1 credit, so $15/mo (Pro) buys 10,000 of them — $1.50 per 1,000 credits. Credits roll over and never expire, and failed or blocked calls are not charged.

Full pricing →
$0.67–$1.50 / 1,000 credits
  • 1,000 free credits on signup, no card
  • One key, all 491 APIs, one credit pool
  • Failed and blocked calls are never charged
  • Credits roll over and never expire

Call it in two lines

Sign up, get 1,000 credits and one key that works on every engine. Then this is the whole protocol.

curl
curl -X POST https://api.reefapi.com/libraccio/v1/isbn \
  -H "x-api-key: $REEF_KEY" \
  -H "content-type: application/json" \
  -d '{"isbns":["9788807592867","9788804772132","9788828869269"]}'
python
import requests

r = requests.post(
    "https://api.reefapi.com/libraccio/v1/isbn",
    headers={"x-api-key": REEF_KEY},
    json={
  "isbns": [
    "9788807592867",
    "9788804772132",
    "9788828869269"
  ]
},
)
print(r.json()["data"])
FAQ

Have a question? We got answers.

The questions people actually ask before wiring up Libraccio.

Get a free key →
Does Libraccio grade its used books like other second-hand shops?▾

No. Libraccio sells one 'usato' state per book at one price. Its own policy page describes used copies in words — they may show wear, and used school books may carry underlining, highlighting, margin notes or already-solved exercises — but there is no Very Good / Good ladder. The API returns what exists: a used price, a used-in-stock flag, the used offer's availability wording and a unit count, and no invented grade.

Can I look up many ISBNs at once?▾

Yes — up to 50 per call with the isbn action, as ISBN-13, ISBN-10 or EAN, with or without dashes. ISBN-10s are converted to the ISBN-13 the shop is keyed on and every check digit is verified first, so a typo comes back under invalid instead of as a missing book. The reply keeps your order and lists found, not carried by Libraccio, and invalid separately. Measured: 50 books in one call, 526 ms.

Are search results and the product page always the same?▾

Almost, and the gap is documented. Across 32 books in 8 categories the used price in search matched the live product page 30 times; in the other two the used copy had just been reserved and the page no longer offered it. The cover price matched 32 of 32, and the new price matched 30 of 30 wherever the page offered a new copy. If you are about to buy, use detail — it reads the live page and reports any disagreement inside the page itself.

Does new_in_stock=false mean I cannot buy it new?▾

Not always. It is the shop's own stock flag, and 3 of 32 books checked disagreed with the page's buy box: two were orderable new (one a school-book preorder, one 'ready to ship in 10 working days') while flagged false, and one was flagged true with no new offer on the page. detail returns the page's own wording in new_offer.availability and a buyable flag.

Which filters work?▾

All of the ones offered, each measured against an unfiltered call in the same run: author (7,289 → 289), publisher (7,289 → 133), series (8,112 → 49), department (134,836 → 41,004), school type (7,889 → 106), school subject (4,120 → 55), character (461 → 74), product type (6,293 → 297), age band (2,124 → 231), used in stock (8,112 → 1,296), new price floor and ceiling (29,806 → 7,264 and 7,481), used price floor and ceiling (8,112 → 487 and 244) and a year window (8,112 → 2,152 and 98). An unknown parameter name is rejected rather than ignored. There is no sort parameter: only the shop's relevance order exists.

How deep can I page and is the total exact?▾

Up to 10,000 hits per query; a page past that is rejected with the last readable page for your page size, because the source answers it with an empty result that looks like the end. The unfiltered catalogue total drifts slightly between calls (1,164,935 and 1,164,831 the same afternoon) and is flagged as not exhaustive; a narrow query is exact.

What does detail add for school books?▾

The school type and subject the book is adopted for, the voucher Libraccio pays back on a new school book (for example 4.05 EUR on a 27.00 EUR history book), whether the title is a preorder, and both offers side by side so you can see the saving of used against new and against the cover price.

Is the stock number real?▾

detail returns the unit counts the product page carries for new and for used, plus a status and a sellable flag, because a count alone is not enough: on 2 of 32 pages a used count above zero came with a status the shop does not sell from, and no used offer. The sellable flag agreed with the page's used offer on 25 of 25 pages that carried one. The source does not label these numbers on screen, so treat them as stock depth, not as a promise.

What is the Libraccio API?▾

Libraccio API is a ReefAPI endpoint group for italy's new + used bookseller as json: about 1.16 million books, school textbooks and stationery by isbn, author, publisher, school or subject — with libraccio's new price, cover price and used ('usato') price side by side, and up to 50 isbns priced in one call. It returns live JSON through POST requests under /libraccio/v1.

Is the Libraccio API free to try?▾

Yes. ReefAPI starts with 1,000 free credits, no card required. Libraccio calls use the same shared credit balance as every other ReefAPI engine.

Do I need a Libraccio login or account?▾

No login to Libraccio is needed for the API response. You call ReefAPI with your x-api-key header, and the playground can run live examples before you create a production key.

How fresh is the Libraccio data?▾

The page example is captured from a live search call, and production requests fetch live data through ReefAPI rather than a static sample.

How many credits does the Libraccio API use?▾

Libraccio actions currently cost 1-2 credits per successful call. Failed or blocked calls are free. All APIs draw from one credit pool.

Can I call Libraccio from an AI assistant or MCP client?▾

Yes. Connect ReefAPI once through MCP and your assistant can call libraccio actions with the same key, credit pool and JSON envelope used by normal REST requests.

Need something this API does not do?

Name the endpoint, the field, or a source we do not carry yet. We ship new APIs every week and you would be first to get the key. Real people read every message and reply the same day.

0/4000

No account needed · we reply from [email protected]

Try it on your own data before you pay anything

The call above is the real endpoint, not a recording. A free key gives you 1,000 credits, the other 490 APIs, and the same envelope everywhere.

Endpoints, parameters and credit costs on this page are read from the live catalog and cannot drift from what the API accepts. Field notes were captured on 2026-10-14.