Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file added .DS_Store
Binary file not shown.
32 changes: 32 additions & 0 deletions src/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
# SearchApi

[SearchApi](https://www.searchapi.io) provides real-time search engine results APIs. Access Google Search results programmatically with structured JSON responses.

## Features

- Real-time Google Search results
- Organic results, ads, shopping, local results, knowledge graph, and more
- AI Overview, related questions, and rich snippets
- Location and language targeting
- Device-specific results (desktop, mobile, tablet)

## Getting Started

1. Sign up at [searchapi.io](https://www.searchapi.io) to get your API key
2. Create a connection in Make using your API key
3. Use the Google Search module to query the API

## Documentation

For detailed API documentation and parameters, visit:
- [SearchApi Documentation](https://www.searchapi.io/docs/google)
- [API Parameters Reference](https://www.searchapi.io/docs/google#api-parameters)

## Support

- Website: [www.searchapi.io](https://www.searchapi.io)
- Documentation: [searchapi.io/docs](https://www.searchapi.io/docs)




10 changes: 3 additions & 7 deletions src/connections/connection1/connection1.communication.iml.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,20 +2,16 @@
// Request
"url": "https://www.searchapi.io/api/v1/me", // Absolute URL to the API endpoint which validates credentials
"headers": { // Additional HTTP headers
"Authorization": "Bearer {{parameters.apiKey}}", // Authorizes user by API key, provided by user during the connection creation.
"X-SearchApi-Source": "Make" // Identify the integration in API logs.
"Authorization": "Bearer {{parameters.apiKey}}" // Authorizes user by API key, provided by user during the connection creation.
},

// Response handling
"response": {
"metadata": { // Adds authorized user details to the connection label.
"type": "text", // Type of the parameter. Can be "text" or "email".
"value": "{{body.account.remaining_credits}}" // The value in "email" will be displayed in connection's label.
},
"error": { // Error handling
"message": "[{{statusCode}}] {{body.error || body.message || body.detail || 'Authentication failed'}}" // Robust error message with fallbacks.
"message": "[{{statusCode}}] {{body.error}}" // On error, returns error message as "[statusCode] error text".
}
},

"log": {
"sanitize": [ // Excludes sensitive parameters from logs.
"request.headers.authorization" // Omit HTTP header "Authorization".
Expand Down
3 changes: 2 additions & 1 deletion src/connections/connection1/connection1.params.iml.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
"type": "password",
"label": "API Key",
"required": true,
"editable": true
"editable": true,
"help": "Your SearchApi API key. Find it at https://www.searchapi.io/ after login."
}
]
8 changes: 3 additions & 5 deletions src/general/base.iml.json
Original file line number Diff line number Diff line change
@@ -1,16 +1,14 @@
{
// Default request configuration
"baseUrl": "https://www.searchapi.io/api/v1/search", // Default base URL for all modules and RPCs.
"baseUrl": "https://www.searchapi.io/api/v1", // Default base URL for all modules and RPCs.
"headers": { // Default HTTP headers for all modules and RPCs.
"Authorization": "Bearer {{connection.apiKey}}", // Authorization by API key, which user will provide in the connection as parameter.
"Content-Type": "application/json", // Specify JSON content type for requests.
"X-SearchApi-Source": "Make" // Identify the integration in API logs. oi
"Authorization": "Bearer {{connection.apiKey}}" // Authorization by API key, which user will provide in the connection as parameter.
},

// Default response handling
"response": {
"error": { // Error handling
"message": "[{{statusCode}}] {{body.error || body.message || body.detail || 'API request failed'}}" // Robust error message with fallbacks.
"message": "[{{statusCode}}] {{body.error}}" // On error, returns error message as "[statusCode] error text".
}
},

Expand Down
28 changes: 14 additions & 14 deletions src/makecomapp.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
"components": {
"connection": {
"connection1": {
"label": "Unnamed",
"label": "SearchApi Connection",
"connectionType": "basic",
"codeFiles": {
"communication": "connections/connection1/connection1.communication.iml.json",
Expand All @@ -19,19 +19,19 @@
}
},
"module": {
"googleSearch": {
"label": "Google Search",
"description": "Search on google",
"moduleType": "search",
"makeApiCallUniversal": {
"label": "Make an API Call",
"description": "Search any engine via SearchApi.io. Select your engine, then add parameters from the docs.",
"moduleType": "universal",
"connection": "connection1",
"altConnection": null,
"codeFiles": {
"communication": "modules/google-search/google-search.communication.iml.json",
"staticParams": "modules/google-search/google-search.static-params.iml.json",
"mappableParams": "modules/google-search/google-search.mappable-params.iml.json",
"interface": "modules/google-search/google-search.interface.iml.json",
"samples": "modules/google-search/google-search.samples.iml.json",
"scope": "modules/google-search/google-search.scope.iml.json"
"communication": "modules/make-api-call-universal/make-api-call-universal.communication.iml.json",
"staticParams": "modules/make-api-call-universal/make-api-call-universal.static-params.iml.json",
"mappableParams": "modules/make-api-call-universal/make-api-call-universal.mappable-params.iml.json",
"interface": "modules/make-api-call-universal/make-api-call-universal.interface.iml.json",
"samples": "modules/make-api-call-universal/make-api-call-universal.samples.iml.json",
"scope": "modules/make-api-call-universal/make-api-call-universal.scope.iml.json"
}
}
},
Expand All @@ -54,15 +54,15 @@
],
"module": [
{
"local": "googleSearch",
"remote": "googleSearch"
"local": "makeApiCallUniversal",
"remote": "makeApiCallUniversal"
}
],
"function": [],
"rpc": [],
"webhook": []
},
"apikeyFile": "../.secrets/apikey"
"apikeyFile": "../.secrets/apikey2"
}
]
}
10 changes: 0 additions & 10 deletions src/modules/google-search/google-search.communication.iml.json

This file was deleted.

7 changes: 0 additions & 7 deletions src/modules/google-search/google-search.interface.iml.json

This file was deleted.

10 changes: 0 additions & 10 deletions src/modules/google-search/google-search.mappable-params.iml.json

This file was deleted.

12 changes: 6 additions & 6 deletions src/modules/groups.json
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
[
{
"label": "Other",
"modules": [
"googleSearch"
]
}
{
"label": "SearchApi",
"modules": [
"makeApiCallUniversal"
]
}
]
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
{
"qs": {
"engine": "{{parameters.engine}}",
"{{...}}": "{{toCollection(parameters.params, 'key', 'value')}}"
},
"url": "https://www.searchapi.io/api/v1/search",
"type": "text",
"method": "GET",
"headers": {
"{{...}}": "{{toCollection(parameters.headers, 'key', 'value')}}"
},
"response": {
"output": {
"body": "{{body}}",
"headers": "{{headers}}",
"statusCode": "{{statusCode}}"
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
[
{
"name": "body",
"type": "any",
"label": "Body"
},
{
"name": "headers",
"type": "collection",
"label": "Headers"
},
{
"name": "statusCode",
"type": "number",
"label": "Status code"
}
]
Loading