{
  "openapi": "3.0.1",
  "info": {
    "title": "🇻🇳 HOSE Vietnam Stock Screener — VN30 Quotes & Fundamentals",
    "description": "HOSE Vietnam stock screener API — VN30 / VN-Index live quotes, market cap (VND), P/E, P/B, dividend yield, ROE, sector. Vietcombank, Vingroup, Hoa Phat, FPT universe. Bloomberg Terminal / FactSet / Refinitiv Eikon alternative for Vietnam frontier-market data. Pay-per-result pricing.",
    "version": "0.0",
    "x-build-id": "dWm1v7jeTWiBjs4Qo"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/nexgendata~hose-vietnam-stock-screener/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-nexgendata-hose-vietnam-stock-screener",
        "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/nexgendata~hose-vietnam-stock-screener/runs": {
      "post": {
        "operationId": "runs-sync-nexgendata-hose-vietnam-stock-screener",
        "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/nexgendata~hose-vietnam-stock-screener/run-sync": {
      "post": {
        "operationId": "run-sync-nexgendata-hose-vietnam-stock-screener",
        "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": {
          "limit": {
            "title": "Limit",
            "minimum": 1,
            "maximum": 500,
            "type": "integer",
            "description": "Maximum number of HOSE-listed stocks to return. The Ho Chi Minh Stock Exchange has roughly 400 listed companies. Use 10 for a smoke test, 30 for the VN30 blue-chip index, or 400 to pull the entire HOSE universe. Records are returned sorted by market cap (in billion VND) descending so the most liquid Vietnamese blue-chips like VIC, VHM, VCB, HPG, VNM come first.",
            "default": 100
          },
          "market": {
            "title": "Market segment",
            "enum": [
              "HOSE-all",
              "VN30"
            ],
            "type": "string",
            "description": "Which HOSE segment to scrape. 'HOSE-all' covers every Ho Chi Minh Stock Exchange common-stock listing (~400 tickers). 'VN30' restricts to the VN30 blue-chip index — the 30 largest, most liquid Vietnamese companies (VIC Vingroup, VHM Vinhomes, VCB Vietcombank, HPG Hoa Phat Group, VNM Vinamilk, BID BIDV, CTG VietinBank, TCB Techcombank, MSN Masan, MWG Mobile World, etc.). VN30 is the most-tracked benchmark for Vietnamese equities and the underlying for VN30 futures on HNX.",
            "default": "HOSE-all"
          },
          "min_market_cap_vnd_billion": {
            "title": "Min market cap (billion VND)",
            "minimum": 0,
            "maximum": 100000000,
            "type": "integer",
            "description": "Filter to stocks with market cap at or above this value, expressed in BILLION Vietnamese Dong (1 billion VND ≈ 40,000 USD at current rates). Examples: 1000 = 1 trillion VND (mid-cap), 10000 = 10 trillion VND (large-cap), 100000 = 100 trillion VND (VN30 mega-cap tier). Leave at 0 for no filter. VND market caps are quoted directly off the stockanalysis.com list view and converted from trillion-VND notation (e.g. '1,694.72T') to billion units.",
            "default": 0
          },
          "sector": {
            "title": "Sector / industry keyword",
            "type": "string",
            "description": "Optional case-insensitive substring filter applied to the company name and industry classification. Examples: 'bank' (Vietnamese banks like VCB, BID, CTG, TCB), 'real estate' (VIC, VHM, NVL, KDH), 'food' (VNM Vinamilk, MSN Masan), 'steel' (HPG Hoa Phat), 'retail' (MWG Mobile World, PNJ), 'oil' (PLX Petrolimex, GAS PetroVietnam Gas), 'utilities', 'logistics'. Leave blank to disable filtering."
          },
          "include_fundamentals": {
            "title": "Enrich with fundamentals (P/E, P/B, EPS, beta)",
            "type": "boolean",
            "description": "If true, fetch each stock's individual quote page to enrich it with P/E ratio, P/B ratio (computed when book value available), EPS, beta, RSI, 52-week range, average volume, shares outstanding, sector/industry, dividend yield, ex-dividend date. This roughly doubles runtime since one extra HTTP request is needed per ticker. Recommended ON for institutional research; turn OFF for fast price-only scrapes of the full universe.",
            "default": true
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Apify proxy configuration. stockanalysis.com tolerates datacenter proxies fine; switch to RESIDENTIAL only if you hit Cloudflare challenges when scraping the full 400-ticker universe with fundamentals enabled.",
            "default": {
              "useApifyProxy": true
            }
          }
        }
      },
      "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
                  }
                }
              },
              "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}