# Cotera Built In Enrichments

> Access popular enrichment APIs without needing your own API keys. Includes Apollo, Glassdoor, Google Jobs, Flight Search, Google Maps Enrichment, Instagram, LinkedIn, SimilarWeb, Trustpilot, Twitter, YouTube transcripts, Web Search, Site Scraper, Markdown Email, Python Sandbox, Chart Generator, and MX Lookup.

Source: https://cotera.co/docs/reference/tools/individual-tools/cotera-builtin-enrichments

---

**Authentication Type:** No Auth

**Description:** Access popular enrichment APIs without needing your own API keys. Includes Apollo, Glassdoor, Google Jobs, Flight Search, Google Maps Enrichment, Instagram, LinkedIn, SimilarWeb, Trustpilot, Twitter, YouTube transcripts, Web Search, Site Scraper, Markdown Email, Python Sandbox, Chart Generator, and MX Lookup.

***

## Overview

Cotera Built In Enrichments provides access to popular third-party APIs without requiring you to manage your own API keys. Each tool call costs **5 credits** (excluding LLM usage credits) and is rate-limited per organization.

For help getting started with tools, see the [Tools Getting Started Guide](https://cotera.co/docs/guides/tools/getting-started.md).

### Rate Limits

| Tool                   | Daily Limit | Monthly Limit |
| ---------------------- | ----------- | ------------- |
| Apollo                 | 50          | 200           |
| Glassdoor              | 50          | 200           |
| Google Jobs            | 50          | 200           |
| Flight Search          | 50          | 200           |
| Google Maps Enrichment | 50          | 200           |
| Instagram              | 50          | 200           |
| LinkedIn               | 50          | 200           |
| SimilarWeb             | 50          | 200           |
| Trustpilot             | 50          | 200           |
| Twitter                | 50          | 200           |
| YouTube Transcript     | 50          | 200           |
| Cotera Web Search      | 2000        | -             |
| Cotera Site Scraper    | 2000        | -             |
| Cotera Markdown Email  | 25          | -             |
| Python Sandbox         | 100         | -             |
| Chart Generator        | 100         | -             |
| MX Lookup              | 2000        | -             |

***

## Apollo

Search for organizations and people in the Apollo database with enrichment capabilities.

To bring your own credentials for this tool, see the [Apollo tool page](https://cotera.co/docs/reference/tools/individual-tools/apollo.md).

### Search Organizations

Find companies using filters like industry, employee count, location, and revenue.

**Operation Type:** Mutation (Write)

**Parameters:**

* **q\_organization\_name** `string` (nullable): Organization name to search for
* **organization\_locations** `array of strings` (nullable): Locations to filter by
* **organization\_num\_employees\_ranges** `array of strings` (nullable): Employee count ranges
* **per\_page** `number` (nullable): Results per page (max 50)
* **page** `number` (nullable): Page number

**Returns:**

* **organizations** `array of objects`: List of matching organizations
  * **id** `string`: Apollo organization ID
  * **name** `string`: Company name
  * **website\_url** `string` (nullable): Company website URL
  * **linkedin\_url** `string` (nullable): LinkedIn company page URL
  * **twitter\_url** `string` (nullable): Twitter profile URL
  * **facebook\_url** `string` (nullable): Facebook page URL
  * **phone** `string` (nullable): Company phone number
  * **founded\_year** `number` (nullable): Year the company was founded
  * **logo\_url** `string` (nullable): Company logo URL
  * **primary\_domain** `string` (nullable): Primary domain name
  * **industry** `string` (nullable): Company industry
  * **estimated\_num\_employees** `number` (nullable): Estimated number of employees
  * **city** `string` (nullable): City
  * **state** `string` (nullable): State or province
  * **country** `string` (nullable): Country
* **pagination** `object`: Pagination information
  * **page** `number`: Current page number
  * **per\_page** `number`: Results per page
  * **total\_entries** `number`: Total number of results
  * **total\_pages** `number`: Total number of pages

**Example Usage:**

```json
{
  "q_organization_name": "Acme Corp",
  "organization_locations": ["San Francisco, CA"],
  "organization_num_employees_ranges": ["51-100", "101-500"],
  "per_page": 25,
  "page": 1
}
```

### Search People

Find people using filters like job title, company, location, and department.

**Operation Type:** Mutation (Write)

**Parameters:**

* **q\_keywords** `string` (nullable): Keywords to search for
* **person\_titles** `array of strings` (nullable): Job titles to filter by
* **person\_locations** `array of strings` (nullable): Locations to filter by
* **organization\_ids** `array of strings` (nullable): Apollo organization IDs
* **per\_page** `number` (nullable): Results per page (max 50)
* **page** `number` (nullable): Page number

**Returns:**

* **people** `array of objects`: List of matching people
  * **id** `string`: Apollo person ID
  * **first\_name** `string` (nullable): First name
  * **last\_name** `string` (nullable): Last name
  * **name** `string` (nullable): Full name
  * **linkedin\_url** `string` (nullable): LinkedIn profile URL
  * **title** `string` (nullable): Job title
  * **email** `string` (nullable): Email address
  * **city** `string` (nullable): City
  * **state** `string` (nullable): State or province
  * **country** `string` (nullable): Country
* **pagination** `object`: Pagination information
  * **page** `number`: Current page number
  * **per\_page** `number`: Results per page
  * **total\_entries** `number`: Total number of results
  * **total\_pages** `number`: Total number of pages

**Example Usage:**

```json
{
  "q_keywords": "software engineer",
  "person_titles": ["Senior Engineer", "Staff Engineer"],
  "person_locations": ["New York, NY"],
  "per_page": 25,
  "page": 1
}
```

### Enrich Person

Enrich a person's profile using their email or LinkedIn URL.

**Operation Type:** Mutation (Write)

**Parameters:**

* **email** `string` (nullable): Email address to enrich
* **linkedin\_url** `string` (nullable): LinkedIn URL to enrich

**Returns:**

* **person** `object` (nullable): Enriched person data
  * **id** `string`: Apollo person ID
  * **first\_name** `string` (nullable): First name
  * **last\_name** `string` (nullable): Last name
  * **name** `string` (nullable): Full name
  * **linkedin\_url** `string` (nullable): LinkedIn profile URL
  * **title** `string` (nullable): Job title
  * **email** `string` (nullable): Email address
  * **city** `string` (nullable): City
  * **state** `string` (nullable): State or province
  * **country** `string` (nullable): Country

**Example Usage:**

```json
{
  "email": "jane.doe@example.com"
}
```

### Enrich Organization

Get detailed company information based on domain or company name.

**Operation Type:** Mutation (Write)

**Parameters:**

* **domain** `string` (nullable): Company domain to enrich

**Returns:**

* **organization** `object` (nullable): Enriched organization data
  * **id** `string`: Apollo organization ID
  * **name** `string`: Company name
  * **website\_url** `string` (nullable): Company website URL
  * **linkedin\_url** `string` (nullable): LinkedIn company page URL
  * **twitter\_url** `string` (nullable): Twitter profile URL
  * **facebook\_url** `string` (nullable): Facebook page URL
  * **phone** `string` (nullable): Company phone number
  * **founded\_year** `number` (nullable): Year the company was founded
  * **logo\_url** `string` (nullable): Company logo URL
  * **primary\_domain** `string` (nullable): Primary domain name
  * **industry** `string` (nullable): Company industry
  * **estimated\_num\_employees** `number` (nullable): Estimated number of employees
  * **city** `string` (nullable): City
  * **state** `string` (nullable): State or province
  * **country** `string` (nullable): Country

**Example Usage:**

```json
{
  "domain": "example.com"
}
```

***

## Glassdoor

Search companies and retrieve reviews, ratings, and company information.

To bring your own credentials for this tool, see the [Glassdoor tool page](https://cotera.co/docs/reference/tools/individual-tools/glassdoor.md).

### Search Companies

Search for companies by name and get basic information including ID for further queries.

**Operation Type:** Query (Read)

**Parameters:**

* **query** `string` (required): Company name to search for (e.g., "Google", "Microsoft")

**Returns:**

* **companies** `array of objects`: List of matching companies
  * **id** `string`: Unique company identifier
  * **name** `string`: Company name
  * **website** `string` (nullable): Company website URL
  * **logo** `string` (nullable): Company logo URL
  * **industry** `string` (nullable): Company industry
  * **size** `string` (nullable): Company size range
  * **headquarters** `string` (nullable): Company headquarters location
  * **founded** `string` (nullable): Year company was founded

**Example Usage:**

```json
{
  "query": "Google"
}
```

### Get Company Overview

Get detailed company overview including ratings, size, industry, and key metrics.

**Operation Type:** Query (Read)

**Parameters:**

* **companyId** `string` (required): Glassdoor company ID obtained from search
* **domain** `string` (nullable): Company domain (e.g., "[www.glassdoor.com](http://www.glassdoor.com)")

**Returns:**

* **id** `string`: Company ID
* **name** `string`: Company name
* **website** `string` (nullable): Company website
* **logo** `string` (nullable): Company logo URL
* **industry** `string` (nullable): Industry
* **size** `string` (nullable): Company size
* **headquarters** `string` (nullable): Headquarters location
* **founded** `string` (nullable): Founded year
* **description** `string` (nullable): Company description
* **overallRating** `number` (nullable): Overall rating out of 5
* **ceoRating** `number` (nullable): CEO approval rating
* **recommendToFriend** `number` (nullable): Recommend to friend percentage
* **cultureRating** `number` (nullable): Culture and values rating
* **diversityRating** `number` (nullable): Diversity and inclusion rating
* **workLifeBalanceRating** `number` (nullable): Work-life balance rating
* **seniorManagementRating** `number` (nullable): Senior management rating
* **compensationRating** `number` (nullable): Compensation and benefits rating
* **careerOpportunitiesRating** `number` (nullable): Career opportunities rating
* **businessOutlookRating** `number` (nullable): Business outlook rating
* **reviewsCount** `number` (nullable): Total number of reviews
* **salariesCount** `number` (nullable): Total number of salary reports
* **interviewsCount** `number` (nullable): Total number of interview reports

**Example Usage:**

```json
{
  "companyId": "9079",
  "domain": null
}
```

### Get Company Reviews

Retrieve paginated company reviews with ratings, pros/cons, and reviewer details.

**Operation Type:** Query (Read)

**Parameters:**

* **companyId** `string` (required): Glassdoor company ID obtained from search
* **page** `number` (nullable): Page number for pagination (default: 1)
* **limit** `number` (nullable): Number of reviews per page (default: 10, max: 50)

**Returns:**

* **reviews** `array of objects`: List of company reviews
  * **id** `string`: Review ID
  * **title** `string` (nullable): Review title
  * **rating** `number` (nullable): Overall rating out of 5
  * **reviewText** `string` (nullable): Review content
  * **pros** `string` (nullable): Pros mentioned in review
  * **cons** `string` (nullable): Cons mentioned in review
  * **advice** `string` (nullable): Advice to management
  * **jobTitle** `string` (nullable): Reviewer job title
  * **location** `string` (nullable): Reviewer location
  * **employmentStatus** `string` (nullable): Employment status (current/former)
  * **reviewDate** `string` (nullable): Date review was posted
  * **helpful** `number` (nullable): Number of helpful votes
  * **workLifeBalanceRating** `number` (nullable): Work-life balance rating
  * **cultureRating** `number` (nullable): Culture and values rating
  * **diversityRating** `number` (nullable): Diversity and inclusion rating
  * **careerOpportunitiesRating** `number` (nullable): Career opportunities rating
  * **compensationRating** `number` (nullable): Compensation and benefits rating
  * **seniorManagementRating** `number` (nullable): Senior management rating
* **pagination** `object`: Pagination information
  * **currentPage** `number`: Current page number
  * **totalPages** `number`: Total number of pages
  * **totalReviews** `number`: Total number of reviews
  * **hasNextPage** `boolean`: Whether there are more pages

**Example Usage:**

```json
{
  "companyId": "9079",
  "page": 1,
  "limit": 20
}
```

***

## Google Jobs

Search for job listings from Google Jobs.

To bring your own credentials for this tool, see the [Google Jobs tool page](https://cotera.co/docs/reference/tools/individual-tools/google-jobs.md).

### Search Jobs

Search for jobs with filters for location, employment type, date posted, and more.

**Operation Type:** Query (Read)

**Parameters:**

* **query** `string` (required): Search query for jobs
* **page** `number` (default: 1): Page number (1-50)
* **num\_pages** `number` (default: 1): Number of pages to return (1-50)
* **country** `string` (default: "us"): Country code (ISO 3166-1 alpha-2)
* **language** `string` (nullable): Language code (ISO 639)
* **date\_posted** `string` (default: "all"): Filter by posting date (all, today, 3days, week, month)
* **work\_from\_home** `boolean` (nullable): Only return remote jobs
* **employment\_types** `string` (nullable): Employment types (FULLTIME, CONTRACTOR, PARTTIME, INTERN)
* **job\_requirements** `string` (nullable): Job requirements filter

**Returns:**

* **status** `string`: API response status
* **request\_id** `string`: Request identifier
* **parameters** `object`: Search parameters used
  * **query** `string`: Search query
  * **page** `number`: Page number
  * **num\_pages** `number`: Number of pages
  * **date\_posted** `string` (nullable): Date filter
  * **country** `string`: Country code
  * **language** `string` (nullable): Language code
* **data** `array of objects`: Job listings
  * **job\_id** `string`: Unique job identifier
  * **job\_title** `string`: Job title
  * **employer\_name** `string`: Employer name
  * **employer\_logo** `string` (nullable): Employer logo URL
  * **employer\_website** `string` (nullable): Employer website
  * **job\_publisher** `string`: Job publisher
  * **job\_employment\_type** `string`: Employment type
  * **job\_employment\_types** `array of strings`: All employment types
  * **job\_apply\_link** `string`: Application link
  * **job\_apply\_is\_direct** `boolean`: Whether application is direct
  * **apply\_options** `array of objects`: Application options
    * **publisher** `string`: Publisher name
    * **apply\_link** `string`: Application URL
    * **is\_direct** `boolean`: Whether direct application
  * **job\_description** `string`: Full job description
  * **job\_is\_remote** `boolean`: Whether job is remote
  * **job\_posted\_at** `string`: Posted date string
  * **job\_posted\_at\_timestamp** `number`: Posted timestamp
  * **job\_posted\_at\_datetime\_utc** `string`: Posted datetime UTC
  * **job\_location** `string`: Job location
  * **job\_city** `string` (nullable): City
  * **job\_state** `string` (nullable): State
  * **job\_country** `string`: Country
  * **job\_latitude** `number` (nullable): Latitude
  * **job\_longitude** `number` (nullable): Longitude
  * **job\_benefits** `array of strings` (nullable): Job benefits
  * **job\_google\_link** `string`: Google Jobs link
  * **job\_salary** `string` (nullable): Salary information
  * **job\_min\_salary** `number` (nullable): Minimum salary
  * **job\_max\_salary** `number` (nullable): Maximum salary
  * **job\_salary\_period** `string` (nullable): Salary period
  * **job\_highlights** `object` (nullable): Job highlights
    * **Qualifications** `array of strings` (nullable): Required qualifications
    * **Benefits** `array of strings` (nullable): Job benefits
    * **Responsibilities** `array of strings` (nullable): Job responsibilities

**Example Usage:**

```json
{
  "query": "software engineer",
  "country": "us",
  "date_posted": "week",
  "work_from_home": true,
  "employment_types": "FULLTIME",
  "page": 1,
  "num_pages": 1
}
```

***

## Flight Search

Search for flights and get pricing information.

To bring your own credentials for this tool, see the [Flight Search tool page](https://cotera.co/docs/reference/tools/individual-tools/flight-search.md).

### Search Flights

Search for flight deals with departure/arrival locations, dates, and preferences.

**Operation Type:** Mutation (Write)

**Parameters:**

* **fromId** `string` (required): From/Departure location ID (e.g., "OMA.AIRPORT")
* **toId** `string` (required): To/Arrival location ID (e.g., "LGA.AIRPORT")
* **departDate** `string` (required): Departure date in YYYY-MM-DD format
* **returnDate** `string` (nullable): Return date in YYYY-MM-DD format (optional for one-way)
* **stops** `string` (nullable): Number of stops (none, 0, 1, 2)
* **pageNo** `string` (nullable): Page number for pagination
* **adults** `string` (nullable): Number of adults 18+ (default: 1)
* **children** `string` (nullable): Number of children under 18
* **sort** `string` (nullable): Sort order (BEST, CHEAPEST, FASTEST)
* **cabinClass** `string` (nullable): Cabin class (ECONOMY, PREMIUM\_ECONOMY, BUSINESS, FIRST)
* **currencyCode** `string` (nullable): Currency code (e.g., USD)

**Returns:**

* **flightDeals** `array of objects` (nullable): List of flight deals
  * **key** `string` (nullable): Deal key
  * **offerToken** `string` (nullable): Token for getting flight details
  * **price** `object` (nullable): Price information
    * **currencyCode** `string` (nullable): Currency code
    * **units** `number` (nullable): Price units
    * **nanos** `number` (nullable): Price nanos
  * **priceRounded** `object` (nullable): Rounded price

**Example Usage:**

```json
{
  "fromId": "JFK.AIRPORT",
  "toId": "LAX.AIRPORT",
  "departDate": "2025-02-15",
  "returnDate": "2025-02-22",
  "adults": "2",
  "cabinClass": "ECONOMY",
  "sort": "CHEAPEST"
}
```

### Get Flight Details

Get detailed flight information including segments, airports, carriers, and pricing breakdown. Requires an offerToken from search results.

**Operation Type:** Mutation (Write)

**Parameters:**

* **token** `string` (required): Offer token from flight search results. You must first use the search tool to get flight deals, then use the offerToken from a specific deal.
* **currencyCode** `string` (nullable): Currency code (e.g., USD)

**Returns:**

* **token** `string` (nullable): Flight token
* **segments** `array of objects` (nullable): Flight segments
  * **departureAirport** `object` (nullable): Departure airport info
    * **type** `string` (nullable): Airport type
    * **code** `string` (nullable): Airport code
    * **name** `string` (nullable): Airport name
    * **city** `string` (nullable): City
    * **cityName** `string` (nullable): City name
    * **country** `string` (nullable): Country code
    * **countryName** `string` (nullable): Country name
  * **arrivalAirport** `object` (nullable): Arrival airport info
  * **departureTime** `string` (nullable): Departure time
  * **arrivalTime** `string` (nullable): Arrival time
  * **legs** `array of objects` (nullable): Flight legs
    * **departureTime** `string` (nullable): Leg departure time
    * **arrivalTime** `string` (nullable): Leg arrival time
    * **departureAirport** `object` (nullable): Departure airport
    * **arrivalAirport** `object` (nullable): Arrival airport
    * **cabinClass** `string` (nullable): Cabin class
    * **flightInfo** `object` (nullable): Flight information
      * **flightNumber** `number` (nullable): Flight number
      * **planeType** `string` (nullable): Aircraft type
      * **carrierInfo** `object` (nullable): Carrier information
    * **carriersData** `array of objects` (nullable): Carrier data
      * **name** `string` (nullable): Carrier name
      * **code** `string` (nullable): Carrier code
      * **logo** `string` (nullable): Carrier logo URL
    * **totalTime** `number` (nullable): Total leg time
  * **totalTime** `number` (nullable): Total segment time
* **priceBreakdown** `object` (nullable): Price breakdown
  * **total** `object` (nullable): Total price
  * **baseFare** `object` (nullable): Base fare
  * **fee** `object` (nullable): Fees
  * **tax** `object` (nullable): Taxes

**Example Usage:**

```json
{
  "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
  "currencyCode": "USD"
}
```

***

## Google Maps Enrichment

Search for businesses and places using Google Maps data and retrieve reviews.

To bring your own credentials for this tool, see the [Maps Data tool page](https://cotera.co/docs/reference/tools/individual-tools/maps-data.md).

### Search Locations

Search for businesses, restaurants, stores, and other places with location, ratings, and photos.

**Operation Type:** Query (Read)

**Parameters:**

* **query** `string` (required): Search query for businesses or places
* **limit** `number` (nullable, default: 20): Maximum number of results (max 500)
* **country** `string` (nullable, default: "us"): Country code for search
* **lang** `string` (nullable, default: "en"): Language code
* **lat** `number` (nullable): Latitude for search point
* **lng** `number` (nullable): Longitude for search point
* **offset** `number` (nullable, default: 0): Offset for pagination
* **zoom** `number` (nullable, default: 13): Zoom level for search

**Returns:**

* **status** `string`: API response status
* **data** `array of objects`: Business search results
  * **business\_id** `string`: Unique business identifier
  * **name** `string`: Business name
  * **full\_address** `string`: Complete business address
  * **latitude** `number`: Latitude coordinate
  * **longitude** `number`: Longitude coordinate
  * **rating** `number` (nullable): Average rating
  * **review\_count** `number` (nullable): Total number of reviews
  * **website** `string` (nullable): Business website URL
  * **phone\_number** `string` (nullable): Business phone number
  * **place\_id** `string`: Google Places place ID
  * **types** `array of strings`: Business category types
  * **city** `string` (nullable): City
  * **state** `string` (nullable): State/province

**Example Usage:**

```json
{
  "query": "coffee shops in Seattle",
  "limit": 20,
  "country": "us"
}
```

### Get Reviews

Retrieve customer reviews for a business using its business\_id from search results.

**Operation Type:** Query (Read)

**Parameters:**

* **business\_id** `string` (required): Business ID from search results
* **country** `string` (nullable, default: "us"): Country code
* **lang** `string` (nullable, default: "en"): Language code
* **limit** `number` (nullable, default: 20): Maximum number of reviews (max 20)
* **cursor** `string` (nullable): Cursor for pagination from previous response
* **sort** `string` (nullable, default: "Relevant"): Sort order (Relevant, Newest, Oldest, HighestRated, LowestRated)
* **place\_id** `string` (nullable): Alternative place ID for getting reviews

**Returns:**

* **status** `string`: API response status
* **data** `array of objects`: Business reviews
  * **review\_id** `string` (nullable): Unique review identifier
  * **user\_name** `string` (nullable): Name of the reviewer
  * **review\_rate** `number` (nullable): Review rating (1-5 stars)
  * **review\_text** `string` (nullable): Review content text
  * **review\_time** `string` (nullable): Human-readable review time
  * **iso\_date** `string` (nullable): ISO date of review publication
* **next\_page\_token** `string` (nullable): Token for next page of reviews

**Example Usage:**

```json
{
  "business_id": "0x89c25090129c363d:0x40c6a5770d25022b",
  "limit": 20,
  "sort": "Newest"
}
```

***

## Instagram

Retrieve Instagram profile and post data.

To bring your own credentials for this tool, see the [Instagram tool page](https://cotera.co/docs/reference/tools/individual-tools/instagram.md).

### Get Profile

Retrieve Instagram user profile including follower count, verification status, and bio.

**Operation Type:** Query (Read)

**Parameters:**

* **username** `string` (required): Instagram username to retrieve profile for (without @ symbol)

**Returns:**

* **followerCount** `number` (nullable): Number of followers
* **followingCount** `number` (nullable): Number of accounts following
* **mediaCount** `number` (nullable): Number of media posts
* **pk** `string`: Instagram user primary key ID
* **fullName** `string` (nullable): Full display name
* **username** `string`: Instagram username/handle
* **isVerified** `boolean` (nullable): Whether account is verified
* **profilePicUrl** `string` (nullable): Profile picture URL
* **isPrivate** `boolean` (nullable): Whether account is private

**Example Usage:**

```json
{
  "username": "instagram"
}
```

### Get User Posts

Retrieve Instagram posts for a user with engagement metrics and media details.

**Operation Type:** Query (Read)

**Parameters:**

* **username** `string` (required): Instagram username to retrieve posts for

**Returns:**

* **userPosts** `array of objects`: Array of user posts
  * **node** `object`: Post node data
    * **code** `string`: Post shortcode (use to construct URL for getPostDetail)
    * **imageVersions2** `object` (nullable): Image versions
      * **candidates** `array of objects`: Image candidates
        * **url** `string`: Image URL
        * **width** `number` (nullable): Image width
        * **height** `number` (nullable): Image height
    * **id** `string` (nullable): Post ID
    * **caption** `string` (nullable): Post caption text
    * **takenAt** `number` (nullable): Post timestamp
    * **likeCount** `number` (nullable): Number of likes
    * **commentCount** `number` (nullable): Number of comments
    * **mediaType** `number` (nullable): Media type (1=photo, 2=video, 8=carousel)

**Example Usage:**

```json
{
  "username": "instagram"
}
```

### Get Post Details

Get detailed information about a specific Instagram post including comments.

**Operation Type:** Query (Read)

**Parameters:**

* **postUrl** `string` (required): Instagram post URL (e.g., `https://www.instagram.com/p/ABC123/`). First use getUserPosts to get the post codes, then construct the URL as `https://www.instagram.com/p/{code}/`.

**Returns:**

* **id** `string`: Post ID
* **thumbnailSrc** `string` (nullable): Post thumbnail URL
* **dimensions** `object` (nullable): Post dimensions
  * **height** `number`: Post height
  * **width** `number`: Post width
* **displayUrl** `string` (nullable): Post display URL
* **mediaPreview** `string` (nullable): Media preview URL
* **caption** `string` (nullable): Post caption
* **shortcode** `string`: Post shortcode
* **takenAtTimestamp** `number` (nullable): Post timestamp
* **likeCount** `number` (nullable): Number of likes
* **commentCount** `number` (nullable): Number of comments
* **comments** `array of objects` (nullable): Post comments
  * **id** `string`: Comment ID
  * **text** `string`: Comment text
  * **createdAt** `number`: Comment timestamp
  * **owner** `object`: Comment owner information
    * **id** `string`: Comment owner ID
    * **username** `string`: Comment owner username
    * **profilePicUrl** `string` (nullable): Comment owner profile pic
  * **likeCount** `number` (nullable): Comment like count

**Example Usage:**

```json
{
  "postUrl": "https://www.instagram.com/p/ABC123/"
}
```

***

## LinkedIn

Access LinkedIn profiles, posts, company details, insights, and job listings.

To bring your own credentials for this tool, see the [LinkedIn tool page](https://cotera.co/docs/reference/tools/individual-tools/linkedin.md).

### Get Profile with Posts

Retrieve LinkedIn profile information including follower count, education, work history, and recent posts in a single request.

**Operation Type:** Query (Read)

**Parameters:**

* **username** `string` (required): The LinkedIn username to fetch profile data, posts, and follower count for

**Returns:**

* **connection** `number` (nullable): Number of LinkedIn connections/followers
* **data** `object` (nullable): Complete LinkedIn profile information
  * **username** `string` (nullable): LinkedIn username
  * **firstName** `string` (nullable): First name
  * **lastName** `string` (nullable): Last name
  * **summary** `string` (nullable): Profile summary/bio
  * **educations** `array of objects` (nullable): Education history
    * **start** `object` (nullable): Start date (year, month, day)
    * **end** `object` (nullable): End date (year, month, day)
    * **fieldOfStudy** `string` (nullable): Field of study
    * **degree** `string` (nullable): Degree obtained
    * **grade** `string` (nullable): Grade achieved
    * **schoolName** `string` (nullable): Name of school
    * **description** `string` (nullable): Description
    * **activities** `string` (nullable): Activities
    * **url** `string` (nullable): School URL
    * **schoolId** `string` (nullable): School ID
    * **logo** `array of objects` (nullable): School logos
  * **position** `array of objects` (nullable): Work experience
    * **companyId** `number` (nullable): Company ID
    * **companyName** `string` (nullable): Company name
    * **companyUsername** `string` (nullable): Company username
    * **companyURL** `string` (nullable): Company URL
    * **companyLogo** `string` (nullable): Company logo URL
    * **companyIndustry** `string` (nullable): Company industry
    * **companyStaffCountRange** `string` (nullable): Staff count range
    * **title** `string` (nullable): Job title
    * **location** `string` (nullable): Job location
    * **locationType** `string` (nullable): Location type
    * **description** `string` (nullable): Role description
    * **employmentType** `string` (nullable): Employment type
    * **start** `object` (nullable): Start date (year, month, day)
    * **end** `object` (nullable): End date (year, month, day)
* **posts** `array of objects` (nullable): Array of LinkedIn posts
  * **text** `string` (nullable): Post text content
  * **totalReactionCount** `number` (nullable): Total reactions
  * **commentsCount** `number` (nullable): Number of comments
  * **repostsCount** `number` (nullable): Number of reposts
  * **postUrl** `string` (nullable): URL to the post
  * **postedDateTimestamp** `number` (nullable): Post timestamp
  * **urn** `string` (nullable): Post URN

**Example Usage:**

```json
{
  "username": "satyanadella"
}
```

### Get Posts

Retrieve LinkedIn posts for a user with optional date filtering.

**Operation Type:** Query (Read)

**Parameters:**

* **username** `string` (required): The LinkedIn username to fetch posts for
* **postedAt** `string` (nullable): Filter posts newer than this date (e.g., "2024-01-01 00:00"). Pass null for no date filtering.

**Returns:**

* **posts** `array of objects`: LinkedIn posts
  * **text** `string` (nullable): Post text content
  * **totalReactionCount** `number` (nullable): Total reactions
  * **commentsCount** `number` (nullable): Number of comments
  * **repostsCount** `number` (nullable): Number of reposts
  * **postUrl** `string` (nullable): URL to the post
  * **postedDateTimestamp** `number` (nullable): Post timestamp
  * **urn** `string` (nullable): Post URN

**Example Usage:**

```json
{
  "username": "satyanadella",
  "postedAt": "2024-01-01 00:00"
}
```

### Search Posts

Search LinkedIn posts by keyword, author, company, industry, and more. Supports filtering by content type, date range, and author attributes.

**Operation Type:** Mutation (Write)

**Parameters:**

* **keyword** `string` (nullable): Search keyword to find in post content
* **sortBy** `string` (nullable): Sort order - "date\_posted" or "relevance" (default: date\_posted)
* **datePosted** `string` (nullable): Filter by recency - "past-24h", "past-week", or "past-month"
* **page** `number` (nullable): Page number for pagination (default: 1)
* **contentType** `string` (nullable): Filter by type - "videos", "photos", "liveVideos", "collaborativeArticles", or "documents"
* **fromMember** `array of strings` (nullable): Profile URNs of authors to filter by
* **fromCompany** `array of numbers` (nullable): Company IDs of authors to filter by
* **mentionsMember** `array of strings` (nullable): Profile URNs mentioned in posts
* **mentionsOrganization** `array of numbers` (nullable): Company IDs mentioned in posts
* **authorIndustry** `array of numbers` (nullable): Industry IDs to filter authors by
* **authorCompany** `array of numbers` (nullable): Company IDs of authors' employers
* **authorTitle** `string` (nullable): Title filter for authors (e.g., "ceo or founder")

**Returns:**

* **total** `number` (nullable): Total number of matching posts
* **count** `number` (nullable): Number of posts in this response
* **items** `array of objects`: Array of matching posts
  * **urn** `string` (nullable): Post URN identifier
  * **url** `string` (nullable): URL to the post
  * **text** `string` (nullable): Post text content
  * **postedAt** `string` (nullable): Relative time when posted
  * **postedDate** `string` (nullable): ISO date string when posted
  * **postedDateTimestamp** `number` (nullable): Unix timestamp when posted
  * **reposted** `boolean` (nullable): Whether this is a repost
  * **author** `object` (nullable): Post author information
    * **fullName** `string` (nullable): Full name
    * **headline** `string` (nullable): Professional headline
    * **username** `string` (nullable): LinkedIn username
    * **url** `string` (nullable): Profile URL
  * **socialActivityCountsInsight** `object` (nullable): Engagement metrics
    * **numComments** `number` (nullable): Comments
    * **likeCount** `number` (nullable): Likes
    * **totalReactionCount** `number` (nullable): Total reactions

**Example Usage:**

```json
{
  "keyword": "artificial intelligence",
  "sortBy": "date_posted",
  "datePosted": "past-week",
  "authorTitle": "ceo or founder",
  "page": 1
}
```

### Get Company

Retrieve LinkedIn company details including the company ID needed for job searches.

**Operation Type:** Query (Read)

**Parameters:**

* **username** `string` (required): The LinkedIn company username to fetch company details for

**Returns:**

* **id** `string` (nullable): LinkedIn company ID (use this for job searches)
* **tagline** `string` (nullable): Company tagline
* **description** `string` (nullable): Company description
* **phone** `string` (nullable): Company phone
* **staffCount** `number` (nullable): Number of staff
* **headquarter** `object` (nullable): Headquarters information
  * **countryCode** `string` (nullable): Country code
  * **geographicArea** `string` (nullable): Geographic area
  * **country** `string` (nullable): Country
  * **city** `string` (nullable): City
  * **postalCode** `string` (nullable): Postal code
  * **line1** `string` (nullable): Address line 1
  * **line2** `string` (nullable): Address line 2
* **website** `string` (nullable): Company website
* **followerCount** `number` (nullable): Number of followers
* **staffCountRange** `string` (nullable): Staff count range
* **crunchbaseUrl** `string` (nullable): Crunchbase URL

**Example Usage:**

```json
{
  "username": "microsoft"
}
```

### Get Company Insights

Retrieve LinkedIn company insights including employee count, growth, and business information.

**Operation Type:** Query (Read)

**Parameters:**

* **username** `string` (required): The LinkedIn company username to fetch insights for

**Returns:**

* **id** `string` (nullable): Company ID
* **name** `string` (nullable): Company name
* **tagline** `string` (nullable): Company tagline
* **description** `string` (nullable): Company description
* **followerCount** `number` (nullable): Number of followers
* **staffCount** `number` (nullable): Number of staff
* **website** `string` (nullable): Company website

**Example Usage:**

```json
{
  "username": "google"
}
```

### Search Jobs by Company

Search for jobs at specific companies using company IDs. You must first call getCompany with the company username to get the real ID.

**Operation Type:** Query (Read)

**Parameters:**

* **companyIds** `array of numbers` (required): Array of LinkedIn company IDs. Do NOT guess IDs - first call getCompany to get real IDs.
* **page** `number` (nullable): Page number for pagination (default: 1)
* **sort** `string` (nullable): Sort order for results (e.g., "mostRecent")

**Returns:**

* **jobs** `array of objects`: Array of job listings
  * **id** `string` (nullable): Unique job identifier
  * **title** `string` (nullable): Job title
  * **url** `string` (nullable): LinkedIn job posting URL
  * **location** `string` (nullable): Job location and work arrangement
  * **type** `string` (nullable): Employment type
  * **postAt** `string` (nullable): Job posting date
* **total** `number` (nullable): Total number of job results available

**Example Usage:**

```json
{
  "companyIds": [1035],
  "page": 1,
  "sort": "mostRecent"
}
```

### Search Jobs by Keywords

Search for jobs using keywords with filters for location, experience level, job type, and more.

**Operation Type:** Query (Read)

**Parameters:**

* **keywords** `string` (required): Keywords to search for in job titles and descriptions
* **companyIds** `string` (nullable): Company ID to filter jobs by specific company
* **locationId** `string` (nullable): Location ID to filter jobs by geographic area
* **sort** `string` (nullable): Sort order (mostRelevant, mostRecent)
* **experienceLevel** `string` (nullable): Experience level (internship, associate, director, entryLevel, midSeniorLevel, executive, president)
* **datePosted** `string` (nullable): Filter by when posted (anyTime, pastMonth, pastWeek, past24Hours)
* **jobType** `string` (nullable): Employment type (fullTime, partTime, contract, internship)
* **onsiteRemote** `string` (nullable): Work arrangement (onSite, remote, hybrid)
* **start** `number` (nullable): Starting index for pagination (0, 25, 50, 75, etc. Max: 975)

**Returns:**

* **success** `boolean`: Whether the API call was successful
* **message** `string`: API response message
* **data** `array of objects` (nullable): Array of job listings
  * **id** `string` (nullable): Unique job identifier
  * **title** `string` (nullable): Job title
  * **url** `string` (nullable): LinkedIn job posting URL
  * **location** `string` (nullable): Job location and work arrangement
  * **type** `string` (nullable): Employment type
  * **postAt** `string` (nullable): Job posting date
* **total** `number` (nullable): Total number of jobs found

**Example Usage:**

```json
{
  "keywords": "software engineer",
  "experienceLevel": "midSeniorLevel",
  "datePosted": "pastWeek",
  "onsiteRemote": "remote",
  "start": 0
}
```

***

## SimilarWeb

Get website traffic analytics and rankings.

To bring your own credentials for this tool, see the [SimilarWeb tool page](https://cotera.co/docs/reference/tools/individual-tools/similarweb.md).

### Get Traffic Data

Get comprehensive traffic analytics including visits, rankings, and traffic sources for any domain.

**Operation Type:** Mutation (Write)

**Parameters:**

* **domain** `string` (required): The domain to get traffic data for (e.g., "example.com"). Use just the domain, not full URLs.

**Returns:**

* **SEOInsights** `object` (nullable): SEO insights including top keywords
  * **TopKeywords** `array of objects` (nullable): Top performing keywords
    * **CPC** `number` (nullable): Cost per click
    * **Volume** `number` (nullable): Search volume
    * **Name** `string` (nullable): Keyword name
    * **EstimatedValue** `number` (nullable): Estimated keyword value
* **SnapshotDate** `string` (nullable): Date when data was captured
* **Traffic** `object` (nullable): Traffic data
  * **Visits** `object` (nullable): Monthly visits by date (e.g., `{"2025-10-01": 6620152}`)
  * **TopCountryShares** `object` (nullable): Traffic share by country code (e.g., `{"US": 0.99}`)
  * **Sources** `object` (nullable): Traffic source breakdown
    * **Paid Referrals** `number` (nullable): Paid referrals traffic percentage
    * **Referrals** `number` (nullable): Referral traffic percentage
    * **Social** `number` (nullable): Social media traffic percentage
    * **Direct** `number` (nullable): Direct traffic percentage
    * **Search** `number` (nullable): Search traffic percentage
    * **Mail** `number` (nullable): Email traffic percentage
  * **IsDataFromGa** `boolean` (nullable): Whether data is from Google Analytics
  * **Engagement** `object` (nullable): User engagement metrics
    * **TimeOnSite** `number` (nullable): Average time on site in seconds
    * **BounceRate** `number` (nullable): Site bounce rate
    * **PagesPerVisit** `number` (nullable): Average pages per visit
* **WebsiteDetails** `object` (nullable): Website details
  * **Domain** `string` (nullable): The domain
  * **Category** `string` (nullable): Website category
  * **Description** `string` (nullable): Site description
  * **Title** `string` (nullable): Site title
* **Rank** `object` (nullable): Ranking information
  * **CountryRank** `object` (nullable): Country-specific ranking
    * **Country** `string` (nullable): Country code
    * **Rank** `number` (nullable): Rank within country
  * **CategoryRank** `object` (nullable): Category ranking
    * **Rank** `number` (nullable): Category rank
    * **Category** `string` (nullable): Category name
  * **GlobalRank** `number` (nullable): Global website rank

**Example Usage:**

```json
{
  "domain": "example.com"
}
```

### Get Similar Sites

Find websites similar to a given domain based on audience overlap and content similarity.

**Operation Type:** Query (Read)

**Parameters:**

* **domain** `string` (required): The domain to find similar sites for (e.g., "example.com"). Use just the domain, not full URLs.

**Returns:**

* **Category** `string` (nullable): Category of the queried domain
* **Description** `string` (nullable): Description of the queried domain
* **SimilarSites** `array of objects` (nullable): List of similar websites
  * **Domain** `string` (nullable): Similar site domain
  * **Visits** `number` (nullable): Monthly visits
  * **GlobalRank** `number` (nullable): Global rank of the similar site
  * **TopCountry** `object` (nullable): Top country for this site
    * **CountryName** `string` (nullable): Country name
    * **Rank** `number` (nullable): Rank in that country
    * **CountryCode** `string` (nullable): Two-letter country code
  * **Description** `string` (nullable): Site description
  * **Title** `string` (nullable): Site title
* **CategoryRank** `number` (nullable): Category rank of the queried domain
* **Domain** `string` (nullable): The queried domain
* **Visits** `number` (nullable): Monthly visits for the queried domain
* **Title** `string` (nullable): Title of the queried domain

**Example Usage:**

```json
{
  "domain": "example.com"
}
```

***

## Trustpilot

Access Trustpilot reviews and ratings.

To bring your own credentials for this tool, see the [Trustpilot tool page](https://cotera.co/docs/reference/tools/individual-tools/trustpilot.md).

### Get Reviews

Retrieve Trustpilot reviews for a company domain with pagination support.

**Operation Type:** Query (Read)

**Parameters:**

* **domain** `string` (required): Company domain to fetch reviews for (e.g., "example.com")
* **page** `number` (nullable): Page number for pagination (default: 1)

**Returns:**

* **reviews** `array of objects`: Array of reviews
  * **id** `string`: Review ID
  * **title** `string` (nullable): Review title
  * **text** `string`: Review text content
  * **rating** `number`: Review rating (1-5 stars)
  * **date** `string`: Review date
  * **reviewer** `object`: Reviewer information
    * **name** `string`: Reviewer name
    * **location** `string` (nullable): Reviewer location
* **total** `number`: Total number of reviews available
* **page** `number`: Current page number
* **perPage** `number`: Number of reviews per page

**Example Usage:**

```json
{
  "domain": "example.com",
  "page": 1
}
```

***

## Twitter

Access Twitter profiles and tweets.

To bring your own credentials for this tool, see the [Twitter tool page](https://cotera.co/docs/reference/tools/individual-tools/twitter.md).

### Get Profile

Retrieve Twitter user profile including follower count, verification status, and bio.

**Operation Type:** Query (Read)

**Parameters:**

* **username** `string` (required): Twitter username to retrieve profile for (without @ symbol)

**Returns:**

* **id** `string`: Twitter user REST ID (use this as the "user" parameter for getTweets)
* **name** `string`: Display name
* **screen\_name** `string`: Username/handle
* **followers\_count** `number` (nullable): Number of followers
* **friends\_count** `number` (nullable): Number of accounts following
* **description** `string` (nullable): User bio/description
* **verified** `boolean` (nullable): Legacy verification status

**Example Usage:**

```json
{
  "username": "elonmusk"
}
```

### Get Tweets

Retrieve tweets from a Twitter user with engagement metrics. Requires the user REST ID from getProfile.

**Operation Type:** Query (Read)

**Parameters:**

* **user** `string` (required): Twitter user REST ID. You must first call getProfile with the username to get this ID.
* **count** `string` (required): Number of posts to retrieve (e.g., "20")

**Returns:**

* **tweets** `array of objects`: Array of tweets
  * **rest\_id** `string`: Tweet REST ID
  * **legacy** `object` (nullable): Tweet legacy data
    * **full\_text** `string` (nullable): Full tweet text
    * **favorite\_count** `number` (nullable): Number of likes
    * **retweet\_count** `number` (nullable): Number of retweets
    * **reply\_count** `number` (nullable): Number of replies
    * **created\_at** `string` (nullable): Tweet creation date

**Example Usage:**

```json
{
  "user": "44196397",
  "count": "20"
}
```

### Search Tweets

Search Twitter for tweets matching a query. Returns tweet URLs, text, media links, and engagement metrics.

**Operation Type:** Mutation (Write)

**Parameters:**

* **query** `string` (required): Search query - keywords, hashtags, or phrases
* **type** `string` (default: "Top"): Search type - "Top", "Latest", "People", "Media", or "Lists"
* **count** `number` (default: 20): Number of results to return
* **cursor** `string` (nullable): Pagination cursor from previous response

**Returns:**

* **results** `array of objects`: Array of matching tweets
  * **url** `string`: URL to the tweet
  * **username** `string`: Twitter handle of the author
  * **text** `string` (nullable): Tweet text content
  * **mediaLinks** `array of strings` (nullable): URLs to media attachments
  * **engagement** `object`: Engagement metrics
    * **views** `number` (nullable): Number of views
    * **likes** `number` (nullable): Number of likes
    * **retweets** `number` (nullable): Number of retweets
    * **replies** `number` (nullable): Number of replies
    * **bookmarks** `number` (nullable): Number of bookmarks
  * **createdAt** `string` (nullable): Tweet creation timestamp
* **cursor** `string` (nullable): Cursor for fetching the next page of results

**Example Usage:**

```json
{
  "query": "artificial intelligence",
  "type": "Latest",
  "count": 20
}
```

***

## YouTube Transcript

Retrieve video transcripts from YouTube.

To bring your own credentials for this tool, see the [YouTube Transcript tool page](https://cotera.co/docs/reference/tools/individual-tools/youtube-transcript.md).

### Get Transcript

Retrieve the full transcript for a YouTube video with timing information.

**Operation Type:** Mutation (Write)

**Parameters:**

* **videoId** `string` (required): The YouTube video ID to get transcript for (e.g., "dQw4w9WgXcQ")

**Returns:**

* **transcript** `array of objects`: Array of transcript segments with timing
  * **text** `string`: The transcript text segment
  * **start** `number`: Start time in seconds
  * **duration** `number`: Duration of the segment in seconds

**Example Usage:**

```json
{
  "videoId": "dQw4w9WgXcQ"
}
```

***

## Cotera Web Search

Search the web using Bing and get relevant results.

### Search

Execute a web search query and get results with titles, URLs, and snippets.

**Operation Type:** Mutation (Write)

**Parameters:**

* **query** `string` (required): The search query to execute
* **max\_results** `number` (nullable): Maximum number of results to return (default: 10)

**Returns:**

* **results** `array of objects`: Array of search results
  * **title** `string`: Title of the search result
  * **url** `string`: URL of the search result
  * **snippet** `string` (nullable): Text snippet from the page

**Example Usage:**

```json
{
  "query": "best practices for API design",
  "max_results": 10
}
```

***

## Cotera Site Scraper

Scrape website content and convert to markdown.

### Scrape Website

Scrape a website URL and return the content as clean markdown.

**Operation Type:** Mutation (Write)

**Parameters:**

* **url** `string` (required): The URL of the website to scrape

**Returns:**

* **markdown** `string`: The scraped website content as markdown
* **title** `string` (nullable): The page title if available

**Example Usage:**

```json
{
  "url": "https://example.com/article"
}
```

***

## Cotera Markdown Email

Send beautifully formatted emails using markdown syntax with support for headings, lists, tables, code blocks, and more.

### Send Email

Send an email with markdown content that gets rendered to a beautiful HTML email with syntax highlighting for code blocks.

**Operation Type:** Mutation (Write)

**Parameters:**

* **email** `string` (required): Recipient email address. To send to multiple recipients, provide several addresses inline separated by commas or semicolons (e.g. `"alice@example.com, bob@example.com"`). All recipients receive the same email in a single send.
* **subject** `string` (required): Email subject line
* **markdown** `string` (required): Markdown content to render. Supports headings, bold/italic, lists, tables, code blocks with syntax highlighting, blockquotes, links, images, and horizontal rules.
* **title** `string` (nullable): Header title shown in email (defaults to subject if not provided)

**Returns:**

* **status** `string`: Status of the email send operation
* **message** `string`: Descriptive message about the result
* **email\_sent\_to** `string`: The email address(es) the message was sent to, comma-separated if multiple
* **recipients** `string[]`: The list of individual recipient email addresses the message was sent to

**Example Usage:**

Single recipient:

````json
{
  "email": "recipient@example.com",
  "subject": "Weekly Report Summary",
  "markdown": "# Weekly Report\n\n## Highlights\n\n- **Revenue**: $125,000 (+15%)\n- **New Customers**: 42\n- **Support Tickets**: 18 resolved\n\n## Code Example\n\n```python\ndef calculate_growth(current, previous):\n    return (current - previous) / previous * 100\n```\n\n> Great progress this week!",
  "title": "Weekly Report - December 2024"
}
````

Multiple recipients (inline, comma-separated):

```json
{
  "email": "alice@example.com, bob@example.com",
  "subject": "Weekly Report Summary",
  "markdown": "# Weekly Report\n\nSame report, delivered to the whole team.",
  "title": "Weekly Report - December 2024"
}
```

***

## Python Sandbox

Execute Python code in an isolated sandbox environment with pre-installed packages.

### Execute Python Code

Run Python code safely in an isolated environment. Returns stdout, stderr, and execution time. Use for data analysis, calculations, or any Python computation.

**Operation Type:** Mutation (Write)

**Parameters:**

* **code** `string` (required): Python code to execute
* **timeout** `number` (nullable, default: 30): Execution timeout in seconds
* **packages** `array of strings` (nullable): Additional packages to install before execution. Pre-installed: numpy, pandas, requests, matplotlib, seaborn.

**Returns:**

* **success** `boolean`: Whether the code executed successfully
* **stdout** `string`: Standard output from the execution
* **stderr** `string`: Standard error from the execution
* **return\_code** `number` (nullable): Process return code
* **execution\_time\_seconds** `number`: Time taken to execute the code
* **error** `string` (nullable): Error message if execution failed

**Example Usage:**

```json
{
  "code": "import pandas as pd\nimport numpy as np\n\ndata = {'name': ['Alice', 'Bob', 'Charlie'], 'score': [85, 92, 78]}\ndf = pd.DataFrame(data)\nprint(df.describe())",
  "timeout": 30,
  "packages": null
}
```

***

## Chart Generator

Generate polished infographic-style charts from data. Supports line, bar, stacked bar, pie, scatter, and area charts.

### Generate Chart

Create a chart image from data. Returns a public URL to the generated PNG.

**Operation Type:** Mutation (Write)

**Parameters:**

* **chart\_type** `string` (required): Type of chart - "line", "bar", "stacked\_bar", "pie", "scatter", or "area"
* **title** `string` (required): Chart title
* **subtitle** `string` (nullable): Chart subtitle
* **data** `object` (required): Chart data
  * **labels** `array of strings` (required): X-axis labels or category names
  * **datasets** `array of objects` (required): Data series
    * **label** `string` (required): Dataset name for legend
    * **data** `array of numbers` (required): Data values
    * **color** `string` (nullable): Custom color (hex code)
* **callouts** `array of objects` (nullable): Key metric callouts to display
  * **value** `string` (required): Callout value (e.g., "↑ 25%")
  * **label** `string` (required): Callout label (e.g., "YoY Growth")
  * **color** `string` (nullable): Callout color
* **options** `object` (nullable): Additional chart options
  * **show\_legend** `boolean` (nullable): Show/hide legend
  * **show\_grid** `boolean` (nullable): Show/hide grid lines
  * **footnote** `string` (nullable): Footnote text

**Returns:**

* **success** `boolean`: Whether chart generation was successful
* **url** `string` (nullable): Public URL to the generated chart image
* **markdown** `string` (nullable): Markdown embed code for the chart
* **filename** `string` (nullable): Generated filename
* **error** `string` (nullable): Error message if generation failed

**Example Usage:**

```json
{
  "chart_type": "bar",
  "title": "Quarterly Revenue",
  "subtitle": "FY 2024",
  "data": {
    "labels": ["Q1", "Q2", "Q3", "Q4"],
    "datasets": [
      {
        "label": "Revenue ($M)",
        "data": [125, 148, 162, 189],
        "color": "#4F46E5"
      }
    ]
  },
  "callouts": [
    {
      "value": "↑ 51%",
      "label": "YoY Growth"
    }
  ],
  "options": {
    "show_legend": true,
    "footnote": "Source: Internal Finance Data"
  }
}
```

***

## MX Lookup

Look up MX (mail exchange) DNS records for any domain to detect the email provider.

### MX Lookup

Resolve MX records for a domain and automatically classify the email provider based on the mail exchange hostnames.

**Operation Type:** Query (Read)

**Parameters:**

* **domain** `string` (required): Domain name to look up MX records for (e.g., "stripe.com", "google.com")

**Returns:**

* **domain** `string`: The domain that was looked up
* **provider** `string`: Detected email provider. One of:
  * `Google Workspace` - MX records point to Google (aspmx.l.google.com, googlemail.com, etc.)
  * `Microsoft 365` - MX records point to Microsoft (mail.protection.outlook.com, etc.)
  * `Other` - MX records exist but don't match Google or Microsoft patterns
  * `None` - No MX records found for the domain
* **mxRecords** `array of objects`: Raw MX records for the domain, sorted by priority
  * **exchange** `string`: MX record exchange hostname
  * **priority** `number`: MX record priority (lower = higher priority)

**Example Usage:**

```json
{
  "domain": "stripe.com"
}
```

***

## Common Use Cases

**Lead Generation & Sales:**

* Enrich prospect data with Apollo to find verified emails and company information
* Research companies using Glassdoor reviews and ratings before outreach
* Find decision-makers at target companies with LinkedIn search

**Competitive Intelligence:**

* Analyze competitor website traffic and rankings with SimilarWeb
* Monitor competitor reviews on Trustpilot and Glassdoor
* Track competitor social media activity on Twitter, Instagram, and LinkedIn

**Market Research:**

* Search job postings to understand hiring trends and skill demands
* Analyze customer reviews to identify pain points and opportunities
* Research local businesses and their reviews with Google Maps

**Content & Social Media:**

* Get YouTube video transcripts for content repurposing
* Analyze Instagram and Twitter profiles for influencer research
* Scrape websites to gather research and competitive content

**Travel & Logistics:**

* Search for flights and compare pricing across airlines
* Get detailed flight information including layovers and timing

**Automated Notifications:**

* Send beautifully formatted reports with markdown tables and charts
* Create automated email alerts with syntax-highlighted code snippets
* Deliver personalized notifications with rich formatting

**Data Analysis & Computation:**

* Run Python code for data analysis without local environment setup
* Process datasets with pandas and numpy in the cloud
* Execute custom calculations and transformations on demand
* Generate statistical summaries and insights

**Email Provider Detection:**

* Determine if prospect companies use Google Workspace or Microsoft 365
* Segment account lists by email infrastructure for targeted outreach
* Enrich CRM records with technographic email provider data
* Audit email provider usage across a portfolio of companies

**Visualization & Reporting:**

* Create polished infographic-style charts for presentations
* Generate data visualizations with professional styling
* Build automated reporting pipelines with chart generation
* Add callouts and annotations to highlight key metrics

