JustIdea Agency developer portal
Search and read the public website of JustIdea Agency, list its services with the published starting prices and get contact options, over a REST API or an MCP server. Free and read-only, with no sign-up and no API key. Your first call takes one line.
- Free, no plans or billing
- No account, no key
- Read-only, safe to retry
- OpenAPI 3.1
- MCP 2025-11-25
Quickstart
1. Make your first call, no key needed
curl "https://justidea.agency/api/v1/search?q=prestashop&lang=en"
curl "https://justidea.agency/api/v1/services?lang=en"
Responses are JSON. GET /api/v1/page?url=<url> returns one page with its full text as Markdown. Every endpoint, parameter and schema is in the OpenAPI 3.1 description (also as YAML).
2. Or connect an MCP client
The MCP server at https://justidea.agency/mcp speaks Streamable HTTP (JSON-RPC over POST), protocol 2025-11-25 and older. It needs no authentication and keeps no session.
{
"mcpServers": {
"justidea": {
"type": "http",
"url": "https://justidea.agency/mcp"
}
}
}
claude mcp add --transport http justidea https://justidea.agency/mcp
Without an SDK, one JSON-RPC request is enough:
curl -s https://justidea.agency/mcp \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"search_site","arguments":{"query":"PrestaShop migration"}}}'
3. Optional: get an access token yourself
A token identifies your agent and raises the REST API limit from 120 to 600 requests per minute. One request, no account, no e-mail, no approval:
curl -s -X POST https://justidea.agency/agent/auth/ \
-H "Content-Type: application/json" \
-d '{"type":"anonymous"}'
Send credential from the response as a bearer token, to the API or to the MCP server, and check who you are:
curl -s https://justidea.agency/api/v1/identity \
-H "Authorization: Bearer <credential>"
Access, keys and limits
| Without a token | With a token | |
|---|---|---|
| Rate limit (REST API) | 120 requests per 60 seconds per IP address | 600 requests per 60 seconds per agent |
| How to get it | Nothing to do | POST /agent/auth/, one request |
| Lifetime | Always on | Access token 1 hour, identity assertion 30 days |
| Scope | Every endpoint and tool | The same: site:read |
- API keys are not issued. The self-serve token replaces them: there is nothing to apply for and no one to e-mail.
- Renewing: when the access token expires, exchange the
identity_assertionatPOST /oauth/token/instead of registering again. Step by step in auth.md. - Revoking and rotating: tokens are signed and self-contained, and nothing is stored on our side, so there is nothing to revoke. Stop using a token and it expires within an hour.
- MCP clients acting for a person (Claude, ChatGPT, Cursor): OAuth 2.1 authorization code with PKCE and open dynamic client registration. Metadata: protected resource (RFC 9728) and authorization server (RFC 8414).
- No accounts and no personal data: registration asks for nothing and stores nothing.
Reference
REST API
Base URL https://justidea.agency/api/v1, version 1. Every GET also answers HEAD. CORS is open, so the API works from a browser too.
| Method | Path | Returns |
|---|---|---|
| GET | /api/v1 | API description with every endpoint URL |
| GET | /api/v1/health | Health: version, number of pages, languages |
| GET | /api/v1/search?q=&lang=&type=&limit= | Pages matching a query |
| GET | /api/v1/pages?type=&lang=&limit=&cursor= | Pages with cursor pagination |
| GET | /api/v1/page?url= | One page as Markdown |
| GET | /api/v1/services?lang= | Services with published starting prices (PLN or EUR) |
| GET | /api/v1/contact?lang= | E-mail, phone and contact page |
| GET | /api/v1/identity | The agent behind the bearer token (token required) |
| POST | /api/v1/batch | Up to 10 GET operations in one request |
MCP tools
Server https://justidea.agency/mcp, version 1.1.0. These tools are annotated read-only:
| Tool | What it does |
|---|---|
list_services | List JustIdea Agency services with the published starting ("from") prices and links. |
get_page | Full text of one justidea.agency page as Markdown: a service, a price list, the company profile, reviews, a blog article. |
search_site | Search justidea.agency pages by titles, descriptions and section headings. |
send_inquiry is not read-only: it passes a person's inquiry to the sales team. Call it only when the user asks to get in touch, with their own contact details and explicit consent.
scan_analytics and scan_ai_visibility run a free scan of the user's own website (analytics and tracking, or visibility in AI assistants). They need the user's e-mail and explicit consent: you get the grade and the list of problems, and the full report with fixes is e-mailed to the user. Limit: 2 scans per e-mail address per day. get_scan_result returns the result of a scan that took longer than one call.
MCP resources
https://justidea.agency/llms.txt: the site map for language models.https://justidea.agency/pricing.md: published starting prices in Markdown.
Documentation
- OpenAPI 3.1 description: every endpoint, parameter and response schema.
- API guide (Markdown): authentication, rate limits, pagination, batch, versioning and error codes.
- auth.md: agent registration and OAuth, step by step.
- MCP server card: tools, resources and capabilities of the MCP server.
- API catalog (RFC 9727) and AI catalog: everything this site offers to agents.
- Agent Skills index: ready-made skills for agents.
- llms.txt: the site explained for language models. Prices as Markdown.
- NLWeb 0.55:
POST /askanswers a natural-language question with schema.org results (JSON, or Server-Sent Events withprefer.streaming). The Schema Map at/schemamap.xmllists the structured data of the whole site as one JSONL feed. - Entry in the official MCP Registry (
agency.justidea/justidea-agency) and listing on Smithery (xawierek/justidea-agency). - Any page as Markdown: send
Accept: text/markdown, or replace the trailing slash with.md. This portal too: /developers/index.md.
Testing and sandbox
There is no separate sandbox or test mode, and you do not need one. Every REST endpoint and every MCP tool except send_inquiry and the scan tools only reads the public website, has no side effects and is safe to call and retry as often as the rate limit allows. Test against production: the same URLs you will use live.
- Health check: API health reports the version and the number of pages.
- Try it in a browser: search, services and prices, contact options, one page.
- MCP Inspector:
npx @modelcontextprotocol/inspector, transport Streamable HTTP, URLhttps://justidea.agency/mcp. - Error handling:
/api/v1/searchwithoutqgives400 invalid-parameter, an unknown endpoint gives404 not-found, and a bad token gives401 invalid-tokenwithWWW-Authenticate.
Errors and versioning
- Errors are
application/problem+json(RFC 9457) with a stable, machine-readablecode. All codes: api.md. - Every API response carries
RateLimit-PolicyandX-RateLimit-Limit; a429carriesRetry-Afterin seconds. - The major version is in the path (
/api/v1). Changes within v1 are additive only. A deprecated version gets aDeprecationheader, and aSunsetheader at least 90 days before removal.
What the API does not do
The REST API never submits forms, books meetings, sends messages or takes payments, and it holds no client data. It returns only prices published on the website: net starting prices, the final quote depends on scope. When a person wants to get in touch, give them the link, e-mail address or phone number from GET /api/v1/contact.
Support
- E-mail: contact@justidea.agency. For a bug in the API or the MCP server, include the request and the response.
- People, not agents, who want to talk about a project: contact page or +48 12 400 40 40.