{
  "openapi": "3.0.1",
  "info": {
    "title": "DesignCrowd Scraper [Only $4/1K💰] | Contests | Designers",
    "description": "Scrape DesignCrowd design contests and designer profiles — prize budgets, deadlines, briefs, ratings, rankings and earnings. No browser, flat $0.004 per record.",
    "version": "0.1",
    "x-build-id": "cN2EtOxsrOhazc4B1"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/ahmed_jasarevic~designcrowd-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-ahmed_jasarevic-designcrowd-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/ahmed_jasarevic~designcrowd-scraper/runs": {
      "post": {
        "operationId": "runs-sync-ahmed_jasarevic-designcrowd-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/ahmed_jasarevic~designcrowd-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-ahmed_jasarevic-designcrowd-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "properties": {
          "mode": {
            "title": "What to scrape",
            "enum": [
              "contests",
              "designers",
              "both"
            ],
            "type": "string",
            "description": "Which DesignCrowd data to collect. `contests` = design contests/jobs (title, category, prize budget, entries, deadline, brief). `designers` = designer profiles (name, location, rating, reviews, portfolio, earnings). `both` = contests and designers.",
            "default": "contests"
          },
          "startUrls": {
            "title": "Start URLs (optional — overrides the defaults below)",
            "type": "array",
            "description": "Explicit listing, detail, profile or sitemap URLs. Leave empty to use the built-in category/type lists. Accepts contest list pages (/jobs/open/corporateidentity/logo/), contest details (/jobs/job/4118535), designer listings (/designers/logo), designer profiles (/designer/1434790/teepousultan) and sitemaps (https://www.designcrowd.com/sitemap-contest-ids-1.xml).",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "contestStatus": {
            "title": "Contest status",
            "enum": [
              "open",
              "closed",
              "both"
            ],
            "type": "string",
            "description": "Which contests to collect. `open` = currently running, `closed` = historical, `both` = everything.",
            "default": "open"
          },
          "contestCategories": {
            "title": "Contest categories",
            "type": "array",
            "description": "Category/subtype pairs from the DesignCrowd jobs board, e.g. `corporateidentity/logo`, `webdesign/web`, `printdesign/poster`, `merchandisedesign/tshirt`, `graphicdesign/graphic`, `artandillustration/illustration`. Leave empty for the built-in default list.",
            "items": {
              "type": "string"
            }
          },
          "designerTypes": {
            "title": "Designer types",
            "type": "array",
            "description": "DesignCrowd designer-listing slugs, e.g. `logo`, `tshirt`, `web`, `flyer`, `brochure`, `poster`, `stationery`, `packaging`, `graphic`, `illustration`. Leave empty for the built-in default list.",
            "items": {
              "type": "string"
            }
          },
          "includeContestDetail": {
            "title": "Fetch full contest brief (recommended)",
            "type": "boolean",
            "description": "Fetch each contest's detail page (/jobs/job/<id>) to get the COMPLETE brief text, the exact project deadline, prize payment breakdown, logo text and the customer's style attributes. When disabled, only the listing card is scraped (truncated brief snippet, faster but less complete).",
            "default": true
          },
          "includeDesignerProfile": {
            "title": "Fetch full designer profile (recommended)",
            "type": "boolean",
            "description": "Fetch each designer's profile page to get their city, positive-feedback score, total submissions and full portfolio. When disabled, only the listing card is scraped (name, rating, rank, country, earnings).",
            "default": true
          },
          "includeEntries": {
            "title": "Include individual contest entries",
            "type": "boolean",
            "description": "Include the per-entry detail (designer name/URL, design URL) for each contest. Turn off for a much smaller dataset.",
            "default": true
          },
          "maxItems": {
            "title": "Maximum records",
            "type": "integer",
            "description": "Hard cap on the number of records pushed to the dataset. Free users are automatically capped at 10.",
            "default": 200
          },
          "maxConcurrency": {
            "title": "Parallel requests",
            "type": "integer",
            "description": "How many HTTP requests may be in flight at the same time. This is the main speed knob — the default (50, or 60 with a proxy) overlaps the detail-page fetches instead of doing them one at a time. Roughly 5 MB of memory per concurrent request. Keep it high: throughput is this value divided by the response time, so fewer parallel requests means a proportionally slower crawl. Measured at 100: 200 records in 7 s, 0 failures.",
            "default": 50
          },
          "requestsPerMinute": {
            "title": "Requests per minute (rate limit)",
            "type": "integer",
            "description": "Sustained request-rate ceiling applied across all parallel requests, so raising the parallelism does not turn into an unbounded flood. 0 disables throttling. DesignCrowd serves bursts from a single IP without blocking (1,800 req/min measured, 0 failures), so this is a safety rail rather than a real restriction; the actual limit is the container's CPU, so raise maxMemoryMbytes before raising this. The actor still cuts the rate to 25 % for 30 s if the site ever answers with a soft rate-limit page.",
            "default": 1200
          },
          "maxRequestsPerCrawl": {
            "title": "Max requests per crawl",
            "type": "integer",
            "description": "Maximum number of HTTP requests the crawler may make. Keeps runs bounded and compute cost predictable. Leave at 0 to auto-size it to maxItems (one request per record is needed when the detail/profile toggles are on).",
            "default": 0
          },
          "proxy": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Select proxies to be used by your crawler."
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "usageTotalUsd": {
                "type": "number",
                "example": 0.00005
              },
              "usageUsd": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "number",
                    "example": 0.00005
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}