{
  "service": "zeplin",
  "displayName": "Zeplin",
  "categories": [
    "Design & Media",
    "Productivity"
  ],
  "authTypes": [
    "oauth2"
  ],
  "auth": [
    {
      "type": "oauth2",
      "authorizationUrl": "https://api.zeplin.dev/v1/oauth/authorize",
      "tokenUrl": "https://api.zeplin.dev/v1/oauth/token",
      "scopes": [
        "zeplin.read"
      ],
      "tokenEndpointAuthMethod": "client_secret_post"
    }
  ],
  "homepageUrl": "https://zeplin.io",
  "actions": [
    {
      "id": "zeplin.get_current_user",
      "service": "zeplin",
      "name": "get_current_user",
      "description": "Get the current authenticated Zeplin user profile.",
      "requiredScopes": [
        "zeplin.read"
      ],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false,
        "description": "The input payload for this action."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "user": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "A raw Zeplin object."
          }
        },
        "additionalProperties": false,
        "required": [
          "user"
        ],
        "description": "The output payload for this action."
      }
    },
    {
      "id": "zeplin.get_project",
      "service": "zeplin",
      "name": "get_project",
      "description": "Get a Zeplin project by project ID.",
      "requiredScopes": [
        "zeplin.read"
      ],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "projectId": {
            "type": "string",
            "minLength": 1,
            "description": "The project ID to retrieve."
          }
        },
        "additionalProperties": false,
        "required": [
          "projectId"
        ],
        "description": "The input payload for this action."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "project": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "description": "The unique identifier of the project."
              },
              "name": {
                "type": "string",
                "description": "The name of the project."
              },
              "platform": {
                "type": "string",
                "description": "The target platform of the project."
              },
              "status": {
                "type": "string",
                "description": "The current status of the project."
              },
              "created": {
                "type": "integer",
                "minimum": 0,
                "description": "A Unix timestamp in seconds."
              },
              "updated": {
                "type": "integer",
                "minimum": 0,
                "description": "The timestamp when the project was last updated."
              },
              "numberOfMembers": {
                "type": "integer",
                "minimum": 0,
                "description": "The number of project members."
              },
              "numberOfScreens": {
                "type": "integer",
                "minimum": 0,
                "description": "The number of screens in the project."
              },
              "numberOfComponents": {
                "type": "integer",
                "minimum": 0,
                "description": "The number of components in the project."
              },
              "numberOfConnectedComponents": {
                "type": "integer",
                "minimum": 0,
                "description": "The number of connected components."
              },
              "numberOfTextStyles": {
                "type": "integer",
                "minimum": 0,
                "description": "The number of text styles."
              },
              "numberOfColors": {
                "type": "integer",
                "minimum": 0,
                "description": "The number of color tokens."
              },
              "numberOfSpacingTokens": {
                "type": "integer",
                "minimum": 0,
                "description": "The number of spacing tokens."
              },
              "description": {
                "type": "string",
                "description": "The description of the project."
              },
              "sceneUrl": {
                "type": "string",
                "description": "The scene URL of the project."
              },
              "thumbnail": {
                "type": "string",
                "description": "The thumbnail URL of the project."
              },
              "organization": {
                "type": "object",
                "properties": {},
                "additionalProperties": true,
                "description": "A raw Zeplin object."
              },
              "remPreferences": {
                "type": "object",
                "properties": {},
                "additionalProperties": true,
                "description": "A raw Zeplin object."
              },
              "workflowStatus": {
                "type": "object",
                "properties": {},
                "additionalProperties": true,
                "description": "A raw Zeplin object."
              },
              "styleguide": {
                "type": "object",
                "properties": {},
                "additionalProperties": true,
                "description": "A raw Zeplin object."
              }
            },
            "additionalProperties": false,
            "required": [
              "id",
              "name",
              "platform",
              "status",
              "created",
              "numberOfMembers",
              "numberOfScreens",
              "numberOfComponents",
              "numberOfConnectedComponents",
              "numberOfTextStyles",
              "numberOfColors",
              "numberOfSpacingTokens"
            ],
            "description": "The project detail with optional styleguide."
          }
        },
        "additionalProperties": false,
        "required": [
          "project"
        ],
        "description": "The output payload for this action."
      }
    },
    {
      "id": "zeplin.list_personal_projects",
      "service": "zeplin",
      "name": "list_personal_projects",
      "description": "List projects in the current user's Zeplin personal workspace.",
      "requiredScopes": [
        "zeplin.read"
      ],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "description": "The maximum number of items to return."
          },
          "offset": {
            "type": "integer",
            "minimum": 0,
            "description": "The number of items to skip."
          }
        },
        "additionalProperties": false,
        "description": "The pagination parameters for this action."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "projects": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "description": "The unique identifier of the project."
                },
                "name": {
                  "type": "string",
                  "description": "The name of the project."
                },
                "platform": {
                  "type": "string",
                  "description": "The target platform of the project."
                },
                "status": {
                  "type": "string",
                  "description": "The current status of the project."
                },
                "created": {
                  "type": "integer",
                  "minimum": 0,
                  "description": "A Unix timestamp in seconds."
                },
                "updated": {
                  "type": "integer",
                  "minimum": 0,
                  "description": "The timestamp when the project was last updated."
                },
                "numberOfMembers": {
                  "type": "integer",
                  "minimum": 0,
                  "description": "The number of project members."
                },
                "numberOfScreens": {
                  "type": "integer",
                  "minimum": 0,
                  "description": "The number of screens in the project."
                },
                "numberOfComponents": {
                  "type": "integer",
                  "minimum": 0,
                  "description": "The number of components in the project."
                },
                "numberOfConnectedComponents": {
                  "type": "integer",
                  "minimum": 0,
                  "description": "The number of connected components."
                },
                "numberOfTextStyles": {
                  "type": "integer",
                  "minimum": 0,
                  "description": "The number of text styles."
                },
                "numberOfColors": {
                  "type": "integer",
                  "minimum": 0,
                  "description": "The number of color tokens."
                },
                "numberOfSpacingTokens": {
                  "type": "integer",
                  "minimum": 0,
                  "description": "The number of spacing tokens."
                },
                "description": {
                  "type": "string",
                  "description": "The description of the project."
                },
                "sceneUrl": {
                  "type": "string",
                  "description": "The scene URL of the project."
                },
                "thumbnail": {
                  "type": "string",
                  "description": "The thumbnail URL of the project."
                },
                "organization": {
                  "type": "object",
                  "properties": {},
                  "additionalProperties": true,
                  "description": "A raw Zeplin object."
                },
                "remPreferences": {
                  "type": "object",
                  "properties": {},
                  "additionalProperties": true,
                  "description": "A raw Zeplin object."
                },
                "workflowStatus": {
                  "type": "object",
                  "properties": {},
                  "additionalProperties": true,
                  "description": "A raw Zeplin object."
                }
              },
              "additionalProperties": false,
              "required": [
                "id",
                "name",
                "platform",
                "status",
                "created",
                "numberOfMembers",
                "numberOfScreens",
                "numberOfComponents",
                "numberOfConnectedComponents",
                "numberOfTextStyles",
                "numberOfColors",
                "numberOfSpacingTokens"
              ],
              "description": "A Zeplin project summary."
            },
            "description": "The list of projects."
          }
        },
        "additionalProperties": false,
        "required": [
          "projects"
        ],
        "description": "The output payload for this action."
      }
    },
    {
      "id": "zeplin.list_project_colors",
      "service": "zeplin",
      "name": "list_project_colors",
      "description": "List color tokens defined for a Zeplin project.",
      "requiredScopes": [
        "zeplin.read"
      ],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "description": "The maximum number of items to return."
          },
          "offset": {
            "type": "integer",
            "minimum": 0,
            "description": "The number of items to skip."
          },
          "projectId": {
            "type": "string",
            "minLength": 1,
            "description": "The project ID."
          }
        },
        "additionalProperties": false,
        "required": [
          "projectId"
        ],
        "description": "The input payload for this action."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "colors": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "description": "The unique identifier of the color."
                },
                "name": {
                  "type": "string",
                  "description": "The name of the color."
                },
                "source": {
                  "type": "object",
                  "properties": {},
                  "additionalProperties": true,
                  "description": "A raw Zeplin object."
                },
                "created": {
                  "type": "integer",
                  "minimum": 0,
                  "description": "A Unix timestamp in seconds."
                },
                "color": {
                  "type": "object",
                  "properties": {
                    "r": {
                      "type": "integer",
                      "minimum": 0,
                      "maximum": 255,
                      "description": "The red channel value."
                    },
                    "g": {
                      "type": "integer",
                      "minimum": 0,
                      "maximum": 255,
                      "description": "The green channel value."
                    },
                    "b": {
                      "type": "integer",
                      "minimum": 0,
                      "maximum": 255,
                      "description": "The blue channel value."
                    },
                    "a": {
                      "type": "number",
                      "minimum": 0,
                      "maximum": 1,
                      "description": "The alpha channel value."
                    }
                  },
                  "additionalProperties": false,
                  "description": "The RGBA color values."
                },
                "description": {
                  "type": "string",
                  "description": "The description of the color."
                },
                "hex": {
                  "type": "string",
                  "description": "The hex color code."
                }
              },
              "additionalProperties": false,
              "required": [
                "id",
                "name",
                "source",
                "created",
                "color"
              ],
              "description": "A Zeplin color token."
            },
            "description": "The list of color tokens."
          }
        },
        "additionalProperties": false,
        "required": [
          "colors"
        ],
        "description": "The output payload for this action."
      }
    },
    {
      "id": "zeplin.list_project_text_styles",
      "service": "zeplin",
      "name": "list_project_text_styles",
      "description": "List text styles defined for a Zeplin project.",
      "requiredScopes": [
        "zeplin.read"
      ],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "description": "The maximum number of items to return."
          },
          "offset": {
            "type": "integer",
            "minimum": 0,
            "description": "The number of items to skip."
          },
          "projectId": {
            "type": "string",
            "minLength": 1,
            "description": "The project ID."
          }
        },
        "additionalProperties": false,
        "required": [
          "projectId"
        ],
        "description": "The input payload for this action."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "textStyles": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "description": "The unique identifier of the text style."
                },
                "name": {
                  "type": "string",
                  "description": "The name of the text style."
                },
                "source": {
                  "type": "object",
                  "properties": {},
                  "additionalProperties": true,
                  "description": "A raw Zeplin object."
                },
                "created": {
                  "type": "integer",
                  "minimum": 0,
                  "description": "A Unix timestamp in seconds."
                },
                "fontFamily": {
                  "type": "string",
                  "description": "The font family name."
                },
                "fontSize": {
                  "type": "number",
                  "description": "The font size in points."
                },
                "fontWeight": {
                  "type": "number",
                  "description": "The font weight value."
                },
                "fontStyle": {
                  "type": "string",
                  "description": "The font style."
                },
                "fontStretch": {
                  "type": "number",
                  "description": "The font stretch value."
                },
                "lineHeight": {
                  "type": "number",
                  "description": "The line height."
                },
                "letterSpacing": {
                  "type": "number",
                  "description": "The letter spacing."
                },
                "textAlign": {
                  "type": "string",
                  "description": "The text alignment."
                },
                "color": {
                  "type": "object",
                  "properties": {
                    "r": {
                      "type": "integer",
                      "minimum": 0,
                      "maximum": 255,
                      "description": "The red channel value."
                    },
                    "g": {
                      "type": "integer",
                      "minimum": 0,
                      "maximum": 255,
                      "description": "The green channel value."
                    },
                    "b": {
                      "type": "integer",
                      "minimum": 0,
                      "maximum": 255,
                      "description": "The blue channel value."
                    },
                    "a": {
                      "type": "number",
                      "minimum": 0,
                      "maximum": 1,
                      "description": "The alpha channel value."
                    }
                  },
                  "additionalProperties": false,
                  "description": "The RGBA color values."
                },
                "description": {
                  "type": "string",
                  "description": "The description of the text style."
                }
              },
              "additionalProperties": false,
              "required": [
                "id",
                "name",
                "source",
                "created",
                "fontFamily",
                "fontSize",
                "fontWeight",
                "fontStyle",
                "fontStretch",
                "color"
              ],
              "description": "A Zeplin text style."
            },
            "description": "The list of text styles."
          }
        },
        "additionalProperties": false,
        "required": [
          "textStyles"
        ],
        "description": "The output payload for this action."
      }
    },
    {
      "id": "zeplin.list_screen_versions",
      "service": "zeplin",
      "name": "list_screen_versions",
      "description": "List versions of a Zeplin screen. This action requires both projectId and screenId to match the official endpoint.",
      "requiredScopes": [
        "zeplin.read"
      ],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "description": "The maximum number of items to return."
          },
          "offset": {
            "type": "integer",
            "minimum": 0,
            "description": "The number of items to skip."
          },
          "projectId": {
            "type": "string",
            "minLength": 1,
            "description": "The project ID."
          },
          "screenId": {
            "type": "string",
            "minLength": 1,
            "description": "The screen ID."
          }
        },
        "additionalProperties": false,
        "required": [
          "projectId",
          "screenId"
        ],
        "description": "The input payload for this action."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "versions": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "description": "The unique identifier of the screen version."
                },
                "created": {
                  "type": "integer",
                  "minimum": 0,
                  "description": "A Unix timestamp in seconds."
                },
                "commitMessage": {
                  "type": "string",
                  "description": "The commit message for the version."
                },
                "version": {
                  "type": "integer",
                  "description": "The version number."
                },
                "author": {
                  "type": "object",
                  "properties": {},
                  "additionalProperties": true,
                  "description": "A raw Zeplin object."
                }
              },
              "additionalProperties": false,
              "required": [
                "id"
              ],
              "description": "A Zeplin screen version."
            },
            "description": "The list of screen versions."
          }
        },
        "additionalProperties": false,
        "required": [
          "versions"
        ],
        "description": "The output payload for this action."
      }
    }
  ]
}
