{
  "service": "lusha",
  "displayName": "Lusha",
  "categories": [
    "Data",
    "Marketing"
  ],
  "authTypes": [
    "api_key"
  ],
  "auth": [
    {
      "type": "api_key",
      "label": "API Key",
      "placeholder": "LUSHA_API_KEY",
      "description": "Lusha API key sent with the api_key request header. Generate and manage it in the Lusha dashboard API page: https://dashboard.lusha.com/enrich/api."
    }
  ],
  "homepageUrl": "https://www.lusha.com",
  "actions": [
    {
      "id": "lusha.enrich_companies",
      "service": "lusha",
      "name": "enrich_companies",
      "description": "Reveal firmographic, employee, competitor, and intent data for companies returned by Lusha Companies Search.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "ids": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "A company ID."
            },
            "description": "Lusha company IDs returned by Companies Search.",
            "minItems": 1,
            "maxItems": 100
          },
          "reveal": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "employeesByDepartment",
                "employeesByLocation",
                "employeesBySeniority",
                "competitors",
                "intent"
              ],
              "description": "The company data fields to reveal."
            },
            "description": "Company data fields to reveal.",
            "minItems": 1
          }
        },
        "additionalProperties": false,
        "required": [
          "ids"
        ],
        "description": "The input payload for Lusha Companies Enrich."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "requestId": {
            "type": "string",
            "description": "Lusha request ID for tracing the enrich request."
          },
          "results": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "A Lusha enriched company result."
            },
            "description": "Enriched company results returned by Lusha."
          },
          "billing": {
            "type": "object",
            "properties": {
              "creditsCharged": {
                "type": "integer",
                "description": "Total credits charged for the request."
              },
              "resultsReturned": {
                "type": "integer",
                "description": "Number of successful results returned."
              }
            },
            "additionalProperties": true,
            "description": "Credit usage summary for a Lusha API request."
          }
        },
        "additionalProperties": true,
        "description": "The Lusha Companies Enrich response."
      }
    },
    {
      "id": "lusha.enrich_contacts",
      "service": "lusha",
      "name": "enrich_contacts",
      "description": "Reveal email and phone data for contacts previously returned by Lusha Contacts Search.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "ids": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "A contact ID."
            },
            "description": "Lusha contact IDs returned by Contacts Search.",
            "minItems": 1,
            "maxItems": 100
          },
          "reveal": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "emails",
                "phones"
              ],
              "description": "The contact data fields to reveal."
            },
            "description": "Contact data fields to reveal. Omit this field to reveal both emails and phones.",
            "minItems": 1
          }
        },
        "additionalProperties": false,
        "required": [
          "ids"
        ],
        "description": "The input payload for Lusha Contacts Enrich."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "requestId": {
            "type": "string",
            "description": "Lusha request ID for tracing the enrich request."
          },
          "results": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "A Lusha enriched contact result."
            },
            "description": "Enriched contact results returned by Lusha."
          },
          "billing": {
            "type": "object",
            "properties": {
              "creditsCharged": {
                "type": "integer",
                "description": "Total credits charged for the request."
              },
              "resultsReturned": {
                "type": "integer",
                "description": "Number of successful results returned."
              }
            },
            "additionalProperties": true,
            "description": "Credit usage summary for a Lusha API request."
          }
        },
        "additionalProperties": true,
        "description": "The Lusha Contacts Enrich response."
      }
    },
    {
      "id": "lusha.get_account_usage",
      "service": "lusha",
      "name": "get_account_usage",
      "description": "Retrieve Lusha account usage, credit balance, rate limits, plan details, and API action pricing.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false,
        "description": "This action does not require input."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "credits": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Credit totals for the current billing cycle."
          },
          "rateLimits": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Daily, hourly, and per-minute rate limit usage snapshots."
          },
          "plan": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The current Lusha plan category and renewal window."
          },
          "pricing": {
            "type": "object",
            "additionalProperties": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "A pricing entry."
            },
            "description": "Credit pricing entries keyed by Lusha action type."
          }
        },
        "additionalProperties": true,
        "description": "The Lusha account usage response."
      }
    },
    {
      "id": "lusha.search_companies",
      "service": "lusha",
      "name": "search_companies",
      "description": "Search for Lusha company previews by company ID, name, or domain.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "companies": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "clientReferenceId": {
                  "type": "string",
                  "minLength": 1,
                  "description": "Caller-supplied reference ID echoed in the result item."
                },
                "id": {
                  "type": "string",
                  "minLength": 1,
                  "description": "Lusha company ID returned by a previous search."
                },
                "name": {
                  "type": "string",
                  "minLength": 1,
                  "description": "Company name used to identify the company."
                },
                "domain": {
                  "type": "string",
                  "minLength": 1,
                  "description": "Company domain used to identify the company."
                }
              },
              "additionalProperties": false,
              "description": "A company identifier object accepted by Lusha Companies Search.",
              "anyOf": [
                {
                  "required": [
                    "id"
                  ]
                },
                {
                  "required": [
                    "name"
                  ]
                },
                {
                  "required": [
                    "domain"
                  ]
                }
              ]
            },
            "description": "Companies to search for, with up to 100 entries.",
            "minItems": 1,
            "maxItems": 100
          },
          "options": {
            "type": "object",
            "properties": {
              "includePartialProfiles": {
                "type": "boolean",
                "description": "Whether to include partial profiles in the results."
              }
            },
            "additionalProperties": false,
            "description": "Additional options for Lusha search requests."
          }
        },
        "additionalProperties": false,
        "required": [
          "companies"
        ],
        "description": "The input payload for Lusha Companies Search."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "requestId": {
            "type": "string",
            "description": "Lusha request ID for tracing the search request."
          },
          "results": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "A Lusha company preview result."
            },
            "description": "Company preview results returned by Lusha."
          },
          "billing": {
            "type": "object",
            "properties": {
              "creditsCharged": {
                "type": "integer",
                "description": "Total credits charged for the request."
              },
              "resultsReturned": {
                "type": "integer",
                "description": "Number of successful results returned."
              }
            },
            "additionalProperties": true,
            "description": "Credit usage summary for a Lusha API request."
          }
        },
        "additionalProperties": true,
        "description": "The Lusha Companies Search response."
      }
    },
    {
      "id": "lusha.search_contacts",
      "service": "lusha",
      "name": "search_contacts",
      "description": "Search for Lusha contact previews by contact ID, LinkedIn URL, email, or name plus company identifier.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "contacts": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "clientReferenceId": {
                  "type": "string",
                  "minLength": 1,
                  "description": "Caller-supplied reference ID echoed in the result item."
                },
                "id": {
                  "type": "string",
                  "minLength": 1,
                  "description": "Lusha contact ID returned by a previous search."
                },
                "linkedinUrl": {
                  "type": "string",
                  "description": "Public LinkedIn profile URL for the contact.",
                  "format": "uri"
                },
                "email": {
                  "type": "string",
                  "description": "Email address used to identify the contact.",
                  "format": "email"
                },
                "firstName": {
                  "type": "string",
                  "minLength": 1,
                  "description": "Contact first name."
                },
                "lastName": {
                  "type": "string",
                  "minLength": 1,
                  "description": "Contact last name."
                },
                "companyName": {
                  "type": "string",
                  "minLength": 1,
                  "description": "Company name used with firstName and lastName to identify the contact."
                },
                "companyDomain": {
                  "type": "string",
                  "minLength": 1,
                  "description": "Company domain used with firstName and lastName to identify the contact."
                }
              },
              "additionalProperties": false,
              "description": "A contact identifier object accepted by Lusha Contacts Search.",
              "anyOf": [
                {
                  "required": [
                    "id"
                  ]
                },
                {
                  "required": [
                    "linkedinUrl"
                  ]
                },
                {
                  "required": [
                    "email"
                  ]
                },
                {
                  "required": [
                    "firstName",
                    "lastName"
                  ],
                  "anyOf": [
                    {
                      "required": [
                        "companyName"
                      ]
                    },
                    {
                      "required": [
                        "companyDomain"
                      ]
                    }
                  ]
                }
              ]
            },
            "description": "Contacts to search for, with up to 100 entries.",
            "minItems": 1,
            "maxItems": 100
          },
          "options": {
            "type": "object",
            "properties": {
              "includePartialProfiles": {
                "type": "boolean",
                "description": "Whether to include partial profiles in the results."
              }
            },
            "additionalProperties": false,
            "description": "Additional options for Lusha search requests."
          }
        },
        "additionalProperties": false,
        "required": [
          "contacts"
        ],
        "description": "The input payload for Lusha Contacts Search."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "requestId": {
            "type": "string",
            "description": "Lusha request ID for tracing the search request."
          },
          "results": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "A Lusha contact preview result."
            },
            "description": "Contact preview results returned by Lusha."
          },
          "billing": {
            "type": "object",
            "properties": {
              "creditsCharged": {
                "type": "integer",
                "description": "Total credits charged for the request."
              },
              "resultsReturned": {
                "type": "integer",
                "description": "Number of successful results returned."
              }
            },
            "additionalProperties": true,
            "description": "Credit usage summary for a Lusha API request."
          }
        },
        "additionalProperties": true,
        "description": "The Lusha Contacts Search response."
      }
    }
  ]
}
