{
  "service": "harmonic_ai",
  "displayName": "Harmonic.ai",
  "categories": [
    "Data",
    "AI"
  ],
  "authTypes": [
    "api_key"
  ],
  "auth": [
    {
      "type": "api_key",
      "label": "API Key",
      "placeholder": "HARMONIC_API_KEY",
      "description": "Harmonic team API key sent with the apikey header. Create or manage API keys from the Harmonic console API settings: https://console.harmonic.ai/settings/api-keys.",
      "extraFields": []
    }
  ],
  "homepageUrl": "https://harmonic.ai",
  "actions": [
    {
      "id": "harmonic_ai.enrich_company",
      "service": "harmonic_ai",
      "name": "enrich_company",
      "description": "Enrich one company by website, social, or business profile identifier with Harmonic.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "website_url": {
            "type": "string",
            "description": "Company website URL.",
            "format": "uri"
          },
          "website_domain": {
            "type": "string",
            "minLength": 1,
            "description": "Company website domain."
          },
          "linkedin_url": {
            "type": "string",
            "description": "Company LinkedIn URL.",
            "format": "uri"
          },
          "crunchbase_url": {
            "type": "string",
            "description": "Company Crunchbase URL.",
            "format": "uri"
          },
          "pitchbook_url": {
            "type": "string",
            "description": "Company PitchBook URL.",
            "format": "uri"
          },
          "twitter_url": {
            "type": "string",
            "description": "Company X or Twitter URL.",
            "format": "uri"
          },
          "instagram_url": {
            "type": "string",
            "description": "Company Instagram URL.",
            "format": "uri"
          },
          "facebook_url": {
            "type": "string",
            "description": "Company Facebook URL.",
            "format": "uri"
          },
          "angellist_url": {
            "type": "string",
            "description": "Company AngelList URL.",
            "format": "uri"
          },
          "monster_url": {
            "type": "string",
            "description": "Company Monster URL.",
            "format": "uri"
          },
          "indeed_url": {
            "type": "string",
            "description": "Company Indeed URL.",
            "format": "uri"
          },
          "stackoverflow_url": {
            "type": "string",
            "description": "Company Stack Overflow URL.",
            "format": "uri"
          }
        },
        "additionalProperties": false,
        "description": "Company identifiers accepted by the Harmonic company enrichment endpoint. Provide identifiers for one company only.",
        "anyOf": [
          {
            "required": [
              "website_url"
            ]
          },
          {
            "required": [
              "website_domain"
            ]
          },
          {
            "required": [
              "linkedin_url"
            ]
          },
          {
            "required": [
              "crunchbase_url"
            ]
          },
          {
            "required": [
              "pitchbook_url"
            ]
          },
          {
            "required": [
              "twitter_url"
            ]
          },
          {
            "required": [
              "instagram_url"
            ]
          },
          {
            "required": [
              "facebook_url"
            ]
          },
          {
            "required": [
              "angellist_url"
            ]
          },
          {
            "required": [
              "monster_url"
            ]
          },
          {
            "required": [
              "indeed_url"
            ]
          },
          {
            "required": [
              "stackoverflow_url"
            ]
          }
        ]
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "status": {
            "type": "integer",
            "description": "HTTP status returned by Harmonic for the enrichment request."
          },
          "entity": {
            "type": "object",
            "properties": {
              "entity_urn": {
                "type": "string",
                "description": "The Harmonic entity URN."
              },
              "id": {
                "type": "integer",
                "description": "The Harmonic numeric ID."
              }
            },
            "additionalProperties": true,
            "description": "A Harmonic company or person profile."
          },
          "enrichment": {
            "type": "object",
            "properties": {
              "enrichment_urn": {
                "type": "string",
                "description": "The Harmonic enrichment URN."
              },
              "enrichment_id": {
                "type": "string",
                "description": "The Harmonic enrichment ID."
              },
              "message": {
                "type": "string",
                "description": "Human-readable enrichment status message."
              }
            },
            "additionalProperties": true,
            "description": "Metadata returned when Harmonic starts or reports an enrichment job instead of returning a fresh entity."
          },
          "raw": {
            "type": "object",
            "additionalProperties": true,
            "description": "Raw object returned by the Harmonic API."
          }
        },
        "additionalProperties": false,
        "required": [
          "status",
          "raw"
        ],
        "description": "Result from a Harmonic enrichment request."
      }
    },
    {
      "id": "harmonic_ai.enrich_person",
      "service": "harmonic_ai",
      "name": "enrich_person",
      "description": "Enrich one person by LinkedIn URL or email address with Harmonic.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "linkedin_url": {
            "type": "string",
            "description": "Person LinkedIn URL.",
            "format": "uri"
          },
          "email": {
            "type": "string",
            "description": "Person email address.",
            "format": "email"
          }
        },
        "additionalProperties": false,
        "description": "Person identifiers accepted by the Harmonic person enrichment endpoint.",
        "anyOf": [
          {
            "required": [
              "linkedin_url"
            ]
          },
          {
            "required": [
              "email"
            ]
          }
        ]
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "status": {
            "type": "integer",
            "description": "HTTP status returned by Harmonic for the enrichment request."
          },
          "entity": {
            "type": "object",
            "properties": {
              "entity_urn": {
                "type": "string",
                "description": "The Harmonic entity URN."
              },
              "id": {
                "type": "integer",
                "description": "The Harmonic numeric ID."
              }
            },
            "additionalProperties": true,
            "description": "A Harmonic company or person profile."
          },
          "enrichment": {
            "type": "object",
            "properties": {
              "enrichment_urn": {
                "type": "string",
                "description": "The Harmonic enrichment URN."
              },
              "enrichment_id": {
                "type": "string",
                "description": "The Harmonic enrichment ID."
              },
              "message": {
                "type": "string",
                "description": "Human-readable enrichment status message."
              }
            },
            "additionalProperties": true,
            "description": "Metadata returned when Harmonic starts or reports an enrichment job instead of returning a fresh entity."
          },
          "raw": {
            "type": "object",
            "additionalProperties": true,
            "description": "Raw object returned by the Harmonic API."
          }
        },
        "additionalProperties": false,
        "required": [
          "status",
          "raw"
        ],
        "description": "Result from a Harmonic enrichment request."
      }
    },
    {
      "id": "harmonic_ai.get_company",
      "service": "harmonic_ai",
      "name": "get_company",
      "description": "Retrieve a Harmonic company profile by numeric ID or full company URN.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "id_or_urn": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 1,
                "description": "A Harmonic numeric ID."
              },
              {
                "type": "string",
                "minLength": 1,
                "description": "A full Harmonic entity URN."
              }
            ],
            "description": "A Harmonic numeric ID or full entity URN."
          },
          "include_fields": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "A Harmonic output field name."
            },
            "description": "Optional output fields to include for better upstream performance.",
            "minItems": 1
          }
        },
        "additionalProperties": false,
        "required": [
          "id_or_urn"
        ],
        "description": "Entity lookup input for a single Harmonic entity."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "entity_urn": {
            "type": "string",
            "description": "The Harmonic entity URN."
          },
          "id": {
            "type": "integer",
            "description": "The Harmonic numeric ID."
          }
        },
        "additionalProperties": true,
        "description": "A Harmonic company or person profile."
      }
    },
    {
      "id": "harmonic_ai.get_company_employees",
      "service": "harmonic_ai",
      "name": "get_company_employees",
      "description": "Retrieve employee person URNs for a Harmonic company with optional filters.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "id_or_urn": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 1,
                "description": "A Harmonic numeric ID."
              },
              {
                "type": "string",
                "minLength": 1,
                "description": "A full Harmonic entity URN."
              }
            ],
            "description": "A Harmonic numeric ID or full entity URN."
          },
          "employee_group_type": {
            "type": "string",
            "enum": [
              "ALL",
              "FOUNDERS_AND_CEO",
              "EXECUTIVES",
              "FOUNDERS",
              "LEADERSHIP",
              "NON_LEADERSHIP",
              "ADVISORS",
              "NON_PARTNERS"
            ],
            "description": "Employee group to retrieve."
          },
          "size": {
            "type": "integer",
            "minimum": 1,
            "description": "Number of employees to return."
          },
          "page": {
            "type": "integer",
            "minimum": 0,
            "description": "Starting page index."
          },
          "user_connection_status": {
            "type": "string",
            "enum": [
              "TEAM_CONNECTION",
              "NO_CONNECTION"
            ],
            "description": "Team connection filter."
          },
          "employee_status": {
            "type": "string",
            "enum": [
              "ACTIVE",
              "ACTIVE_AND_NOT_ACTIVE",
              "NOT_ACTIVE"
            ],
            "description": "Employment status filter."
          }
        },
        "additionalProperties": false,
        "required": [
          "id_or_urn"
        ],
        "description": "Input for retrieving employee person URNs from a Harmonic company."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "count": {
            "type": "integer",
            "description": "Total number of matching employees."
          },
          "page_info": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "current": {
                    "type": "string",
                    "description": "The current cursor value."
                  },
                  "next": {
                    "type": "string",
                    "description": "The cursor value for the next page."
                  },
                  "has_next": {
                    "type": "boolean",
                    "description": "Whether another page is available."
                  }
                },
                "additionalProperties": true,
                "description": "Pagination metadata returned by Harmonic."
              },
              {
                "type": "null"
              }
            ]
          },
          "results": {
            "type": "array",
            "items": {
              "type": "string",
              "description": "A Harmonic person URN."
            },
            "description": "Harmonic person URNs returned for the requested employee page."
          }
        },
        "additionalProperties": false,
        "required": [
          "count",
          "page_info",
          "results"
        ],
        "description": "Employee person URNs returned for a company."
      }
    },
    {
      "id": "harmonic_ai.get_enrichment_status",
      "service": "harmonic_ai",
      "name": "get_enrichment_status",
      "description": "Check Harmonic enrichment job statuses by enrichment IDs or URNs.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "ids": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "An enrichment UUID."
            },
            "description": "Enrichment UUIDs to check.",
            "minItems": 1
          },
          "urns": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "A full Harmonic enrichment URN."
            },
            "description": "Enrichment URNs to check.",
            "minItems": 1
          }
        },
        "additionalProperties": false,
        "description": "Enrichment IDs or URNs to check with Harmonic.",
        "anyOf": [
          {
            "required": [
              "ids"
            ]
          },
          {
            "required": [
              "urns"
            ]
          }
        ]
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "statuses": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "entity_urn": {
                  "type": "string",
                  "description": "The Harmonic enrichment URN."
                },
                "status": {
                  "type": "string",
                  "enum": [
                    "QUEUED",
                    "IN_PROGRESS",
                    "COMPLETE",
                    "FAILED",
                    "NOT_FOUND"
                  ],
                  "description": "The enrichment job status."
                },
                "message": {
                  "type": "string",
                  "description": "Status message returned by Harmonic."
                },
                "enriched_entity_urn": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "The resulting company or person URN."
                    },
                    {
                      "type": "null"
                    }
                  ]
                }
              },
              "additionalProperties": true,
              "description": "A single Harmonic enrichment status."
            },
            "description": "Enrichment statuses returned by Harmonic."
          }
        },
        "additionalProperties": false,
        "required": [
          "statuses"
        ],
        "description": "Harmonic enrichment status results."
      }
    },
    {
      "id": "harmonic_ai.get_person",
      "service": "harmonic_ai",
      "name": "get_person",
      "description": "Retrieve a Harmonic person profile by numeric ID or full person URN.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "id_or_urn": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 1,
                "description": "A Harmonic numeric ID."
              },
              {
                "type": "string",
                "minLength": 1,
                "description": "A full Harmonic entity URN."
              }
            ],
            "description": "A Harmonic numeric ID or full entity URN."
          },
          "include_fields": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "A Harmonic output field name."
            },
            "description": "Optional output fields to include for better upstream performance.",
            "minItems": 1
          }
        },
        "additionalProperties": false,
        "required": [
          "id_or_urn"
        ],
        "description": "Entity lookup input for a single Harmonic entity."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "entity_urn": {
            "type": "string",
            "description": "The Harmonic entity URN."
          },
          "id": {
            "type": "integer",
            "description": "The Harmonic numeric ID."
          }
        },
        "additionalProperties": true,
        "description": "A Harmonic company or person profile."
      }
    }
  ]
}
