{
  "openapi": "3.0.1",
  "info": {
    "title": "ForexFactory Calendar Scraper",
    "description": "Scrape scheduled economic releases from Trading Economics, Nasdaq and ForexFactory. Results include event dates and times in UTC, country or currency, importance, and available release values. The ForexFactory weekly feed can also add impact ratings to matching Trading Economics and Nasdaq events.",
    "version": "0.1",
    "x-build-id": "c5jVlk1IemwepTUkM"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/axiomworks~economic-calendar-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-axiomworks-economic-calendar-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/axiomworks~economic-calendar-scraper/runs": {
      "post": {
        "operationId": "runs-sync-axiomworks-economic-calendar-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/axiomworks~economic-calendar-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-axiomworks-economic-calendar-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": {
          "dateRange": {
            "title": "Date range",
            "enum": [
              "today",
              "tomorrow",
              "yesterday",
              "thisWeek",
              "nextWeek",
              "lastWeek",
              "thisMonth",
              "nextMonth",
              "last30Days",
              "custom"
            ],
            "type": "string",
            "description": "Period to return: today, tomorrow, yesterday, thisWeek (default), nextWeek, lastWeek, thisMonth, nextMonth, last30Days or custom. With custom, set startDate and endDate. Weeks run Monday to Sunday, times are UTC.",
            "default": "thisWeek"
          },
          "startDate": {
            "title": "Start date (custom)",
            "type": "string",
            "description": "First day, YYYY-MM-DD, e.g. '2026-09-01'. Used only when dateRange is custom. Invalid dates fail the run."
          },
          "endDate": {
            "title": "End date (custom)",
            "type": "string",
            "description": "Last day, YYYY-MM-DD, at most 31 days after startDate. Used only when dateRange is custom; defaults to startDate."
          },
          "countries": {
            "title": "Countries",
            "type": "array",
            "description": "Countries to include, as names ('United States', 'Euro Area', 'Germany') or Trading Economics ISO3 codes ('usa', 'emu', 'gbr', 'jpn'). Empty means all countries. Unknown entries are skipped with a warning; if none is valid the run ends with 0 items and a message.",
            "items": {
              "type": "string"
            }
          },
          "minImportance": {
            "title": "Minimum importance",
            "enum": [
              "low",
              "medium",
              "high"
            ],
            "type": "string",
            "description": "Lowest importance to return: low (default, everything), medium or high. Nasdaq rows have no rating and are left out unless this is low.",
            "default": "low"
          },
          "sources": {
            "title": "Sources",
            "type": "array",
            "description": "Sources to combine: tradingeconomics (default), nasdaq, forexfactory (current week only). Rows from different sources are not merged; each row's 'source' field says where it came from. Any of the three can be listed.",
            "default": [
              "tradingeconomics"
            ],
            "items": {
              "type": "string"
            }
          },
          "addForexFactoryImpact": {
            "title": "Add ForexFactory impact",
            "type": "boolean",
            "description": "When true (default), rows in the current week get a forexFactoryImpact value matched by currency, time and title. Needs one extra request; if ForexFactory is unavailable the run continues without it.",
            "default": true
          },
          "currencies": {
            "title": "Currencies",
            "type": "array",
            "description": "Keep currencies such as USD, EUR or JPY, case-insensitive. Default [] keeps all. Applies together with countries; codes with no matching events return 0 items. maxItems counts matching results across all sources.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "eventKeywords": {
            "title": "Event keywords",
            "type": "array",
            "description": "Keep event titles containing any of these literal phrases, case-insensitive, e.g. inflation or interest rate. Default [] keeps all titles. Combined with other filters; unmatched or blocked targets return 0 items with a status message.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "categories": {
            "title": "Categories",
            "type": "array",
            "description": "Keep exact category values from Trading Economics, case-insensitive, e.g. inflation rate. Default [] keeps all. Nasdaq and ForexFactory have no category and are excluded when this filter is set. Combined with other filters.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "maxItems": {
            "title": "Maximum results",
            "minimum": 1,
            "maximum": 10000,
            "type": "integer",
            "description": "Maximum events to return across all sources, 1-10000, default 100. The run stops once this many are saved, and you are charged only for results returned.",
            "default": 100
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Proxy for requests. Default: no proxy. Enable Apify Proxy if the sites rate-limit or block your runs.",
            "default": {
              "useApifyProxy": 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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}