Developer portal
EVLO.AZ API, OAuth 2.1 və MCP — AI agentləri və inteqrasiyalar üçün rəsmi kanal
REST API (v1)
Versiyalı OpenAPI kontraktı. Bütün cavablar JSON, xətalar maşın tərəfindən oxunan formatdadır:
Bütün nümunələr real public API-yə əsaslanır (same-origin proxy vasitəsilə). Daxili ünvanlar göstərilmir.
GET /api/evlo/v1/catalog/listings?transactionType=sale&priceMax=200000
# Nümunə cavab:
{ "items": [ /* ... */ ], "total": <n>, "page": 1, "limit": 20 }OAuth 2.1 avtorizasiya
Bütün yazma əməliyyatları üçün authorization-code + PKCE (S256) mütləqdir. Access tokenlər qısaömürlüdür, refresh tokenlər rotasiya ilə yenilənir. İstifadəçi icazə ekranında rejimi və səlahiyyətləri görüb OTP ilə təsdiqləyir.
Endpointlər:
POST /api/evlo/v1/oauth/register # dynamic client registration (RFC 7591) GET /api/evlo/v1/oauth/authorize # consent screen (response_type=code, PKCE S256 required) POST /api/evlo/v1/oauth/token # authorization_code | refresh_token GET /api/evlo/v1/.well-known/oauth-authorization-server GET /api/evlo/v1/.well-known/oauth-protected-resource # Autonomy mode is chosen by the user on the consent screen: # READ_ONLY | DRAFT_ONLY | CONFIRM_PUBLISH (default) | DELEGATED_AUTONOMY
Remote MCP endpoint
Model Context Protocol (JSON-RPC 2.0, Streamable HTTP). REST ilə eyni domain servislər — ayrıca biznes-məntiq yoxdur. Auth: OAuth Bearer token.
POST /api/evlo/v1/mcp
Authorization: Bearer <access_token>
Content-Type: application/json
{"jsonrpc":"2.0","id":1,"method":"tools/call",
"params":{"name":"search_listings","arguments":{"transactionType":"rent","limit":5}}}17 tool
search_listings | Search active listings with filters |
get_listing | Get one public listing card |
compare_listings | Compare 2–5 listings side by side |
get_taxonomy | Valid types, renovation values, place slugs |
get_listing_requirements | Required fields, media limits, moderation rules |
get_my_listings | Listings of the connected user |
create_listing_draft | Create a draft for the connected user |
get_listing_draft | Get a draft with version and validation |
update_listing_draft | Update a draft (optimistic concurrency) |
validate_listing_draft | Missing fields and warnings |
preview_listing | Preview the card exactly as users will see it |
submit_listing_for_review | Submit to moderation (mode-aware) |
publish_listing | Publish (DELEGATED_AUTONOMY; same moderation) |
pause_listing | Pause an active listing (reversible) |
mark_listing_closed | Mark as sold or rented |
get_agent_grant | Current grant: mode, scopes, limits |
get_agent_action_status | Status of an async operation |
Xəta formatı
Bütün xətalar {code, message} strukturundadır; scope/limit imtinaları ayrıca kodlarla qayıdır (scope_denied, daily_action_limit, version_conflict və s.).
HTTP 403
{"code":"scope_denied","message":"Scope listings:publish is not granted","requiredScope":"listings:publish"}
HTTP 409
{"code":"version_conflict","message":"Listing was modified concurrently","currentVersion":4}Changelog
- v1 (2026-08) — ilk buraxılış: kataloq, elan qaralamaları, media, moderasiya, AI-agent access (OAuth 2.1 + PKCE, 4 rejim, MCP, idempotent yazma)
Əlaqə
İnteqrasiya sualları üçün: info@aimarket.az · AI agents