API Reference
A simple, read-only REST API for tools, categories, and your usage. All responses are JSON over HTTPS.
Overview & use cases
The goji.my API is a read-only REST API that puts our live marketplace catalog — tools, categories, verified ratings and pricing — straight into your apps, sites and workflows. Everything is JSON over HTTPS, authenticated with a personal key.
Why use it
- Always-fresh, curated data — the same vetted catalog we maintain, so you never scrape or hand-maintain a tool list.
- Build once, stay current — new tools and price/rating changes flow through automatically.
- Currency-aware — prices come with their currency, ready for a local audience.
- Self-service & secure — create, disable or delete keys yourself; lock them to specific IPs; set a webhook URL.
- Transparent limits — clear per-minute / day / month quotas you can check anytime via
/me.
What you can build
Embeddable widgets
Show curated "best tools by category" on your blog, newsletter or landing pages.
Comparison & directories
Power a "Top CRM" or "Marketing software" listing with real ratings and prices.
AI assistants
Let a chatbot recommend SaaS tools from a trusted, structured catalog.
Content automation
Auto-generate "new this week" or "highest-rated" roundups and keep them in sync.
Internal dashboards
Pull tools and categories into your own admin, CRM, spreadsheet or Notion.
Price & rating monitoring
Poll periodically and alert when a tool's price or rating changes.
Introduction
The base URL for all endpoints is:
Create and manage keys from your dashboard. Each request must be authenticated and counts toward your plan's quota.
Authentication
Pass your key as a Bearer token in the Authorization header. For quick tests you can also use an ?api_key= query parameter.
Quick start
Fetch the latest tools in your language of choice. Replace the key with your own from the dashboard.
cURL
JavaScript (fetch)
PHP
IP whitelist
For extra security you can restrict API access to specific IP addresses. Set your allowed IPs under Dashboard → API Keys → API Security (one per line or comma-separated). When a whitelist is set, requests from any other IP are rejected with 403 ip_not_allowed. Leave it blank to allow any IP.
* to explicitly allow all IPs. Admins can also set a user's whitelist from the admin panel.Rate limits & quotas
Limits depend on the plan of the key's owner and are enforced per minute, per day, and per month. Every response includes X-RateLimit-Limit, X-RateLimit-Remaining, and X-RateLimit-Plan headers; exceeding a limit returns 429.
| Plan | API keys | Per minute | Per day | Per month |
|---|---|---|---|---|
| Goji Suite Starter | 2 | 60 | 2,000 | 20,000 |
| Goji Suite Growth | 15 | 120 | 10,000 | 100,000 |
| Goji Suite Business | 40 | 300 | 50,000 | 500,000 |
| Goji Suite Enterprise | 200 | 600 | Unlimited | Unlimited |
These figures are pulled live from each plan — they always reflect current pricing.
Webhooks
Webhooks apply only to API-based tools (tools that expose an API/integration — shown as api_based: true). Of those, some push real-time events; for those you register a single Webhook URL (Dashboard → API Keys → API Security) and we POST JSON events to it. Not every API tool needs a webhook — it depends on the tool:
| Tool type | Webhook? | Why |
|---|---|---|
| Integrations, automation, monitoring, alerting, payment/commerce, CI/deploy | Required | They emit events (runs, alerts, status changes) that must be delivered to you in real time. |
| Catalog / reference tools (AI writers, design, productivity, SEO data, etc.) | Not needed | Read-only data you fetch on demand via GET — there's nothing to push back. |
Each tool tells you whether it needs one: the /api/v1/tools response includes a webhook_required boolean (an admin sets this per tool). Only configure a webhook if you use a tool where it's true.
Event payload
Use the “Send test webhook” button on your dashboard to verify your endpoint receives and 2xx-acknowledges events. Respond with a 2xx status to confirm receipt.
List tools
/api/v1/toolsReturns published tools, newest first.
Query parameters
| Param | Type | Default | Description |
|---|---|---|---|
limit | integer | 25 | How many tools to return (1–100). |
Example request
Example response
Each tool includes api_based and webhook_required so you know whether it emits webhook events (see Webhooks).
Get a tool
/api/v1/tools/{slug}Fetch one tool by its slug. Returns 404 with tool_not_found if it doesn't exist.
Example request
Example response
List categories
/api/v1/categoriesTop-level categories with live tool counts.
Example response
Account & usage
/api/v1/meYour plan, limits, and this month's request count — handy for showing usage in your own app.
Example response
Errors
| Status | Error code | Meaning |
|---|---|---|
401 | missing_key · invalid_key · revoked_key · expired_key | Authentication failed. |
403 | api_disabled | API access for the account is turned off. |
429 | rate_limited · daily_limit_exceeded · monthly_quota_exceeded | Slow down, wait for reset, or upgrade. |
404 | tool_not_found · unknown_endpoint | Resource or route doesn't exist. |
