{
  "openapi": "3.0.1",
  "info": {
    "title": "Transfermarkt Football Agency Directory Scraper",
    "description": "Football agency directory from Transfermarkt: name, address, staff, licensing, and client roster. Email/phone/website included where the agency has published them publicly.",
    "version": "0.1",
    "x-build-id": "hnRTcZLgff7MXsfu5"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/jungle_synthesizer~transfermarkt-football-agency-directory-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-jungle_synthesizer-transfermarkt-football-agency-directory-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/jungle_synthesizer~transfermarkt-football-agency-directory-scraper/runs": {
      "post": {
        "operationId": "runs-sync-jungle_synthesizer-transfermarkt-football-agency-directory-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/jungle_synthesizer~transfermarkt-football-agency-directory-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-jungle_synthesizer-transfermarkt-football-agency-directory-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",
        "required": [
          "maxItems"
        ],
        "properties": {
          "sp_intended_usage": {
            "title": "What is the intended usage of this data?",
            "minLength": 1,
            "type": "string",
            "description": "What will this data feed? E.g. lead lists, KYB checks, price tracking."
          },
          "sp_improvement_suggestions": {
            "title": "How can we improve this crawler for you?",
            "minLength": 1,
            "type": "string",
            "description": "Provide any feedback or suggestions for improvements."
          },
          "sp_contact": {
            "title": "Contact email (optional)",
            "minLength": 1,
            "type": "string",
            "description": "We'll personally help with your use case. No spam."
          },
          "mode": {
            "title": "What to scrape",
            "enum": [
              "agencies",
              "people"
            ],
            "type": "string",
            "description": "\"Agencies\" walks the full agency directory (contact details, licensing, staff and the client roster). \"People\" walks the player-agents directory instead and returns one row per person (Transfermarkt person ID, name, nationality, role, FIFA licence and the agency they belong to), including agents attached to no agency. In People mode you can filter the list and turn on \"Include their agencies\" to get each person's agency record in the same run, joined on agency_id.",
            "default": "agencies"
          },
          "maxItems": {
            "title": "Max Items",
            "type": "integer",
            "description": "Maximum number of records to return. Every row counts, so with \"Include their agencies\" on this caps people and agencies together: the run keeps as many matching people as fit alongside their agencies, and never returns a person without their agency."
          },
          "fifaLicensedOnly": {
            "title": "FIFA licensed only",
            "type": "boolean",
            "description": "People mode only. Return only people who hold a FIFA licence.",
            "default": false
          },
          "nationalities": {
            "title": "Nationalities",
            "type": "array",
            "description": "People mode only. Return only people holding one of these nationalities. People with no nationality on file never match.",
            "items": {
              "type": "string",
              "enum": [
                "Afghanistan",
                "Albania",
                "Algeria",
                "Andorra",
                "Angola",
                "Antigua and Barbuda",
                "Argentina",
                "Armenia",
                "Aruba",
                "Australia",
                "Austria",
                "Azerbaijan",
                "Bahamas",
                "Bahrain",
                "Bangladesh",
                "Barbados",
                "Belarus",
                "Belgium",
                "Benin",
                "Bermuda",
                "Bolivia",
                "Bosnia-Herzegovina",
                "Botswana",
                "Brazil",
                "British Virgin Islands",
                "Bulgaria",
                "Burkina Faso",
                "Burundi",
                "Cameroon",
                "Canada",
                "Cape Verde",
                "Central African Republic",
                "Chad",
                "Chile",
                "China",
                "Chinese Taipei",
                "Colombia",
                "Comoros",
                "Congo",
                "Costa Rica",
                "Cote d'Ivoire",
                "Croatia",
                "Cuba",
                "Curacao",
                "Cyprus",
                "Czech Republic",
                "DR Congo",
                "Denmark",
                "Djibouti",
                "Dominican Republic",
                "Ecuador",
                "Egypt",
                "El Salvador",
                "England",
                "Equatorial Guinea",
                "Eritrea",
                "Estonia",
                "Ethiopia",
                "Faroe Islands",
                "Finland",
                "France",
                "French Guiana",
                "Gabon",
                "Georgia",
                "Germany",
                "Ghana",
                "Gibraltar",
                "Greece",
                "Guadeloupe",
                "Guatemala",
                "Guinea",
                "Guinea-Bissau",
                "Guyana",
                "Haiti",
                "Honduras",
                "Hongkong",
                "Hungary",
                "Iceland",
                "India",
                "Indonesia",
                "Iran",
                "Iraq",
                "Ireland",
                "Isle of Man",
                "Israel",
                "Italy",
                "Jamaica",
                "Japan",
                "Jordan",
                "Kazakhstan",
                "Kenya",
                "Korea, South",
                "Kosovo",
                "Kuwait",
                "Kyrgyzstan",
                "Latvia",
                "Lebanon",
                "Lesotho",
                "Liberia",
                "Libya",
                "Liechtenstein",
                "Lithuania",
                "Luxembourg",
                "Macedonia",
                "Madagascar",
                "Malawi",
                "Malaysia",
                "Mali",
                "Malta",
                "Martinique",
                "Mauritania",
                "Mauritius",
                "Mexico",
                "Moldova",
                "Monaco",
                "Montenegro",
                "Morocco",
                "Mozambique",
                "Myanmar",
                "Namibia",
                "Nepal",
                "Netherlands",
                "Netherlands Antilles",
                "New Zealand",
                "Nicaragua",
                "Niger",
                "Nigeria",
                "North Macedonia",
                "Northern Ireland",
                "Norway",
                "Oman",
                "Pakistan",
                "Palestine",
                "Panama",
                "Paraguay",
                "People's republic of the Congo",
                "Peru",
                "Philippines",
                "Poland",
                "Portugal",
                "Puerto Rico",
                "Qatar",
                "Romania",
                "Russia",
                "Rwanda",
                "Réunion",
                "San Marino",
                "Saudi Arabia",
                "Scotland",
                "Senegal",
                "Serbia",
                "Sierra Leone",
                "Singapore",
                "Slovakia",
                "Slovenia",
                "Somalia",
                "South Africa",
                "Southern Sudan",
                "Spain",
                "Sri Lanka",
                "St. Kitts & Nevis",
                "St. Lucia",
                "St. Vincent & Grenadinen",
                "Sudan",
                "Suriname",
                "Sweden",
                "Switzerland",
                "Syria",
                "Tajikistan",
                "Tanzania",
                "Thailand",
                "The Gambia",
                "Timor-Leste",
                "Togo",
                "Trinidad and Tobago",
                "Tunisia",
                "Turkmenistan",
                "Türkiye",
                "Uganda",
                "Ukraine",
                "United Arab Emirates",
                "United Kingdom",
                "United States",
                "Uruguay",
                "Uzbekistan",
                "Venezuela",
                "Vietnam",
                "Wales",
                "Yemen",
                "Yugoslavia (Republic)",
                "Zaire",
                "Zambia",
                "Zimbabwe"
              ]
            }
          },
          "roles": {
            "title": "Roles",
            "type": "array",
            "description": "People mode only. Return only people with one of these roles. People with no stated role never match.",
            "items": {
              "type": "string",
              "enum": [
                "Owner",
                "Agent",
                "Scout",
                "Executive Director",
                "Attorney",
                "Head of Scouting",
                "Partner",
                "Player Service",
                "Manager",
                "Marketing",
                "Business Development",
                "Director of Football",
                "Senior Manager",
                "Assistant",
                "Analyst",
                "Fitness Coach",
                "Accounting",
                "Mental Coach",
                "Sports Psychologist"
              ]
            }
          },
          "includeAgencies": {
            "title": "Include their agencies",
            "type": "boolean",
            "description": "People mode only. Also return the agency record (address, phone, email, website, licensing, staff) of every agency the returned people work at, in the same dataset. Tell the two row kinds apart with record_type (\"agent\" or \"agency\") and join them on agency_id.",
            "default": false
          },
          "agencyIds": {
            "title": "Agency IDs (direct lookup)",
            "type": "array",
            "description": "Agencies mode only. Specific Transfermarkt agency IDs to fetch directly (the numeric tail of a .../beraterfirma/berater/<id> URL). Leave empty to enumerate the full agency directory instead.",
            "items": {
              "type": "string"
            }
          },
          "startId": {
            "title": "Start ID",
            "type": "integer",
            "description": "Agencies mode only. Agency ID to begin full-directory enumeration from. Only used when Agency IDs is empty.",
            "default": 1
          },
          "maxAgencyId": {
            "title": "Max Agency ID",
            "type": "integer",
            "description": "Agencies mode only. Safety-cap ceiling for full-directory enumeration. The crawl stops on its own after a long run of consecutive misses, well before this cap; raise it only if Transfermarkt agency IDs have grown past the default.",
            "default": 30000
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}