{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/citeladder-com/json-schema/citeladder-com-visibility-ads-response-schema.json",
  "title": "VisibilityAdsResponse",
  "x-generated": "2026-11-04",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/citeladder-com-openapi.json#/components/schemas/VisibilityAdsResponse",
  "type": "object",
  "properties": {
    "state": {
      "type": "string",
      "enum": [
        "value",
        "not_applicable",
        "unavailable",
        "no_answers"
      ]
    },
    "source_audit_ids": {
      "type": "array",
      "items": {
        "type": "string",
        "format": "uuid",
        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
      }
    },
    "parser_versions": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "metrics_version": {
      "type": "string"
    },
    "presence": {
      "type": "object",
      "properties": {
        "answers": {
          "type": "integer",
          "minimum": -9007199254740991,
          "maximum": 9007199254740991
        },
        "answers_with_ads": {
          "type": "integer",
          "minimum": -9007199254740991,
          "maximum": 9007199254740991
        },
        "rate": {
          "type": [
            "number",
            "null"
          ]
        }
      },
      "required": [
        "answers",
        "answers_with_ads",
        "rate"
      ],
      "additionalProperties": false
    },
    "engines": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "engine": {
            "type": "string"
          },
          "applicability": {
            "type": "string",
            "enum": [
              "applicable",
              "unavailable",
              "not_applicable"
            ]
          },
          "answers": {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991
          },
          "presence": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "answers": {
                    "type": "integer",
                    "minimum": -9007199254740991,
                    "maximum": 9007199254740991
                  },
                  "answers_with_ads": {
                    "type": "integer",
                    "minimum": -9007199254740991,
                    "maximum": 9007199254740991
                  },
                  "rate": {
                    "type": [
                      "number",
                      "null"
                    ]
                  }
                },
                "required": [
                  "answers",
                  "answers_with_ads",
                  "rate"
                ],
                "additionalProperties": false
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "engine",
          "applicability",
          "answers",
          "presence"
        ],
        "additionalProperties": false
      }
    },
    "brand": {
      "type": "object",
      "properties": {
        "appearances": {
          "type": "integer",
          "minimum": -9007199254740991,
          "maximum": 9007199254740991
        },
        "share": {
          "type": [
            "number",
            "null"
          ]
        },
        "best_rank": {
          "anyOf": [
            {
              "type": "integer",
              "minimum": -9007199254740991,
              "maximum": 9007199254740991
            },
            {
              "type": "null"
            }
          ]
        }
      },
      "required": [
        "appearances",
        "share",
        "best_rank"
      ],
      "additionalProperties": false
    },
    "advertisers_seen": {
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "advertisers": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "domain": {
            "type": "string"
          },
          "ownership": {
            "$ref": "#/$defs/AdOwnership"
          },
          "appearances": {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991
          },
          "prompts": {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991
          },
          "share": {
            "type": "number"
          },
          "first_seen_at": {
            "type": "string"
          },
          "last_seen_at": {
            "type": "string"
          }
        },
        "required": [
          "name",
          "domain",
          "ownership",
          "appearances",
          "prompts",
          "share",
          "first_seen_at",
          "last_seen_at"
        ],
        "additionalProperties": false
      }
    },
    "creatives": {
      "type": "object",
      "properties": {
        "items": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "advertiser_name": {
                "type": "string"
              },
              "advertiser_domain": {
                "type": "string"
              },
              "ownership": {
                "$ref": "#/$defs/AdOwnership"
              },
              "title": {
                "type": "string"
              },
              "snippet": {
                "type": "string"
              },
              "landing_url": {
                "type": "string"
              },
              "appearances": {
                "type": "integer",
                "minimum": -9007199254740991,
                "maximum": 9007199254740991
              },
              "prompts": {
                "type": "integer",
                "minimum": -9007199254740991,
                "maximum": 9007199254740991
              },
              "first_seen_at": {
                "type": "string"
              },
              "last_seen_at": {
                "type": "string"
              }
            },
            "required": [
              "advertiser_name",
              "advertiser_domain",
              "ownership",
              "title",
              "snippet",
              "landing_url",
              "appearances",
              "prompts",
              "first_seen_at",
              "last_seen_at"
            ],
            "additionalProperties": false
          }
        },
        "total": {
          "type": "integer",
          "minimum": -9007199254740991,
          "maximum": 9007199254740991
        },
        "next_cursor": {
          "type": [
            "string",
            "null"
          ]
        }
      },
      "required": [
        "items",
        "total",
        "next_cursor"
      ],
      "additionalProperties": false
    },
    "prompts": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "prompt": {
            "type": "string"
          },
          "topic": {
            "type": "string"
          },
          "presence": {
            "type": "object",
            "properties": {
              "answers": {
                "type": "integer",
                "minimum": -9007199254740991,
                "maximum": 9007199254740991
              },
              "answers_with_ads": {
                "type": "integer",
                "minimum": -9007199254740991,
                "maximum": 9007199254740991
              },
              "rate": {
                "type": [
                  "number",
                  "null"
                ]
              }
            },
            "required": [
              "answers",
              "answers_with_ads",
              "rate"
            ],
            "additionalProperties": false
          },
          "ads_seen": {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991
          },
          "top_advertiser": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string"
                  },
                  "domain": {
                    "type": "string"
                  }
                },
                "required": [
                  "name",
                  "domain"
                ],
                "additionalProperties": false
              },
              {
                "type": "null"
              }
            ]
          },
          "competitor_ad_answers": {
            "type": "object",
            "properties": {
              "brand_mentioned": {
                "type": "integer",
                "minimum": -9007199254740991,
                "maximum": 9007199254740991
              },
              "brand_not_mentioned": {
                "type": "integer",
                "minimum": -9007199254740991,
                "maximum": 9007199254740991
              }
            },
            "required": [
              "brand_mentioned",
              "brand_not_mentioned"
            ],
            "additionalProperties": false
          }
        },
        "required": [
          "prompt",
          "topic",
          "presence",
          "ads_seen",
          "top_advertiser",
          "competitor_ad_answers"
        ],
        "additionalProperties": false
      }
    },
    "topics": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "key": {
            "type": "string"
          },
          "label": {
            "type": "string"
          },
          "presence": {
            "type": "object",
            "properties": {
              "answers": {
                "type": "integer",
                "minimum": -9007199254740991,
                "maximum": 9007199254740991
              },
              "answers_with_ads": {
                "type": "integer",
                "minimum": -9007199254740991,
                "maximum": 9007199254740991
              },
              "rate": {
                "type": [
                  "number",
                  "null"
                ]
              }
            },
            "required": [
              "answers",
              "answers_with_ads",
              "rate"
            ],
            "additionalProperties": false
          }
        },
        "required": [
          "key",
          "label",
          "presence"
        ],
        "additionalProperties": false
      }
    },
    "runs": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "key": {
            "type": "string"
          },
          "label": {
            "type": "string"
          },
          "presence": {
            "type": "object",
            "properties": {
              "answers": {
                "type": "integer",
                "minimum": -9007199254740991,
                "maximum": 9007199254740991
              },
              "answers_with_ads": {
                "type": "integer",
                "minimum": -9007199254740991,
                "maximum": 9007199254740991
              },
              "rate": {
                "type": [
                  "number",
                  "null"
                ]
              }
            },
            "required": [
              "answers",
              "answers_with_ads",
              "rate"
            ],
            "additionalProperties": false
          }
        },
        "required": [
          "key",
          "label",
          "presence"
        ],
        "additionalProperties": false
      }
    }
  },
  "required": [
    "state",
    "source_audit_ids",
    "parser_versions",
    "metrics_version",
    "presence",
    "engines",
    "brand",
    "advertisers_seen",
    "advertisers",
    "creatives",
    "prompts",
    "topics",
    "runs"
  ],
  "additionalProperties": false,
  "$defs": {
    "AdOwnership": {
      "type": "string",
      "enum": [
        "owned",
        "competitor",
        "other"
      ]
    }
  }
}