# Near Fine > Near Fine searches booksellers around the world for a book and shows every offer that can reach a buyer's country: editions, conditions, prices and shipping, in the buyer's currency. Search by ISBN for an exact edition, or by title and author keywords. Sources are AbeBooks and up to three eBay sites, varying by country, plus World of Books (UK, US and Australia stores, the UK one shipping to about 60 more countries), ThriftBooks (US and about 50 more countries), Casa del Libro (Spain and about 115 countries), Rarewaves (UK and about 200 countries), Librairie Mollat (France and abroad, ISBN searches only), Hugendubel (Germany, Austria, Switzerland), Booklooker (Germany, Austria, Switzerland, and sellers who ship across Europe), Ex Libris (Switzerland, Liechtenstein), Leslibraires.fr (France, ISBN searches only), Boekwinkeltjes.nl (Netherlands), Standaard Boekhandel (Belgium, Netherlands), Librairie Club (Belgium, France, Luxembourg), Managementboek (Netherlands, ISBN searches only), Dubray Books (Ireland and abroad, ISBN searches only), Books Upstairs (Ireland and about 50 countries), Malliaris-Paideia (Greece and abroad), Indigo (Canada), Book Outlet (US, Canada), Book Grocer (Australia, New Zealand, UK, US, Canada, Singapore, EU), Whitcoulls (New Zealand, ISBN searches only), Daunt Books (UK and abroad), Paper Cavalier (new and used copies from the UK to 12 countries, ISBN searches only), Lets Buy Books (UK, mostly multi-book sets), Chapters Bookstore (Ireland and abroad, ISBN searches only), Kinokuniya's US store (US, Canada, Mexico), Harry Hartog (Australia and abroad), Bokkilden (Norway and abroad), Bog & idé (Denmark), Suomalainen Kirjakauppa (Finland and 18 EU countries), Booky.fi (Finland and abroad), Nexus (Iceland), Bookbot (used books from Prague to about 40 countries), Świat Książki (Poland and abroad), Matras (Poland), Czytam.pl (Poland and the EU), Luxor and Kosmas (Czechia, Slovakia), IBS, Libraccio and Libreria Universitaria (Italy and abroad; IBS and Libraccio by ISBN only), Agapea (Spain, Portugal), Label Emmaüs (used books in France, Belgium, Luxembourg), Livrenpoche (used books in France and abroad), Buybook (Bosnia and abroad), Gandhi (Mexico and abroad), Porrúa (Mexico), Kel Ediciones and SBS Librerías (Argentina), Livraria da Travessa, Martins Fontes, Americanas and Livrarias Curitiba (Brazil), Librería de la U (Colombia), Ibero Librerías (Peru), Contrapunto (Chile), Tecni-Ciencia (Venezuela), Kinokuniya's Japanese store (Japan and abroad, ISBN searches only) and Taiwanese one (Taiwan, Japan), Maruzen Junkudo (Japan, ISBN searches only), BookOff (Japan, used and new), Kyobo (Korea and about 200 countries), Yes24 (Korea and abroad), Popular (Singapore), MPH and BookXcess (Malaysia and abroad), Bookazine (Hong Kong and abroad), National Book Store (Philippines), Atlantic Books (India and abroad), Kitabay (India, Singapore), Liberty Books (Pakistan and abroad), Exclusive Books (South Africa and abroad, ISBN searches only), Readers Warehouse (southern Africa), Wordsworth Books (South Africa), Graffiti Books (South Africa and abroad), and Apple Books ebooks (the 51 countries where Apple sells them, from the buyer's own store) and audiobooks (22 of those countries). Shops that also sell ebooks or audiobook downloads offer them to buyers in their own country only. Where a shop doesn't publish its shipping cost, offers leave shipping out. Full documentation, with every field: https://nearfine.com/docs. Connecting an assistant: https://nearfine.com/assistants. ## For agents - [MCP server](https://nearfine.com/mcp): Streamable HTTP, stateless, JSON responses. Searching needs no authentication: `search_books` (query, optional country) and `list_sources` (optional country) are read-only. The alert tools, `set_alert` (query, country), `list_alerts` and `cancel_alert` (id), act for a person who signs in to Near Fine with OAuth the first time one is called (see Alerts). - [Aggregated search](https://nearfine.com/api/v3/search?query=9780141439518&country=US): `GET /api/v3/search?query=&country=`. One request searches every source serving the country and returns offers sorted cheapest first, with price, shipping, currency, buyer-currency conversion where it differs, seller and URL, plus which sources answered, failed or timed out, an `amazon_url` that opens the same search on the buyer's Amazon site, and a `search_url` that opens it on Near Fine. Expect a few seconds. ## Alerts An alert watches a search for six months, and Near Fine emails its owner once when a new listing turns up with everything the query asks for, such as a first edition or a price cap. Five alerts are free; paid plans watch more books, more often (https://nearfine.com/plans). - Through the MCP server, `set_alert` sets one for the person, `list_alerts` lists theirs with what each found, and `cancel_alert` deletes one. A full plan comes back as a tool error. - These tools need an OAuth 2.1 access token with scope `alerts` for the MCP server's URL as you were given it, such as `https://nearfine.com/mcp`. Called without one, they answer HTTP 401 with `WWW-Authenticate: Bearer ... resource_metadata="https://nearfine.com/.well-known/oauth-protected-resource/mcp", scope="alerts"` (on that host), and the person signs in with a code Near Fine emails them. A token that's expired, revoked or for another host gets the same 401 on any call. - The authorization server is `https://nearfine.com` (metadata at `/.well-known/oauth-authorization-server`): dynamic client registration (every client public), authorization code with PKCE S256, `resource` and `iss` parameters, access tokens for an hour, refresh tokens that rotate on each use (a retry within a minute gets a fresh pair; reuse after that revokes the connection), and revocation at `/oauth/revoke`. - The JSON API can't set alerts. On the website, a signed-in person chooses "Alert me" on a search, so the `search_url` works too. ## Other JSON APIs - `GET /api/v2/setup?country=US` lists the catalogs serving a country; with `&query=` it returns `{criteria, searches}`, adding the criteria read from the query. `GET /api/v2/search?catalog_id=&query=&country=US` searches one catalog. These serve the website, one request per catalog. - `GET /api/v1/search?catalog_id=&query=&country=US` is a legacy per-catalog endpoint that an existing integration relies on. Its catalog ids are fixed. ## Notes - Rate limit: 60 requests per minute per IP across `/api` and `/mcp`, apart from `/api/v2/search`, which the website calls once per catalog and which allows 600. Calls to `/mcp` with an access token count per person instead, at 120 a minute. - Countries are ISO 3166-1 alpha-2 codes. The default is US. - Prices are in the seller's currency. Buyer-currency figures use daily exchange rates and are approximate. - An offer without `shipping` comes from a shop that doesn't publish its shipping cost for the buyer's country. - Queries can carry criteria beyond the book: a price cap such as `under $40`, `below 25 GBP`, `max 30 €` or `< 50` (in the buyer's currency when none is named), and `first edition` (also `1st ed.`, `first printing`, `1st/1st`), `signed`, `dust jacket`, `hardcover` or `paperback`, and a format, `ebook` or `audiobook`, which leaves out offers in other formats. They're stripped from the keywords sent to booksellers, and `criteria` reports what was read: `keywords`, `max_price`, `attributes`, `format` and a `summary`. Offers whose price plus known shipping goes over the cap are left out; shipping a shop doesn't publish counts as nothing. Words in title case before another capitalised word stay part of the title (`Hardcover Heaven`), as do words in double quotes. - `verdicts`, on each offer when the query asks for attributes, says per attribute whether the listing claims it: `true` where the decision model confirms it from the listing's words and any filter the bookseller applied (AbeBooks has one for each attribute, eBay's US and UK sites for first editions and bindings), `false` where it doesn't, and missing where unjudged. A bookseller's filter stands when the model doesn't answer. Ebooks have none of these attributes. - `match`, from 0 to 1, is how sure a decision model is that a listing is the book searched for, in any edition or format, rather than a study guide, summary, adaptation, sequel or another book that shares a word. Below about 0.2 it rarely is. Offers and products without one weren't judged. - An offer's condition is `new`, `used` (or a grade such as `very good`), `ebook` or `audiobook`. Ebooks and audiobooks never ship, so their shipping is 0.