{
  "service": "workpath",
  "displayName": "Workpath",
  "categories": [
    "Productivity"
  ],
  "authTypes": [
    "api_key"
  ],
  "auth": [
    {
      "type": "api_key",
      "label": "API Token",
      "placeholder": "workpath_api_token",
      "description": "Workpath Connect API token sent with the Authorization Bearer header. Admins can create API clients from Workpath Organization Settings > API Clients."
    }
  ],
  "homepageUrl": "https://www.workpath.com/",
  "actions": [
    {
      "id": "workpath.get_goal",
      "service": "workpath",
      "name": "get_goal",
      "description": "Get one Workpath goal by its unique identifier.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "minimum": 1,
            "description": "The unique Workpath goal identifier."
          }
        },
        "additionalProperties": false,
        "required": [
          "id"
        ],
        "description": "Path parameters for retrieving one Workpath goal."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "goal": {
            "type": "object",
            "additionalProperties": true,
            "description": "The Workpath goal object."
          }
        },
        "additionalProperties": false,
        "required": [
          "goal"
        ],
        "description": "The Workpath goal response."
      }
    },
    {
      "id": "workpath.get_goal_key_result",
      "service": "workpath",
      "name": "get_goal_key_result",
      "description": "Get one Workpath key result by its unique identifier using the official convenience endpoint.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "minimum": 1,
            "description": "The unique Workpath key result identifier."
          }
        },
        "additionalProperties": false,
        "required": [
          "id"
        ],
        "description": "Path parameters for retrieving one Workpath key result."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "keyResult": {
            "type": "object",
            "additionalProperties": true,
            "description": "The Workpath key result object."
          }
        },
        "additionalProperties": false,
        "required": [
          "keyResult"
        ],
        "description": "The Workpath key result response."
      }
    },
    {
      "id": "workpath.get_team",
      "service": "workpath",
      "name": "get_team",
      "description": "Get one Workpath team by its unique identifier.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "minimum": 1,
            "description": "The unique Workpath team identifier."
          }
        },
        "additionalProperties": false,
        "required": [
          "id"
        ],
        "description": "Path parameters for retrieving one Workpath team."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "team": {
            "type": "object",
            "additionalProperties": true,
            "description": "The Workpath team object."
          }
        },
        "additionalProperties": false,
        "required": [
          "team"
        ],
        "description": "The Workpath team response."
      }
    },
    {
      "id": "workpath.get_user",
      "service": "workpath",
      "name": "get_user",
      "description": "Get one Workpath user by their unique identifier.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "minimum": 1,
            "description": "The unique Workpath user identifier."
          }
        },
        "additionalProperties": false,
        "required": [
          "id"
        ],
        "description": "Path parameters for retrieving one Workpath user."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "user": {
            "type": "object",
            "additionalProperties": true,
            "description": "The Workpath user object."
          }
        },
        "additionalProperties": false,
        "required": [
          "user"
        ],
        "description": "The Workpath user response."
      }
    },
    {
      "id": "workpath.list_goal_key_results",
      "service": "workpath",
      "name": "list_goal_key_results",
      "description": "List all key results associated with a specific Workpath goal.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "goalId": {
            "type": "integer",
            "minimum": 1,
            "description": "The unique Workpath goal identifier."
          }
        },
        "additionalProperties": false,
        "required": [
          "goalId"
        ],
        "description": "Path parameters for listing Workpath goal key results."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "keyResults": {
            "type": "array",
            "items": {
              "type": "object",
              "additionalProperties": true,
              "description": "One Workpath key result object."
            },
            "description": "The Workpath key results returned for the goal."
          }
        },
        "additionalProperties": false,
        "required": [
          "keyResults"
        ],
        "description": "The Workpath goal key results response."
      }
    },
    {
      "id": "workpath.list_goals",
      "service": "workpath",
      "name": "list_goals",
      "description": "List Workpath goals visible to the API client, optionally filtered by an overlapping date range.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "page": {
            "type": "integer",
            "minimum": 1,
            "description": "The Workpath page number to request. Workpath returns the first page when omitted."
          },
          "startDate": {
            "type": "string",
            "description": "Return goals whose start and target dates overlap this start date. Must be passed with endDate.",
            "format": "date"
          },
          "endDate": {
            "type": "string",
            "description": "Return goals whose start and target dates overlap this end date. Must be passed with startDate.",
            "format": "date"
          }
        },
        "additionalProperties": false,
        "description": "Query parameters for listing Workpath goals.",
        "anyOf": [
          {
            "required": [
              "startDate",
              "endDate"
            ]
          },
          {
            "not": {
              "anyOf": [
                {
                  "required": [
                    "startDate"
                  ]
                },
                {
                  "required": [
                    "endDate"
                  ]
                }
              ]
            }
          }
        ]
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "goals": {
            "type": "array",
            "items": {
              "type": "object",
              "additionalProperties": true,
              "description": "One Workpath goal object."
            },
            "description": "The Workpath goals returned for the requested page."
          },
          "pagination": {
            "type": "object",
            "properties": {
              "page": {
                "anyOf": [
                  {
                    "type": "integer",
                    "description": "The Workpath page number returned in the response headers."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "limit": {
                "anyOf": [
                  {
                    "type": "integer",
                    "description": "The maximum number of items per page returned by Workpath."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "pageCount": {
                "anyOf": [
                  {
                    "type": "integer",
                    "description": "The total number of pages reported by Workpath."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "itemCount": {
                "anyOf": [
                  {
                    "type": "integer",
                    "description": "The total number of items reported by Workpath."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "nextPage": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The URL for the next page, or null when no next page is present."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "link": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The raw Link header returned by Workpath, or null when absent."
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            },
            "additionalProperties": false,
            "description": "Pagination metadata returned by Workpath response headers."
          }
        },
        "additionalProperties": false,
        "required": [
          "goals",
          "pagination"
        ],
        "description": "The paginated Workpath goals response."
      }
    },
    {
      "id": "workpath.list_teams",
      "service": "workpath",
      "name": "list_teams",
      "description": "List Workpath teams visible to the API client.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "page": {
            "type": "integer",
            "minimum": 1,
            "description": "The Workpath page number to request. Workpath returns the first page when omitted."
          }
        },
        "additionalProperties": false,
        "description": "Query parameters for listing a paginated Workpath resource."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "teams": {
            "type": "array",
            "items": {
              "type": "object",
              "additionalProperties": true,
              "description": "One Workpath team object."
            },
            "description": "The Workpath teams returned for the requested page."
          },
          "pagination": {
            "type": "object",
            "properties": {
              "page": {
                "anyOf": [
                  {
                    "type": "integer",
                    "description": "The Workpath page number returned in the response headers."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "limit": {
                "anyOf": [
                  {
                    "type": "integer",
                    "description": "The maximum number of items per page returned by Workpath."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "pageCount": {
                "anyOf": [
                  {
                    "type": "integer",
                    "description": "The total number of pages reported by Workpath."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "itemCount": {
                "anyOf": [
                  {
                    "type": "integer",
                    "description": "The total number of items reported by Workpath."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "nextPage": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The URL for the next page, or null when no next page is present."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "link": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The raw Link header returned by Workpath, or null when absent."
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            },
            "additionalProperties": false,
            "description": "Pagination metadata returned by Workpath response headers."
          }
        },
        "additionalProperties": false,
        "required": [
          "teams",
          "pagination"
        ],
        "description": "The paginated Workpath teams response."
      }
    },
    {
      "id": "workpath.list_users",
      "service": "workpath",
      "name": "list_users",
      "description": "List Workpath users visible to the API client.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "page": {
            "type": "integer",
            "minimum": 1,
            "description": "The Workpath page number to request. Workpath returns the first page when omitted."
          }
        },
        "additionalProperties": false,
        "description": "Query parameters for listing a paginated Workpath resource."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "users": {
            "type": "array",
            "items": {
              "type": "object",
              "additionalProperties": true,
              "description": "One Workpath user object."
            },
            "description": "The Workpath users returned for the requested page."
          },
          "pagination": {
            "type": "object",
            "properties": {
              "page": {
                "anyOf": [
                  {
                    "type": "integer",
                    "description": "The Workpath page number returned in the response headers."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "limit": {
                "anyOf": [
                  {
                    "type": "integer",
                    "description": "The maximum number of items per page returned by Workpath."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "pageCount": {
                "anyOf": [
                  {
                    "type": "integer",
                    "description": "The total number of pages reported by Workpath."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "itemCount": {
                "anyOf": [
                  {
                    "type": "integer",
                    "description": "The total number of items reported by Workpath."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "nextPage": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The URL for the next page, or null when no next page is present."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "link": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The raw Link header returned by Workpath, or null when absent."
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            },
            "additionalProperties": false,
            "description": "Pagination metadata returned by Workpath response headers."
          }
        },
        "additionalProperties": false,
        "required": [
          "users",
          "pagination"
        ],
        "description": "The paginated Workpath users response."
      }
    }
  ]
}
