scrape_template
20 pengekstrak pratbina: tapak popular, enam papan kerja ATS yang dibaca melalui API awam berdokumentasi platform itu sendiri, dan API kerajaan tanpa kunci. Tiada skema, tiada pemilih, tiada LLM — hantar nama templat bersama satu URL atau params. 1 credit setiap panggilan, seberapa banyak pun rekod yang dipulangkan.
Kes Penggunaan
Data E-Dagang Pantas
Tarik harga, penarafan dan stok produk Amazon tanpa menulis satu pemilih pun.
Pengagregatan Profil Pembangun
Gabungkan repo GitHub, pakej npm dan aktiviti Stack Overflow ke dalam satu paparan pembangun.
Pemantauan Media Sosial
Jejaki pelancaran Product Hunt dan Hacker News dengan satu endpoint setiap sumber; untuk Reddit, baca post dengan reddit-thread dan pokok komennya dengan reddit_search.
Papan Kerja Penuh dalam Satu Panggilan
Baca setiap jawatan yang diterbitkan daripada papan Greenhouse, Lever, Ashby, Workable, Recruitee atau Teamtailor sesebuah syarikat — nilai tepat daripada API platform itu sendiri, bukan dihurai daripada halaman kerjaya.
Endpoint
/api/v1/tools/scrape_templateParameters
list tidak memerlukan kedua-duanya dan auto sentiasa memerlukan url. Templat halaman memerlukan url; penyambung API platform mengambil params, atau URL papan kerja yang ia sendiri selesaikan kepada endpoint API.| Name | Type | Required | Default | Description |
|---|---|---|---|---|
template | string | Required | - | Nama templat — salah satu daripada 20 templat yang disokong. Hantar `"auto"` untuk membiarkan templat dipilih daripada `url`; respons melaporkan pengecam yang dipilihnya, bukan literal `"auto"`. Hantar `"list"` untuk menemuinya secara berprogram. Example: github-repo |
url | string | Optional | - | URL untuk scrape. Diperlukan kecuali `template` ialah `"list"`, atau anda memanggil penyambung melalui `params`. Example: https://github.com/mysleekdesigns/crawlforge-mcp |
params | object | Optional | - | Input untuk penyambung yang membaca API platform dan bukan satu halaman — pengecam papan bagi papan kerja (`company`), `store` dan `collection` untuk `shopify-collection`, `vin` untuk `nhtsa-vin`, medan carian daftar itu sendiri untuk `npi-provider`. Tambahan khusus penyambung juga diletakkan di sini: `content: true` Greenhouse, `details: true` Workable, `skip`/`limit` Lever, `per_page`/`offset` Teamtailor. Input wajib yang tiada akan ditolak dengan parameter itu dinamakan. Example: { "company": "stripe" } |
timeout | number | Optional | 15000 | Had masa permintaan dalam milisaat (5000–60000). Example: 15000 |
respect_robots | boolean | Optional | true | Hormati robots.txt tapak sasaran. Dibiarkan pada `true`, laluan yang dilarang untuk `CrawlForge` ditolak dengan 403 sebelum apa-apa diambil dan tiada credits dicaj. Tetapkan kepada `false` hanya untuk sasaran yang anda mempunyai perjanjian sendiri dengannya — respons kemudiannya membawa entri `warnings` dan tindakan mengatasi itu direkodkan pada API key anda. Example: true |
Templat: halaman dan produk
20 templat dalam tiga kumpulan. Setiap satu memulangkan bentuk JSON ternormal yang ditala untuk sumbernya.
amazon-productshopify-productsource: json-ld dengan amaran; stok setiap varian, harga bandingan dan nama pilihan tiada dalam JSON-LD, jadi medan itu nullshopify-collectionproducts.json kedai itu sendiri, dengan harga dan stok berwibawa yang sama seperti yang shopify-product pulangkan bagi satu item. 30 setiap halaman secara lalai, 250 paling banyakgithub-repoyoutube-videoreddit-threadhacker-news-front-pageproducthunt-launchstackoverflow-questionnpm-packageTemplat: papan kerja
Enam sistem penjejakan pemohon, setiap satu dibaca melalui endpoint yang platform itu dokumenkan untuk kegunaan awam tanpa pengesahan. Kesemua enam dinormalkan kepada satu bentuk pekerjaan, jadi dua papan kerja bergabung tanpa pemetaan bagi setiap sumber — panduan API papan kerja merangkumi bentuk dan alasannya.
greenhouse-jobscontent: truelever-postingsskip/limitashby-jobsdescriptions: trueworkable-jobsdetails: truerecruitee-offersteamtailor-jobstt:-nya dikekalkan. 100 jawatan melainkan per_page menyatakan sebaliknyaTemplat: API kerajaan
API persekutuan AS yang percuma dan tanpa kunci, didokumenkan oleh agensi yang menerbitkannya.
nhtsa-vinraw. VIN separa diterima; kod ralat vPIC sendiri dipaparkan dan bukan ditelannpi-providerPenyambung senarai memulangkan banyak rekod daripada satu panggilan
Penyambung yang membaca endpoint penyenaraian memulangkan items dan count di bawah data, bukan satu rekod. shopify-collection dan kesemua enam penyambung papan kerja berfungsi begini.
- Setiap rekod pekerjaan membawa dua belas medan yang sama —
id,title,url,location,department,team,employment_type,remote,published_at,updated_at,description,source— dan medan yang platform tidak terbitkan ialahnull, bukan tekaan. - Hantar pengecam papan kerja dalam
params, atau hantar URL papan kerja dan penyambung akan menyelesaikan endpoint API itu sendiri. - Greenhouse, Workable dan Ashby menjadikan penerangan sebagai pilihan kerana ia menguasai muatan: papan Greenhouse yang besar meningkat daripada 349 KB kepada 4.2 MB dengan
content: true, dan papan Ashby OpenAI dengan 767 jawatan mencecah 5.9 MB dengandescriptions: true. - Kosnya tetap 1 credit setiap panggilan, seberapa banyak pun rekod yang dipulangkan.
{ "template": "list" } (tanpa perlu url) untuk mendapatkan senarai penuh berserta mode setiap entri — list untuk penyambung yang memulangkan banyak rekod daripada satu panggilan, entity untuk yang memulangkan satu rekod sahaja. Berguna untuk memastikan SDK klien kekal selaras.Sengaja tidak dihantar
smartrecruiters-postings tiada: SmartRecruiters mendokumenkan Posting API-nya secara awam, tetapi api.smartrecruiters.com/robots.txt melarang segala-galanya bagi setiap ejen kecuali LinkedInBot (disahkan 2026-08-28), dan kami tidak membatalkan robots.txt untuk mencapainya. Endpoint wday/cxs Workday ialah endpoint dalaman tapak kerjaya itu sendiri dan bukan API awam berdokumentasi, jadi tiada penyambung membacanya juga. Panduan API papan kerja menetapkan apa lagi yang di luar skop, dan sebabnya.Contoh Permintaan
cURL — github-repo
curl -X POST https://crawlforge.dev/api/v1/tools/scrape_template \
-H "X-API-Key: cf_test_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{
"template": "github-repo",
"url": "https://github.com/mysleekdesigns/crawlforge-mcp"
}'TypeScript — amazon-product
const response = await fetch('https://crawlforge.dev/api/v1/tools/scrape_template', {
method: 'POST',
headers: {
'X-API-Key': process.env.CRAWLFORGE_API_KEY!,
'Content-Type': 'application/json',
},
body: JSON.stringify({
template: 'amazon-product',
url: 'https://www.amazon.com/dp/B08XYZ1234',
timeout: 20000,
}),
});
const data = await response.json();
if (data.success) {
const product = data.data.extracted;
console.log(product.title, product.price, product.rating);
}cURL — discover templates
curl -X POST https://crawlforge.dev/api/v1/tools/scrape_template \
-H "X-API-Key: cf_test_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{ "template": "list" }'cURL — greenhouse-jobs melalui params
curl -X POST https://crawlforge.dev/api/v1/tools/scrape_template \
-H "X-API-Key: cf_test_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{
"template": "greenhouse-jobs",
"params": { "company": "stripe" }
}'Contoh Respons
{ "success": true, "data": { "template": "greenhouse-jobs", "params": { "company": "stripe" }, "data": { "items": [ { "id": "4012345", "title": "Staff Software Engineer", "url": "https://job-boards.greenhouse.io/stripe/jobs/4012345", "location": "Seattle, Washington, United States", "department": null, "team": null, "employment_type": null, "remote": null, "published_at": "2026-08-04T17:12:03.000Z", "updated_at": "2026-08-21T09:44:51.000Z", "description": null, "source": "greenhouse-jobs", "raw_extra": { "internal_job_id": "4098765", "requisition_id": "REQ-1234", "offices": null } } ], "count": 571, "company": "Stripe" }, "template_name": "Greenhouse Job Board", "extracted_at": "2026-08-28T12:00:00.000Z", "fetched_url": "https://boards-api.greenhouse.io/v1/boards/stripe/jobs" }, "credits_used": 1, "credits_remaining": 999, "processing_time": 812}data.data.itemsSatu rekod bagi setiap jawatan yang diterbitkan, dalam bentuk dua belas medan yang dikongsi oleh setiap penyambung papan kerjadata.data.items[0].departmentGreenhouse hanya menghantar jabatan dengan `content: true`, jadi rekod ringkasan melaporkan null dan bukan jabatan yang diteka daripada tajukdata.data.countRekod dalam respons ini; sumber yang mengisytiharkan jumlah lebih besar turut melaporkan `total_available`data.template_nameNama templat yang dijalankan, dalam bentuk yang boleh dibacadata.fetched_urlEndpoint yang benar-benar dibaca — hadir apabila ia berbeza daripada apa yang anda hantar, termasuk setiap panggilan yang hanya menggunakan `params`credits_used1 credit rata setiap panggilan, tanpa mengira templat atau bilangan rekodPengendalian Ralat
Penyambung tidak dapat membina permintaan (400 Bad Request)
Masalah parameter, ditolak sebelum apa-apa diambil dan tidak pernah dicaj. INVALID_TEMPLATE_PARAMS membawa mesej penyambung itu sendiri yang menamakan parameter yang dikehendakinya — token papan dalam job-boards.greenhouse.io/<token>, subdomain dalam <company>.recruitee.com. MISSING_URL bermakna anda menghantar params kepada templat yang membaca halaman dan tiada bentuk params. NO_TEMPLATE_MATCH bermakna template: "auto" tidak mengenali apa-apa dalam URL itu — namakan templat itu sendiri, atau semak dengannya melalui template: "list".
Disekat oleh robots.txt (403 Forbidden)
robots.txt tapak sasaran melarang laluan ini untuk CrawlForge. Tetapkan respect_robots: false untuk mengatasinya jika anda mempunyai perjanjian sendiri dengan sasaran — tindakan mengatasi itu direkodkan pada API key anda. Tindakan mengatasi itu tidak sampai kepada hos yang berada dalam senarai penarikan diri kekal CrawlForge, yang ditolak tanpa mengira nilai respect_robots. Semakan itu dijalankan terhadap URL yang benar-benar diambil oleh templat, yang bagi shopify-product dan npm-package ialah endpoint boleh baca mesin pada hos yang sama, bukan URL yang anda hantar.
Kos Credit
Petua: Perlukan tapak yang tidak disokong? Gunakan scrape_structured untuk pemilih tersuai (2 credits) atau extract_with_llm untuk pengekstrakan dikuasakan LLM.