{
  "openapi": "3.0.1",
  "info": {
    "title": "Campaign Offer Guard: Promotion & Ad Review",
    "description": "Compare approved offers with campaign records you supply. Review price, timing and evidence conflicts without connecting to advertising accounts.",
    "version": "0.2",
    "x-build-id": "n45jMl3SR0863kGBW"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/critd~campaign-offer-guard/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-critd-campaign-offer-guard",
        "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/critd~campaign-offer-guard/runs": {
      "post": {
        "operationId": "runs-sync-critd-campaign-offer-guard",
        "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/critd~campaign-offer-guard/run-sync": {
      "post": {
        "operationId": "run-sync-critd-campaign-offer-guard",
        "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": [
          "mode"
        ],
        "properties": {
          "mode": {
            "title": "Choose your review",
            "enum": [
              "example",
              "collision-example",
              "review"
            ],
            "type": "string",
            "description": "$0.25 per completed report plus $0.00005 per start, including the example. Missing evidence is a billable completed review. Use Review my files for any changed content or controls.",
            "default": "example"
          },
          "offers": {
            "title": "Approved offers",
            "type": "string",
            "description": "Paste prepared file contents; no URLs or account connections. The fictional prefill is a template; retain exact scoped IDs, price scale and explicit-offset clocks. Combined INPUT including mapping/controls must fit 8 MiB."
          },
          "offersFormat": {
            "title": "Offers format",
            "enum": [
              "csv",
              "json"
            ],
            "type": "string",
            "description": "Explicit format for the offers table.",
            "default": "csv"
          },
          "activations": {
            "title": "Campaign records",
            "type": "string",
            "description": "Paste prepared file contents; no URLs or account connections. The fictional prefill is a template; retain exact scoped IDs, price scale and explicit-offset clocks. Combined INPUT including mapping/controls must fit 8 MiB."
          },
          "activationsFormat": {
            "title": "Activations format",
            "enum": [
              "csv",
              "json"
            ],
            "type": "string",
            "description": "Explicit format for the activations table.",
            "default": "csv"
          },
          "observations": {
            "title": "Observed offers",
            "type": "string",
            "description": "Paste prepared file contents; no URLs or account connections. The fictional prefill is a template; retain exact scoped IDs, price scale and explicit-offset clocks. Combined INPUT including mapping/controls must fit 8 MiB."
          },
          "observationsFormat": {
            "title": "Observations format",
            "enum": [
              "csv",
              "json"
            ],
            "type": "string",
            "description": "Explicit format for the observations table.",
            "default": "json"
          },
          "mapping": {
            "title": "Explicit column mapping",
            "type": "object",
            "description": "Fictional worked mapping for these templates. For strict canonical names omit this field. Renaming columns does not authenticate approval or create missing evidence. Know what to fix before trying again. When a prepared file cannot be reviewed, the run identifies supported corrections such as a missing required mapping, an invalid time format or an exceeded input limit. It names our required fields rather than exposing your private column names or values in logs. Some failures can only provide general guidance. No completed-report charge is requested for invalid preparation; the automatic start event may still apply."
          },
          "asOf": {
            "title": "Evaluation time with offset",
            "type": "string",
            "description": "Historical fictional clock. Review my files requires your explicit RFC3339 evaluation time; upload time is not observation time."
          },
          "maxAgeSeconds": {
            "title": "Maximum observation age (seconds)",
            "minimum": 1,
            "maximum": 2678400,
            "type": "integer",
            "description": "Maximum age of supplied observations relative to the evaluation clock.",
            "default": 86400
          },
          "collisionReview": {
            "title": "Compare offers shown together (optional)",
            "type": "string",
            "description": "In Review my files mode, supply JSON with a bindings array. Each entry identifies an approved-offer account, source and row_id, plus explicit placement and audience labels. Only matching labels within the same account/source establish a relationship. Missing or different labels are unassessed, not mutually exclusive. At most 250 bindings; shared 10000 source-reference and 8 MiB result ceilings apply. For a prelaunch review without campaigns or observations, supply [] in JSON format for those tables and clear the example mapping. Leave blank for the original campaign review."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}