{
  "service": "the_dog_api",
  "displayName": "The Dog API",
  "categories": [
    "Design & Media",
    "Data"
  ],
  "authTypes": [
    "api_key"
  ],
  "auth": [
    {
      "type": "api_key",
      "label": "API Key",
      "placeholder": "THE_DOG_API_KEY",
      "description": "The Dog API key sent with the x-api-key header."
    }
  ],
  "homepageUrl": "https://thedogapi.com/",
  "actions": [
    {
      "id": "the_dog_api.create_favourite",
      "service": "the_dog_api",
      "name": "create_favourite",
      "description": "Create one favourite dog image record.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "imageId": {
            "type": "string",
            "minLength": 1,
            "description": "The Dog API image identifier."
          },
          "subId": {
            "type": "string",
            "minLength": 1,
            "description": "A custom user identifier stored by The Dog API."
          }
        },
        "additionalProperties": false,
        "required": [
          "imageId"
        ],
        "description": "Input parameters for creating one favourite."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "description": "The created resource identifier when returned."
              },
              "message": {
                "type": "string",
                "description": "The provider mutation status message when returned."
              }
            },
            "additionalProperties": true,
            "description": "A mutation response returned by The Dog API."
          }
        },
        "additionalProperties": false,
        "description": "The response returned for a mutation request."
      }
    },
    {
      "id": "the_dog_api.create_vote",
      "service": "the_dog_api",
      "name": "create_vote",
      "description": "Create one dog image vote.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "imageId": {
            "type": "string",
            "minLength": 1,
            "description": "The Dog API image identifier."
          },
          "value": {
            "type": "integer",
            "minimum": -1,
            "maximum": 1,
            "description": "The vote value accepted by The Dog API, where 1 is upvote and -1 is downvote."
          },
          "subId": {
            "type": "string",
            "minLength": 1,
            "description": "A custom user identifier stored by The Dog API."
          }
        },
        "additionalProperties": false,
        "required": [
          "imageId",
          "value"
        ],
        "description": "Input parameters for creating one vote."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "description": "The created resource identifier when returned."
              },
              "message": {
                "type": "string",
                "description": "The provider mutation status message when returned."
              }
            },
            "additionalProperties": true,
            "description": "A mutation response returned by The Dog API."
          }
        },
        "additionalProperties": false,
        "description": "The response returned for a mutation request."
      }
    },
    {
      "id": "the_dog_api.delete_favourite",
      "service": "the_dog_api",
      "name": "delete_favourite",
      "description": "Delete one favourite dog image record.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "favouriteId": {
            "type": "string",
            "minLength": 1,
            "description": "The Dog API favourite identifier."
          }
        },
        "additionalProperties": false,
        "description": "Input parameters for deleting one favourite."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "description": "The created resource identifier when returned."
              },
              "message": {
                "type": "string",
                "description": "The provider mutation status message when returned."
              }
            },
            "additionalProperties": true,
            "description": "A mutation response returned by The Dog API."
          }
        },
        "additionalProperties": false,
        "description": "The response returned for a mutation request."
      }
    },
    {
      "id": "the_dog_api.delete_vote",
      "service": "the_dog_api",
      "name": "delete_vote",
      "description": "Delete one dog image vote.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "voteId": {
            "type": "string",
            "minLength": 1,
            "description": "The Dog API vote identifier."
          }
        },
        "additionalProperties": false,
        "description": "Input parameters for deleting one vote."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "description": "The created resource identifier when returned."
              },
              "message": {
                "type": "string",
                "description": "The provider mutation status message when returned."
              }
            },
            "additionalProperties": true,
            "description": "A mutation response returned by The Dog API."
          }
        },
        "additionalProperties": false,
        "description": "The response returned for a mutation request."
      }
    },
    {
      "id": "the_dog_api.get_breed",
      "service": "the_dog_api",
      "name": "get_breed",
      "description": "Get one dog breed by its The Dog API breed identifier.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "breedId": {
            "type": "string",
            "minLength": 1,
            "description": "The Dog API breed identifier."
          }
        },
        "additionalProperties": false,
        "description": "Input parameters for reading one dog breed."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "breed": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "A dog breed object returned by The Dog API."
          }
        },
        "additionalProperties": false,
        "description": "The response returned when reading one dog breed."
      }
    },
    {
      "id": "the_dog_api.get_image",
      "service": "the_dog_api",
      "name": "get_image",
      "description": "Get one dog image by its The Dog API image identifier.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "imageId": {
            "type": "string",
            "minLength": 1,
            "description": "The Dog API image identifier."
          }
        },
        "additionalProperties": false,
        "description": "Input parameters for reading one dog image."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "image": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "description": "The image identifier."
              },
              "url": {
                "type": "string",
                "description": "The image URL."
              },
              "width": {
                "anyOf": [
                  {
                    "type": "integer",
                    "description": "The image width in pixels when returned."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "height": {
                "anyOf": [
                  {
                    "type": "integer",
                    "description": "The image height in pixels when returned."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "breeds": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {},
                  "additionalProperties": true,
                  "description": "A dog breed object returned by The Dog API."
                },
                "description": "The breeds associated with this image."
              },
              "categories": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "description": "The category identifier."
                    },
                    "name": {
                      "type": "string",
                      "description": "The category display name."
                    }
                  },
                  "additionalProperties": true,
                  "description": "An image category object returned by The Dog API."
                },
                "description": "The categories associated with this image."
              },
              "raw": {
                "type": "object",
                "properties": {},
                "additionalProperties": true,
                "description": "The raw image object returned by The Dog API."
              }
            },
            "additionalProperties": false,
            "description": "A normalized dog image returned by The Dog API."
          }
        },
        "additionalProperties": false,
        "description": "The response returned when reading one dog image."
      }
    },
    {
      "id": "the_dog_api.list_breeds",
      "service": "the_dog_api",
      "name": "list_breeds",
      "description": "List dog breeds supported by The Dog API.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "description": "The number of breeds to return."
          },
          "page": {
            "type": "integer",
            "minimum": 0,
            "description": "The zero-based result page number."
          }
        },
        "additionalProperties": false,
        "description": "Input parameters for listing dog breeds."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "breeds": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "A dog breed object returned by The Dog API."
            },
            "description": "The dog breeds returned by The Dog API."
          }
        },
        "additionalProperties": false,
        "description": "The response returned when listing dog breeds."
      }
    },
    {
      "id": "the_dog_api.list_favourites",
      "service": "the_dog_api",
      "name": "list_favourites",
      "description": "List favourite dog images for the connected The Dog API account.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "description": "The number of records to return."
          },
          "page": {
            "type": "integer",
            "minimum": 0,
            "description": "The zero-based result page number."
          },
          "subId": {
            "type": "string",
            "minLength": 1,
            "description": "A custom user identifier stored by The Dog API."
          }
        },
        "additionalProperties": false,
        "description": "Input parameters for listing account records."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "favourites": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "integer",
                  "description": "The favourite identifier."
                },
                "image_id": {
                  "type": "string",
                  "description": "The favourited image identifier."
                },
                "sub_id": {
                  "type": "string",
                  "description": "The custom user identifier attached to the favourite."
                }
              },
              "additionalProperties": true,
              "description": "A favourite image record returned by The Dog API."
            },
            "description": "The favourite records returned by The Dog API."
          }
        },
        "additionalProperties": false,
        "description": "The response returned when listing favourites."
      }
    },
    {
      "id": "the_dog_api.list_votes",
      "service": "the_dog_api",
      "name": "list_votes",
      "description": "List dog image votes for the connected The Dog API account.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "description": "The number of records to return."
          },
          "page": {
            "type": "integer",
            "minimum": 0,
            "description": "The zero-based result page number."
          },
          "subId": {
            "type": "string",
            "minLength": 1,
            "description": "A custom user identifier stored by The Dog API."
          }
        },
        "additionalProperties": false,
        "description": "Input parameters for listing account records."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "votes": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "integer",
                  "description": "The vote identifier."
                },
                "image_id": {
                  "type": "string",
                  "description": "The voted image identifier."
                },
                "sub_id": {
                  "type": "string",
                  "description": "The custom user identifier attached to the vote."
                },
                "value": {
                  "type": "integer",
                  "description": "The vote value."
                }
              },
              "additionalProperties": true,
              "description": "A vote record returned by The Dog API."
            },
            "description": "The vote records returned by The Dog API."
          }
        },
        "additionalProperties": false,
        "description": "The response returned when listing votes."
      }
    },
    {
      "id": "the_dog_api.search_breeds",
      "service": "the_dog_api",
      "name": "search_breeds",
      "description": "Search dog breeds by breed name.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string",
            "minLength": 1,
            "description": "The breed name search query."
          }
        },
        "additionalProperties": false,
        "description": "Input parameters for searching dog breeds."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "breeds": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "A dog breed object returned by The Dog API."
            },
            "description": "The matching dog breeds returned by The Dog API."
          }
        },
        "additionalProperties": false,
        "description": "The response returned when searching dog breeds."
      }
    },
    {
      "id": "the_dog_api.search_images",
      "service": "the_dog_api",
      "name": "search_images",
      "description": "Search for dog images with optional breed, category, type, size, and paging filters.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 25,
            "description": "The number of images to return."
          },
          "page": {
            "type": "integer",
            "minimum": 0,
            "description": "The zero-based result page number."
          },
          "order": {
            "type": "string",
            "enum": [
              "RANDOM",
              "ASC",
              "DESC"
            ],
            "description": "The Dog API result order."
          },
          "size": {
            "type": "string",
            "enum": [
              "small",
              "med",
              "full"
            ],
            "description": "The image size preset requested from The Dog API."
          },
          "mimeTypes": {
            "type": "string",
            "minLength": 1,
            "description": "Comma-separated MIME type filters accepted by The Dog API, such as jpg,png or gif."
          },
          "hasBreeds": {
            "type": "boolean",
            "description": "Whether to only return images that have breed information attached."
          },
          "breedIds": {
            "type": "string",
            "minLength": 1,
            "description": "Comma-separated breed identifiers used to filter image results."
          },
          "categoryIds": {
            "type": "string",
            "minLength": 1,
            "description": "Comma-separated category identifiers used to filter image results."
          },
          "includeBreeds": {
            "type": "boolean",
            "description": "Whether The Dog API should include breed objects in image results."
          },
          "includeCategories": {
            "type": "boolean",
            "description": "Whether The Dog API should include category objects in image results."
          },
          "format": {
            "type": "string",
            "enum": [
              "json",
              "src"
            ],
            "description": "The response format requested from The Dog API."
          }
        },
        "additionalProperties": false,
        "description": "Input parameters for searching The Dog API images."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "images": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "description": "The image identifier."
                },
                "url": {
                  "type": "string",
                  "description": "The image URL."
                },
                "width": {
                  "anyOf": [
                    {
                      "type": "integer",
                      "description": "The image width in pixels when returned."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "height": {
                  "anyOf": [
                    {
                      "type": "integer",
                      "description": "The image height in pixels when returned."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "breeds": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {},
                    "additionalProperties": true,
                    "description": "A dog breed object returned by The Dog API."
                  },
                  "description": "The breeds associated with this image."
                },
                "categories": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string",
                        "description": "The category identifier."
                      },
                      "name": {
                        "type": "string",
                        "description": "The category display name."
                      }
                    },
                    "additionalProperties": true,
                    "description": "An image category object returned by The Dog API."
                  },
                  "description": "The categories associated with this image."
                },
                "raw": {
                  "type": "object",
                  "properties": {},
                  "additionalProperties": true,
                  "description": "The raw image object returned by The Dog API."
                }
              },
              "additionalProperties": false,
              "description": "A normalized dog image returned by The Dog API."
            },
            "description": "The dog images returned by The Dog API."
          }
        },
        "additionalProperties": false,
        "description": "The response returned when searching dog images."
      }
    }
  ]
}
