{
  "openapi": "3.0.1",
  "info": {
    "title": "DRAMWatch",
    "description": "DRAMWatch helps resellers, integrators, and procurement teams monitor DRAM pricing and availability across public supplier and distributor websites.\n\nInstead of manually checking product pages, DRAMWatch automatically tracks price changes and availability signals and notifies you when changes occur.",
    "version": "0.0",
    "x-build-id": "tFasyiqfdbzINpMjo"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/orthogonal_redbud~dramwatch/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-orthogonal_redbud-dramwatch",
        "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/orthogonal_redbud~dramwatch/runs": {
      "post": {
        "operationId": "runs-sync-orthogonal_redbud-dramwatch",
        "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/orthogonal_redbud~dramwatch/run-sync": {
      "post": {
        "operationId": "run-sync-orthogonal_redbud-dramwatch",
        "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": [
          "sources"
        ],
        "properties": {
          "sources": {
            "title": "DRAM sources to monitor",
            "minItems": 1,
            "type": "array",
            "description": "List of public DRAM product pages from suppliers or distributors.",
            "items": {
              "type": "string"
            },
            "default": [
              "https://www.mouser.com/ProductDetail/Kingston/KF556C40BB-16",
              "https://www.digikey.com/en/products/detail/crucial-technology/CT8G4DFRA32A/10274541"
            ]
          },
          "alertThresholdPercent": {
            "title": "Alert threshold (%)",
            "type": "number",
            "description": "Minimum price change percentage required to trigger an alert.",
            "default": 3
          },
          "alertOn": {
            "title": "Alert conditions",
            "type": "object",
            "description": "Select which changes should trigger notifications.",
            "properties": {
              "priceIncrease": {
                "type": "boolean",
                "title": "Price increase",
                "description": "Trigger alerts when the price increases.",
                "default": true
              },
              "priceDecrease": {
                "type": "boolean",
                "title": "Price decrease",
                "description": "Trigger alerts when the price decreases.",
                "default": false
              },
              "availabilityChange": {
                "type": "boolean",
                "title": "Availability change",
                "description": "Trigger alerts when product availability changes.",
                "default": true
              }
            }
          },
          "normalizeCurrency": {
            "title": "Normalize currency",
            "type": "boolean",
            "description": "Convert prices to a single base currency before comparison.",
            "default": true
          },
          "baseCurrency": {
            "title": "Base currency",
            "type": "string",
            "description": "Target currency used when normalizing prices.",
            "default": "USD"
          },
          "notify": {
            "title": "Notifications",
            "type": "object",
            "description": "Configure where alerts should be delivered.",
            "properties": {
              "email": {
                "type": "string",
                "title": "Email address",
                "description": "Email address that will receive alert notifications.",
                "editor": "textarea"
              },
              "webhookUrl": {
                "type": "string",
                "title": "Webhook URL",
                "description": "Webhook endpoint for integrations such as n8n or Zapier.",
                "editor": "textarea"
              },
              "slackWebhookUrl": {
                "type": "string",
                "title": "Slack webhook URL",
                "description": "Slack incoming webhook URL for posting alerts.",
                "editor": "textarea"
              }
            }
          },
          "storeHistory": {
            "title": "Store price history",
            "type": "boolean",
            "description": "Save historical price data for auditing and comparisons.",
            "default": true
          },
          "runLabel": {
            "title": "Run label",
            "type": "string",
            "description": "Optional label to help identify this run."
          },
          "amazonPAConfig": {
            "title": "Amazon Product Advertising API",
            "type": "object",
            "description": "Optional configuration for fetching Amazon prices using the Product Advertising API.",
            "properties": {
              "accessKey": {
                "type": "string",
                "title": "Access key",
                "description": "Amazon Product Advertising API access key.",
                "editor": "textarea"
              },
              "secretKey": {
                "type": "string",
                "title": "Secret key",
                "description": "Amazon Product Advertising API secret key.",
                "editor": "textarea"
              },
              "partnerTag": {
                "type": "string",
                "title": "Partner tag",
                "description": "Amazon Associates partner tag.",
                "editor": "textarea"
              },
              "region": {
                "type": "string",
                "title": "API region",
                "description": "AWS region used for the Product Advertising API.",
                "editor": "textarea",
                "default": "us-east-1"
              }
            }
          },
          "acknowledgeAmazonRisk": {
            "title": "Acknowledge Amazon access limitations",
            "type": "boolean",
            "description": "Confirm that you understand Amazon pages may restrict automated access.",
            "default": 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
                  }
                }
              },
              "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}