Skip to main content
Glama

mcp-google-sheets

google-trends-api.ts3.79 kB
import { scrapelessApiAuth } from '../../index'; import { createAction, Property } from '@activepieces/pieces-framework'; import { googleTrendsDataTypeOptions } from '../constants'; import { createScrapelessClient } from '../services/scrapeless-api-client'; export const googleTrendsApi = createAction({ auth: scrapelessApiAuth, name: 'google_trends_api', displayName: 'Google Trends', description: 'Access popular keyword and interest data from Google Trends.', props: { q: Property.ShortText({ displayName: 'Search Query', description: 'Parameter defines the query or queries you want to search. You can use anything that you would use in a regular Google Trends search. The maximum number of queries per search is 5 (this only applies to `interest_over_time` and `compared_breakdown_by_region` data_type, other types of data will only accept 1 query per search).', defaultValue: 'Mercedes-Benz,BMW X5', required: true, }), data_type: Property.StaticDropdown({ displayName: 'Data Type', description: 'Parameter defines the type of data you want to search. You can use anything that you would use in a regular Google Trends search. The maximum number of queries per search is 5 (this only applies to `interest_over_time` and `compared_breakdown_by_region` data_type, other types of data will only accept 1 query per search).', required: true, defaultValue: 'interest_over_time', options: { options: googleTrendsDataTypeOptions, }, }), date: Property.ShortText({ displayName: 'Date', description: "The supported dates are: `now 1-H`, `now 4-H`, `now 1-d`, `now 7-d`, `today 1-m`, `today 3-m`, `today 12-m`, `today 5-y`, `all`.You can also pass custom values:Dates from 2004 to present: `yyyy-mm-dd yyyy-mm-dd` (e.g. `2021-10-15 2022-05-25`)\nDates with hours within a week range: `yyyy-mm-ddThh yyyy-mm-ddThh` (e.g. `2022-05-19T10 2022-05-24T22`). Hours will be calculated depending on the tz (time zone) parameter.", required: true, defaultValue: 'today 1-m', }), hl: Property.ShortText({ displayName: 'Language', description: "Parameter defines the language to use for the Google Trends search. It's a two-letter language code. (e.g., `en` for English, `es` for Spanish, or `fr` for French).", required: false, defaultValue: 'en', }), tz: Property.ShortText({ displayName: 'Time zone', description: "time zone offset. default is `420`.", required: false, defaultValue: '420', }), }, async run({ propsValue, auth }) { try { const client = createScrapelessClient(auth); const input = { q: propsValue.q, data_type: propsValue.data_type, date: propsValue.date, hl: propsValue.hl, tz: propsValue.tz, } const response = await client.deepserp.createTask({ actor: 'scraper.google.trends', input, }); if (response.status === 200) { return { success: true, data: response.data || null, } } while (true) { await new Promise(resolve => setTimeout(resolve, 1000)); const result = await client.deepserp.getTaskResult(response.data.taskId); if (result.status === 200) { return { success: true, data: result.data || null, } } } } catch (error: unknown) { const errorMessage = error instanceof Error ? error.message : 'Unknown error occurred'; return { success: false, error: errorMessage, error_type: error instanceof Error ? error.constructor.name : 'UnknownError', timestamp: new Date().toISOString(), }; } }, });

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/activepieces/activepieces'

If you have feedback or need assistance with the MCP directory API, please join our Discord server