Install
openclaw skills install @donohue/instaparserUse the Instaparser API to parse articles, PDFs, and generate summaries from URLs. Trigger when users want to extract content from web pages, parse PDF documents, or summarize articles using the Instaparser service.
openclaw skills install @donohue/instaparserUse this skill when the user wants to interact with the Instaparser API to parse articles, PDFs, or generate summaries.
https://www.instaparser.com/api/. The user must grant network access when prompted.INSTAPARSER_API_KEY environment variable.export INSTAPARSER_API_KEY="your_api_key_here"
All API requests require a Bearer token. The API key should be provided via the INSTAPARSER_API_KEY environment variable, or the user can provide it directly.
Authorization: Bearer $INSTAPARSER_API_KEY
POST https://www.instaparser.com/api/1/article
Parse an article from a URL and extract its title, author, body content, images, and more. Uses 1 credit per call.
Request body (JSON):
| Parameter | Type | Required | Description |
|---|---|---|---|
url | string | Yes | URL of the article to parse |
content | string | No | Raw HTML content to parse instead of fetching from url |
output | string | No | "html" (default) or "text" |
use_cache | bool | No | Whether to use cache. Defaults to true |
Example:
curl -X POST https://www.instaparser.com/api/1/article \
-H "Authorization: Bearer $INSTAPARSER_API_KEY" \
-H "Content-Type: application/json" \
-d '{"url": "https://example.com/article", "output": "text"}'
Response fields:
| Field | Description |
|---|---|
url | Canonical URL |
title | Article title |
site_name | Website name |
author | Author name |
date | Published date (UNIX timestamp) |
description | Article description |
thumbnail | Thumbnail image URL |
html | HTML body (when output is "html") |
text | Plain text body (when output is "text") |
words | Word count |
is_rtl | true if Arabic or Hebrew |
images | Array of image URLs |
videos | Array of video URLs |
Parse PDFs from a URL (GET) or by uploading a file (POST). Uses 5 credits per page.
GET https://www.instaparser.com/api/1/pdf
| Parameter | Type | Required | Description |
|---|---|---|---|
url | string | Yes | URL of the PDF to parse |
output | string | No | "html" (default) or "text" |
use_cache | bool | No | Whether to use cache. Defaults to true |
curl "https://www.instaparser.com/api/1/pdf?url=https://example.com/report.pdf&output=text" \
-H "Authorization: Bearer $INSTAPARSER_API_KEY"
POST https://www.instaparser.com/api/1/pdf
Send as multipart form-data with a file field.
curl -X POST https://www.instaparser.com/api/1/pdf \
-H "Authorization: Bearer $INSTAPARSER_API_KEY" \
-F "file=@report.pdf" \
-F "output=text"
Response fields: Same as Article API.
POST https://www.instaparser.com/api/1/summary
Generate an AI-powered summary with key sentences. Uses 10 credits per call.
Request body (JSON):
| Parameter | Type | Required | Description |
|---|---|---|---|
url | string | Yes | URL of the article to summarize |
content | string | No | HTML content to parse instead of fetching from URL |
use_cache | bool | No | Whether to use cache. Defaults to true |
stream | bool | No | Stream the response. Defaults to false |
curl -X POST https://www.instaparser.com/api/1/summary \
-H "Authorization: Bearer $INSTAPARSER_API_KEY" \
-H "Content-Type: application/json" \
-d '{"url": "https://example.com/article"}'
Response fields:
| Field | Description |
|---|---|
key_sentences | Array of key sentences extracted from the article |
summary | Concise summary of the article |
| Code | Reason |
|---|---|
| 200 | Success |
| 400 | Parameter missing or malformed |
| 401 | API key is invalid |
| 403 | Account suspended (payment error) |
| 409 | Exceeded monthly credits (Trial plan only) |
| 412 | Upstream parsing error |
| 429 | Rate limit exceeded |
Python:
from instaparser import InstaparserClient
client = InstaparserClient(api_key="YOUR_API_KEY")
# Article
article = client.Article(url="https://example.com/article", output="text")
# PDF
pdf = client.PDF(url="https://example.com/report.pdf")
# Summary
summary = client.Summary(url="https://example.com/article")
JavaScript:
import { InstaparserClient } from 'instaparser-api';
const client = new InstaparserClient({ apiKey: 'YOUR_API_KEY' });
// Article
const article = await client.article({ url: 'https://example.com/article', output: 'text' });
// PDF
const pdf = await client.pdf({ url: 'https://example.com/report.pdf' });
// Summary
const summary = await client.summary({ url: 'https://example.com/article' });
When the user asks to parse an article, PDF, or generate a summary:
INSTAPARSER_API_KEY is set in the environment. If not, ask the user for their API key.curl via the Bash tool to make the API request.output: "text" unless the user specifically wants HTML.