save_article
Save a web page by URL to the user's Saved list: fetches it, extracts the article with Readability and stores it. For content you already have, use upload_article instead. A URL that's already saved is returned unchanged unless you pass refetch, which replaces the stored copy. Returns the article's id, metadata, an excerpt and outcome (created, updated or existing), not the content (use get_entry for that). Errors carry an app code in their data, e.g. when the site rate limits us or the user's fetch quota is used up. Private Google Docs work once the user has granted Google Docs access in the web app; otherwise the error says how.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"url": "<url>"
},
"name": "save_article"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | The URL to save | |
| force | No | With refetch, update even if the new content looks much shorter than the saved copy (by default that refetch is rejected, since it usually means an error or access-denied page). | |
| title | No | Optional title override (useful if page title is poor). Plain text (NOT Markdown or HTML). Do NOT HTML-escape it — write & not &, since it is rendered as literal text and an entity like & would show up verbatim. | |
| author | No | Optional author/byline override (useful if you already know it better than the page). Plain text (NOT Markdown or HTML). Do NOT HTML-escape it — write & not &, since it is rendered as literal text. | |
| refetch | No | If the URL is already saved, fetch it again and update the article in place, keeping its ID, starred state and collections (it is marked unread). Title, author and summary come from the new fetch, so pass any overrides again. Without this, an already-saved article is returned unchanged. | |
| summary | No | Optional summary/excerpt override (e.g. an abstract you already have). Plain text (NOT Markdown or HTML). Do NOT HTML-escape it — write & not &, since it is rendered as literal text. Clipped to ~300 characters. | |
| collectionIds | No | Optional collection IDs to also add the article to (see create_collection) |