{
  "service": "devto",
  "displayName": "Dev.to",
  "categories": [
    "Social"
  ],
  "authTypes": [
    "api_key"
  ],
  "auth": [
    {
      "type": "api_key",
      "label": "API Key",
      "placeholder": "devto_api_key",
      "description": "DEV API key sent with the api-key header. Generate one from your DEV settings page: https://developers.forem.com/api.",
      "extraFields": []
    }
  ],
  "homepageUrl": "https://dev.to",
  "actions": [
    {
      "id": "devto.create_article",
      "service": "devto",
      "name": "create_article",
      "description": "Create a new Dev.to article.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "title": {
            "type": "string",
            "minLength": 1,
            "description": "The article title."
          },
          "bodyMarkdown": {
            "type": "string",
            "minLength": 1,
            "description": "The article body in markdown."
          },
          "published": {
            "type": "boolean",
            "description": "Whether the article is published."
          },
          "series": {
            "anyOf": [
              {
                "type": "string",
                "description": "The optional article series."
              },
              {
                "type": "null"
              }
            ]
          },
          "mainImage": {
            "anyOf": [
              {
                "type": "string",
                "description": "The optional main image URL."
              },
              {
                "type": "null"
              }
            ]
          },
          "canonicalUrl": {
            "anyOf": [
              {
                "type": "string",
                "description": "The optional canonical URL."
              },
              {
                "type": "null"
              }
            ]
          },
          "description": {
            "type": "string",
            "description": "The article description."
          },
          "tags": {
            "anyOf": [
              {
                "type": "string",
                "description": "A single tag value."
              },
              {
                "type": "array",
                "items": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "A list of tag values."
              }
            ],
            "description": "A tag list represented as a string or a string array."
          },
          "organizationId": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 1,
                "description": "The optional organization identifier."
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "additionalProperties": false,
        "required": [
          "title",
          "bodyMarkdown"
        ],
        "description": "The input parameters for creating an article."
      },
      "outputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": true,
        "description": "A Dev.to article record."
      }
    },
    {
      "id": "devto.get_article",
      "service": "devto",
      "name": "get_article",
      "description": "Get a Dev.to article by numeric id.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "articleId": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 1,
                "description": "A positive numeric article identifier."
              },
              {
                "type": "string",
                "pattern": "^\\d+$"
              }
            ],
            "description": "An article identifier accepted by the Dev.to API."
          }
        },
        "additionalProperties": false,
        "description": "The input parameters for fetching an article by id."
      },
      "outputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": true,
        "description": "A Dev.to article record."
      }
    },
    {
      "id": "devto.get_article_by_path",
      "service": "devto",
      "name": "get_article_by_path",
      "description": "Get a Dev.to article by username and slug.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "username": {
            "type": "string",
            "minLength": 1,
            "description": "The article author username."
          },
          "slug": {
            "type": "string",
            "minLength": 1,
            "description": "The article slug."
          }
        },
        "additionalProperties": false,
        "description": "The input parameters for fetching an article by path."
      },
      "outputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": true,
        "description": "A Dev.to article record."
      }
    },
    {
      "id": "devto.get_current_user",
      "service": "devto",
      "name": "get_current_user",
      "description": "Get the current authenticated Dev.to user profile.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false,
        "description": "No input parameters are required for this action."
      },
      "outputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": true,
        "description": "A Dev.to current user profile."
      }
    },
    {
      "id": "devto.get_organization",
      "service": "devto",
      "name": "get_organization",
      "description": "Get Dev.to organization profile.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "organizationUsername": {
            "type": "string",
            "minLength": 1,
            "description": "The organization username."
          }
        },
        "additionalProperties": false,
        "description": "The input parameters for fetching an organization profile."
      },
      "outputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": true,
        "description": "A Dev.to organization profile."
      }
    },
    {
      "id": "devto.list_articles",
      "service": "devto",
      "name": "list_articles",
      "description": "List published Dev.to articles with query filters.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "page": {
            "type": "integer",
            "minimum": 1,
            "description": "The page number to fetch."
          },
          "perPage": {
            "type": "integer",
            "minimum": 1,
            "maximum": 1000,
            "description": "The number of items per page."
          },
          "tag": {
            "type": "string",
            "description": "The tag filter."
          },
          "tags": {
            "anyOf": [
              {
                "type": "string",
                "description": "A single tag value."
              },
              {
                "type": "array",
                "items": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "A list of tag values."
              }
            ],
            "description": "A tag list represented as a string or a string array."
          },
          "tagsExclude": {
            "anyOf": [
              {
                "type": "string",
                "description": "A single tag value."
              },
              {
                "type": "array",
                "items": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "A list of tag values."
              }
            ],
            "description": "A tag list represented as a string or a string array."
          },
          "username": {
            "type": "string",
            "description": "The username filter."
          },
          "state": {
            "type": "string",
            "enum": [
              "fresh",
              "rising",
              "all"
            ],
            "description": "The article listing state."
          },
          "top": {
            "type": "integer",
            "minimum": 1,
            "description": "The top rank limit."
          },
          "collectionId": {
            "type": "integer",
            "minimum": 1,
            "description": "The collection identifier filter."
          }
        },
        "additionalProperties": false,
        "description": "The input parameters for listing Dev.to articles."
      },
      "outputSchema": {
        "type": "array",
        "items": {
          "type": "object",
          "properties": {},
          "additionalProperties": true,
          "description": "A Dev.to article record."
        },
        "description": "The list of article summary records returned by the action."
      }
    },
    {
      "id": "devto.list_latest_articles",
      "service": "devto",
      "name": "list_latest_articles",
      "description": "List latest Dev.to articles.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "page": {
            "type": "integer",
            "minimum": 1,
            "description": "The page number to fetch."
          },
          "perPage": {
            "type": "integer",
            "minimum": 1,
            "maximum": 1000,
            "description": "The number of items per page."
          }
        },
        "additionalProperties": false,
        "description": "The input parameters for listing the latest Dev.to articles."
      },
      "outputSchema": {
        "type": "array",
        "items": {
          "type": "object",
          "properties": {},
          "additionalProperties": true,
          "description": "A Dev.to article record."
        },
        "description": "The list of article summary records returned by the action."
      }
    },
    {
      "id": "devto.list_my_articles",
      "service": "devto",
      "name": "list_my_articles",
      "description": "List current user's own Dev.to articles by status.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "page": {
            "type": "integer",
            "minimum": 1,
            "description": "The page number to fetch."
          },
          "perPage": {
            "type": "integer",
            "minimum": 1,
            "maximum": 1000,
            "description": "The number of items per page."
          },
          "status": {
            "type": "string",
            "enum": [
              "default",
              "published",
              "unpublished",
              "all"
            ],
            "description": "The article status filter."
          }
        },
        "additionalProperties": false,
        "description": "The input parameters for listing the current user's articles."
      },
      "outputSchema": {
        "type": "array",
        "items": {
          "type": "object",
          "properties": {},
          "additionalProperties": true,
          "description": "A Dev.to article record."
        },
        "description": "The list of article summary records returned by the action."
      }
    },
    {
      "id": "devto.list_organization_articles",
      "service": "devto",
      "name": "list_organization_articles",
      "description": "List articles under a Dev.to organization.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "organizationUsername": {
            "type": "string",
            "minLength": 1,
            "description": "The organization username."
          },
          "page": {
            "type": "integer",
            "minimum": 1,
            "description": "The page number to fetch."
          },
          "perPage": {
            "type": "integer",
            "minimum": 1,
            "maximum": 1000,
            "description": "The number of items per page."
          }
        },
        "additionalProperties": false,
        "required": [
          "organizationUsername"
        ],
        "description": "The input parameters for listing organization articles."
      },
      "outputSchema": {
        "type": "array",
        "items": {
          "type": "object",
          "properties": {},
          "additionalProperties": true,
          "description": "A Dev.to article record."
        },
        "description": "The list of article summary records returned by the action."
      }
    },
    {
      "id": "devto.list_tags",
      "service": "devto",
      "name": "list_tags",
      "description": "List Dev.to tags.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "page": {
            "type": "integer",
            "minimum": 1,
            "description": "The page number to fetch."
          },
          "perPage": {
            "type": "integer",
            "minimum": 1,
            "maximum": 1000,
            "description": "The number of items per page."
          }
        },
        "additionalProperties": false,
        "description": "The input parameters for listing Dev.to tags."
      },
      "outputSchema": {
        "type": "array",
        "items": {
          "type": "object",
          "properties": {},
          "additionalProperties": true,
          "description": "A Dev.to tag record."
        },
        "description": "The list of tag records returned by the action."
      }
    },
    {
      "id": "devto.list_videos",
      "service": "devto",
      "name": "list_videos",
      "description": "List Dev.to videos.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "page": {
            "type": "integer",
            "minimum": 1,
            "description": "The page number to fetch."
          },
          "perPage": {
            "type": "integer",
            "minimum": 1,
            "maximum": 1000,
            "description": "The number of items per page."
          }
        },
        "additionalProperties": false,
        "description": "The input parameters for listing Dev.to videos."
      },
      "outputSchema": {
        "type": "array",
        "items": {
          "type": "object",
          "properties": {},
          "additionalProperties": true,
          "description": "A Dev.to video article record."
        },
        "description": "The list of video article records returned by the action."
      }
    },
    {
      "id": "devto.update_article",
      "service": "devto",
      "name": "update_article",
      "description": "Update an existing Dev.to article.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "articleId": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 1,
                "description": "A positive numeric article identifier."
              },
              {
                "type": "string",
                "pattern": "^\\d+$"
              }
            ],
            "description": "An article identifier accepted by the Dev.to API."
          },
          "title": {
            "type": "string",
            "minLength": 1,
            "description": "The article title."
          },
          "bodyMarkdown": {
            "type": "string",
            "minLength": 1,
            "description": "The article body in markdown."
          },
          "published": {
            "type": "boolean",
            "description": "Whether the article is published."
          },
          "series": {
            "anyOf": [
              {
                "type": "string",
                "description": "The optional article series."
              },
              {
                "type": "null"
              }
            ]
          },
          "mainImage": {
            "anyOf": [
              {
                "type": "string",
                "description": "The optional main image URL."
              },
              {
                "type": "null"
              }
            ]
          },
          "canonicalUrl": {
            "anyOf": [
              {
                "type": "string",
                "description": "The optional canonical URL."
              },
              {
                "type": "null"
              }
            ]
          },
          "description": {
            "type": "string",
            "description": "The article description."
          },
          "tags": {
            "anyOf": [
              {
                "type": "string",
                "description": "A single tag value."
              },
              {
                "type": "array",
                "items": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "A list of tag values."
              }
            ],
            "description": "A tag list represented as a string or a string array."
          },
          "organizationId": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 1,
                "description": "The optional organization identifier."
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "additionalProperties": false,
        "required": [
          "articleId",
          "title",
          "bodyMarkdown"
        ],
        "description": "The input parameters for updating an article."
      },
      "outputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": true,
        "description": "A Dev.to article record."
      }
    }
  ]
}
