{
  "openapi": "3.1.0",
  "info": {
    "title": "Sonia McRorey Agent Discovery API",
    "summary": "Machine-readable discovery for Sonia McRorey image consulting services in Guadalajara.",
    "description": "Static OpenAPI description for agent access to Sonia McRorey's structured site profile, services, contact actions and publications.",
    "version": "2026.05.17"
  },
  "servers": [
    {
      "url": "https://imagengdl.com",
      "description": "Production site"
    }
  ],
  "tags": [
    {
      "name": "Agent discovery",
      "description": "Static files that help assistants understand the business, services, location and contact actions."
    }
  ],
  "paths": {
    "/openapi.json": {
      "get": {
        "tags": ["Agent discovery"],
        "operationId": "getOpenApiDescription",
        "summary": "Get the OpenAPI description for this static site.",
        "responses": {
          "200": {
            "description": "OpenAPI document",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    },
    "/llms.txt": {
      "get": {
        "tags": ["Agent discovery"],
        "operationId": "getLlmsText",
        "summary": "Get the LLM-readable site summary.",
        "responses": {
          "200": {
            "description": "LLM-readable site summary",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/llms-full.txt": {
      "get": {
        "tags": ["Agent discovery"],
        "operationId": "getFullLlmsText",
        "summary": "Get the full LLM-readable GEO context.",
        "responses": {
          "200": {
            "description": "Full LLM-readable GEO context",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/agent/site-profile.json": {
      "get": {
        "tags": ["Agent discovery"],
        "operationId": "getSoniaSiteProfile",
        "summary": "Get Sonia McRorey's structured business profile.",
        "responses": {
          "200": {
            "description": "Structured business and positioning profile",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SiteProfile"
                }
              }
            }
          }
        }
      }
    },
    "/agent/services.json": {
      "get": {
        "tags": ["Agent discovery"],
        "operationId": "getSoniaServices",
        "summary": "Get structured service information.",
        "responses": {
          "200": {
            "description": "Structured service catalog",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServicesResponse"
                }
              }
            }
          }
        }
      }
    },
    "/agent/contact.json": {
      "get": {
        "tags": ["Agent discovery"],
        "operationId": "getSoniaContactActions",
        "summary": "Get structured contact and booking actions.",
        "responses": {
          "200": {
            "description": "Structured contact information",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ContactResponse"
                }
              }
            }
          }
        }
      }
    },
    "/agent/publications.json": {
      "get": {
        "tags": ["Agent discovery"],
        "operationId": "getSoniaPublications",
        "summary": "Get curated publication links.",
        "responses": {
          "200": {
            "description": "Curated publication links from imagencoach.com",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicationsResponse"
                }
              }
            }
          }
        }
      }
    },
    "/agent/ontology.json": {
      "get": {
        "tags": ["Agent discovery"],
        "operationId": "getSoniaOntology",
        "summary": "Get canonical ontology and GEO terminology.",
        "responses": {
          "200": {
            "description": "Ontology and terminology map",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    },
    "/agent/page-signals.json": {
      "get": {
        "tags": ["Agent discovery"],
        "operationId": "getSoniaPageSignals",
        "summary": "Get per-page SEO and GEO signal mapping.",
        "responses": {
          "200": {
            "description": "Page signal map",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    },
    "/agent/redirects.json": {
      "get": {
        "tags": ["Agent discovery"],
        "operationId": "getSoniaRedirectMap",
        "summary": "Get canonical route and redirect policy.",
        "responses": {
          "200": {
            "description": "Redirect map",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    },
    "/agent/conversion-map.json": {
      "get": {
        "tags": ["Agent discovery"],
        "operationId": "getSoniaConversionMap",
        "summary": "Get conversion funnel and CTA rules.",
        "responses": {
          "200": {
            "description": "Conversion map",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    },
    "/.well-known/api-catalog": {
      "get": {
        "tags": ["Agent discovery"],
        "operationId": "getApiCatalog",
        "summary": "Get the API catalog linkset for automated discovery.",
        "responses": {
          "200": {
            "description": "API catalog linkset",
            "content": {
              "application/linkset+json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    },
    "/.well-known/agent-skills/index.json": {
      "get": {
        "tags": ["Agent discovery"],
        "operationId": "getAgentSkillsIndex",
        "summary": "Get the agent skills discovery index.",
        "responses": {
          "200": {
            "description": "Agent skills index",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    },
    "/.well-known/mcp/server-card.json": {
      "get": {
        "tags": ["Agent discovery"],
        "operationId": "getMcpServerCard",
        "summary": "Get the MCP server card for static context resources.",
        "responses": {
          "200": {
            "description": "MCP server card",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    },
    "/.well-known/oauth-protected-resource": {
      "get": {
        "tags": ["Agent discovery"],
        "operationId": "getOauthProtectedResourceMetadata",
        "summary": "Get public resource metadata for agent discovery.",
        "responses": {
          "200": {
            "description": "OAuth protected resource metadata for public resources",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "SiteProfile": {
        "type": "object",
        "required": ["siteUrl", "language", "entity", "positioning", "canonicalPages", "contact"],
        "properties": {
          "schemaVersion": { "type": "string" },
          "siteUrl": { "type": "string", "format": "uri" },
          "language": { "type": "string" },
          "entity": { "type": "object" },
          "positioning": { "type": "object" },
          "canonicalPages": {
            "type": "array",
            "items": { "type": "object" }
          },
          "agentFiles": { "type": "object" },
          "contact": { "type": "object" }
        }
      },
      "ServicesResponse": {
        "type": "object",
        "required": ["siteUrl", "language", "services"],
        "properties": {
          "schemaVersion": { "type": "string" },
          "siteUrl": { "type": "string", "format": "uri" },
          "language": { "type": "string" },
          "services": {
            "type": "array",
            "items": { "$ref": "#/components/schemas/Service" }
          },
          "modalities": {
            "type": "array",
            "items": { "type": "string" }
          }
        }
      },
      "Service": {
        "type": "object",
        "required": ["name", "canonicalUrl", "primaryKeyword", "summary", "capabilities"],
        "properties": {
          "name": { "type": "string" },
          "canonicalUrl": { "type": "string", "format": "uri" },
          "primaryKeyword": { "type": "string" },
          "summary": { "type": "string" },
          "capabilities": {
            "type": "array",
            "items": { "type": "string" }
          },
          "relatedPages": {
            "type": "array",
            "items": { "type": "string", "format": "uri" }
          }
        }
      },
      "ContactResponse": {
        "type": "object",
        "required": ["siteUrl", "language", "business", "actions"],
        "properties": {
          "schemaVersion": { "type": "string" },
          "siteUrl": { "type": "string", "format": "uri" },
          "language": { "type": "string" },
          "business": { "type": "object" },
          "actions": {
            "type": "array",
            "items": { "type": "object" }
          }
        }
      },
      "PublicationsResponse": {
        "type": "object",
        "required": ["siteUrl", "language", "source", "featured", "articles"],
        "properties": {
          "schemaVersion": { "type": "string" },
          "siteUrl": { "type": "string", "format": "uri" },
          "language": { "type": "string" },
          "source": { "type": "string", "format": "uri" },
          "featured": { "type": "object" },
          "articles": {
            "type": "array",
            "items": { "type": "object" }
          }
        }
      }
    }
  }
}
