{
  "service": "parsehub",
  "displayName": "ParseHub",
  "categories": [
    "Data",
    "Developer Tools"
  ],
  "authTypes": [
    "api_key"
  ],
  "auth": [
    {
      "type": "api_key",
      "label": "API Key",
      "placeholder": "PARSEHUB_API_KEY",
      "description": "ParseHub API key sent as the api_key query parameter. Find it in your ParseHub account API settings: https://www.parsehub.com/docs/ref/api/v2/.",
      "extraFields": []
    }
  ],
  "homepageUrl": "https://www.parsehub.com",
  "actions": [
    {
      "id": "parsehub.get_project",
      "service": "parsehub",
      "name": "get_project",
      "description": "Get one ParseHub project by project token from the API key's accessible project list.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "projectToken": {
            "type": "string",
            "minLength": 1,
            "description": "Project token to retrieve."
          }
        },
        "additionalProperties": false,
        "description": "Input parameters for getting one ParseHub project."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "project": {
            "type": "object",
            "properties": {
              "token": {
                "type": "string",
                "description": "Unique project token."
              },
              "name": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "Project name when ParseHub returns it."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "title": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "Project title returned by ParseHub."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "lastRunToken": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "Token of the most recent run when available."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "lastReadyRunToken": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "Token of the most recent ready run when available."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "optionsJson": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "Stringified project options when available."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "mainTemplate": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "Main template name when available."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "mainSite": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "Main site URL when available."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "raw": {
                "type": "object",
                "properties": {},
                "additionalProperties": true,
                "description": "Raw project payload returned by ParseHub."
              }
            },
            "additionalProperties": true,
            "required": [
              "token"
            ],
            "description": "ParseHub project detail payload."
          }
        },
        "additionalProperties": false,
        "description": "Single ParseHub project response."
      }
    },
    {
      "id": "parsehub.list_projects",
      "service": "parsehub",
      "name": "list_projects",
      "description": "List ParseHub projects accessible to the API key with optional offset pagination.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "description": "Maximum number of projects to return."
          },
          "offset": {
            "type": "integer",
            "minimum": 0,
            "description": "Zero-based project offset for pagination."
          }
        },
        "additionalProperties": false,
        "description": "Input parameters for listing ParseHub projects."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "projects": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "token": {
                  "type": "string",
                  "description": "Unique project token."
                },
                "name": {
                  "type": "string",
                  "description": "Project name."
                },
                "lastRun": {
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {
                        "token": {
                          "anyOf": [
                            {
                              "type": "string",
                              "description": "Unique token of the run when returned by ParseHub."
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "status": {
                          "anyOf": [
                            {
                              "type": "string",
                              "description": "Run status returned by ParseHub."
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "data": {
                          "anyOf": [
                            {
                              "type": "string",
                              "description": "URL to the JSON data of the run when available."
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "dateCreated": {
                          "anyOf": [
                            {
                              "type": "string",
                              "description": "Timestamp when the run was created."
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "dateUpdated": {
                          "anyOf": [
                            {
                              "type": "string",
                              "description": "Timestamp when the run was last updated."
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "raw": {
                          "type": "object",
                          "properties": {},
                          "additionalProperties": true,
                          "description": "Raw last_run payload returned by ParseHub."
                        }
                      },
                      "additionalProperties": true,
                      "description": "Summary of the most recent ParseHub run attached to a project."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "templates": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "name": {
                        "type": "string",
                        "description": "Template name."
                      },
                      "templateToken": {
                        "type": "string",
                        "description": "Unique template token."
                      },
                      "raw": {
                        "type": "object",
                        "properties": {},
                        "additionalProperties": true,
                        "description": "Raw template payload returned by ParseHub."
                      }
                    },
                    "additionalProperties": true,
                    "required": [
                      "name",
                      "templateToken"
                    ],
                    "description": "ParseHub template summary attached to a project."
                  },
                  "description": "Templates defined in the project."
                },
                "raw": {
                  "type": "object",
                  "properties": {},
                  "additionalProperties": true,
                  "description": "Raw project payload returned by ParseHub."
                }
              },
              "additionalProperties": true,
              "required": [
                "token",
                "name"
              ],
              "description": "ParseHub project summary."
            },
            "description": "Projects accessible to the API key."
          },
          "totalProjects": {
            "type": "integer",
            "minimum": 0,
            "description": "Total number of projects in the account."
          },
          "limit": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 0,
                "description": "Limit value echoed by ParseHub when available."
              },
              {
                "type": "null"
              }
            ]
          },
          "offset": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 0,
                "description": "Offset value echoed by ParseHub when available."
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "additionalProperties": false,
        "description": "ParseHub project list response."
      }
    }
  ]
}
