The Scrape Session Manager API controls web scraping sessions, allowing users to start, pause, resume, and stop scraping operations.
Edge Function: scrape-session-manager
Base URL: https://bgbavxtjlbvgplozizxu.supabase.co/functions/v1/scrape-session-manager
All requests require authentication via Supabase Auth:
Authorization: Bearer <supabase_access_token>
Method: POST
Path: /
Request:
{
sessionId: string, // Required - Scraping session ID
action: 'start' | 'pause' | 'resume' | 'stop' // Required - Action to perform
}
Start a new scraping session or resume a paused one.
Action: start
Request:
{
sessionId: 'session-123',
action: 'start'
}
Response:
{
success: true,
message: 'Scraping session started',
sessionId: 'session-123',
status: 'processing',
metadata: {
startedAt: string,
totalPages: number,
processedPages: number
}
}
Example:
const { data, error } = await supabase.functions.invoke('scrape-session-manager', {
body: {
sessionId: 'session-123',
action: 'start'
}
});
Pause an active scraping session.
Action: pause
Request:
{
sessionId: 'session-123',
action: 'pause'
}
Response:
{
success: true,
message: 'Scraping session paused',
sessionId: 'session-123',
status: 'paused',
metadata: {
pausedAt: string,
processedPages: number,
remainingPages: number
}
}
Resume a paused scraping session.
Action: resume
Request:
{
sessionId: 'session-123',
action: 'resume'
}
Response:
{
success: true,
message: 'Scraping session resumed',
sessionId: 'session-123',
status: 'processing',
metadata: {
resumedAt: string,
processedPages: number,
remainingPages: number
}
}
Stop and terminate a scraping session.
Action: stop
Request:
{
sessionId: 'session-123',
action: 'stop'
}
Response:
{
success: true,
message: 'Scraping session stopped',
sessionId: 'session-123',
status: 'stopped',
metadata: {
stoppedAt: string,
totalPages: number,
processedPages: number,
successfulPages: number,
failedPages: number
}
}
idle → processing → completed
↓ ↑
paused (resume)
↓
stopped
| Status | Description |
|---|---|
idle |
Session created but not started |
processing |
Actively scraping pages |
paused |
Temporarily paused by user |
stopped |
Manually stopped by user |
completed |
All pages scraped successfully |
failed |
Session failed with errors |
{
success: false,
error: string,
code?: string
}
Common Errors:
400 - Missing required parameters (sessionId, action)401 - Unauthorized (missing or invalid token)404 - Session not found409 - Invalid state transition (e.g., pausing a completed session)500 - Internal server error// Create session first (via scraping UI)
const session = await createScrapingSession({
url: 'https://example.com/products',
workspace_id: 'workspace-123'
});
// Start scraping
await supabase.functions.invoke('scrape-session-manager', {
body: {
sessionId: session.id,
action: 'start'
}
});
// Pause for rate limiting or user request
await supabase.functions.invoke('scrape-session-manager', {
body: {
sessionId: 'session-123',
action: 'pause'
}
});
// Resume later
await supabase.functions.invoke('scrape-session-manager', {
body: {
sessionId: 'session-123',
action: 'resume'
}
});