{
  "service": "heyreach",
  "displayName": "HeyReach",
  "categories": [
    "Marketing"
  ],
  "authTypes": [
    "api_key"
  ],
  "auth": [
    {
      "type": "api_key",
      "label": "API Key",
      "placeholder": "HEYREACH_API_KEY",
      "description": "HeyReach API key sent with the X-API-KEY request header. Create or copy it from Settings > API in your HeyReach account: https://app.heyreach.io/account/login.",
      "extraFields": []
    }
  ],
  "homepageUrl": "https://www.heyreach.io",
  "actions": [
    {
      "id": "heyreach.create_empty_list",
      "service": "heyreach",
      "name": "create_empty_list",
      "description": "Create an empty HeyReach lead or company list.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "description": "The list name."
          },
          "type": {
            "type": "string",
            "enum": [
              "USER_LIST",
              "COMPANY_LIST"
            ],
            "description": "The HeyReach list type."
          }
        },
        "additionalProperties": false,
        "required": [
          "name"
        ],
        "description": "Input payload for creating an empty HeyReach list."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "list": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw object returned by HeyReach."
          }
        },
        "additionalProperties": false,
        "required": [
          "list"
        ],
        "description": "The response returned after creating a list."
      }
    },
    {
      "id": "heyreach.get_campaign",
      "service": "heyreach",
      "name": "get_campaign",
      "description": "Retrieve one HeyReach campaign by ID.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "campaignId": {
            "type": "integer",
            "minimum": 1,
            "description": "The HeyReach campaign ID."
          }
        },
        "additionalProperties": false,
        "required": [
          "campaignId"
        ],
        "description": "Input payload for retrieving a HeyReach campaign."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "campaign": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw object returned by HeyReach."
          }
        },
        "additionalProperties": false,
        "required": [
          "campaign"
        ],
        "description": "The response returned when retrieving a campaign."
      }
    },
    {
      "id": "heyreach.get_lead",
      "service": "heyreach",
      "name": "get_lead",
      "description": "Retrieve HeyReach lead details by LinkedIn profile URL.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "profileUrl": {
            "type": "string",
            "description": "The LinkedIn profile URL for the lead.",
            "format": "uri"
          }
        },
        "additionalProperties": false,
        "required": [
          "profileUrl"
        ],
        "description": "Input payload for retrieving a HeyReach lead."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "lead": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw object returned by HeyReach."
          }
        },
        "additionalProperties": false,
        "required": [
          "lead"
        ],
        "description": "The response returned when retrieving a lead."
      }
    },
    {
      "id": "heyreach.get_lead_tags",
      "service": "heyreach",
      "name": "get_lead_tags",
      "description": "Retrieve tags for a HeyReach lead by LinkedIn profile URL.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "profileUrl": {
            "type": "string",
            "description": "The LinkedIn profile URL for the lead.",
            "format": "uri"
          }
        },
        "additionalProperties": false,
        "required": [
          "profileUrl"
        ],
        "description": "Input payload for retrieving HeyReach lead tags."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "tags": {
            "type": "array",
            "items": {
              "type": "string",
              "description": "A lead tag."
            },
            "description": "The tags returned by HeyReach."
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw object returned by HeyReach."
          }
        },
        "additionalProperties": false,
        "required": [
          "tags",
          "raw"
        ],
        "description": "The response returned when retrieving HeyReach lead tags."
      }
    },
    {
      "id": "heyreach.get_overall_stats",
      "service": "heyreach",
      "name": "get_overall_stats",
      "description": "Retrieve aggregated HeyReach outreach stats for optional account and campaign filters.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "accountIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 1,
              "description": "A LinkedIn sender account ID."
            },
            "description": "LinkedIn sender account IDs to include. Omit or pass an empty array to include all senders."
          },
          "campaignIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 1,
              "description": "A HeyReach campaign ID."
            },
            "description": "HeyReach campaign IDs to include. Omit or pass an empty array to include all campaigns."
          },
          "startDate": {
            "type": "string",
            "description": "The start of the stats time range.",
            "format": "date-time"
          },
          "endDate": {
            "type": "string",
            "description": "The end of the stats time range.",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "description": "Input payload for retrieving HeyReach outreach stats."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "stats": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw object returned by HeyReach."
          }
        },
        "additionalProperties": false,
        "required": [
          "stats"
        ],
        "description": "The response returned when retrieving overall stats."
      }
    },
    {
      "id": "heyreach.get_overall_stats_by_campaign",
      "service": "heyreach",
      "name": "get_overall_stats_by_campaign",
      "description": "Retrieve HeyReach outreach stats grouped by campaign.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "accountIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 1,
              "description": "A LinkedIn sender account ID."
            },
            "description": "LinkedIn sender account IDs to include. Omit or pass an empty array to include all senders."
          },
          "campaignIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 1,
              "description": "A HeyReach campaign ID."
            },
            "description": "HeyReach campaign IDs to include. Omit or pass an empty array to include all campaigns."
          },
          "startDate": {
            "type": "string",
            "description": "The start of the stats time range.",
            "format": "date-time"
          },
          "endDate": {
            "type": "string",
            "description": "The end of the stats time range.",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "description": "Input payload for retrieving HeyReach outreach stats."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "stats": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw object returned by HeyReach."
          }
        },
        "additionalProperties": false,
        "required": [
          "stats"
        ],
        "description": "The response returned when retrieving stats grouped by campaign."
      }
    },
    {
      "id": "heyreach.list_campaigns",
      "service": "heyreach",
      "name": "list_campaigns",
      "description": "List HeyReach campaigns with optional filters and pagination.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "offset": {
            "type": "integer",
            "minimum": 0,
            "description": "The number of records to skip."
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "description": "The maximum number of records to return."
          },
          "keyword": {
            "type": "string",
            "minLength": 1,
            "description": "A keyword used to filter campaigns by name."
          },
          "statuses": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "DRAFT",
                "IN_PROGRESS",
                "PAUSED",
                "FINISHED",
                "CANCELED",
                "FAILED",
                "STARTING",
                "SCHEDULED"
              ],
              "description": "A HeyReach campaign status filter."
            },
            "description": "Campaign statuses to include.",
            "minItems": 1
          },
          "accountIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 1,
              "description": "A LinkedIn sender account ID."
            },
            "description": "LinkedIn sender account IDs used to filter campaigns.",
            "minItems": 1
          }
        },
        "additionalProperties": false,
        "description": "Input payload for listing HeyReach campaigns."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "totalCount": {
            "anyOf": [
              {
                "type": "integer",
                "description": "The total number of matching records when provided."
              },
              {
                "type": "null"
              }
            ]
          },
          "campaigns": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "integer",
                  "description": "The HeyReach campaign ID."
                },
                "name": {
                  "type": "string",
                  "description": "The campaign name."
                },
                "status": {
                  "type": "string",
                  "description": "The campaign status."
                },
                "creationTime": {
                  "type": "string",
                  "description": "The campaign creation timestamp."
                }
              },
              "additionalProperties": true,
              "description": "A HeyReach campaign summary."
            },
            "description": "The campaigns returned by HeyReach."
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw object returned by HeyReach."
          }
        },
        "additionalProperties": false,
        "required": [
          "totalCount",
          "campaigns",
          "raw"
        ],
        "description": "The response returned when listing HeyReach campaigns."
      }
    },
    {
      "id": "heyreach.list_leads",
      "service": "heyreach",
      "name": "list_leads",
      "description": "List leads from a HeyReach list with optional filters and pagination.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "listId": {
            "type": "integer",
            "minimum": 1,
            "description": "The HeyReach list ID."
          },
          "offset": {
            "type": "integer",
            "minimum": 0,
            "description": "The number of records to skip."
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "description": "The maximum number of records to return."
          },
          "keyword": {
            "type": "string",
            "minLength": 1,
            "description": "A keyword used to filter leads."
          },
          "createdFrom": {
            "type": "string",
            "description": "The earliest lead creation timestamp to include.",
            "format": "date-time"
          },
          "createdTo": {
            "type": "string",
            "description": "The latest lead creation timestamp to include.",
            "format": "date-time"
          },
          "leadLinkedInId": {
            "type": "string",
            "minLength": 1,
            "description": "A LinkedIn member ID used to filter leads."
          },
          "leadProfileUrl": {
            "type": "string",
            "description": "A LinkedIn profile URL used to filter leads.",
            "format": "uri"
          }
        },
        "additionalProperties": false,
        "required": [
          "listId"
        ],
        "description": "Input payload for listing HeyReach leads from a list."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "totalCount": {
            "anyOf": [
              {
                "type": "integer",
                "description": "The total number of matching records when provided."
              },
              {
                "type": "null"
              }
            ]
          },
          "leads": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "profileUrl": {
                  "type": "string",
                  "description": "The LinkedIn profile URL for the lead."
                },
                "firstName": {
                  "type": "string",
                  "description": "The lead first name."
                },
                "lastName": {
                  "type": "string",
                  "description": "The lead last name."
                },
                "emailAddress": {
                  "type": "string",
                  "description": "The lead email address when available."
                },
                "companyName": {
                  "type": "string",
                  "description": "The lead company name when available."
                }
              },
              "additionalProperties": true,
              "description": "A HeyReach lead summary."
            },
            "description": "The leads returned by HeyReach."
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw object returned by HeyReach."
          }
        },
        "additionalProperties": false,
        "required": [
          "totalCount",
          "leads",
          "raw"
        ],
        "description": "The response returned when listing HeyReach leads."
      }
    },
    {
      "id": "heyreach.list_linkedin_accounts",
      "service": "heyreach",
      "name": "list_linkedin_accounts",
      "description": "List HeyReach LinkedIn sender accounts with pagination.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "offset": {
            "type": "integer",
            "minimum": 0,
            "description": "The number of records to skip."
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "description": "The maximum number of records to return."
          }
        },
        "additionalProperties": false,
        "description": "Input payload for listing sender accounts."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "totalCount": {
            "anyOf": [
              {
                "type": "integer",
                "description": "The total number of matching records when provided."
              },
              {
                "type": "null"
              }
            ]
          },
          "accounts": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "integer",
                  "description": "The LinkedIn sender account ID."
                },
                "emailAddress": {
                  "type": "string",
                  "description": "The sender account email address."
                },
                "firstName": {
                  "type": "string",
                  "description": "The sender first name."
                },
                "lastName": {
                  "type": "string",
                  "description": "The sender last name."
                }
              },
              "additionalProperties": true,
              "description": "A HeyReach LinkedIn sender account."
            },
            "description": "The LinkedIn sender accounts returned by HeyReach."
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw object returned by HeyReach."
          }
        },
        "additionalProperties": false,
        "required": [
          "totalCount",
          "accounts",
          "raw"
        ],
        "description": "The response returned when listing HeyReach LinkedIn sender accounts."
      }
    },
    {
      "id": "heyreach.list_lists",
      "service": "heyreach",
      "name": "list_lists",
      "description": "List HeyReach lead and company lists with pagination.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "offset": {
            "type": "integer",
            "minimum": 0,
            "description": "The number of records to skip."
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "description": "The maximum number of records to return."
          }
        },
        "additionalProperties": false,
        "description": "Input payload for listing HeyReach lists."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "totalCount": {
            "anyOf": [
              {
                "type": "integer",
                "description": "The total number of matching records when provided."
              },
              {
                "type": "null"
              }
            ]
          },
          "lists": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "integer",
                  "description": "The HeyReach list ID."
                },
                "name": {
                  "type": "string",
                  "description": "The list name."
                },
                "listType": {
                  "type": "string",
                  "description": "The list type."
                },
                "totalItemsCount": {
                  "type": "integer",
                  "description": "The number of items in the list."
                },
                "creationTime": {
                  "type": "string",
                  "description": "The list creation timestamp."
                }
              },
              "additionalProperties": true,
              "description": "A HeyReach list summary."
            },
            "description": "The lists returned by HeyReach."
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw object returned by HeyReach."
          }
        },
        "additionalProperties": false,
        "required": [
          "totalCount",
          "lists",
          "raw"
        ],
        "description": "The response returned when listing HeyReach lists."
      }
    }
  ]
}
