{
  "openapi": "3.0.1",
  "info": {
    "title": "Taiwan Company Registry & KYB Lookup: UBN, Supplier Search",
    "description": "Taiwan company registry KYB: bulk-verify 10,000 統一編號 (UBN) per run, find export-qualified manufacturers & suppliers. Official MOF + trade open data, English, daily. From $0.002/company.",
    "version": "0.4",
    "x-build-id": "h3KeM9MiZuSpVzmmt"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/giggling_persimmon~taiwan-company-exporter-directory/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-giggling_persimmon-taiwan-company-exporter-directory",
        "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/giggling_persimmon~taiwan-company-exporter-directory/runs": {
      "post": {
        "operationId": "runs-sync-giggling_persimmon-taiwan-company-exporter-directory",
        "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/giggling_persimmon~taiwan-company-exporter-directory/run-sync": {
      "post": {
        "operationId": "run-sync-giggling_persimmon-taiwan-company-exporter-directory",
        "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": "Mode",
            "enum": [
              "search",
              "lookup",
              "marketSize"
            ],
            "type": "string",
            "description": "If left empty: lookup when \"ubns\" is given, otherwise search. search = filtered company list; lookup = verify/enrich a list of 統一編號; marketSize = one aggregate report (counts by city, district and industry division), charged once. The prefilled example is a quick lookup of TSMC, Hon Hai (Foxconn) and MediaTek."
          },
          "ubns": {
            "title": "Business numbers (lookup mode)",
            "type": "array",
            "description": "Up to 10,000 Unified Business Numbers (統一編號). Leading zeros optional. Invalid and not-found numbers are returned free of charge.",
            "items": {
              "type": "string"
            }
          },
          "industryCodes": {
            "title": "Industry codes",
            "type": "array",
            "description": "MOF tax industry codes or prefixes (2-6 digits, e.g. '2611' = semiconductors, '62' = computer programming), or section letters A-S.",
            "items": {
              "type": "string"
            }
          },
          "industryKeyword": {
            "title": "Industry keyword",
            "type": "string",
            "description": "Matches the official Chinese industry name or our unofficial English group name, e.g. 'semiconductor' or '半導體'."
          },
          "primaryIndustryOnly": {
            "title": "Match primary industry only",
            "type": "boolean",
            "description": "Off = a business matches if any of its (up to 4) registered industries matches.",
            "default": false
          },
          "nameKeyword": {
            "title": "Company name contains",
            "type": "string",
            "description": "Chinese name, or English name for registered traders."
          },
          "cities": {
            "title": "Cities / counties",
            "type": "array",
            "description": "Chinese or English, e.g. '臺北市', '台北市', 'Taipei City', 'Taichung'.",
            "items": {
              "type": "string"
            }
          },
          "districts": {
            "title": "Districts / townships",
            "type": "array",
            "description": "e.g. '信義區' or 'Xinyi District'. Combine with cities when a name is ambiguous.",
            "items": {
              "type": "string"
            }
          },
          "orgTypes": {
            "title": "Organisation types",
            "type": "array",
            "description": "Default: limited companies, companies limited by shares, and branches. Sole proprietorships/partnerships are controlled by the switch below.",
            "items": {
              "type": "string",
              "enum": [
                "有限公司",
                "股份有限公司",
                "無限公司",
                "兩合公司",
                "有限合夥",
                "本國公司設立之分公司",
                "外國公司在台之分公司",
                "外國公司在台之辦事處",
                "合作社",
                "其他"
              ],
              "enumTitles": [
                "Limited company (有限公司)",
                "Company limited by shares (股份有限公司)",
                "Unlimited company (無限公司)",
                "Unlimited company with limited liability shareholders (兩合公司)",
                "Limited partnership (有限合夥)",
                "Branch of domestic company (本國公司設立之分公司)",
                "Branch of foreign company (外國公司在台之分公司)",
                "Representative office of foreign company (外國公司在台之辦事處)",
                "Cooperative (合作社)",
                "Other (association, foundation, school, etc.) (其他)"
              ]
            },
            "default": [
              "有限公司",
              "股份有限公司",
              "本國公司設立之分公司",
              "外國公司在台之分公司"
            ]
          },
          "includeSoleProprietorships": {
            "title": "Include sole proprietorships & partnerships",
            "type": "boolean",
            "description": "PRIVACY (Taiwan PDPA): sole proprietorships and partnerships are usually individuals. Only enable this if you have a lawful purpose (e.g. KYC/supplier verification), and also set lawfulPurposeAcknowledged. Do not use for unsolicited marketing.",
            "default": false
          },
          "lawfulPurposeAcknowledged": {
            "title": "I have a lawful purpose (PDPA)",
            "type": "boolean",
            "description": "Required to include sole proprietorships or mobile phone numbers. I confirm I have a lawful purpose under Taiwan's Personal Data Protection Act and will not use the data for unsolicited marketing.",
            "default": false
          },
          "includeBranches": {
            "title": "Include branch offices",
            "type": "boolean",
            "description": "Branches have their own UBN and headquartersUbn; their capital is reported as not applicable.",
            "default": true
          },
          "minCapitalTwd": {
            "title": "Minimum capital (TWD)",
            "minimum": 0,
            "type": "integer",
            "description": "Only businesses with registered capital of at least this amount (New Taiwan dollars)."
          },
          "maxCapitalTwd": {
            "title": "Maximum capital (TWD)",
            "minimum": 0,
            "type": "integer",
            "description": "Only businesses with registered capital of at most this amount (New Taiwan dollars)."
          },
          "foundedAfter": {
            "title": "Founded on/after",
            "type": "string",
            "description": "YYYY-MM-DD (FIA tax-registration date; may differ from the MOEA company-registry date)."
          },
          "foundedBefore": {
            "title": "Founded on/before",
            "type": "string",
            "description": "YYYY-MM-DD (FIA tax-registration date)."
          },
          "firstSeenAfter": {
            "title": "First seen in the register after",
            "type": "string",
            "description": "Only businesses that first appeared in the official file after this date (needs earlier runs; see README)."
          },
          "usesEInvoice": {
            "title": "Uses e-invoices",
            "type": "boolean",
            "description": "Leave empty for either."
          },
          "tradersOnly": {
            "title": "Registered importers/exporters only",
            "type": "boolean",
            "description": "Only businesses that appear in the BOFT importer/exporter register.",
            "default": false
          },
          "exportQualified": {
            "title": "Export qualified",
            "type": "boolean",
            "description": "Leave empty for either."
          },
          "importQualified": {
            "title": "Import qualified",
            "type": "boolean",
            "description": "Leave empty for either."
          },
          "includeContactNumbers": {
            "title": "Include business phone/fax",
            "type": "boolean",
            "description": "Landline business numbers from the BOFT register. Mobile (09xx) numbers are always dropped unless the next option is on.",
            "default": true
          },
          "includeMobileNumbers": {
            "title": "Include mobile numbers (09xx)",
            "type": "boolean",
            "description": "Mobile numbers usually belong to a person (PDPA personal data). Requires lawfulPurposeAcknowledged.",
            "default": false
          },
          "outputLanguage": {
            "title": "Output language",
            "enum": [
              "both",
              "en",
              "zh"
            ],
            "type": "string",
            "description": "both = Chinese and English fields; en = English only; zh = Chinese only.",
            "default": "both"
          },
          "includeMarketAccessLicences": {
            "title": "Add TFDA / NCC licence counts (optional)",
            "type": "boolean",
            "description": "Adds a marketAccessLicences block to each company: number of active and total TFDA medical-device licences and drug licences (joined by 統一編號) and NCC telecom-equipment approvals (joined by exact company name, because the NCC file has no 統一編號). Off by default; adds about 50 MB of downloads and about a minute per run. No extra charge. Source: TFDA and NCC open data (OGDL v1). For very large runs with both screening and includeMarketAccessLicences on (e.g. 10,000 numbers or a full scan), 2 GB memory is recommended; 1 GB works.",
            "default": false
          },
          "screening": {
            "title": "Sanctions / export-control screening flags (optional)",
            "type": "boolean",
            "description": "Screens each company's English and Chinese name against the US Consolidated Screening List (ITA bulk file) and Taiwan 國際貿易署 strategic high-tech commodities entity list (data.gov.tw 102368), and adds screeningHits with exact / normalized / fuzzy matches. Only company entries on the lists are used. POSSIBLE MATCH ONLY, NOT A LEGAL DETERMINATION; absence of a flag is not clearance. Verify against the official list. Off by default. No extra charge. This product uses the International Trade Administration's Data API but is not endorsed or certified by the International Trade Administration. For very large runs with both screening and includeMarketAccessLicences on (e.g. 10,000 numbers or a full scan), 2 GB memory is recommended; 1 GB works.",
            "default": false
          },
          "maxResults": {
            "title": "Max results",
            "minimum": 1,
            "maximum": 200000,
            "type": "integer",
            "description": "Hard cap. The run also stops when your maximum charge per run is reached.",
            "default": 100
          },
          "incrementalMode": {
            "title": "Incremental mode (only new/changed)",
            "type": "boolean",
            "description": "Remember what was delivered for these filters and only output new or changed businesses next time.",
            "default": false
          },
          "stateKey": {
            "title": "State key",
            "type": "string",
            "description": "Name for the incremental state (default: a hash of the filters)."
          },
          "incrementalFirstRun": {
            "title": "First incremental run",
            "enum": [
              "emitAll",
              "baselineOnly"
            ],
            "type": "string",
            "description": "What to do on the first incremental run for these filters, when there is no saved state yet.",
            "default": "emitAll"
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}