Nothing matched that signal.
Your Rex workspace
Dashboard
Manage your research collections, favorite sources, and display settings.
Account
Checking login availability…
Collections 0
Saved in this browserOrganize normalized outputs into research collections saved in this browser. Raw responses and credentials are never retained.
Favorites
Settings
API
Discover public-data sources and run their registered operations from your own application or terminal.
Base URL https://rex.geopalm.com/api/v1
1. Find a source and operation
Search the catalog, then inspect a provider for its operation IDs, typed inputs, constraints, and examples.
curl 'https://rex.geopalm.com/api/v1/search?q=weather'
curl 'https://rex.geopalm.com/api/v1/providers/open-meteo'
List sources with GET /providers?limit=10. Collection responses contain data and page; pass page.nextCursor as the next request’s cursor until it is null. These examples use POSIX shell quoting; in Windows PowerShell use Invoke-RestMethod as shown below.
2. Execute an operation
POST JSON containing a registered providerId, operationId, and parameters. This example requests current weather for Toronto’s coordinates.
curl 'https://rex.geopalm.com/api/v1/requests/execute' \
-H 'Content-Type: application/json' \
--data '{"providerId":"open-meteo","operationId":"current-weather","parameters":{"latitude":43.65,"longitude":-79.38,"current":"temperature_2m,wind_speed_10m"}}'
JavaScript / Node.js
const response = await fetch('https://rex.geopalm.com/api/v1/requests/execute', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({"providerId":"open-meteo","operationId":"current-weather","parameters":{"latitude":43.65,"longitude":-79.38,"current":"temperature_2m,wind_speed_10m"}})
});
const result = await response.json();
if (!response.ok) throw new Error(result.error?.message || `HTTP ${response.status}`);
console.log(result.data.response.raw);
console.log(result.data.normalized);Windows PowerShell
$body = '{"providerId":"open-meteo","operationId":"current-weather","parameters":{"latitude":43.65,"longitude":-79.38,"current":"temperature_2m,wind_speed_10m"}}'
$result = Invoke-RestMethod -Uri 'https://rex.geopalm.com/api/v1/requests/execute' -Method Post -ContentType 'application/json' -Body $body
$result.data.response.raw | ConvertTo-Json -Depth 20To inspect the resolved request without contacting the provider, send the same body to POST /requests/prepare. Preparation is optional; execute validates the request itself. Use provider operation IDs from the catalog rather than arbitrary URLs.
3. Read the response
data.response.raw- The original parsed provider data. Its structure depends on the source.
data.normalized- Rex’s normalized records or metrics, when available. Check the actual shape; normalization is not available for every operation.
data.provenance- Source, retrieval time, attribution, and notices.
data.request- The resolved request and effective inputs.
The API returns a JSON envelope. The CLI’s compact table is a display format; it does not change the HTTP response. In the CLI, --json preserves the envelope and --raw selects provider data.
Search multiple sources
Send one query to compatible operations. Optional provider and profile filters are intersected when supplied together.
curl 'https://rex.geopalm.com/api/v1/multisearch' \
-H 'Content-Type: application/json' \
--data '{"query":"urban heat islands","profiles":["scholarly-search"],"providerIds":["crossref","openalex"],"limit":5}'
Read data.groups. Each group identifies its provider and operation, contains records on success, and reports its own error on failure. Check each group’s status; a completed search can include failed sources. Results retain source order rather than a combined relevance ranking.
Access, limits, and errors
These public data endpoints do not require a Rex API key. Individual sources may impose their own access requirements or quotas. An OpenAI key is not needed to call the data API.
Use HTTPS and Content-Type: application/json for POST requests. Discovery supports public browser access. Cross-origin execution depends on the host’s CORS configuration; if your browser blocks it, call Rex from your server. The chat assistant endpoints have a separate access policy.
Check the HTTP status before using data. Errors contain error.code, error.message, and error.requestId. Correct invalid inputs before retrying; for HTTP 429, respect the rate-limit reset headers. Keep the request ID when reporting a failed call.
Available quotas are reported through X-RateLimit-Limit, X-RateLimit-Remaining, and X-RateLimit-Reset. Source limits and availability vary. Consult the OpenAPI specification for route schemas and supported filters.