Zoca Context Scraper API

The Context Scraper API from Zoca — 12 operation(s) for context scraper.

Operations 13

POST /tasks/api/v1/scrape/context Scrape business context from URL (immediate) #
POST /tasks/api/v1/scrape/context/queue Queue business context scraping #
POST /tasks/api/v1/scrape/context/bulk Bulk scrape multiple URLs #
GET /tasks/api/v1/scrape/context/job/{jobId} Get scraping job status #
DELETE /tasks/api/v1/scrape/context/job/{jobId} Cancel a scraping job #
GET /tasks/api/v1/scrape/context/queue/stats Get queue statistics #
GET /tasks/api/v1/scrape/health Health check #
GET /tasks/api/v1/scrape/prompts Get current scraper prompts #
GET /tasks/api/v1/scrape/prompts/{promptType} Get a specific scraper prompt #
DELETE /tasks/api/v1/scrape/prompts/cache Clear prompts cache #
POST /tasks/api/v1/scrape/prompts/refresh Refresh prompts cache #
GET /tasks/api/v1/scrape/context/entity/{entityId}/history Get scrape history for an entity #
GET /tasks/api/v1/scrape/context/entity/{entityId}/latest Get latest scrape result for an entity #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/zoca-context-scraper-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

zoca-context-scraper-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Zoca Tasks Context Scraper API
  description: 'The Zoca tasks/automation service: AI content queue and planning, FrontDesk (Retell/Twilio) voice + SMS agent onboarding, local-SEO grid scans, WIN conversion triggers, and inbound integration webhooks (Chargebee, Square, Pipedrive, Twilio, Retell, CallHippo, Sybill, Instantly).'
  version: 3.20.9
  contact: {}
  x-apievangelist-note: Harvested verbatim from https://tasks.zoca.ai/swagger.json. The provider ships the default NestJS Swagger metadata (title "API Documentation", empty servers[]); title/description/servers were set by API Evangelist for identification and the unmodified original is preserved at openapi/_original/zoca-tasks-swagger.json. Every path, operation, summary, parameter and response is exactly as published.
servers:
- url: https://tasks.zoca.ai
  description: Production
security:
- access-token: []
tags:
- name: Context Scraper
paths:
  /tasks/api/v1/scrape/context:
    post:
      description: Immediately scrapes and extracts structured business information from website. Use /context/queue for background processing.
      operationId: t_value
      parameters: []
      requestBody:
        required: true
        description: Request body containing URL and scraping options
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/e'
      responses:
        '200':
          description: Context successfully scraped
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/e'
        '400':
          description: Invalid request parameters
        '500':
          description: Internal server error during scraping
      summary: Scrape business context from URL (immediate)
      tags:
      - Context Scraper
  /tasks/api/v1/scrape/context/queue:
    post:
      description: Queues a URL for background scraping with optional Slack notifications and callbacks. Each request creates a new job with a unique UUID.
      operationId: t_value
      parameters: []
      requestBody:
        required: true
        description: Request with URL, scraping options, and optional notification/callback settings
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/t'
            examples:
              singlePage:
                value:
                  url: https://example-business.com
                  maxDepth: 0
                  mergeStrategy: intelligent
                  notifySlack: true
                  entityId: entity_123
                  callbackUrl: https://webhook.site/callback
                description: Single page scraping with notifications
              crawl:
                value:
                  url: https://example-business.com
                  maxDepth: 2
                  mergeStrategy: intelligent
                  notifySlack: true
                description: Multi-page crawl (up to depth 2)
      responses:
        '202':
          description: Scrape job queued successfully with UUID
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/e'
        '400':
          description: Invalid request parameters
      summary: Queue business context scraping
      tags:
      - Context Scraper
  /tasks/api/v1/scrape/context/bulk:
    post:
      description: Queue multiple URLs for scraping in a single background job. All URLs are processed with the same options. Job ID is a UUID.
      operationId: t_value
      parameters: []
      requestBody:
        required: true
        description: Request body containing multiple URLs and options
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/e'
            examples:
              bulkScrape:
                value:
                  urls:
                  - https://business1.com
                  - https://business2.com
                  - https://business3.com
                  options:
                    maxDepth: 0
                    mergeStrategy: intelligent
                  notifySlack: true
                  callbackUrl: https://webhook.site/bulk-complete
                description: Bulk scraping with notifications
      responses:
        '202':
          description: Bulk scrape job queued with UUID
          schema:
            example:
              success: true
              jobId: 550e8400-e29b-41d4-a716-446655440000
              totalUrls: 3
              estimatedTime: 90 seconds
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/e'
        '400':
          description: Invalid request parameters
      summary: Bulk scrape multiple URLs
      tags:
      - Context Scraper
  /tasks/api/v1/scrape/context/job/{jobId}:
    get:
      description: Check the status and progress of a queued scraping job by its UUID
      operationId: t_value
      parameters:
      - name: jobId
        required: true
        in: path
        description: UUID of the job to check
        schema:
          example: 550e8400-e29b-41d4-a716-446655440000
      responses:
        '200':
          description: Job status retrieved
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/e'
        '404':
          description: Job not found
      summary: Get scraping job status
      tags:
      - Context Scraper
    delete:
      description: Cancel a queued or running scraping job by its UUID. Only jobs in waiting or active state can be cancelled.
      operationId: t_value
      parameters:
      - name: jobId
        required: true
        in: path
        description: UUID of the job to cancel
        schema:
          example: 550e8400-e29b-41d4-a716-446655440000
      responses:
        '200':
          description: Job cancelled successfully
          content:
            application/json:
              schema:
                example:
                  success: true
                  message: Job 550e8400-e29b-41d4-a716-446655440000 cancelled successfully
        '404':
          description: Job not found or already completed
      summary: Cancel a scraping job
      tags:
      - Context Scraper
  /tasks/api/v1/scrape/context/queue/stats:
    get:
      description: Get real-time statistics for the context scraper queue including job counts by status
      operationId: t_value
      parameters: []
      responses:
        '200':
          description: Queue statistics retrieved
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/e'
      summary: Get queue statistics
      tags:
      - Context Scraper
  /tasks/api/v1/scrape/health:
    get:
      description: Check if the scraping service is operational
      operationId: t_value
      parameters: []
      responses:
        '200':
          description: Service is healthy
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/e'
      summary: Health check
      tags:
      - Context Scraper
  /tasks/api/v1/scrape/prompts:
    get:
      description: Retrieve all prompts currently being used for scraping (from database or fallback)
      operationId: t_value
      parameters: []
      responses:
        '200':
          description: Prompts retrieved successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/e'
      summary: Get current scraper prompts
      tags:
      - Context Scraper
  /tasks/api/v1/scrape/prompts/{promptType}:
    get:
      description: Retrieve a specific prompt by type (e.g., BUSINESS_INFO, SERVICES, etc.)
      operationId: t_value
      parameters:
      - name: promptType
        required: true
        in: path
        description: Type of prompt to retrieve
        schema:
          enum:
          - BUSINESS_INFO
          - SERVICES
          - TEAM
          - REVIEWS
          - MEDIA
          - PRODUCTS
          - BLOGS
          - FAQS
          - OFFERS
          - PAGES
          - PUBLICATIONS
          type: string
      responses:
        '200':
          description: Prompt retrieved successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/e'
        '404':
          description: Prompt type not found
      summary: Get a specific scraper prompt
      tags:
      - Context Scraper
  /tasks/api/v1/scrape/prompts/cache:
    delete:
      description: Force refresh of prompts by clearing the cache. Next scrape will fetch from database.
      operationId: t_value
      parameters: []
      responses:
        '200':
          description: Cache cleared successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/e'
      summary: Clear prompts cache
      tags:
      - Context Scraper
  /tasks/api/v1/scrape/prompts/refresh:
    post:
      description: Clear cache and immediately fetch fresh prompts from database
      operationId: t_value
      parameters: []
      responses:
        '200':
          description: Prompts refreshed successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/e'
      summary: Refresh prompts cache
      tags:
      - Context Scraper
  /tasks/api/v1/scrape/context/entity/{entityId}/history:
    get:
      description: Retrieve all scraping jobs and their status for a specific entity
      operationId: t_value
      parameters:
      - name: limit
        required: false
        in: query
        description: Number of records to return
        schema:
          example: 10
      - name: entityId
        required: true
        in: path
        description: UUID of the entity
        schema:
          example: c65a879b-bf21-4b5c-ace5-51992c4a1e62
      responses:
        '200':
          description: Scrape history retrieved successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/e'
      summary: Get scrape history for an entity
      tags:
      - Context Scraper
  /tasks/api/v1/scrape/context/entity/{entityId}/latest:
    get:
      description: Retrieve the most recent successful scraping result for a specific entity
      operationId: t_value
      parameters:
      - name: entityId
        required: true
        in: path
        description: UUID of the entity
        schema:
          example: c65a879b-bf21-4b5c-ace5-51992c4a1e62
      responses:
        '200':
          description: Latest scrape result retrieved successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/e'
      summary: Get latest scrape result for an entity
      tags:
      - Context Scraper
components:
  schemas:
    t:
      type: object
      properties:
        callId:
          type: string
          description: Unique call identifier
          example: call_abcdef123456
        entityId:
          type: string
          description: Entity ID associated with the call
        startTime:
          type: string
          description: Call start time
        endTime:
          type: string
          description: Call end time
        status:
          type: string
          description: Call status
          example: COMPLETED
          enum:
          - ONGOING
          - COMPLETED
        metadata:
          type: object
          description: Call metadata including transcript, recording URL, etc.
        summary:
          type: object
          description: AI-generated call summary and analysis
        createdAt:
          type: string
          description: Record creation timestamp
        callback:
          description: Callback associated with this call
          allOf:
          - $ref: '#/components/schemas/e'
        clientId:
          type: string
          description: Client ID associated with the call
        clientFirstName:
          type: string
          description: Client first name
        clientLastName:
          type: string
          description: Client last name
        clientPhoneNumber:
          type: string
          description: Client phone number
      required:
      - callId
      - entityId
      - startTime
      - status
      - createdAt
      - clientId
    e:
      type: object
      properties:
        scan:
          $ref: '#/components/schemas/e'
        businessLat:
          type:
          - number
          - 'null'
        businessLng:
          type:
          - number
          - 'null'
        points:
          type: array
          items:
            $ref: '#/components/schemas/e'
        heroMetrics:
          $ref: '#/components/schemas/e'
      required:
      - scan
      - businessLat
      - businessLng
      - points
      - heroMetrics
  securitySchemes:
    access-token:
      scheme: bearer
      bearerFormat: JWT
      type: http
      name: Authorization
      description: Enter JWT token in the format Bearer <token>
      in: header