Integrations
Two transports, one set of tools. AI agents use the MCP endpoint; automation tools (n8n, Zapier, Make, Clay) use the REST endpoint. Same key, same billing. Pick the section that matches your runtime — REST recipes are below, MCP transport details are at Advanced: MCP transport.
No agent? Use REST. Every snippet below POSTs the tool input directly to https://api.getmany.com.ua/v1/<tool>. Full REST reference (endpoints, error codes, Retry-After, credit-pool 402) lives at /docs/api.
n8n
n8n is a workflow automation tool that can call the REST API on a schedule and route results to Slack, email, Google Sheets, or any other destination.
Setup steps
- 1Create a new n8n workflow with a Schedule Trigger node (e.g. every 45 minutes).
- 2Add an HTTP Request node pointing to https://api.getmany.com.ua/v1/search_jobs.
- 3Set the method to POST and add the Authorization: Bearer header with your API key.
- 4Set the body to the tool input (limit, searchPeriod, filters) — no envelope, no wrapping.
- 5Add output nodes (Slack, Email, Google Sheets) and read results from $json.data.
- 6Activate the workflow.
{
"nodes": [
{
"name": "Schedule Trigger",
"type": "n8n-nodes-base.scheduleTrigger",
"parameters": {
"rule": {
"interval": [{ "field": "minutes", "minutesInterval": 45 }]
}
}
},
{
"name": "HTTP Request",
"type": "n8n-nodes-base.httpRequest",
"parameters": {
"method": "POST",
"url": "https://api.getmany.com.ua/v1/search_jobs",
"headers": {
"Authorization": "Bearer gm_your_api_key_here",
"Content-Type": "application/json"
},
"body": {
"limit": 100,
"searchPeriod": "1 hour",
"jobCategories": ["Web Development"],
"budget.hourlyRate.min": "50"
}
}
},
{
"name": "Slack",
"type": "n8n-nodes-base.slack",
"parameters": {
"channel": "#upwork-jobs",
"text": "New jobs found: {{ $json.data.total }}"
}
}
]
}Zapier / Make
Zapier and Make both support custom HTTP webhook actions. Same endpoint, same Bearer header, same tool-input body shape.
- Zapier: “Webhooks by Zapier” → Custom Request → POST to
https://api.getmany.com.ua/v1/search_jobswith the tool input as the JSON body. - Make: HTTP module → Make a request → POST with JSON body and Bearer auth.
Clay
Clay is a data-enrichment platform that can pull Upwork job data for lead-generation and outreach workflows.
Setup steps
- 1Create a new Clay table with an HTTP enrichment column.
- 2Set the endpoint to https://api.getmany.com.ua/v1/search_jobs.
- 3Add your API key as a Bearer token in the Authorization header.
- 4Configure the JSON body with your search parameters (limit, searchPeriod, filters).
- 5Map response.data fields to your Clay columns (title, budget, client info, etc.).
- 6Use Clay AI to score and prioritise results.
Custom code
Call the REST API directly from any programming language using standard HTTPS. The URL https://api.getmany.com.ua/v1/search_jobs in every sample below is the production base — use it as-is with your own API key.
cURL
curl -X POST https://api.getmany.com.ua/v1/search_jobs \
-H "Authorization: Bearer gm_your_api_key_here" \
-H "Content-Type: application/json" \
-d 39;{
"limit": 100,
"searchPeriod": "24 hours",
"jobCategories": ["Web Development"],
"budget.hourlyRate.min": "50"
}39;Node.js / TypeScript
const response = await fetch("https://api.getmany.com.ua/v1/search_jobs", {
method: "POST",
headers: {
"Authorization": "Bearer gm_your_api_key_here",
"Content-Type": "application/json"
},
body: JSON.stringify({
limit: 100,
searchPeriod: "24 hours",
jobCategories: ["Web Development"],
"budget.hourlyRate.min": "50"
})
});
const { data } = await response.json();
console.log(data);Python
import requests
response = requests.post(
"https://api.getmany.com.ua/v1/search_jobs",
headers={
"Authorization": "Bearer gm_your_api_key_here",
"Content-Type": "application/json"
},
json={
"limit": 100,
"searchPeriod": "24 hours",
"jobCategories": ["Web Development"],
"budget.hourlyRate.min": "50",
}
)
print(response.json()["data"])Tip: Switch on response.error_code (machine-readable enum), not on response.error (human message — may change). See /docs/api for the full error-code table.
Advanced: MCP transport
The same four tools are also reachable over the MCP JSON-RPC transport at https://mcp.getmany.com.ua/mcp. Use MCP if you're building an AI agent that needs tool discovery, multi-tool orchestration, or MCP sampling. For everything else — webhooks, cron jobs, BI pulls, Zapier-style automations — the REST API above is simpler and has no envelope overhead.
Node.js — JSON-RPC envelope (MCP)
const response = await fetch("https://mcp.getmany.com.ua/mcp", {
method: "POST",
headers: {
"Authorization": "Bearer gm_your_api_key_here",
"Content-Type": "application/json"
},
body: JSON.stringify({
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "search_jobs",
"arguments": {
"limit": 100,
"searchPeriod": "24 hours"
}
}
})
});
const data = await response.json();
console.log(data.result);For full MCP-client setup snippets (Claude Desktop, Cursor, Cline) see /docs/setup.
Real-world recipes
Full, working search configurations you can pipe into any integration above.