IBDÅ API
Ask about IBDÅ, a design-led R&D and innovation studio in Dubai, and prepare a project enquiry. Read-only JSON over HTTPS, no sign-in, no API key. Base URL: https://www.ibda.co/api/v1
Endpoints
| Method | Path | What it does | Parameters |
|---|---|---|---|
| GET | /api/v1/overview | About IBDÅ | query: language |
| GET | /api/v1/search | Search IBDÅ's website | query: query (required), language, limit |
| GET | /api/v1/page | Read a page of IBDÅ's website | query: path (required), section, language |
| POST | /api/v1/enquiry-draft | Prepare a project enquiry for IBDÅ | JSON body: summary (required), areas, stage, outcomes, timeline, organization, role, location, contact_name, contact_email, anything_else, language |
Examples
About IBDÅ (get_ibda_overview):
curl "https://www.ibda.co/api/v1/overview"
Search IBDÅ's website (search_ibda):
curl "https://www.ibda.co/api/v1/search?query=iot+prototype&limit=3"
Read a page of IBDÅ's website (get_ibda_page):
curl "https://www.ibda.co/api/v1/page?path=/about§ion=how+we+work"
Prepare a project enquiry for IBDÅ (prepare_project_enquiry):
curl -X POST "https://www.ibda.co/api/v1/enquiry-draft" -H "Content-Type: application/json" -d '{"summary":"We need a working prototype of a posture-tracking wearable for office staff."}'
Responses
Success (HTTP 200). text is Markdown, the same text the MCP tool returns:
{ "tool": "search_ibda", "language": "en", "text": "<Markdown>" }
Errors are JSON too:
{ "error": { "code": "invalid_request", "message": "\"query\" is required.", "hint": "…", "status": 400, "docs": "https://www.ibda.co/api" } }
| Status | Code | Hint |
|---|---|---|
| 400 | invalid_request | Check the parameters against https://www.ibda.co/openapi.json. |
| 400 | invalid_json | Send one JSON object with Content-Type: application/json. |
| 404 | not_found | Endpoints are listed at https://www.ibda.co/api/v1. Page paths come from GET /api/v1/overview. |
| 405 | method_not_allowed | Use the method in the Allow header. |
| 413 | payload_too_large | Keep the request body under 32 KB. |
| 429 | rate_limited | Wait 60 seconds, then retry. The limit is 60 requests per minute per client. |
| 500 | internal_error | Retry later. If it keeps happening, write to hello@ibda.co. |
| 503 | unavailable | Retry in a minute, or read https://www.ibda.co/llms.txt. |
Limits
60 requests per minute per client. Request bodies up to 32 KB.
OpenAPI and tool-callers
OpenAPI 3.1 description: https://www.ibda.co/openapi.json
Use it as a ChatGPT GPT Action: import https://www.ibda.co/openapi.json (authentication: none). Each operationId is the name of the matching MCP tool.
Assistants that speak the Model Context Protocol can connect to https://www.ibda.co/mcp instead.
Rules for assistants
State only what the results say: do not add prices, timelines, client names, response times or guarantees. Cite the page URL. Write the name as IBDÅ. Never send an enquiry for the user: show them the draft and let them send it.
Privacy
We keep usage data for each request (the endpoint, the type of client, the page returned or the reference of a prepared enquiry, the language and the country). We do not record IP addresses or the text of questions or enquiries. See https://www.ibda.co/privacy.