cybermax / market /openapi /article-extract.json
CyberMax-tools's picture
AI Product Market refresh (2026-11-12 08:36 UTC)
a72a8d2 verified
Raw History Blame Contribute Delete
19.1 kB
{
"openapi": "3.1.0",
"info": {
"title": "Inkpluck API (Article Text Extractor: URL to Markdown)",
"version": "1.0.0",
"summary": "💰 $1 per 1,000 articles; pages that fail, are blocked, paywalled or too thin are free.",
"description": "💰 $1 per 1,000 articles; pages that fail, are blocked, paywalled or too thin are free. Article extractor for LLMs and RAG: URLs or RSS feeds in; clean text and Markdown, title, authors, publish date, language, top image and paywall flag out. Monitor mode skips URLs already extracted.\n\nRuns the Inkpluck Actor (`cybermax/article-extract`) on Apify with the caller's own Apify API token and returns its dataset. Pricing (pay per event, billed by Apify):\n- Article extracted: $0.001\n\nPublisher: CyberMax. Catalog: https://cybermax-tools-cybermax.static.hf.space/market/catalog.json",
"contact": {
"name": "CyberMax",
"url": "https://apify.com/cybermax/article-extract"
},
"x-logo": {
"url": "https://cybermax-tools-cybermax.static.hf.space/favicon.ico"
}
},
"x-cybermax-referral": {
"program": "CyberMax affiliate and referral program",
"status": "open",
"ratePct": 30,
"appliesTo": "Digital products sold through CyberMax's own Stripe checkout (store downloads, app Pro plans, API plans, bundles, data briefs).",
"basis": "net amount CyberMax receives for the order (after payment fees, refunds and chargebacks)",
"recurring": "the first 12 months of a subscription; one-time orders once",
"attributionWindowDays": 60,
"passRef": {
"queryParam": "ref",
"stripeParam": "client_reference_id",
"stripeValue": "aff_<your-id>",
"example": "https://buy.stripe.com/<link>?client_reference_id=aff_<your-id>"
},
"payouts": "Paid manually by CyberMax once a month for eligible sales whose 14-day refund window has closed (owner approval 10 Oct 2026).",
"terms": "https://cybermaxtools.com/affiliates/",
"details": "https://cybermaxtools.com/.well-known/referral.json",
"note": "Runs of this tool are billed by Apify on Apify's checkout, so they are not covered by the CyberMax referral program; it covers CyberMax Stripe checkout sales (store, API plans, bundles)."
},
"externalDocs": {
"description": "Apify Store page",
"url": "https://apify.com/cybermax/article-extract"
},
"servers": [
{
"url": "https://api.apify.com",
"description": "Apify API"
}
],
"security": [
{
"apifyToken": []
}
],
"tags": [
{
"name": "Inkpluck",
"description": "💰 $1 per 1,000 articles; pages that fail, are blocked, paywalled or too thin are free."
}
],
"paths": {
"/v2/acts/cybermax~article-extract/run-sync-get-dataset-items": {
"post": {
"operationId": "runInkpluckSync",
"tags": [
"Inkpluck"
],
"summary": "Inkpluck: run and return results",
"description": "💰 $1 per 1,000 articles; pages that fail, are blocked, paywalled or too thin are free. Waits for the run to finish (up to 300 s) and returns the output records.",
"parameters": [
{
"name": "timeout",
"in": "query",
"required": false,
"description": "Run timeout in seconds (max 300 for synchronous runs).",
"schema": {
"type": "integer",
"minimum": 1,
"maximum": 300
}
},
{
"name": "clean",
"in": "query",
"required": false,
"description": "Omit empty records and hidden fields.",
"schema": {
"type": "boolean",
"default": true
}
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Input"
},
"example": {
"urls": [
"https://techcrunch.com/2026/09/23/meta-introduces-camera-free-ai-glasses/",
"https://blog.cloudflare.com/vary-support/"
]
}
}
}
},
"responses": {
"201": {
"description": "Run finished; body is the list of output records.",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/OutputRecord"
}
},
"example": [
{
"url": "https://arxiv.org/pdf/1706.03762",
"finalUrl": "https://arxiv.org/pdf/1706.03762",
"ok": false,
"error": "not an HTML page (application/pdf)",
"ms": 442,
"extractedAt": "2026-09-23T23:44:36.144Z",
"images": []
}
]
}
}
},
"400": {
"description": "Invalid input.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ApifyError"
}
}
}
},
"401": {
"description": "Missing or invalid Apify token.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ApifyError"
}
}
}
},
"402": {
"description": "Apify account has no credit left for this run.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ApifyError"
}
}
}
},
"408": {
"description": "The run did not finish within the synchronous timeout; start it asynchronously instead.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ApifyError"
}
}
}
},
"429": {
"description": "Rate limited by Apify.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ApifyError"
}
}
}
}
}
}
},
"/v2/acts/cybermax~article-extract/runs": {
"post": {
"operationId": "startInkpluckRun",
"tags": [
"Inkpluck"
],
"summary": "Inkpluck: start an asynchronous run",
"description": "Starts a run and returns immediately. Poll GET https://api.apify.com/v2/actor-runs/{runId} and read items from GET https://api.apify.com/v2/datasets/{defaultDatasetId}/items.",
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Input"
}
}
}
},
"responses": {
"201": {
"description": "Run started.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/RunStarted"
}
}
}
},
"400": {
"description": "Invalid input.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ApifyError"
}
}
}
},
"401": {
"description": "Missing or invalid Apify token.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ApifyError"
}
}
}
},
"402": {
"description": "Apify account has no credit left for this run.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ApifyError"
}
}
}
},
"429": {
"description": "Rate limited by Apify.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ApifyError"
}
}
}
}
}
}
}
},
"components": {
"securitySchemes": {
"apifyToken": {
"type": "http",
"scheme": "bearer",
"description": "Your Apify API token (https://console.apify.com/settings/integrations). Runs are billed to your Apify account."
}
},
"schemas": {
"Input": {
"type": "object",
"properties": {
"urls": {
"type": "array",
"title": "Article URLs",
"description": "News articles, blog posts or docs pages to extract. One URL per line; the scheme is optional (\"example.com/post\" works). Duplicates are skipped.",
"examples": [
[
"https://techcrunch.com/2026/09/23/meta-introduces-camera-free-ai-glasses/",
"https://blog.cloudflare.com/vary-support/"
]
],
"items": {
"type": "string"
}
},
"feedUrls": {
"type": "array",
"title": "RSS/Atom feeds to watch",
"description": "Feed URLs (e.g. https://techcrunch.com/feed/). Inkpluck reads each feed and extracts its newest articles. Combine with \"Only new articles\" and an Apify Schedule to get each new article once, as Markdown, every day.",
"items": {
"type": "string"
}
},
"maxArticlesPerFeed": {
"type": "integer",
"title": "Articles per feed",
"description": "Newest items taken from each feed.",
"default": 20,
"minimum": 1,
"maximum": 200
},
"onlyNew": {
"type": "boolean",
"title": "Only new articles (monitor mode)",
"description": "Skip URLs this monitor already extracted in earlier runs (skips are free and produce no record). Memory is kept in a named key-value store per monitor name in your account.",
"default": false
},
"monitorName": {
"type": "string",
"title": "Monitor name",
"description": "Separate memories for separate watch lists, e.g. \"ai-news\" or \"competitor-blogs\". Letters, digits and dashes.",
"default": "default"
},
"htmlDocuments": {
"type": "array",
"title": "Raw HTML documents (optional)",
"description": "Already have the HTML? Pass [{\"url\": \"https://site.com/post\", \"html\": \"<html>...\"}] and Inkpluck extracts it without fetching. The URL is used to resolve relative links and dates.",
"items": {}
},
"onlyArticles": {
"type": "boolean",
"title": "Only charge for real articles",
"description": "Home pages, section pages (/news, /tech) and link lists are returned as free failures instead of extracted pages. Turn on when feeding crawled link lists; leave off to extract any page's main text.",
"default": false
},
"outputMarkdown": {
"type": "boolean",
"title": "Include Markdown",
"description": "Add a `markdown` field (headings, lists, links, images and tables kept) next to the plain `text`. Ideal for LLM/RAG pipelines.",
"default": true
},
"includeHtml": {
"type": "boolean",
"title": "Include cleaned article HTML",
"description": "Add an `html` field with the article body only (no navigation, ads or footer).",
"default": false
},
"newspaper3kFields": {
"type": "boolean",
"title": "Add newspaper3k field names",
"description": "Also output newspaper3k's attribute names (publish_date, top_image, movies, meta_lang, meta_description, meta_keywords, canonical_link, source_url) so existing newspaper3k code keeps working.",
"default": false
},
"minWords": {
"type": "integer",
"title": "Minimum words for a successful extraction",
"description": "Pages with fewer words of article text are reported as failures (free).",
"default": 50,
"minimum": 1,
"maximum": 5000
},
"maxConcurrency": {
"type": "integer",
"title": "Pages in parallel",
"description": "How many pages are fetched and extracted at the same time.",
"default": 10,
"minimum": 1,
"maximum": 50
},
"timeoutSecs": {
"type": "integer",
"title": "Timeout per page (seconds)",
"description": "Give up on a page after this many seconds (one automatic retry on network errors and 5xx).",
"default": 20,
"minimum": 5,
"maximum": 120
},
"retryBlockedWithProxy": {
"type": "boolean",
"title": "Retry blocked pages through Apify Proxy",
"description": "When a site answers 403/429/503 to a direct request, try once more through Apify Proxy (uses your account's proxy).",
"default": true
},
"proxyConfiguration": {
"type": "object",
"title": "Proxy (optional)",
"description": "Send every request through this proxy (e.g. residential for sites that block datacenters). Leave empty for direct requests with the automatic retry above.",
"default": {
"useApifyProxy": false
}
},
"startUrls": {
"type": "array",
"title": "Start URLs (compatibility)",
"description": "Same as Article URLs, in the [{\"url\": ...}] format other Actors use.",
"items": {
"type": "object",
"properties": {
"url": {
"type": "string",
"format": "uri"
}
}
}
}
},
"title": "Inkpluck article extractor",
"additionalProperties": false
},
"OutputRecord": {
"type": "object",
"properties": {
"url": {
"type": "string",
"description": "The URL as given in the input"
},
"finalUrl": {
"type": [
"string",
"null"
],
"description": "URL after redirects"
},
"ok": {
"type": "boolean",
"description": "true when article text was extracted (charged); false = free failure, see error"
},
"title": {
"type": [
"string",
"null"
]
},
"authors": {
"type": "array",
"items": {
"type": "string"
}
},
"publishDate": {
"type": [
"string",
"null"
],
"description": "ISO 8601"
},
"modifiedDate": {
"type": [
"string",
"null"
],
"description": "ISO 8601"
},
"siteName": {
"type": [
"string",
"null"
]
},
"language": {
"type": [
"string",
"null"
],
"description": "ISO 639-1 code, e.g. en"
},
"description": {
"type": [
"string",
"null"
]
},
"section": {
"type": [
"string",
"null"
]
},
"tags": {
"type": "array",
"items": {
"type": "string"
}
},
"topImage": {
"type": [
"string",
"null"
],
"description": "Image"
},
"images": {
"type": "array",
"items": {
"type": "string"
}
},
"videos": {
"type": "array",
"items": {
"type": "string"
}
},
"text": {
"type": "string",
"description": "Clean article text, paragraphs separated by blank lines"
},
"markdown": {
"type": [
"string",
"null"
]
},
"html": {
"type": [
"string",
"null"
]
},
"wordCount": {
"type": "integer"
},
"readingTimeMinutes": {
"type": "integer"
},
"looksLikeArticle": {
"type": "boolean"
},
"paywalled": {
"type": "boolean"
},
"canonicalUrl": {
"type": [
"string",
"null"
]
},
"httpStatus": {
"type": [
"integer",
"null"
]
},
"fetchedVia": {
"type": "string",
"description": "direct, proxy, proxy-retry or html-input"
},
"ms": {
"type": "integer"
},
"error": {
"type": "string"
},
"extractedAt": {
"type": "string"
}
}
},
"RunStarted": {
"type": "object",
"properties": {
"data": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"status": {
"type": "string"
},
"defaultDatasetId": {
"type": "string"
}
}
}
}
},
"ApifyError": {
"type": "object",
"properties": {
"error": {
"type": "object",
"properties": {
"type": {
"type": "string"
},
"message": {
"type": "string"
}
}
}
}
}
}
}
}