BuySignal Worker API

The Worker API from BuySignal — 9 operation(s) for worker.

Operations 9

GET /worker/get_task Get Task #
POST /worker/update_task Update Task #
GET /worker/get_hunt_task Get Hunt Task #
POST /worker/report_found Report Found #
GET /worker/list_images/{retailer} List Images #
POST /worker/upload_image Upload Deal Image #
POST /worker/nightly_report Nightly Report #
POST /worker/upload_deals Upload Deals #
GET /worker/deals_status Deals Status #

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/buysignal-deals:buysignal-deals-worker-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

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

OpenAPI Specification

buysignal-deals-worker-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Buysignal Deals Worker API
  version: 0.1.0
  description: 'Operations tagged Worker across 2 of this provider''s published API definitions: openapi.json, buysignal-deals-openapi.json. Each path carries the servers of the definition it was published in.'
tags:
- name: Worker
paths:
  /worker/get_task:
    get:
      summary: Get Task
      operationId: get_task_worker_get_task_get
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
      tags:
      - Worker
  /worker/update_task:
    post:
      summary: Update Task
      operationId: update_task_worker_update_task_post
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
      tags:
      - Worker
  /worker/get_hunt_task:
    get:
      summary: Get Hunt Task
      operationId: get_hunt_task_worker_get_hunt_task_get
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
      tags:
      - Worker
  /worker/report_found:
    post:
      summary: Report Found
      operationId: report_found_worker_report_found_post
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
      tags:
      - Worker
  /worker/list_images/{retailer}:
    get:
      summary: List Images
      description: 'Egyetlen kérésben visszaadja egy retailer mappájában lévő ÖSSZES

        képfájl nevét — így a workerek/Kaggle-scriptek nem kell hogy

        tízezerszer egyenként (HEAD-kéréssel) kérdezzék meg, melyik kép van

        már fent; egy körben letöltik a teljes listát és memóriában (Python

        set) hasonlítják össze a hash-eket. Nagyságrendekkel gyorsabb nagy

        (pl. ASOS 80.000+ képes) áruházaknál.'
      operationId: list_images_worker_list_images__retailer__get
      security:
      - HTTPBasic: []
      parameters:
      - name: retailer
        in: path
        required: true
        schema:
          type: string
          title: Retailer
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      tags:
      - Worker
  /worker/upload_image:
    post:
      summary: Upload Deal Image
      description: 'Caches scraped product images locally so the browser never hotlinks the

        retailer''s own CDN (avoids Cloudflare IP-reputation / hotlink blocking).'
      operationId: upload_deal_image_worker_upload_image_post
      requestBody:
        content:
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Body_upload_deal_image_worker_upload_image_post'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
      - HTTPBasic: []
      tags:
      - Worker
  /worker/nightly_report:
    post:
      summary: Nightly Report
      description: '2026-10-04: a worker ejszakai osszefoglalojat e-mailben tovabbitja (send_alert_email, mint az anomaly_check).

        Bemenet: kind (ca/uk), run_id, subject, body, bad_n. bad_n > 0 -> a targy elejere "⚠️" (nem duplazva).'
      operationId: nightly_report_worker_nightly_report_post
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
      security:
      - HTTPBasic: []
      tags:
      - Worker
  /worker/upload_deals:
    post:
      summary: Upload Deals
      description: 'FINAL fix (2026-09-26, revised): bounded-wait hybrid. Waits up to

        UPLOAD_SAFE_WAIT_SECONDS for the real pipeline result -- most uploads

        (especially footwear-only retailers, which skip the 3 LLM/network

        categorizer passes) finish well inside that window, so the caller gets

        the REAL result and the site is already updated by the time it sees "ok"

        -- exactly like before any upload_deals patch this week, no confusing

        delay before deals show up. Only a genuinely slow upload (one whose own

        processing exceeds the safe window) falls back to answering "queued"

        while the SAME background thread keeps running to completion -- a raw OS

        thread doesn''t stop just because nothing is awaiting it anymore. This is

        the one case that used to 524, and still never does.'
      operationId: upload_deals_worker_upload_deals_post
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
      security:
      - HTTPBasic: []
      tags:
      - Worker
  /worker/deals_status:
    get:
      summary: Deals Status
      operationId: deals_status_worker_deals_status_get
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
      security:
      - HTTPBasic: []
      tags:
      - Worker
components:
  schemas:
    Body_upload_deal_image_worker_upload_image_post:
      properties:
        retailer:
          type: string
          title: Retailer
        file:
          type: string
          format: binary
          title: File
      type: object
      required:
      - retailer
      - file
      title: Body_upload_deal_image_worker_upload_image_post
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
            - type: string
            - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
      type: object
      required:
      - loc
      - msg
      - type
      title: ValidationError
  securitySchemes:
    HTTPBasic:
      type: http
      scheme: basic
x-refined-from:
- openapi.json
- buysignal-deals-openapi.json