Install
openclaw skills install swiftscholar-skillIntegrates the SwiftScholar HTTP API for searching, submitting, and analyzing academic papers. Use when the user wants to search literature, submit PDFs/URLs for parsing, retrieve analyses, manage favorites, or inspect SwiftScholar account usage programmatically.
openclaw skills install swiftscholar-skillswiftscholar-skill)This skill enables the agent to use the SwiftScholar HTTP API to search, submit, analyze, and manage academic papers.
Prefer the JSON-first /api/tools/* endpoints instead of deprecated /api/mcp/tools/* endpoints.
Basic information:
https://www.swiftscholar.netAuthorization: Bearer <API_KEY>SwiftScholar HTTP API 1.0.0)Never expose the API key in natural language responses; only include it in actual HTTP headers.
Use the SwiftScholar API in these situations:
Typical trigger phrases (examples):
/api/tools/* endpoints use Bearer tokens:
Authorization: Bearer <SWIFTSCHOLAR_API_KEY>POST.application/jsonmultipart/form-data with file as binary PDFToolApiResponse structure:
ok: boolean (always present)data: object (present on success)error: string (may be present on failure)ok == false or error is present, briefly explain the failure to the user and suggest next steps (e.g., adjust parameters, narrow filters).This section is organized by capability, not by URL, to help the agent choose appropriate tools.
All listed endpoints live under paths./api/tools/....
List all paper tags (with IDs and usage counts)
POST /api/tools/paper_tags_list{} (no parameters)Paginate accessible papers
POST /api/tools/papers_paginatepage: integer >= 1 (default 1)pageSize: integer 1–50 (default 10)licenses: string[] (may include 'none')publishedFrom: string (YYYY-MM-DD)publishedTo: string (YYYY-MM-DD)Keyword search (literal string matching)
POST /api/tools/papers_search_keywordquery: string (required; search string)page, pageSize (same semantics as papers_paginate)tags: string[] / tagNames: string[] (tag filters)tagMode: "and" | "or" (default "or")licenses, publishedFrom, publishedTo (same as above)Vector search (semantic search)
POST /api/tools/papers_search_vectorquery: string (required; natural-language query)limit: integer 1–30 (default 10)papers_search_keywordSubmit a paper by URL
POST /api/tools/paper_submit_urlurl: string (required; paper source page or PDF URL)modelId: string (optional; PDF analysis model)force: boolean (force re-parse)favoriteFolderId: string | null (favorites folder, null for root)favoriteNote: string (favorites note)Submit or link a PDF file
There are two main modes:
JSON API:
POST /api/tools/paper_submit_pdfpdfUrl: string OR pdfBase64: string (one of them is required)fileName: string (optional)paper_submit_url (modelId, force, favoriteFolderId, favoriteNote)pdfUrl or pdfBase64.”Multipart upload:
multipart/form-data:
file: binary (required; PDF file content)modelId, force, favoriteFolderId, favoriteNoteUsage guidance:
Batch submit URLs
POST /api/tools/papers_submit_urlsurls: string[] | string (array or newline-separated string)modelId: string (optional; applied to all URLs)notifyOnComplete: boolean (default false)force: boolean (default false)favoriteFolderId: string | nullfavoriteNote: stringGet markdown-formatted paper analysis
POST /api/tools/paper_analysis_markdownpaperId: string (required)language: "auto" | "zh" | "en" | "both" (default "auto")scope: "public" | "me" | "auto" (default "public")language according to the user’s preference:
"zh" or "both";"auto".Get the raw markdown source for a paper
POST /api/tools/paper_markdown_rawpaperId: string (required)maxChars: integer (500–120000) (optional; truncation)maxChars and inform the user if the content was truncated.Get a guarded PDF download link
POST /api/tools/paper_pdf_linkpaperId: string (required)List favorite folders
POST /api/tools/paper_favorite_folders{}List favorite papers
POST /api/tools/paper_favorites_listpage, pageSize (pagination; 1–50)folderId: string | null (null for root; omit for all folders)includeDescendants: boolean (default false)search: string (search in notes and titles)Save or update a favorite entry
POST /api/tools/paper_favorite_savepaperId: string (required)folderId: string | null (target folder; null for root; omit to reuse existing folder if present)note: string (optional note)List available PDF analysis models
POST /api/tools/paper_analysis_models{}consumeUnits and per-parse extra price) to help choose modelId.Summarize account quota and points
POST /api/tools/account_usage_summary{}List parse history
POST /api/tools/parse_history_listpage, pageSize (1–100)chargeMode: string (optional, e.g., FREE or BALANCE)/api/tools/papers_search_vector to focus on conceptual relevance./api/tools/papers_search_keyword.paperId for follow-up./api/tools/paper_analysis_markdown for detailed analysis; or/api/tools/paper_markdown_raw for fine-grained custom processing./api/tools/paper_submit_url/api/tools/paper_submit_pdffavoriteFolderId and favoriteNote in the request.paperId is available, call /api/tools/paper_analysis_markdown./api/tools/paper_favorite_folders to list all folders./api/tools/paper_favorites_list with appropriate folderId and search./api/tools/paper_favorite_save to create or update favorite records./api/tools/*:/api/mcp/tools/* endpoints are marked deprecated in the OpenAPI spec; avoid relying on them for new integrations.