{
  "openapi": "3.0.1",
  "info": {
    "title": "🇨🇦 TSX Canada Stock Screener — TSX 60 Quotes",
    "description": "TSX Canada stock screener API — Toronto Stock Exchange TSX 60 / S&P TSX Composite live quotes, market cap (CAD), P/E, P/B, dividend yield, ROE, sector. Royal Bank, Shopify, Enbridge universe. Bloomberg / FactSet / Refinitiv Eikon alternative for hedge funds & quants. Pay-per-result.",
    "version": "0.0",
    "x-build-id": "ginkevCVDiNinwGQ8"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/nexgendata~tsx-canada-stock-screener/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-nexgendata-tsx-canada-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~tsx-canada-stock-screener/runs": {
      "post": {
        "operationId": "runs-sync-nexgendata-tsx-canada-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~tsx-canada-stock-screener/run-sync": {
      "post": {
        "operationId": "run-sync-nexgendata-tsx-canada-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": {
          "index": {
            "title": "Index / Market",
            "enum": [
              "TSX60",
              "TSX-composite",
              "all"
            ],
            "type": "string",
            "description": "Which Canadian market scope to screen: TSX60 (S&P/TSX 60 constituents — Canada's premier blue-chip index, e.g. Royal Bank RY, TD Bank TD, Enbridge ENB, Brookfield BN, Canadian National Rail CNR, Shopify SHOP, Suncor SU, Barrick Gold ABX), TSX-composite (S&P/TSX Composite index — ~230 mid-and-large-cap Canadian names), or all (entire Toronto Stock Exchange main board including small-caps and income trusts).",
            "default": "TSX60"
          },
          "limit": {
            "title": "Limit (stocks returned)",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "Maximum number of TSX-listed stocks to return. Stocks are returned in descending market-cap order. Use 10 for a quick smoke test, 60 for the full TSX 60 index, 230 for full S&P/TSX Composite, 500+ for broader TSX main-board coverage.",
            "default": 60
          },
          "min_market_cap_cad": {
            "title": "Min market cap (billion CAD)",
            "minimum": 0,
            "maximum": 1000,
            "type": "integer",
            "description": "Filter to stocks with market cap above this threshold, in BILLIONS of CAD. Examples: 1 = CAD$1B (small-cap floor), 10 = CAD$10B (large-cap, TSX 60 floor is roughly CAD$8-15B), 50 = CAD$50B (Canadian mega-cap like Royal Bank, TD, Enbridge, Brookfield, CNR), 100 = CAD$100B (top 5 Canadian companies — RY, TD, Shopify, Brookfield, Enbridge). Leave at 0 for no filter.",
            "default": 0
          },
          "sector": {
            "title": "Sector / industry / name keyword",
            "type": "string",
            "description": "Optional case-insensitive substring filter applied to sector, industry, and company name. Examples: 'bank' (Royal Bank, TD, BMO, Scotia BNS, CIBC CM, National Bank NA), 'energy' (Enbridge ENB, Suncor SU, Canadian Natural CNQ, Cenovus CVE, Imperial Oil IMO, TC Energy TRP, Pembina PPL), 'gold' (Barrick ABX, Agnico Eagle AEM, Franco-Nevada FNV, Wheaton WPM, Kinross K), 'rail' (Canadian National CNR, Canadian Pacific CP), 'utility' (Fortis FTS, Emera EMA, Hydro One H, Algonquin AQN), 'tech' (Shopify SHOP, Constellation Software CSU, OpenText OTEX, CGI GIB.A), 'reit' (Riocan REI.UN, Choice Properties CHP.UN, CAPREIT CAR.UN), 'insurance' (Manulife MFC, Sun Life SLF, Intact IFC, Fairfax FFH). Leave blank for no filter."
          },
          "enrich_fundamentals": {
            "title": "Enrich with fundamentals (slower)",
            "type": "boolean",
            "description": "If true, fetch each stock's TSX detail page on stockanalysis.com to extract P/E ratio, EPS, dividend yield, shares outstanding, beta, RSI, 52-week range, sector and industry classification. Adds ~1 HTTP request per stock and roughly doubles runtime. Required if you want to filter by sector. Recommended ON for TSX60 (only 60 stocks).",
            "default": true
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Apify proxy configuration. Defaults to Apify datacenter proxy for reliable access to stockanalysis.com. Use RESIDENTIAL group if you hit rate limits.",
            "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}