{
  "openapi": "3.1.0",
  "info": {
    "title": "Reprompt Place Enrichment API",
    "description": "\n## Batch Processing Guide\n\nThe `/place_enrichment/batches` endpoint allows you to submit multiple places in a single batch for attribute enrichment. \nThe batch will be processed asynchronously, and you can track its status using the returned batch ID.\n\n\n#### Typical workflow:\n1. Prepare your batch payload with:\n   - A unique batch name for identification\n   - List of places with their IDs and input data\n   - Optional attribute set specification\n2. Submit the batch using the POST `/place_enrichment/batches` endpoint\n3. Use the returned batch ID to:\n   - Check batch status at GET `/place_enrichment/batches/{batch_id}`\n   - Retrieve results at GET `/place_enrichment/jobs?batchId={batch_id}`\n\n\n#### Submitting a Batch:\n\nUse POST `/place_enrichment/batches` to submit a batch.\n\n**Example Batch Payload:**\n```json\n{\n    \"batch_name\": \"NYC Restaurants March 2024\",\n    \"attributes\": [\"websites\", \"phoneNumbers\", \"socialHandles\", \"openingHours\", \"categories\", \"closed_permanently\"], \n    \"jobs\": [\n        {\n            \"place_id\": \"place_nyc_123\",\n            \"inputs\": {\n                \"name\": \"Joe's Pizza\",\n                \"latitude\": 40.7359,\n                \"longitude\": -73.9911,\n                \"full_address\": \"7 Carmine St, New York, NY 10014\",\n                \"street\": \"Carmine St\",\n                \"city\": \"New York\",\n                \"state\": \"NY\",\n                \"postalCode\": \"10014\",\n                \"house\": \"7\",\n                \"country\": \"United States\",\n                \"country_code\": \"US\",\n                \"type\": \"restaurant\",\n                \"website\": \"http://www.joespizzanyc.com\",\n                \"phone\": \"+12122555803\"\n            }\n        }\n    ]\n}\n```\n**Place Input Parameters:**\nFor more details on the place input parameters, see the ```UniversalPlace``` schema in the schemas section below.\n\n**Attributes:**\n\nThe `attributes` parameter in your request specifies which attributes will be enriched. You can specify individual attributes like:\n\n- `[\"websites\", \"phoneNumbers\"]` - Only enrich website and phone information\n- `[\"closed_permanently\"]` - Only check if the business is permanently closed\n- `[\"websites\", \"phoneNumbers\", \"socialHandles\", \"openingHours\", \"categories\", \"closed_permanently\"]` - Core business attributes\n- `[\"websites\", \"phoneNumbers\", \"socialHandles\", \"openingHours\", \"categories\", \"closed_permanently\", \"cuisine\", \"price_tier\", \"menu_url\"]` - Comprehensive enrichment\n\nFor a full list of available attributes, see the enrichment schema documentation below.\n\n**`attribute_set`:** Deprecated preset for common enrichment requests. Prefer an explicit `attributes` list. `open_closed` checks whether a place is open or permanently closed, while `core` and `all` both request `closed_permanently`, `websites`, `phoneNumbers`, `openingHours`, `names`, `address`, and `categories`.\n\n#### Tracking Batch Status:\n\nUse GET `/place_enrichment/batches/{batch_id}` to monitor the progress of your batch. The response includes:\n\n```json\n{\n    \"id\": \"batch_2024_03_15_123456\",\n    \"batch_name\": \"NYC Restaurants March 2024\",\n    \"status\": \"in_progress\",\n    \"jobs\": {\n        \"pending\": [\"place_id_2\", \"place_id_3\"],\n        \"in_progress\": [\"place_id_1\"],\n        \"completed\": [\"place_id_4\", \"place_id_5\"],\n        \"failed\": []\n    },\n    \"created_at\": \"2024-03-15T10:30:00Z\",\n    \"updated_at\": \"2024-03-15T10:35:00Z\"\n}\n```\n\nThe status field will be one of:\n- `pending`: Batch is queued but not yet started\n- `in_progress`: Batch is currently being processed\n- `completed`: All jobs in the batch are finished\n- `failed`: Batch encountered critical errors\n\n#### Retrieving Job Results:\n\nOnce jobs are completed, use GET `/place_enrichment/jobs?batchId={batch_id}` to get the enrichment results. The response includes:\n\n```json\n{\n    \"jobs\": [\n        {\n            \"place_id\": \"place_nyc_123\",\n            \"status\": \"completed\",\n            \"outputs\": {\n                \"website\": \"https://www.joespizzanyc.com\",\n                \"phone\": \"+12122555803\",\n                \"social_profiles\": {\n                    \"instagram\": \"joespizzanyc\",\n                    \"facebook\": \"joespizzanyc\"\n                },\n                \"open_closed_status\": \"Open\",\n                \"price_tier\": \"$$\",\n                \"last_enriched\": \"2024-03-15T10:35:00Z\"\n            },\n            \"job_metadata\": {\n                \"created_at\": \"2024-03-15T10:30:00Z\",\n                \"completed_at\": \"2024-03-15T10:35:00Z\",\n                \"processing_time_seconds\": 300\n            }\n        }\n    ],\n    \"total_count\": 1,\n    \"completed_count\": 1\n}\n```\n\nEach job result includes:\n- Original place ID for tracking\n- Enrichment outputs based on the requested attribute set\n- Job metadata including timing information\n- Processing status and any error details if failed\n\n**Attribute Statuses:**\n\nAttributes like name, address, phone number, and website include an `attribute_status` field indicating the verification state:\n\n| Status | Description |\n|--------|-------------|\n| NOT_RUN | The attribute was not processed |\n| RUN_CONDITION_FAILED | The attribute was processed but failed the run condition |\n| RUN | The attribute was processed |\n| ERROR | The attribute processing failed |\n\nExample response with attribute statuses:\n```json\n{\n    \"outputs\": {\n        \"website\": \"https://www.joespizzanyc.com\",\n        \"phone\": \"+12122555803\"\n    },\n    \"job_metadata\": {\n        \"attribute_status\": {\n            \"website\": \"RUN\",\n            \"phone\": \"RUN\",\n            \"address\": \"RUN\",\n            \"name\": \"RUN\"\n        }\n    }\n}\n```\n",
    "version": "1.0"
  },
  "paths": {
    "/place_enrichment/enrich": {
      "post": {
        "summary": "Enrich a single place synchronously",
        "operationId": "submit_enrichment__org_slug__place_enrichment_enrich_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "apiKey",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Apikey"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PlaceJob"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successfully enriched place data",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlaceJobResult"
                },
                "example": {
                  "place_id": "place_nyc_123",
                  "status": "completed",
                  "inputs": {
                    "name": "Joe's Pizza",
                    "latitude": 40.7359,
                    "longitude": -73.9911,
                    "full_address": "7 Carmine St, New York, NY 10014"
                  },
                  "outputs": {
                    "website": "https://www.joespizzanyc.com",
                    "phone": "+12122555803",
                    "social_profiles": {
                      "instagram": "joespizzanyc",
                      "facebook": "joespizzanyc"
                    },
                    "open_closed_status": "Open",
                    "price_tier": "$$",
                    "last_enriched": "2024-03-15T10:35:00Z"
                  },
                  "job_metadata": {
                    "last_enriched": "2024-03-15T10:35:00Z",
                    "attribute_status": {
                      "website": "RUN",
                      "phone": "RUN",
                      "address": "RUN",
                      "name": "RUN"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid input format"
          },
          "401": {
            "description": "Invalid API credentials"
          },
          "404": {
            "description": "Enrichment not found"
          },
          "429": {
            "description": "Rate limit exceeded"
          }
        }
      }
    },
    "/place_enrichment/jobs": {
      "post": {
        "tags": [
          "jobs"
        ],
        "summary": "Submit a single enrichment job",
        "description": "Submit a place for asynchronous enrichment processing.",
        "operationId": "submit_job__org_slug__place_enrichment_jobs_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "apiKey",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Apikey"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PlaceJob"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true,
                  "title": "Response Submit Job  Org Slug  Place Enrichment Jobs Post"
                }
              }
            }
          },
          "202": {
            "description": "Job successfully submitted for processing",
            "content": {
              "application/json": {
                "example": {
                  "place_id": "place_nyc_123",
                  "inputs": {
                    "name": "Joe's Pizza",
                    "latitude": 40.7359,
                    "longitude": -73.9911,
                    "full_address": "7 Carmine St, New York, NY 10014"
                  },
                  "status": "pending"
                }
              }
            }
          },
          "400": {
            "description": "Invalid input format"
          },
          "401": {
            "description": "Invalid API credentials"
          }
        }
      },
      "get": {
        "tags": [
          "jobs"
        ],
        "summary": "Get enrichment jobs",
        "description": "Returns a `JobListResponse` by default. With `groupBy=day` returns a `PaginatedBatchesResponse` of one synthetic batch per UTC day.",
        "operationId": "retrieve_jobs_endpoint__org_slug__place_enrichment_jobs_get",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "batchId",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Batchid"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "default": 10000,
              "title": "Limit"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "default": 0,
              "title": "Offset"
            }
          },
          {
            "name": "excludeBatches",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean",
              "description": "If true, only return jobs with `batchId IS NULL` (i.e. submitted via the single-job API endpoint).",
              "default": false,
              "title": "Excludebatches"
            },
            "description": "If true, only return jobs with `batchId IS NULL` (i.e. submitted via the single-job API endpoint)."
          },
          {
            "name": "groupBy",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "If set to `day`, returns a paginated list of daily summaries (same shape as `/batches`) instead of individual jobs. Each row represents one UTC calendar day.",
              "title": "Groupby"
            },
            "description": "If set to `day`, returns a paginated list of daily summaries (same shape as `/batches`) instead of individual jobs. Each row represents one UTC calendar day."
          },
          {
            "name": "day",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "UTC date (YYYY-MM-DD). When set, restricts results to jobs created on that day.",
              "title": "Day"
            },
            "description": "UTC date (YYYY-MM-DD). When set, restricts results to jobs created on that day."
          },
          {
            "name": "apiKey",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Apikey"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/JobListResponse"
                    },
                    {
                      "$ref": "#/components/schemas/PaginatedBatchesResponse"
                    }
                  ],
                  "title": "Response Retrieve Jobs Endpoint  Org Slug  Place Enrichment Jobs Get"
                }
              }
            }
          }
        }
      }
    },
    "/place_enrichment/jobs/{place_id}": {
      "get": {
        "tags": [
          "jobs"
        ],
        "summary": "Get a single enrichment job",
        "operationId": "get_job_by_id__org_slug__place_enrichment_jobs__place_id__get",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "place_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Place Id"
            }
          },
          {
            "name": "apiKey",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Apikey"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlaceJobResult"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "jobs"
        ],
        "summary": "Delete a job",
        "operationId": "delete_job_endpoint__org_slug__place_enrichment_jobs__place_id__delete",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "place_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Place Id"
            }
          },
          {
            "name": "apiKey",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Apikey"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        }
      }
    },
    "/place_enrichment/jobs/reprocess": {
      "post": {
        "tags": [
          "jobs"
        ],
        "summary": "Reprocess Jobs",
        "operationId": "reprocess_jobs__org_slug__place_enrichment_jobs_reprocess_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "apiKey",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Apikey"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ReprocessJobRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        }
      }
    },
    "/place_enrichment/batches": {
      "post": {
        "tags": [
          "batches"
        ],
        "summary": "Submit a batch of places for enrichment",
        "description": "Submit a batch of places for enrichment\n```",
        "operationId": "submit_batch__org_slug__place_enrichment_batches_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "apiKey",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Apikey"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PlaceBatchPayload"
              },
              "examples": {
                "basic_batch": {
                  "summary": "Basic batch without prefilled data",
                  "value": {
                    "batch_id": "d98e206f-ff1d-4b5a-b0d8-18fff0757fef",
                    "batch_name": "NYC Restaurants March 2024",
                    "jobs": [
                      {
                        "place_id": "place_nyc_123",
                        "inputs": {
                          "name": "Joe's Pizza",
                          "latitude": 40.7359,
                          "longitude": -73.9911,
                          "full_address": "7 Carmine St, New York, NY 10014"
                        }
                      }
                    ],
                    "attributes": [
                      "websites",
                      "phoneNumbers",
                      "socialHandles",
                      "openingHours",
                      "categories",
                      "closed_permanently"
                    ],
                    "kick_off_jobs_now": true
                  }
                },
                "upload_only_batch": {
                  "summary": "Upload-only batch (no immediate processing)",
                  "value": {
                    "batch_id": "d98e206f-ff1d-4b5a-b0d8-18fff0757fef",
                    "batch_name": "NYC Restaurants Upload Only",
                    "jobs": [
                      {
                        "place_id": "place_nyc_999",
                        "inputs": {
                          "name": "Upload Only Test Place",
                          "latitude": 40.7128,
                          "longitude": -74.006,
                          "full_address": "1 City Hall Park, New York, NY 10007"
                        }
                      }
                    ],
                    "kick_off_jobs_now": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successfully submitted batch for processing",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SubmittedPlaceBatchResponse"
                },
                "example": {
                  "id": "batch_2024_03_15_123456",
                  "batch_name": "NYC Restaurants March 2024",
                  "status": "pending",
                  "jobs": {
                    "pending": [
                      "place_nyc_123",
                      "place_nyc_456"
                    ],
                    "in_progress": [],
                    "completed": [],
                    "failed": []
                  }
                }
              }
            }
          },
          "400": {
            "description": "Batch size exceeds maximum limit of 50,000 records or invalid input format"
          },
          "401": {
            "description": "Invalid API credentials"
          }
        }
      },
      "get": {
        "tags": [
          "batches"
        ],
        "summary": "List batches",
        "description": "Retrieve batches for an organization with pagination and optional search by name.\n\nReturns a paginated list of batch jobs with their metadata including batch ID,\ncreation timestamp, and job counts. If 'query' is provided, only batches whose name matches (case-insensitive, substring) will be returned.",
        "operationId": "list_all_batches_endpoint__org_slug__place_enrichment_batches_get",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "maximum": 500,
              "minimum": 1,
              "description": "Number of batches to return per page",
              "default": 10,
              "title": "Limit"
            },
            "description": "Number of batches to return per page"
          },
          {
            "name": "offset",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 0,
              "description": "Number of batches to skip",
              "default": 0,
              "title": "Offset"
            },
            "description": "Number of batches to skip"
          },
          {
            "name": "query",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Optional search string to filter batches by name (case-insensitive)",
              "title": "Query"
            },
            "description": "Optional search string to filter batches by name (case-insensitive)"
          },
          {
            "name": "apiKey",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Apikey"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "List of all batches for the organization with pagination",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaginatedBatchesResponse"
                },
                "example": {
                  "batches": [
                    {
                      "id": "batch_2025_03_10_123456",
                      "name": "NYC Restaurants March 2025",
                      "created_at": "2025-03-10T15:30:00Z",
                      "organization_id": "org-abc123",
                      "job_count": 150,
                      "completed_count": 142,
                      "failed_count": 3,
                      "pending_count": 0,
                      "in_progress_count": 5
                    }
                  ],
                  "total": 42,
                  "limit": 10,
                  "offset": 0
                }
              }
            }
          }
        }
      }
    },
    "/place_enrichment/batches/{batch_id}": {
      "get": {
        "tags": [
          "batches"
        ],
        "summary": "Get batch status",
        "operationId": "get_batch_status_endpoint__org_slug__place_enrichment_batches__batch_id__get",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "batch_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Batch Id"
            }
          },
          {
            "name": "enrichments",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Comma-separated list of enrichment names to get status for",
              "title": "Enrichments"
            },
            "description": "Comma-separated list of enrichment names to get status for"
          },
          {
            "name": "apiKey",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Apikey"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SubmittedPlaceBatchResponse"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "batches"
        ],
        "summary": "Delete a batch",
        "operationId": "delete_batch_endpoint__org_slug__place_enrichment_batches__batch_id__delete",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "batch_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Batch Id"
            }
          },
          {
            "name": "apiKey",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Apikey"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "batches"
        ],
        "summary": "Rename or update a batch",
        "description": "Update batch name and/or refresh flag; omitted fields keep their current value.",
        "operationId": "update_batch_endpoint__org_slug__place_enrichment_batches__batch_id__put",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "batch_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Batch Id"
            }
          },
          {
            "name": "apiKey",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Apikey"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateBatchRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Batch updated successfully",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "401": {
            "description": "Invalid API credentials"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Batch not found"
          }
        }
      }
    },
    "/place_enrichment/batches/{batch_id}/reprocess": {
      "post": {
        "tags": [
          "batches"
        ],
        "summary": "Reprocess a batch",
        "description": "Reprocess jobs in a specific batch.\n\nYou can specify which attributes to process by providing:\n- 'attributes': A list of specific attributes to enrich (e.g., [\"websites\", \"phoneNumbers\", \"categories\"])\n\nIf not provided, \"core\" attributes will be processed: websites, phoneNumbers, openingHours, names, address, categories, closed_permanently\n\nOptions:\n- failed_only: When true, only reprocess jobs with 'failed' status. When false, reprocess all jobs in the batch.\n- incomplete_only: When true, only reprocess jobs with 'pending' or 'in_progress' status. When false, reprocess all jobs in the batch (unless failed_only is true).",
        "operationId": "reprocess_batch_endpoint__org_slug__place_enrichment_batches__batch_id__reprocess_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "batch_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Batch Id"
            }
          },
          {
            "name": "apiKey",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Apikey"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ReprocessBatchRequest",
                "properties": {
                  "failed_only": {
                    "type": "boolean",
                    "description": "When true, only reprocess jobs with 'failed' status. When false, reprocess all jobs in the batch.",
                    "default": true
                  },
                  "incomplete_only": {
                    "type": "boolean",
                    "description": "When true, only reprocess jobs with 'pending' or 'in_progress' status. When false, reprocess all jobs in the batch (unless failed_only is true).",
                    "default": false
                  },
                  "refresh": {
                    "type": "boolean",
                    "description": "When true, force fresh enrichment ignoring cached data.",
                    "default": false
                  },
                  "attributes": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "description": "List of specific attributes to enrich (e.g. 'websites', 'phoneNumbers')."
                  }
                }
              },
              "example": {
                "failed_only": true,
                "incomplete_only": false,
                "refresh": false,
                "attributes": [
                  "websites",
                  "phoneNumbers",
                  "categories"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successfully initiated batch reprocessing",
            "content": {
              "application/json": {
                "schema": {},
                "example": {
                  "status": "success",
                  "message": "Started reprocessing 42 FAILED jobs from batch batch_2024_04_01_123456",
                  "job_count": 42,
                  "batch_id": "batch_2024_04_01_123456",
                  "excluded_deferred_count": 5
                }
              }
            }
          },
          "400": {
            "description": "No jobs found in batch"
          },
          "401": {
            "description": "Invalid API credentials"
          },
          "404": {
            "description": "Batch not found"
          }
        }
      }
    },
    "/place_enrichment/exports": {
      "post": {
        "tags": [
          "exports"
        ],
        "summary": "Create a CSV export",
        "description": "Unified export endpoint. Small requests return 200 text/csv inline; large requests\ncreate a durable async job and return 202 + status url. Idempotency-Key is optional but\nrecommended: send the same key on every retry of a create so a lost response can't spawn a\nduplicate job (the client can't know the delivery mode in advance). Omit it and the request\nstill succeeds, just without that retry-safety.",
        "operationId": "create_place_enrichment_export__org_slug__place_enrichment_exports_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Idempotency-Key"
            }
          },
          {
            "name": "apiKey",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Apikey"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateExportRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Sync delivery: the CSV is returned inline (small exports under the size gate).",
            "content": {
              "application/json": {
                "schema": {}
              },
              "text/csv": {}
            }
          },
          "202": {
            "description": "Async delivery: a durable job was created (or an existing one matched by Idempotency-Key); poll `status_url` until status is completed, then follow `download_url`.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExportStatusResponse"
                }
              }
            }
          },
          "404": {
            "description": "One or more batch_ids are not found for this organization."
          },
          "409": {
            "description": "Idempotency-Key was already used with a different set of batch_ids."
          },
          "502": {
            "description": "Failed to dispatch the export worker; the job row is marked failed."
          }
        }
      },
      "get": {
        "tags": [
          "exports"
        ],
        "summary": "List durable exports",
        "operationId": "list_place_enrichment_exports__org_slug__place_enrichment_exports_get",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "status",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Filter by status (queued/running/completed/failed).",
              "title": "Status"
            },
            "description": "Filter by status (queued/running/completed/failed)."
          },
          {
            "name": "cursor",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Cursor"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "maximum": 200,
              "minimum": 1,
              "default": 50,
              "title": "Limit"
            }
          },
          {
            "name": "apiKey",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Apikey"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExportListResponse"
                }
              }
            }
          },
          "400": {
            "description": "Malformed pagination cursor."
          }
        }
      }
    },
    "/place_enrichment/exports/{export_id}": {
      "get": {
        "tags": [
          "exports"
        ],
        "summary": "Get export status",
        "operationId": "get_place_enrichment_export__org_slug__place_enrichment_exports__export_id__get",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "export_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Export Id"
            }
          },
          {
            "name": "apiKey",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Apikey"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExportStatusResponse"
                }
              }
            }
          },
          "404": {
            "description": "Export not found for this organization."
          }
        }
      }
    },
    "/place_enrichment/exports/{export_id}/download": {
      "get": {
        "tags": [
          "exports"
        ],
        "summary": "Download a completed export",
        "operationId": "download_place_enrichment_export__org_slug__place_enrichment_exports__export_id__download_get",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "export_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Export Id"
            }
          },
          {
            "name": "apiKey",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Apikey"
            }
          }
        ],
        "responses": {
          "307": {
            "description": "Temporary redirect to a short-lived signed URL for the CSV artifact.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "404": {
            "description": "Export not found for this organization."
          },
          "409": {
            "description": "Export is not ready (status is not completed)."
          },
          "410": {
            "description": "Export artifact has expired and is no longer downloadable."
          }
        }
      }
    },
    "/place_enrichment/attributes": {
      "get": {
        "tags": [
          "attributes"
        ],
        "summary": "Get all available attributes",
        "description": "Get metadata for all available enrichment attributes",
        "operationId": "get_enrichment_attributes__org_slug__place_enrichment_attributes_get",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "apiKey",
            "in": "header",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Apikey"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V1AttributesResponse"
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "AddressDetails": {
        "properties": {
          "full_address": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Full Address",
            "description": "Full formatted address string"
          },
          "unit_number": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Unit Number",
            "description": "An apartment, unit, office, lot, or other secondary unit designator"
          },
          "floor": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Floor",
            "description": "Expressions indicating a floor number e.g. '3rd Floor', 'Ground Floor', etc."
          },
          "building": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Building",
            "description": "Building name e.g. 'Sun Hung Kai Centre', 'The Center', 'Empire State Building'"
          },
          "block": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Block",
            "description": "Block number, used in Singapore (SG) e.g., 'Block 329', Malaysia (MY) e.g., 'Blok A', and Indonesia (ID) e.g., 'Blok G5 No. 17'"
          },
          "km": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Km",
            "description": "Kilometer marker, commonly used in Malaysia (MY) e.g., 'KM 12, Jalan Cheras' and Indonesia (ID) e.g., 'KM 53, Jl. Tol Jakarta‑Cikampek'. Rarely used in Singapore. Should be parsed as a number (e.g., 'KM 75' should be parsed as '75')."
          },
          "house": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "House"
          },
          "street": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Street"
          },
          "neighborhood": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Neighborhood"
          },
          "suburb": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Suburb"
          },
          "city": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "City"
          },
          "state": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "State"
          },
          "country": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Country"
          },
          "postalCode": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Postalcode"
          }
        },
        "type": "object",
        "title": "AddressDetails"
      },
      "AttributeSet": {
        "type": "string",
        "enum": [
          "open_closed",
          "core",
          "all"
        ],
        "title": "AttributeSet",
        "description": "Predefined attribute group presets exposed by the API."
      },
      "AttributeStatusDistribution": {
        "properties": {
          "RUN": {
            "$ref": "#/components/schemas/AttributeStatusGroup"
          },
          "ERROR": {
            "$ref": "#/components/schemas/AttributeStatusGroup"
          },
          "NOT_RUN": {
            "$ref": "#/components/schemas/AttributeStatusGroup"
          },
          "RUN_CONDITION_FAILED": {
            "$ref": "#/components/schemas/AttributeStatusGroup"
          }
        },
        "type": "object",
        "required": [
          "RUN",
          "ERROR",
          "NOT_RUN",
          "RUN_CONDITION_FAILED"
        ],
        "title": "AttributeStatusDistribution",
        "description": "Distribution of statuses for a single attribute."
      },
      "AttributeStatusEnum": {
        "type": "string",
        "enum": [
          "NOT FOUND",
          "ADDED",
          "VERIFIED",
          "CORRECTED",
          "NOT VERIFIED",
          "NOT ENRICHED",
          "RUN",
          "RUN_CONDITION_FAILED",
          "ERROR",
          "NOT_RUN"
        ],
        "title": "AttributeStatusEnum"
      },
      "AttributeStatusGroup": {
        "properties": {
          "total": {
            "type": "integer",
            "title": "Total",
            "description": "Total count of places with this status"
          },
          "ids": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Ids",
            "description": "List of all place IDs with this status"
          }
        },
        "type": "object",
        "required": [
          "total",
          "ids"
        ],
        "title": "AttributeStatusGroup",
        "description": "Status group with counts and all IDs."
      },
      "BatchJob": {
        "properties": {
          "id": {
            "type": "string",
            "title": "Id"
          },
          "batch_name": {
            "type": "string",
            "title": "Batch Name"
          },
          "status_counts": {
            "additionalProperties": {
              "type": "integer"
            },
            "type": "object",
            "title": "Status Counts"
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "Created At"
          },
          "status": {
            "$ref": "#/components/schemas/BatchJobStatus"
          },
          "metadata": {
            "anyOf": [
              {
                "type": "null"
              }
            ]
          },
          "refresh": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Refresh"
          }
        },
        "type": "object",
        "required": [
          "id",
          "batch_name",
          "status_counts",
          "created_at",
          "status"
        ],
        "title": "BatchJob"
      },
      "BatchJobStatus": {
        "type": "string",
        "enum": [
          "pending",
          "queued",
          "in_progress",
          "completed",
          "failed"
        ],
        "title": "BatchJobStatus"
      },
      "ConfidenceScore": {
        "type": "string",
        "enum": [
          "VERY_HIGH",
          "HIGH",
          "MEDIUM",
          "LOW",
          "NONE"
        ],
        "title": "ConfidenceScore"
      },
      "CreateExportRequest": {
        "properties": {
          "batch_ids": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "minItems": 1,
            "title": "Batch Ids",
            "description": "Batch IDs to export (must be owned by the org).",
            "example": [
              "batch_2024_03_15_123456",
              "batch_2024_03_16_654321"
            ]
          }
        },
        "type": "object",
        "required": [
          "batch_ids"
        ],
        "title": "CreateExportRequest"
      },
      "DayOfWeek": {
        "type": "string",
        "enum": [
          "Sun",
          "Mon",
          "Tue",
          "Wed",
          "Thu",
          "Fri",
          "Sat"
        ],
        "title": "DayOfWeek",
        "description": "Days of week in three-letter format."
      },
      "DaysGroupedByHoursFormat": {
        "properties": {
          "days": {
            "items": {
              "$ref": "#/components/schemas/DayOfWeek"
            },
            "type": "array",
            "title": "Days"
          },
          "opens": {
            "type": "string",
            "title": "Opens"
          },
          "closes": {
            "type": "string",
            "title": "Closes"
          }
        },
        "type": "object",
        "required": [
          "days",
          "opens",
          "closes"
        ],
        "title": "DaysGroupedByHoursFormat",
        "description": "Represents opening hours for a group of days.\n\nExample:\n    {\n        \"days\": [\"Mon\", \"Tue\", \"Wed\"],\n        \"opens\": \"09:00\",  # 24h format\n        \"closes\": \"17:00\"  # 24h format\n    }"
      },
      "ExportListResponse": {
        "properties": {
          "exports": {
            "items": {
              "$ref": "#/components/schemas/ExportStatusResponse"
            },
            "type": "array",
            "title": "Exports"
          },
          "next_cursor": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Next Cursor",
            "description": "Pass as `cursor` to fetch the next page; null when no more pages."
          }
        },
        "type": "object",
        "required": [
          "exports"
        ],
        "title": "ExportListResponse",
        "description": "A page of durable exports, newest first, with an opaque keyset cursor for the next page\n(null when the last page has been reached)."
      },
      "ExportStatusResponse": {
        "properties": {
          "id": {
            "type": "string",
            "title": "Id",
            "description": "Unique export identifier.",
            "example": "exp_2f0ce4cf"
          },
          "status": {
            "type": "string",
            "title": "Status",
            "description": "queued | running | completed | failed | expired.",
            "example": "completed"
          },
          "batch_ids": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Batch Ids",
            "description": "Batch IDs included in this export.",
            "example": [
              "batch_2024_03_15_123456"
            ]
          },
          "batch_names": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object",
            "title": "Batch Names",
            "description": "Best-effort {batch_id -> name} map; a batch id is omitted if its name could not be resolved.",
            "example": {
              "batch_2024_03_15_123456": "NYC Restaurants March 2024"
            }
          },
          "created_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Created At",
            "description": "ISO-8601 creation timestamp."
          },
          "updated_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Updated At",
            "description": "ISO-8601 last-update timestamp."
          },
          "status_url": {
            "type": "string",
            "title": "Status Url",
            "description": "Relative URL to poll this export's status.",
            "example": "/place_enrichment/exports/exp_2f0ce4cf"
          },
          "download_url": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Download Url",
            "description": "Relative download URL; present only while status is completed and unexpired.",
            "example": "/place_enrichment/exports/exp_2f0ce4cf/download"
          },
          "error": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Error",
            "description": "Failure reason when status is failed."
          },
          "metadata": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Metadata",
            "description": "Worker-reported stats (row counts, per-stage timings) once available."
          },
          "expired": {
            "type": "boolean",
            "title": "Expired",
            "description": "True when a completed export has aged past its retention window.",
            "example": false
          }
        },
        "type": "object",
        "required": [
          "id",
          "status",
          "batch_ids",
          "status_url",
          "expired"
        ],
        "title": "ExportStatusResponse",
        "description": "Status of a durable CSV export job. Returned by the async create path (202), the status\nendpoint, and as each element of the list endpoint. `status` is one of queued/running/\ncompleted/failed, or `expired` once a completed export passes its retention window (at which\npoint `download_url` is null and the download route returns 410)."
      },
      "GenericJobOutputs": {
        "properties": {
          "reprompt_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Reprompt Id"
          },
          "coordinates": {
            "anyOf": [
              {
                "prefixItems": [
                  {
                    "type": "number"
                  },
                  {
                    "type": "number"
                  }
                ],
                "type": "array",
                "maxItems": 2,
                "minItems": 2
              },
              {
                "type": "null"
              }
            ],
            "title": "Coordinates",
            "description": "Enriched coordinates as [latitude, longitude]."
          },
          "coordinates_distance": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Coordinates Distance",
            "description": "Distance in meters between input coordinates and enriched coordinates. Returns 0 if coordinates were not enriched."
          },
          "open_closed_status": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Open Closed Status"
          },
          "date_closed": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Date Closed"
          },
          "date_opened": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Date Opened"
          },
          "chain_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Chain Id"
          },
          "chain_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Chain Name"
          },
          "chain_domains": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Chain Domains"
          },
          "alternative_names": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Alternative Names"
          },
          "chain_wikipedia_url": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Chain Wikipedia Url"
          },
          "number_of_locations": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Number Of Locations"
          },
          "logo_url": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Logo Url"
          },
          "facebook_followers": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Facebook Followers"
          },
          "facebook_likes": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Facebook Likes"
          },
          "facebook_page_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Facebook Page Id"
          },
          "facebook_bio": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Facebook Bio"
          },
          "instagram_followers": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Instagram Followers"
          },
          "instagram_media_count": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Instagram Media Count"
          },
          "instagram_username": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Instagram Username"
          },
          "instagram_profile_pic_url": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Instagram Profile Pic Url"
          },
          "instagram_bio": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Instagram Bio"
          },
          "approximate_review_count": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Approximate Review Count",
            "description": "Approximate review count in buckets (e.g., '<10', '10-50', '50-100', etc.)"
          },
          "approximate_average_rating": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Approximate Average Rating",
            "description": "Approximate average rating out of 5 from web search"
          },
          "name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Name"
          },
          "multilingual_names": {
            "additionalProperties": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ]
            },
            "type": "object",
            "title": "Multilingual Names"
          },
          "alt_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Alt Name"
          },
          "official_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Official Name"
          },
          "brand_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Brand Name"
          },
          "common_names": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Common Names"
          },
          "storefront_images": {
            "anyOf": [
              {
                "items": {
                  "$ref": "#/components/schemas/StorefrontImage"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Storefront Images"
          },
          "available_services": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Available Services"
          },
          "has_delivery": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Has Delivery"
          },
          "has_takeout": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Has Takeout"
          },
          "has_dining": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Has Dining"
          },
          "has_pickup": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Has Pickup"
          },
          "address": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AddressDetails"
              },
              {
                "type": "null"
              }
            ],
            "description": "International normalized version of the address"
          },
          "address_localized": {
            "anyOf": [
              {
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/IndonesiaAddress"
                  },
                  {
                    "$ref": "#/components/schemas/JapaneseAddress"
                  },
                  {
                    "$ref": "#/components/schemas/SingaporeAddress"
                  },
                  {
                    "$ref": "#/components/schemas/MalaysiaAddress"
                  },
                  {
                    "$ref": "#/components/schemas/HongKongAddressDetails"
                  },
                  {
                    "$ref": "#/components/schemas/UAEAddress"
                  }
                ],
                "discriminator": {
                  "propertyName": "country_code",
                  "mapping": {
                    "AE": "#/components/schemas/UAEAddress",
                    "HK": "#/components/schemas/HongKongAddressDetails",
                    "ID": "#/components/schemas/IndonesiaAddress",
                    "JP": "#/components/schemas/JapaneseAddress",
                    "MY": "#/components/schemas/MalaysiaAddress",
                    "SG": "#/components/schemas/SingaporeAddress"
                  }
                }
              },
              {
                "type": "null"
              }
            ],
            "title": "Address Localized"
          },
          "categories": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Categories"
          },
          "website": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Website"
          },
          "phone": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Phone"
          },
          "phone_additional": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Phone Additional"
          },
          "naics_code": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Naics Code"
          },
          "naics_description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Naics Description"
          },
          "merchant_category_code": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Merchant Category Code"
          },
          "mcc_description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Mcc Description"
          },
          "merchant_category_group": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Merchant Category Group"
          },
          "merchant_super_industry": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Merchant Super Industry"
          },
          "located_within": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Located Within"
          },
          "instagram": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Instagram"
          },
          "facebook": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Facebook"
          },
          "tiktok": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Tiktok"
          },
          "opening_hours": {
            "anyOf": [
              {
                "additionalProperties": {
                  "type": "string"
                },
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Opening Hours"
          },
          "opening_hours_grouped_by_hours": {
            "anyOf": [
              {
                "items": {
                  "$ref": "#/components/schemas/DaysGroupedByHoursFormat"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Opening Hours Grouped By Hours"
          },
          "is_open_24h": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Is Open 24H"
          },
          "menu_urls": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Menu Urls"
          },
          "menu_url_official": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Menu Url Official",
            "description": "The official menu URL from the business's own website"
          },
          "menu_content": {
            "anyOf": [
              {
                "items": {
                  "$ref": "#/components/schemas/Menu"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Menu Content",
            "description": "Structured menu content parsed from the official menu URL"
          },
          "menu_images": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Menu Images",
            "description": "List of image URLs for menu images found through image search"
          },
          "price_tier": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Price Tier"
          },
          "average_price": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Average Price",
            "description": "Average price in local currency (from price_tier enrichment)"
          },
          "currency": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Currency",
            "description": "3-letter ISO currency code for average_price (from price_tier enrichment)"
          },
          "cuisines": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Cuisines"
          },
          "review_count": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Review Count",
            "description": "Total number of reviews (integer for exact count, string bucket for approximate count)"
          },
          "average_rating": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Average Rating",
            "description": "Average rating out of 5"
          },
          "wilson_score": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Wilson Score",
            "description": "Wilson score lower bound (confidence=0.95) for positive ratings"
          },
          "popularity": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Popularity",
            "description": "Popularity score from 0 to 1 based on average rating and review count"
          },
          "review_summary": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Review Summary",
            "description": "One-line summary of reviews"
          },
          "summary": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Summary",
            "description": "One-line summary of reviews (schema-expected field name)"
          },
          "recent_review_count": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Recent Review Count"
          },
          "instagram_profile": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Instagram Profile"
          },
          "building_footprint": {
            "anyOf": [
              {},
              {
                "type": "null"
              }
            ],
            "title": "Building Footprint"
          },
          "entity_type": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Entity Type"
          },
          "digital_footprint": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Digital Footprint"
          },
          "place_definition": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Place Definition"
          },
          "place_reality": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Place Reality"
          },
          "parking_spaces_total": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Parking Spaces Total",
            "description": "Total number of parking spaces available for customers"
          },
          "parking_spaces_street": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Parking Spaces Street",
            "description": "Number of street parking spaces available"
          },
          "parking_spaces_shared": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Parking Spaces Shared",
            "description": "Number of shared parking spaces available"
          },
          "parking_spaces_dedicated": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Parking Spaces Dedicated",
            "description": "Number of dedicated parking spaces available"
          },
          "parking_spaces_image_url": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Parking Spaces Image Url",
            "description": "URL of the satellite/aerial image used for analysis"
          },
          "traffic_control": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Traffic Control",
            "description": "Whether traffic control manages traffic ingress/egress to the location"
          },
          "one_line_summary": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "One Line Summary",
            "description": "A brief, descriptive phrase capturing the essence and atmosphere of the place"
          },
          "site_quality_score": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Site Quality Score",
            "description": "Overall site quality assessment (excellent, good, fair, poor, unknown)"
          },
          "accessibility_rating": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Accessibility Rating",
            "description": "How accessible the site is from major roads (excellent, good, fair, poor, unknown)"
          },
          "accessibility_summary": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Accessibility Summary",
            "description": "Summary of route accessibility from cardinal directions"
          },
          "primary_turns_required": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Primary Turns Required",
            "description": "Number of turns required from primary access route"
          },
          "min_turns": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Min Turns",
            "description": "The minimum number of turns required to reach the destination from the primary access route"
          },
          "primary_turns": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Primary Turns",
            "description": "The number of turns required from the primary access route"
          },
          "primary_turns_route_matrix_visualization": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Primary Turns Route Matrix Visualization",
            "description": "Route matrix visualization data for map rendering"
          },
          "visibility_rating": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Visibility Rating",
            "description": "How visible the business is from the street (high, medium, low, none, unknown)"
          },
          "signage_summary": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Signage Summary",
            "description": "Summary of available signage (pylon, monument)"
          },
          "has_brand_signage": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Has Brand Signage",
            "description": "Whether the business has identifiable brand signage"
          },
          "pylon_sign_exists": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Pylon Sign Exists",
            "description": "Whether a pylon sign exists at the location"
          },
          "pylon_coordinates": {
            "anyOf": [
              {
                "items": {
                  "type": "number"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Pylon Coordinates",
            "description": "Pylon sign coordinates as [latitude, longitude]"
          },
          "pylon_latitude": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Pylon Latitude",
            "description": "Latitude of the pylon sign"
          },
          "pylon_longitude": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Pylon Longitude",
            "description": "Longitude of the pylon sign"
          },
          "pylon_number_of_brands": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Pylon Number Of Brands",
            "description": "Number of brands on pylon sign (single, multiple, uncertain, none)"
          },
          "pylon_reasoning": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Pylon Reasoning",
            "description": "Reasoning for pylon sign analysis"
          },
          "pylon_includes_brand_sign": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Pylon Includes Brand Sign",
            "description": "Whether pylon sign includes the target brand"
          },
          "monument_sign_exists": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Monument Sign Exists",
            "description": "Whether a monument sign exists at the location"
          },
          "monument_coordinates": {
            "anyOf": [
              {
                "items": {
                  "type": "number"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Monument Coordinates",
            "description": "Monument sign coordinates as [latitude, longitude]"
          },
          "monument_latitude": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Monument Latitude",
            "description": "Latitude of the monument sign"
          },
          "monument_longitude": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Monument Longitude",
            "description": "Longitude of the monument sign"
          },
          "monument_number_of_brands": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Monument Number Of Brands",
            "description": "Number of brands on monument sign (single, multiple, uncertain, none)"
          },
          "monument_reasoning": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Monument Reasoning",
            "description": "Reasoning for monument sign analysis"
          },
          "monument_includes_brand_sign": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Monument Includes Brand Sign",
            "description": "Whether monument sign includes the target brand"
          },
          "sign_locations": {
            "anyOf": [
              {
                "items": {
                  "additionalProperties": true,
                  "type": "object"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Sign Locations",
            "description": "List of all detected sign locations with coordinates and details"
          },
          "location_type": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Location Type",
            "description": "Type of location (shopping_center, standalone_building, mixed_use_building, unknown)"
          },
          "building_condition": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Building Condition",
            "description": "Detailed description of building condition and maintenance"
          },
          "building_condition_score": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Building Condition Score",
            "description": "Building condition quality score (above_average, average, below_average, none)"
          },
          "shopping_center_condition": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Shopping Center Condition",
            "description": "Condition of shopping center if applicable, null otherwise"
          },
          "shopping_center_condition_score": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Shopping Center Condition Score",
            "description": "Shopping center condition quality score (above_average, average, below_average, none)"
          },
          "location_category": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Location Category",
            "description": "Type of location (shopping_center, standalone_building, mixed_use_building, unknown)"
          },
          "building_condition_summary": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Building Condition Summary",
            "description": "Summary of building and property condition"
          },
          "building_condition_rating": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Building Condition Rating",
            "description": "Building condition score (excellent, good, fair, poor)"
          },
          "key_strengths": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Key Strengths",
            "description": "Key strengths of the location"
          },
          "potential_concerns": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Potential Concerns",
            "description": "Potential concerns or weaknesses"
          },
          "route_matrix_visualization": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Route Matrix Visualization",
            "description": "Consolidated route matrix data for map visualization including routes, candidate points, and center coordinates"
          },
          "prominence": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Prominence",
            "description": "Overall prominence level (excellent, average, not visible)"
          },
          "entrance_views": {
            "anyOf": [
              {
                "items": {
                  "additionalProperties": true,
                  "type": "object"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Entrance Views",
            "description": "Street view images showing entrance visibility"
          },
          "reprompt_core_attributes": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Reprompt Core Attributes"
          },
          "apple_business_attributes": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Apple Business Attributes"
          }
        },
        "additionalProperties": false,
        "type": "object",
        "title": "GenericJobOutputs"
      },
      "HongKongAddressDetails": {
        "properties": {
          "full_address": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Full Address",
            "description": "Full formatted address string"
          },
          "unit_number": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Unit Number",
            "description": "An apartment, unit, office, lot, or other secondary unit designator"
          },
          "floor": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Floor",
            "description": "Expressions indicating a floor number e.g. '3rd Floor', 'Ground Floor', etc."
          },
          "building": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Building",
            "description": "Building name e.g. 'Sun Hung Kai Centre', 'The Center', 'Empire State Building'"
          },
          "block": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Block",
            "description": "Block number, used in Singapore (SG) e.g., 'Block 329', Malaysia (MY) e.g., 'Blok A', and Indonesia (ID) e.g., 'Blok G5 No. 17'"
          },
          "km": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Km",
            "description": "Kilometer marker, commonly used in Malaysia (MY) e.g., 'KM 12, Jalan Cheras' and Indonesia (ID) e.g., 'KM 53, Jl. Tol Jakarta‑Cikampek'. Rarely used in Singapore. Should be parsed as a number (e.g., 'KM 75' should be parsed as '75')."
          },
          "house": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "House"
          },
          "street": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Street"
          },
          "neighborhood": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Neighborhood"
          },
          "suburb": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Suburb"
          },
          "city": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "City"
          },
          "state": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "State"
          },
          "country": {
            "type": "string",
            "title": "Country",
            "description": "Country name",
            "default": "Hong Kong"
          },
          "postalCode": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Postalcode"
          },
          "country_code": {
            "type": "string",
            "const": "HK",
            "title": "Country Code",
            "description": "Country code for Hong Kong",
            "default": "HK"
          },
          "district": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "District",
            "description": "District (e.g., 'Wan Chai', 'Tsim Sha Tsui', 'Central')"
          },
          "area": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Area",
            "description": "Area ('Hong Kong', 'Kowloon', 'New Territories')"
          }
        },
        "type": "object",
        "title": "HongKongAddressDetails",
        "description": "Extended schema for Hong Kong addresses that inherits from the standard AddressDetails class.\nAdds district and area fields which are specific to Hong Kong's addressing system."
      },
      "IndonesiaAddress": {
        "properties": {
          "country": {
            "type": "string",
            "title": "Country",
            "description": "Country name",
            "default": "Indonesia"
          },
          "country_code": {
            "type": "string",
            "const": "ID",
            "title": "Country Code",
            "description": "ISO 3166-2 country code for Indonesia",
            "default": "ID"
          },
          "administrative_area_level1": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Administrative Area Level1",
            "description": "Province (resolvable), e.g., Daerah Khusus Ibukota Jakarta"
          },
          "administrative_area_level2": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Administrative Area Level2",
            "description": "Regency/City (resolvable), e.g., Kota Jakarta Selatan"
          },
          "administrative_area_level3": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Administrative Area Level3",
            "description": "District (resolvable), e.g., Setiabudi"
          },
          "administrative_area_level4": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Administrative Area Level4",
            "description": "Village/Sub-District (resolvable), e.g., Karet Kuningan"
          },
          "rt_rw": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Rt Rw",
            "description": "RT/RW (neighborhood division), e.g., RT.10/RW.7"
          },
          "street": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Street",
            "description": "Street name, e.g., Jl. Setia Budi Selatan Raya"
          },
          "gang": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Gang",
            "description": "Gang/Alley, e.g., Gg. Jati"
          },
          "building": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Building",
            "description": "Building's name, e.g., Ruko Bekasi Town Square"
          },
          "km": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Km",
            "description": "Kilometer, means the distance between the location and one of the endpoints of a road, e.g., KM.31"
          },
          "block": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Block",
            "description": "Block, contains multiple house numbers, e.g., Blok B7-8"
          },
          "house_no": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "House No",
            "description": "House number, e.g., No.2"
          },
          "kav": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Kav",
            "description": "Kav, e.g., Kav 53"
          },
          "postcode": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Postcode",
            "description": "Postal code, e.g., 35365"
          },
          "floor": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Floor",
            "description": "Floor, e.g., 2nd Floor"
          },
          "unit": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Unit",
            "description": "Unit number inside a building, e.g., Unit 216"
          }
        },
        "type": "object",
        "title": "IndonesiaAddress",
        "description": "Schema for Indonesian addresses. It covers common components like country, administrative areas, and detailed address parts.",
        "example": {
          "administrative_area_level1": "Daerah Khusus Ibukota Jakarta",
          "administrative_area_level2": "Kota Jakarta Selatan",
          "administrative_area_level3": "Setiabudi",
          "administrative_area_level4": "Karet Kuningan",
          "building": "Ruko Bekasi Town Square",
          "country": "Indonesia",
          "gang": "Gg. Jati",
          "postcode": "35365",
          "rt_rw": "RT.10/RW.7",
          "street": "Jl. Setia Budi Selatan Raya"
        }
      },
      "JapaneseAddress": {
        "properties": {
          "country": {
            "type": "string",
            "title": "Country",
            "description": "Country name",
            "default": "日本"
          },
          "country_code": {
            "type": "string",
            "const": "JP",
            "title": "Country Code",
            "description": "Country code for Japan",
            "default": "JP"
          },
          "postal_code": {
            "anyOf": [
              {
                "type": "string",
                "pattern": "^(?:〒)?(?:\\d{3}-\\d{4}|\\d{7})$"
              },
              {
                "type": "null"
              }
            ],
            "title": "Postal Code",
            "description": "7-digit postal code in the format '〒123-4567', '123-4567' or '1234567'"
          },
          "prefecture": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Prefecture",
            "description": "Prefecture name, e.g., 熊本県 (Kumamoto Prefecture)"
          },
          "municipality": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Municipality",
            "description": "City, ward, town, or district name, e.g., 阿蘇市 (Aso City)"
          },
          "town_area": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Town Area",
            "description": "Town or area within the municipality, e.g., 内牧 (Uchimaki)"
          },
          "street_address": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Street Address",
            "description": "Street address including block and house number, e.g., ２５２−６"
          }
        },
        "type": "object",
        "title": "JapaneseAddress",
        "description": "Schema for Japanese addresses. It covers common components like postal codes, prefectures, municipalities, and detailed address parts.",
        "example": {
          "country": "日本",
          "municipality": "阿蘇市",
          "postal_code": "869-2301",
          "prefecture": "熊本県",
          "street_address": "２５２−６",
          "town_area": "内牧"
        }
      },
      "JobConfidenceScores": {
        "properties": {
          "open_closed_status": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ConfidenceScore"
              },
              {
                "type": "null"
              }
            ],
            "description": "Confidence score for the open/closed status of a place. VERY_HIGH (95% accuracy) indicates extremely reliable open/closed status. HIGH (90% accuracy) indicates very reliable status. MEDIUM (80% accuracy) indicates reasonably reliable status. LOW (70% accuracy) indicates limited online evidence but likely correct status.NONE indicates insufficient evidence to determine status. This happens when a place has no internet presence at all."
          },
          "phone": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ConfidenceScore"
              },
              {
                "type": "null"
              }
            ]
          },
          "website": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ConfidenceScore"
              },
              {
                "type": "null"
              }
            ]
          },
          "address": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ConfidenceScore"
              },
              {
                "type": "null"
              }
            ]
          },
          "categories": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ConfidenceScore"
              },
              {
                "type": "null"
              }
            ]
          },
          "coordinates": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ConfidenceScore"
              },
              {
                "type": "null"
              }
            ]
          },
          "opening_hours": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ConfidenceScore"
              },
              {
                "type": "null"
              }
            ]
          },
          "entity_type": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ConfidenceScore"
              },
              {
                "type": "null"
              }
            ]
          },
          "name": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ConfidenceScore"
              },
              {
                "type": "null"
              }
            ]
          },
          "parking_spaces": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ConfidenceScore"
              },
              {
                "type": "null"
              }
            ]
          },
          "parking_spaces_total": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ConfidenceScore"
              },
              {
                "type": "null"
              }
            ]
          },
          "parking_spaces_street": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ConfidenceScore"
              },
              {
                "type": "null"
              }
            ]
          },
          "parking_spaces_shared": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ConfidenceScore"
              },
              {
                "type": "null"
              }
            ]
          },
          "parking_spaces_dedicated": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ConfidenceScore"
              },
              {
                "type": "null"
              }
            ]
          },
          "chain": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ConfidenceScore"
              },
              {
                "type": "null"
              }
            ]
          },
          "reprompt_core": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ConfidenceScore"
              },
              {
                "type": "null"
              }
            ]
          },
          "located_within": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ConfidenceScore"
              },
              {
                "type": "null"
              }
            ]
          },
          "price_tier": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ConfidenceScore"
              },
              {
                "type": "null"
              }
            ]
          },
          "approximate_user_reviews": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ConfidenceScore"
              },
              {
                "type": "null"
              }
            ]
          },
          "menu": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ConfidenceScore"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "type": "object",
        "title": "JobConfidenceScores"
      },
      "JobListResponse": {
        "properties": {
          "jobs": {
            "items": {
              "$ref": "#/components/schemas/PlaceJobResult"
            },
            "type": "array",
            "title": "Jobs"
          },
          "total": {
            "type": "integer",
            "title": "Total",
            "description": "Total number of jobs available"
          },
          "limit": {
            "type": "integer",
            "title": "Limit",
            "description": "Number of jobs per page"
          },
          "offset": {
            "type": "integer",
            "title": "Offset",
            "description": "Starting position of the current page"
          }
        },
        "type": "object",
        "required": [
          "jobs",
          "total",
          "limit",
          "offset"
        ],
        "title": "JobListResponse"
      },
      "JobMetadata": {
        "properties": {
          "last_enriched": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Last Enriched",
            "description": "Timestamp of the last enrichment"
          },
          "enrichment_metadata": {
            "anyOf": [
              {
                "additionalProperties": {
                  "additionalProperties": true,
                  "type": "object"
                },
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Enrichment Metadata"
          },
          "attribute_status": {
            "additionalProperties": {
              "$ref": "#/components/schemas/AttributeStatusEnum"
            },
            "type": "object",
            "title": "Attribute Status"
          },
          "country_code": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Country Code"
          }
        },
        "type": "object",
        "required": [
          "attribute_status"
        ],
        "title": "JobMetadata"
      },
      "JobReasoning": {
        "properties": {
          "open_closed_status": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Open Closed Status"
          },
          "address": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Address"
          },
          "categories": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Categories"
          },
          "website": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Website"
          },
          "phone": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Phone"
          },
          "facebook": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Facebook"
          },
          "instagram": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Instagram"
          },
          "tiktok": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Tiktok"
          },
          "opening_hours": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Opening Hours"
          },
          "name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Name"
          },
          "coordinates": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Coordinates"
          },
          "price_tier": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Price Tier"
          },
          "menu": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Menu"
          },
          "cuisine": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Cuisine"
          },
          "approximate_user_reviews": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Approximate User Reviews"
          },
          "chain": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Chain"
          },
          "entity_type": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Entity Type"
          },
          "digital_footprint": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Digital Footprint"
          },
          "place_definition": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Place Definition"
          },
          "place_reality": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Place Reality"
          },
          "merchant": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Merchant"
          },
          "located_within": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Located Within"
          },
          "parking_spaces": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Parking Spaces"
          },
          "parking_spaces_total": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Parking Spaces Total"
          },
          "parking_spaces_street": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Parking Spaces Street"
          },
          "parking_spaces_shared": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Parking Spaces Shared"
          },
          "parking_spaces_dedicated": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Parking Spaces Dedicated"
          },
          "one_line_summary": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "One Line Summary"
          },
          "signage": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Signage"
          },
          "building_condition": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Building Condition"
          },
          "entrances": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Entrances"
          },
          "primary_turns": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Primary Turns"
          },
          "traffic_control": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Traffic Control"
          },
          "reprompt_core_attributes": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Reprompt Core Attributes"
          },
          "apple_business_attributes": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Apple Business Attributes"
          },
          "storefront_images": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Storefront Images"
          },
          "available_services": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Available Services"
          },
          "reprompt_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Reprompt Id"
          }
        },
        "type": "object",
        "title": "JobReasoning"
      },
      "MalaysiaAddress": {
        "properties": {
          "full_address": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Full Address",
            "description": "Full formatted address string"
          },
          "unit_number": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Unit Number",
            "description": "An apartment, unit, office, lot, or other secondary unit designator"
          },
          "floor": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Floor",
            "description": "Expressions indicating a floor number e.g. '3rd Floor', 'Ground Floor', etc."
          },
          "building": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Building",
            "description": "Building name e.g. 'Sun Hung Kai Centre', 'The Center', 'Empire State Building'"
          },
          "block": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Block",
            "description": "Block number, used in Singapore (SG) e.g., 'Block 329', Malaysia (MY) e.g., 'Blok A', and Indonesia (ID) e.g., 'Blok G5 No. 17'"
          },
          "km": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Km",
            "description": "Kilometer marker, commonly used in Malaysia (MY) e.g., 'KM 12, Jalan Cheras' and Indonesia (ID) e.g., 'KM 53, Jl. Tol Jakarta‑Cikampek'. Rarely used in Singapore. Should be parsed as a number (e.g., 'KM 75' should be parsed as '75')."
          },
          "house": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "House"
          },
          "street": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Street"
          },
          "neighborhood": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Neighborhood"
          },
          "suburb": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Suburb"
          },
          "city": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "City"
          },
          "state": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "State"
          },
          "country": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Country"
          },
          "postalCode": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Postalcode"
          },
          "country_code": {
            "type": "string",
            "const": "MY",
            "title": "Country Code",
            "description": "ISO 3166-2 country code for Malaysia",
            "default": "MY"
          },
          "administrative_area_level1": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Administrative Area Level1",
            "description": "Province (resolvable), e.g., Wilayah Persekutuan Kuala Lumpur"
          },
          "administrative_area_level2": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Administrative Area Level2",
            "description": "State (resolvable), e.g., Wilayah Persekutuan Kuala Lumpur"
          },
          "administrative_area_level3": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Administrative Area Level3",
            "description": "District (resolvable), e.g., Kuala Lumpur"
          },
          "administrative_area_level4": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Administrative Area Level4",
            "description": "Sub-District (resolvable), e.g., Kuala Lumpur"
          },
          "nearby_street": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Nearby Street",
            "description": "Nearby street name, e.g., Jln Ampang"
          },
          "lot": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Lot",
            "description": "Lot number, e.g., 123"
          },
          "sub_lot": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Sub Lot",
            "description": "Sub-lot number, e.g., 123"
          }
        },
        "type": "object",
        "title": "MalaysiaAddress",
        "description": "Schema for Malaysian addresses. It covers common components like country, administrative areas, and detailed address parts."
      },
      "Menu": {
        "properties": {
          "name": {
            "type": "string",
            "title": "Name",
            "default": "Menu"
          },
          "description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Description"
          },
          "footnote": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Footnote"
          },
          "currency": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Currency"
          },
          "sections": {
            "items": {
              "$ref": "#/components/schemas/MenuSection"
            },
            "type": "array",
            "title": "Sections"
          }
        },
        "type": "object",
        "required": [
          "sections"
        ],
        "title": "Menu"
      },
      "MenuChoice": {
        "properties": {
          "name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Name"
          },
          "prices": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/PriceInfo"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "type": "object",
        "title": "MenuChoice"
      },
      "MenuItem": {
        "properties": {
          "name": {
            "type": "string",
            "title": "Name"
          },
          "description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Description"
          },
          "data": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/MenuItemData"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "type": "object",
        "required": [
          "name"
        ],
        "title": "MenuItem"
      },
      "MenuItemData": {
        "properties": {
          "choices": {
            "anyOf": [
              {
                "items": {
                  "$ref": "#/components/schemas/MenuChoice"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Choices"
          }
        },
        "type": "object",
        "title": "MenuItemData"
      },
      "MenuSection": {
        "properties": {
          "name": {
            "type": "string",
            "title": "Name"
          },
          "description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Description"
          },
          "items": {
            "items": {
              "$ref": "#/components/schemas/MenuItem"
            },
            "type": "array",
            "title": "Items"
          }
        },
        "type": "object",
        "required": [
          "name",
          "items"
        ],
        "title": "MenuSection"
      },
      "PaginatedBatchesResponse": {
        "properties": {
          "batches": {
            "items": {
              "$ref": "#/components/schemas/BatchJob"
            },
            "type": "array",
            "title": "Batches"
          },
          "total": {
            "type": "integer",
            "title": "Total"
          },
          "limit": {
            "type": "integer",
            "title": "Limit"
          },
          "offset": {
            "type": "integer",
            "title": "Offset"
          }
        },
        "type": "object",
        "required": [
          "batches",
          "total",
          "limit",
          "offset"
        ],
        "title": "PaginatedBatchesResponse"
      },
      "PlaceBatchPayload": {
        "properties": {
          "batch_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Batch Id",
            "description": "Optional unique identifier for the batch. If not provided, a new UUID will be generated. If an existing batch ID is provided, new jobs will be added to that batch."
          },
          "batch_name": {
            "type": "string",
            "title": "Batch Name",
            "description": "The name of the batch. Only for display purposes. Recommended to use a descriptive human readable name."
          },
          "jobs": {
            "items": {
              "$ref": "#/components/schemas/PlaceJob"
            },
            "type": "array",
            "title": "Jobs",
            "description": "List of jobs to process. Maximum of 50,000 jobs per batch."
          },
          "attribute_set": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AttributeSet"
              },
              {
                "type": "null"
              }
            ],
            "description": "Deprecated preset applied to every job. Prefer an explicit `attributes` list. `open_closed` checks whether a place is open or permanently closed, while `core` and `all` both request `closed_permanently`, `websites`, `phoneNumbers`, `openingHours`, `names`, `address`, and `categories`. Merged with any explicit `attributes`."
          },
          "attributes": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Attributes",
            "description": "Batch-level attribute keys applied to every job (copied onto each `PlaceJob`; same merge rules as a single job: combined with `attribute_set`)."
          },
          "kick_off_jobs_now": {
            "type": "boolean",
            "title": "Kick Off Jobs Now",
            "description": "When true, jobs are enqueued for immediate processing and either attributes or attribute_set must be provided. When false, the batch is created without starting processing (upload only); attributes and attribute_set are optional.",
            "default": true
          },
          "owner_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Owner Id",
            "include_in_schema": false
          }
        },
        "type": "object",
        "required": [
          "batch_name",
          "jobs"
        ],
        "title": "PlaceBatchPayload"
      },
      "PlaceJob": {
        "properties": {
          "place_id": {
            "type": "string",
            "title": "Place Id",
            "description": "The customer-identifier for the place and retained as external_customer_id in the database. When not set, will automatically generate a UUID.",
            "example": "place_nyc_123"
          },
          "inputs": {
            "$ref": "#/components/schemas/UniversalPlace",
            "description": "The place to enrich",
            "example": {
              "country_code": "US",
              "full_address": "7 Carmine St, New York, NY 10014",
              "latitude": 40.7359,
              "longitude": -73.9911,
              "name": "Joe's Pizza"
            }
          },
          "attributes": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Attributes",
            "description": "List of attribute keys to enrich. See `GET /{org_slug}/place_enrichment/attributes_internal` for available keys and their required inputs. If both attribute_set and attributes are provided, both are merged (explicit attributes are added to the set from attribute_set).",
            "example": [
              "websites",
              "categories",
              "closed_permanently"
            ]
          },
          "attribute_set": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AttributeSet"
              },
              {
                "type": "null"
              }
            ],
            "description": "Deprecated preset for common enrichment requests. Prefer an explicit `attributes` list. `open_closed` checks whether a place is open or permanently closed, while `core` and `all` both request `closed_permanently`, `websites`, `phoneNumbers`, `openingHours`, `names`, `address`, and `categories`."
          },
          "attributes_enrichments": {
            "anyOf": [
              {
                "items": {
                  "type": "object"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Attributes Enrichments"
          },
          "refresh": {
            "type": "boolean",
            "title": "Refresh",
            "description": "If true, will force a refresh of the place even if it has already been enriched.",
            "default": false
          }
        },
        "type": "object",
        "required": [
          "place_id",
          "inputs"
        ],
        "title": "PlaceJob"
      },
      "PlaceJobResult": {
        "properties": {
          "place_id": {
            "type": "string",
            "title": "Place Id"
          },
          "status": {
            "type": "string",
            "title": "Status"
          },
          "job_metadata": {
            "$ref": "#/components/schemas/JobMetadata"
          },
          "inputs": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/UniversalPlace"
              }
            ],
            "title": "Inputs",
            "discriminator": {
              "propertyName": "input_type",
              "mapping": {
                "place": "#/components/schemas/UniversalPlace",
                "query": "#/components/schemas/InputQuery"
              }
            }
          },
          "outputs": {
            "title": "Outputs",
            "$ref": "#/components/schemas/GenericJobOutputs"
          },
          "reasoning": {
            "title": "Reasoning",
            "$ref": "#/components/schemas/JobReasoning"
          },
          "confidence_scores": {
            "$ref": "#/components/schemas/JobConfidenceScores",
            "description": "Confidence scores for various attributes"
          }
        },
        "type": "object",
        "required": [
          "place_id",
          "status",
          "job_metadata",
          "inputs",
          "outputs",
          "reasoning"
        ],
        "title": "PlaceJobResult"
      },
      "PriceInfo": {
        "properties": {
          "min": {
            "type": "string",
            "title": "Min"
          },
          "max": {
            "type": "string",
            "title": "Max",
            "default": ""
          }
        },
        "type": "object",
        "required": [
          "min"
        ],
        "title": "PriceInfo"
      },
      "ReprocessBatchRequest": {
        "properties": {
          "failed_only": {
            "type": "boolean",
            "title": "Failed Only",
            "description": "When true, only reprocess jobs with 'failed' status. When false, reprocess all jobs in the batch.",
            "default": true
          },
          "incomplete_only": {
            "type": "boolean",
            "title": "Incomplete Only",
            "description": "When true, only reprocess jobs with 'pending', 'queued' or 'in_progress' status. When false, reprocess all jobs in the batch (unless failed_only is true).",
            "default": false
          },
          "refresh": {
            "type": "boolean",
            "title": "Refresh",
            "description": "When true, force fresh enrichment ignoring cached data.",
            "default": false
          },
          "attributes": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Attributes",
            "description": "List of specific attributes to enrich (e.g. 'websites', 'phoneNumbers'). Merged with attribute_set when both are provided."
          },
          "attribute_set": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AttributeSet"
              },
              {
                "type": "null"
              }
            ],
            "description": "Deprecated preset for common enrichment requests. Prefer an explicit `attributes` list. `open_closed` checks whether a place is open or permanently closed, while `core` and `all` both request `closed_permanently`, `websites`, `phoneNumbers`, `openingHours`, `names`, `address`, and `categories`."
          },
          "use_previous_invocation_params": {
            "type": "boolean",
            "title": "Use Previous Invocation Params",
            "description": "When true, reuse each job's last-invocation parameters (attributes are inferred per place_id). Request-level attributes/attribute_set are only used as a fallback for place_ids that have no prior invocation.",
            "default": false
          }
        },
        "type": "object",
        "title": "ReprocessBatchRequest"
      },
      "ReprocessJobRequest": {
        "properties": {
          "place_ids": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Place Ids"
          },
          "attributes": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Attributes"
          },
          "attribute_set": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AttributeSet"
              },
              {
                "type": "null"
              }
            ],
            "description": "Deprecated preset for common enrichment requests. Prefer an explicit `attributes` list. `open_closed` checks whether a place is open or permanently closed, while `core` and `all` both request `closed_permanently`, `websites`, `phoneNumbers`, `openingHours`, `names`, `address`, and `categories`."
          },
          "refresh": {
            "type": "boolean",
            "title": "Refresh",
            "default": false
          },
          "use_previous_invocation_params": {
            "type": "boolean",
            "title": "Use Previous Invocation Params",
            "description": "When true, reuse each job's last-invocation parameters (attributes are inferred per place_id). When set, the `attributes`/`attribute_set` fields become optional and are only used as a fallback for place_ids that have no prior invocation.",
            "default": false
          }
        },
        "type": "object",
        "required": [
          "place_ids"
        ],
        "title": "ReprocessJobRequest"
      },
      "SingaporeAddress": {
        "properties": {
          "country": {
            "type": "string",
            "title": "Country",
            "description": "Country name",
            "default": "Singapore"
          },
          "country_code": {
            "type": "string",
            "const": "SG",
            "title": "Country Code",
            "description": "Country code for Singapore",
            "default": "SG"
          },
          "full_address": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Full Address",
            "description": "Full formatted address string from input"
          },
          "postcode": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Postcode",
            "description": "Postal code, e.g., 018936"
          },
          "administrative_area_level1": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Administrative Area Level1",
            "description": "District (resolvable), e.g., Central Region"
          },
          "administrative_area_level2": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Administrative Area Level2",
            "description": "Sub-District (resolvable), e.g., Downtown Core"
          },
          "administrative_area_level3": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Administrative Area Level3",
            "description": "Area (resolvable), e.g., Central Subzone"
          },
          "street": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Street",
            "description": "Street name, e.g., Straits View"
          },
          "house": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "House",
            "description": "House number/Block number, e.g., 9"
          },
          "building": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Building",
            "description": "Building's name (if needed), e.g., Marina One"
          },
          "floor": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Floor",
            "description": "Floor (if needed), e.g., B1"
          },
          "unit": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Unit",
            "description": "Unit number inside a building, floor included, e.g., #81-32"
          },
          "block": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Block",
            "description": "Block, e.g., Block A"
          }
        },
        "type": "object",
        "title": "SingaporeAddress",
        "description": "Model for Singapore addresses"
      },
      "StorefrontImage": {
        "properties": {
          "url": {
            "type": "string",
            "title": "Url"
          }
        },
        "type": "object",
        "required": [
          "url"
        ],
        "title": "StorefrontImage",
        "description": "A storefront image with its URL."
      },
      "SubmittedPlaceBatchResponse": {
        "properties": {
          "id": {
            "type": "string",
            "title": "Id",
            "description": "Unique identifier for tracking the batch",
            "example": "batch_2024_03_15_123456"
          },
          "batch_name": {
            "type": "string",
            "title": "Batch Name",
            "description": "User-provided name to identify the batch",
            "example": "NYC Restaurants March 2024"
          },
          "status": {
            "$ref": "#/components/schemas/BatchJobStatus",
            "description": "Current processing status of the batch. Initially PENDING, changes to IN_PROGRESS when processing starts",
            "default": "pending",
            "example": "pending"
          },
          "jobs": {
            "type": "object"
          },
          "metadata": {
            "anyOf": [
              {
                "type": "null"
              }
            ],
            "description": "Batch statistics and metadata. Basic stats available to all organizations, detailed stats only for Reprompt."
          },
          "attribute_statuses": {
            "anyOf": [
              {
                "additionalProperties": {
                  "$ref": "#/components/schemas/AttributeStatusDistribution"
                },
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Attribute Statuses",
            "description": "Status distribution per attribute (only populated when enrichments query param is provided)"
          }
        },
        "type": "object",
        "required": [
          "id",
          "batch_name",
          "jobs"
        ],
        "title": "SubmittedPlaceBatchResponse",
        "description": "Represents the response when submitting a new batch of places for enrichment",
        "example": {
          "batch_name": "NYC Restaurants March 2024",
          "id": "batch_2024_03_15_123456",
          "jobs": {
            "completed": [],
            "failed": [],
            "in_progress": [],
            "pending": [
              "place_nyc_123",
              "place_nyc_456",
              "place_nyc_789"
            ]
          },
          "status": "pending"
        }
      },
      "UAEAddress": {
        "properties": {
          "country": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Country",
            "description": "Country name matching input language (English: 'United Arab Emirates', Arabic: 'الإمارات العربية المتحدة')"
          },
          "country_code": {
            "type": "string",
            "const": "AE",
            "title": "Country Code",
            "description": "ISO 3166-1 alpha-2 country code for UAE",
            "default": "AE"
          },
          "full_address": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Full Address",
            "description": "Full formatted address string"
          },
          "emirate": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Emirate",
            "description": "Emirate (e.g., 'Dubai' or 'دبي', 'Abu Dhabi' or 'أبو ظبي')"
          },
          "city": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "City",
            "description": "City name (e.g., 'Dubai' or 'دبي')"
          },
          "district": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "District",
            "description": "District/neighborhood (e.g., 'Palm Jumeirah' or 'نخلة جميرا')"
          },
          "street": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Street",
            "description": "Street name (e.g., 'Palm Jumeirah Rd' or 'شارع النخلة')"
          },
          "house": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "House",
            "description": "House/building number (e.g., '127', '45A')"
          },
          "building": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Building",
            "description": "Building name"
          },
          "unit_number": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Unit Number",
            "description": "Unit/shop/gate number"
          }
        },
        "type": "object",
        "title": "UAEAddress",
        "description": "Schema for UAE addresses. Language matches the input address (English or Arabic)."
      },
      "UniversalPlace": {
        "properties": {
          "name": {
            "type": "string",
            "title": "Name",
            "description": "Required. The business name, most important parameter for researching correct website and profiles. Assumed to be in the local language."
          },
          "full_address": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Full Address",
            "description": "Optional but HIGHLY IMPORTANT. Next to the name and coordinates will significantly boost accuracy of outputs if provided. This is the full address like you would see it on a letterhead."
          },
          "country_code": {
            "anyOf": [
              {
                "type": "string",
                "pattern": "^[A-Z]{2}$"
              },
              {
                "type": "null"
              }
            ],
            "title": "Country Code",
            "description": "Two-letter country code (ISO 3166-1 alpha-2 or special codes like XK). If not provided, will be inferred from coordinates"
          },
          "category": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Category",
            "description": "Optional. A string describing the primary category of the place. Very important for disambiguating, for example, hotels with hotel bars. Reprompt will be able to correct wrong types."
          },
          "website": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Website",
            "description": "Optional. If provided will be validated and corrected and prefered as source. Even if wrong still better to provide the website if available."
          },
          "phone": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Phone",
            "description": "Optional. Phone in international format. If no international format is provided, based on the latitude/longitude the country pre-fix will be assumed"
          },
          "id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Id",
            "description": "Optional identifier for tracking the place"
          },
          "input_type": {
            "type": "string",
            "const": "place",
            "title": "Input Type",
            "default": "place"
          },
          "latitude": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Latitude",
            "description": "Optional. The latitude coordinate of the place. Must be between -90 and 90 if provided"
          },
          "longitude": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Longitude",
            "description": "Optional. The longitude coordinate of the place. Must be between -180 and 180 if provided"
          },
          "wkt_geometry": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Wkt Geometry",
            "description": "Optional. Instead of latitude and longitude put in a WKT geometry string. This will be converted into latitude and longitude. WKT uses (longitude latitude) coordinate order."
          },
          "street": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Street",
            "description": "Street name component of the address"
          },
          "city": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "City",
            "description": "City name"
          },
          "house": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "House",
            "description": "Building number or house identifier"
          },
          "state": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "State",
            "description": "State or region"
          },
          "postalCode": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Postalcode",
            "description": "Postal or ZIP code"
          },
          "country": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Country",
            "description": "Full country name"
          },
          "opening_hours": {
            "anyOf": [
              {
                "additionalProperties": {
                  "type": "string"
                },
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Opening Hours",
            "description": "Opening hours in a structured format"
          },
          "source": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Source",
            "description": "Data source this place came from (e.g., 'reprompt', 'overture', 'foursquare')"
          }
        },
        "additionalProperties": true,
        "type": "object",
        "required": [
          "name",
          "full_address",
          "latitude",
          "longitude",
          "country_code"
        ],
        "title": "UniversalPlace"
      },
      "UpdateBatchRequest": {
        "properties": {
          "batch_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Batch Name",
            "description": "New name for the batch"
          },
          "refresh": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Refresh",
            "description": "Whether the batch should be marked for refresh"
          }
        },
        "type": "object",
        "title": "UpdateBatchRequest",
        "example": {
          "batch_name": "Q2 2024 store locations"
        }
      },
      "V1AttributesResponse": {
        "properties": {
          "core": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Core",
            "description": "Core enrichment attributes available for the organization."
          },
          "custom": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Custom",
            "description": "Legacy placeholder for custom attributes in v1. Currently returned as an empty list for backward compatibility."
          },
          "all": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "All",
            "description": "All enrichment attributes available for the organization."
          }
        },
        "type": "object",
        "required": [
          "core",
          "custom",
          "all"
        ],
        "title": "V1AttributesResponse",
        "example": {
          "all": [
            "names",
            "address",
            "phoneNumbers",
            "websites",
            "openingHours",
            "closed_permanently",
            "categories"
          ],
          "core": [
            "names",
            "address",
            "phoneNumbers",
            "websites",
            "openingHours"
          ],
          "custom": []
        }
      }
    },
    "securitySchemes": {
      "HTTPBearer": {
        "type": "http",
        "scheme": "bearer"
      }
    }
  },
  "servers": [
    {
      "url": "https://api.repromptai.com/v1/{org}",
      "variables": {
        "org": {
          "default": "reprompt",
          "description": "The organization slug to use for the API"
        }
      }
    }
  ]
}
