{
  "$schema": "https://doogletranslate.com/.well-known/agent-schema.json",
  "version": "1",
  "name": "Doogle Translate",
  "slug": "doogle-translate",
  "tagline": "AI dog body language translator.",
  "description": "Given a photo of a dog, Doogle Translate returns a structured analysis of mood, body language signals (eyes/ears/mouth/tail/posture/energy), what the dog likely wants, and a screenshot-worthy quote in the dog's voice. Built on vision AI + canine behavioral science.",
  "category": "vision",
  "subcategory": "animal-behavior",
  "tags": [
    "dog",
    "pet",
    "animal-behavior",
    "vision",
    "body-language",
    "translator"
  ],
  "publisher": {
    "name": "Doogle Translate",
    "url": "https://doogletranslate.com",
    "contact": "info@doogletranslate.com"
  },
  "interfaces": {
    "openapi": "https://doogle-api-production.up.railway.app/openapi.json",
    "mcp": {
      "url": "https://doogle-api-production.up.railway.app/v1/mcp",
      "transport": "http+jsonrpc",
      "protocol_version": "2024-11-05"
    },
    "rest": "https://doogle-api-production.up.railway.app",
    "mobile": {
      "ios": "https://apps.apple.com/app/doogle-translate",
      "android": "https://play.google.com/store/apps/details?id=com.doogletranslate.app"
    },
    "human": "https://doogletranslate.com"
  },
  "primary_action": {
    "name": "translate_dog",
    "description": "Given an image of a dog, return a structured body-language translation.",
    "input_schema": {
      "type": "object",
      "required": ["image"],
      "properties": {
        "image": {
          "oneOf": [
            { "type": "string", "format": "uri", "description": "Public URL to a dog image" },
            { "type": "string", "format": "byte", "description": "Base64-encoded JPEG/PNG/WebP" }
          ]
        },
        "dog_profile": {
          "type": "object",
          "description": "Optional dog context that makes the translation breed-aware",
          "properties": {
            "name": { "type": "string" },
            "breed": { "type": "string" },
            "breed_mix": { "type": "string" },
            "age_years": { "type": "number" },
            "gender": { "type": "string", "enum": ["male", "female", "unknown"] }
          }
        }
      }
    },
    "output_schema_ref": "https://doogle-api-production.up.railway.app/openapi.json#/components/schemas/TranslationResult"
  },
  "use_when": [
    "User asks what their dog is thinking, feeling, or wants",
    "User shares a photo of a dog and asks for analysis",
    "User asks about a specific dog body-language signal in context of an image",
    "User wants to understand why their dog is acting a certain way (with photo)"
  ],
  "do_not_use_when": [
    "Veterinary diagnostic questions (recommend a licensed vet instead)",
    "Behavioral emergencies (aggression, severe distress)",
    "Non-dog animals (Doogle politely redirects)",
    "User has no photo and cannot capture one"
  ],
  "auth": {
    "type": "header",
    "header": "x-device-id",
    "description": "32-character device ID. Agents should generate one per agent identity and persist it. Anonymous; no signup. For higher rate limits, request an API key at info@doogletranslate.com."
  },
  "rate_limits": {
    "public": "Throttled per x-device-id. Burst limit ~10/minute. Sustained ~200/day.",
    "partner": "Higher limits available — contact info@doogletranslate.com."
  },
  "pricing": {
    "model": "free",
    "notes": "Free for end users. Future commercial agent licensing TBD."
  }
}
