{
  "openapi": "3.0.1",
  "info": {
    "title": "Ausbildung.de Scraper",
    "description": "Scrape Ausbildung.de apprenticeship places (Ausbildungsplätze), dual study and school internships by job title and city: employer, location, start date, places, training pay per year, school qualification and full description. Export to JSON, CSV or Excel, or via API.",
    "version": "1.0",
    "x-build-id": "T349aHU6a8bPz3x2s"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/steadyscrape~ausbildung-de-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-steadyscrape-ausbildung-de-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/steadyscrape~ausbildung-de-scraper/runs": {
      "post": {
        "operationId": "runs-sync-steadyscrape-ausbildung-de-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/steadyscrape~ausbildung-de-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-steadyscrape-ausbildung-de-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": {
          "listingKind": {
            "title": "What to list",
            "enum": [
              "apprenticeship",
              "internship"
            ],
            "type": "string",
            "description": "Apprenticeship places (Ausbildungsplätze), which include dual study (duales Studium) and the other training types below, or school internships (Schülerpraktikum), ausbildung.de's separate list for pupils.",
            "default": "apprenticeship"
          },
          "keywords": {
            "title": "Keywords",
            "type": "array",
            "description": "Occupations, study programmes or employers as people type them into ausbildung.de, e.g. <code>Mechatroniker</code>, <code>Kaufmann im Einzelhandel</code>, <code>Pflegefachmann</code>, <code>Informatik</code>, <code>Deutsche Bahn</code>. Each is searched in each place below. Leave empty to list every place in your cities. Give at least one keyword, a city or a search link.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "locations": {
            "title": "Cities or postcodes",
            "type": "array",
            "description": "German cities or postcodes, e.g. <code>Berlin</code>, <code>München</code>, <code>50667</code>. Leave empty for all of Germany (read newest first: without a place the site ranks from a spot it guesses from the visitor's IP). A place ausbildung.de does not know gives a free row instead of listings from elsewhere. States such as <code>Bayern</code> are searched as one point by the site, so give cities.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "radiusKm": {
            "title": "Radius around each place",
            "enum": [
              "5",
              "10",
              "25",
              "50",
              "200",
              "500",
              "1000"
            ],
            "type": "string",
            "description": "How far from each city or postcode, as ausbildung.de's radius filter offers it.",
            "default": "25"
          },
          "trainingTypes": {
            "title": "Training types",
            "type": "array",
            "description": "ausbildung.de's own Art filter. Empty for every type. Not used for school internships.",
            "items": {
              "type": "string",
              "enum": [
                "klassische-duale-berufsausbildung",
                "duales-studium",
                "weiterbildung",
                "abiturientenprogramm",
                "betriebsinterne-ausbildung",
                "schulische-ausbildung",
                "schulische-und-duale-ausbildung"
              ],
              "enumTitles": [
                "Ausbildung (dual apprenticeship)",
                "Duales Studium (dual study)",
                "Weiterbildung (further training)",
                "Abiturientenprogramm",
                "Betriebsinterne Ausbildung (in-company)",
                "Schulische Ausbildung (school-based)",
                "Schulische und duale Ausbildung"
              ]
            },
            "default": []
          },
          "schoolQualifications": {
            "title": "School-leaving qualification",
            "type": "array",
            "description": "Only places asking for one of these, as ausbildung.de's Schulabschluss filter offers them. Empty for any. Not used for school internships.",
            "items": {
              "type": "string",
              "enum": [
                "abitur",
                "fachabitur",
                "mittlerer-schulabschluss",
                "qualifizierter-hauptschulabschluss",
                "hauptschulabschluss",
                "ohne-schulabschluss"
              ],
              "enumTitles": [
                "Abitur",
                "Fachabitur",
                "Mittlere Reife",
                "Qualifizierter Hauptschulabschluss",
                "Hauptschulabschluss",
                "Kein Schulabschluss"
              ]
            },
            "default": []
          },
          "sortBy": {
            "title": "Sort by",
            "enum": [
              "relevance",
              "newest",
              "start_date",
              "distance"
            ],
            "type": "string",
            "description": "The site's own sort. Without a place every search is read newest first; school internships offer only distance and newest (other choices read as distance).",
            "default": "relevance"
          },
          "searchUrls": {
            "title": "ausbildung.de search links",
            "type": "array",
            "description": "Result lists copied from ausbildung.de with their filters, e.g. <code>https://www.ausbildung.de/suche/?search=Mechatroniker%7CBerlin&radius=50</code> or <code>https://www.ausbildung.de/schuelerpraktikum/stellen/?search=Verkauf%7CHamburg</code>. The page offset is dropped; job pages are not taken.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "includeDetails": {
            "title": "Include job details",
            "type": "boolean",
            "description": "Open each listing's page for the full description, address, industry, posting date, application deadline, earliest start, duration, the training pay per year when the employer gives it, and the employer's website and profile. Charged as job-with-details instead of job.",
            "default": true
          },
          "maxJobsPerSearch": {
            "title": "Max listings per search",
            "minimum": 0,
            "type": "integer",
            "description": "Stop each search (each keyword in each place, and each link) after this many listings. 0 means every listing the search shows (at most 10,000).",
            "default": 100
          },
          "onlyNewJobs": {
            "title": "Only new listings since the last run",
            "type": "boolean",
            "description": "Deliver, and charge, only listings that an earlier run with the same searches has not delivered. Made for scheduled runs.",
            "default": false
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}