Resolve a Goodreads link
What a goodreads.com link points to (book, author, series, list, quote page, review…), its id and canonical URL, and which route and arguments read it. Free: costs no credits.
/resolve-url Utilities https://api.fetchlayer.dev/goodreads/resolve-url Headers
Authorization string required Bearer token — your FetchLayer API key.
Parameters
url string required A goodreads.com link.
format string optional json or markdown, lowercase; any other value is a 400. Over MCP, markdown returns the result rendered as text; the REST API accepts it and returns JSON. (default: json)
timeoutMs number optional Per-request time limit in milliseconds (max 600000).
Response Fields
resolve-url
Resolve a Goodreads link
transport string The data source: always the platform id, "goodreads".
notes string[] Caveats about this response you can act on, such as a series listing fewer works than its total. Empty when there are none.
input string The link as given.
kind string What it points to: book, author, series, list, review and so on.
id number | null Its id; value holds a non-numeric key such as a tag.
canonicalUrl string | null The canonical goodreads.com URL.
tool string | null The MCP tool that reads it; the REST route is the same name without the goodreads_ prefix, with dashes.
arguments object | null The arguments to send to that tool or route.
Request
curl -X POST "https://api.fetchlayer.dev/goodreads/resolve-url" \
-H "Authorization: Bearer ss-your-key" \
-H "Content-Type: application/json" \
-d '{"url":"https://www.goodreads.com/book/show/5907.The_Hobbit"}'Response
{
"transport": "goodreads",
"notes": [],
"input": "https://www.goodreads.com/book/show/5907.The_Hobbit",
"kind": "book",
"id": 5907,
"value": null,
"canonicalUrl": "https://www.goodreads.com/book/show/5907",
"tool": "goodreads_book_detail",
"arguments": {
"book": 5907
}
}