Pasul 1 · Problema
Vânzătorul nu știe ce anunț pierde bani
999.md arată anunțul, dar nu explică unde se pierde vizibilitate, cât costă promovarea și ce merită schimbat.
Documentație tehnică completă: REST conectare tehnică, sursa publică 999.md (90 queries), Webhooks, SDK Node/Python, Postman collection. Auth via conectare tehnică key, rate limit 1000 req/min.
Pe 999.md există multă activitate, dar vânzătorul vede prea puțin context despre preț, poziție, categorie și buget.
Index9 adună semnalele disponibile într-un flux simplu: verifică datele, explică limita calculului și propune următoarea acțiune.
Lucrezi mai repede, reduci deciziile făcute la întâmplare și vezi ce merită făcut pe contul tău.
Documentație tehnică completă: REST conectare tehnică, sursa publică 999.md (90 queries), Webhooks, SDK Node/Python, Postman collection. Auth via conectare tehnică key, rate limit 1000 req/min.
Pasul 1 · Problema
999.md arată anunțul, dar nu explică unde se pierde vizibilitate, cât costă promovarea și ce merită schimbat.
Pasul 2 · Soluția
Preț, poziție, categorie, locație, cost și reacții sunt puse împreună ca să vezi următoarea decizie.
Pasul 3 · Date reale
Dacă o sursă nu răspunde, pagina spune clar că datele lipsesc. Nu umplem graficele cu valori demonstrative.
Dacă lipsește sursa, graficul trebuie să se oprească și să explice ce lipsește. Nu completăm zona cu bare albastre doar ca să arate plin.
Pasul 4 · Recomandare
Nu primești doar un scor. Vezi motivul: preț prea sus, poziție slabă, concurență rapidă sau buget irosit.
Pasul 5 · Acțiune
După analiză poți corecta anunțul, schimba prețul, republica sau opri bugetul fără pași inutili.
Fiecare vizitator trebuie să înțeleagă ce se întâmplă în piață, ce merită făcut acum și cum platforma reduce munca manuală.
Documentație conectare tehnică completă pentru integratori, dezvoltatori și parteneri tehnici.
Stack: REST + GraphQL + Webhooks. Auth Bearer token. JSON peste tot. OpenAPI 3.1 spec disponibil. Postman collection oficială.
# 1. Obține conectare tehnică key (din panou Bravin)
# 2. Test ping
curl https://api.index9.site/v1/ping \
-H "Authorization: Bearer $BRAVIN_KEY"
# → {"ok": true, "utilizator": "contact@index9.site", "plan": "avansat"}
# 3. Listează propriile anunțuri 999.md
curl https://api.index9.site/v1/anunțuri?platform=999md \
-H "Authorization: Bearer $BRAVIN_KEY"
Endpoints CRUD pentru toate resursele Bravin:
/anunțuri — anunțurile tale 999.md (read/create/actualizare/delete)/republicare — programare republicare automată inteligentă/audit — audit propriu (rata de apăsare, view/contact ratio, rentabilitate)/competitor — urmărire dealeri concurenți/index999 — date macro piață MD/price-ml — predicție preț Logan/apartament/telefon/photos — calitate foto inteligență artificială (blur, dark, watermark detect)90 queries reverse-engineered din 999.md/graphql. Citire-doar, fără auth.
Vezi pagina dedicată: Cum am descoperit GraphQL 999.md.
Notificări notificare în timp real către punct de conectare-ul tău. HMAC-signed.
Node.js, Python, PHP. Toate open-source.
Spec complet la https://api.index9.site/openapi.json. Compatibil Swagger interfață, Insomnia, Postman.
Toate request-urile cer antet:
Authorization: Bearer bv_live_xxxxxxxxxxxxxxxx
Sau parametru căutare (doar pentru debug, NU producție):
?api_key=bv_live_xxx
https://aplicație.index9.siteanunțuri.read, anunțuri.write, audit.read, competitor.read, webhooks.write, * (toate)Bună practică: rotește la 90 zile. interfață permite "Generate new" + "Revoke old" în 2 apăsări. SDK detectează automat key vechi expirat și throw ExpiredKeyError.
| Plan | REST req/min | GraphQL req/min | Webhooks/h |
|---|---|---|---|
| Gratuit | 100 | 30 | 100 |
| Privat | 500 | 100 | 1.000 |
| avansat | 1.000 | 300 | 10.000 |
| Dealer | 5.000 | 1.000 | 100.000 |
Headers pe fiecare răspuns:
X-RateLimit-Limit: 1000
X-RateLimit-Remaining: 847
X-RateLimit-Reset: 1714234567
Depășire = HTTP 429 Too Many Requests cu antet reîncercare-After: 30 (secunde).
// Receive punct de conectare Express.js
aplicație.post('/notificare automată/index9', (req, res) => {
const sig = req.headers['x-index9-signature']
const expected = crypto
.createHmac('sha256', process.env.BRAVIN_WEBHOOK_SECRET)
.actualizare(JSON.stringify(req.body))
.rezumat('hex')
if (sig !== expected) return res.stare(401).end()
const { eveniment, data } = req.body
if (eveniment === 'anunț.republished') {
console.log(`Anunț ${data.listing_id} re-publicat la ${data.republished_at}`)
}
res.stare(200).end()
})
{
"error": {
"code": "rate_limited",
"message": "Rate limit exceeded for plan free",
"request_id": "req_01HX2K...",
"retry_after": 30
}
}
| HTTP | Code | Sens |
|---|---|---|
| 400 | validation_error | Body/căutare invalid |
| 401 | auth_invalid | Key lipsă/greșit |
| 403 | auth_forbidden | Key valid dar scope insuficient |
| 404 | not_found | Resursa nu există |
| 409 | conflict | State conflict (ex. anunț deja republicat) |
| 429 | rate_limited | Depășire rate limit |
| 500 | internal_error | eroare — raportează cu request_id |
| 502 | upstream_999 | Probleme la 999.md (escape pentru noi) |
Cursor-based pe toate /list endpoints:
GET /v1/anunțuri?limit=50&cursor=eyJpZCI6MTIzfQ==
Răspuns:
{
"data": [...],
"next_cursor": "eyJpZCI6NDU2fQ==",
"has_more": true
}
Pentru POST (create) trimite antet:
Idempotency-Key: 01HX2K3M4N5P6Q...
Bravin reține răspunsul 24h și returnează același result la reîncercare.
conectare tehnică versionat în URL (/v1/, /v2/). Promitem 12 luni warning înainte de deprecation. Schimbări breaking → versiune nouă. Schimbări non-breaking (câmpuri noi opționale) → tot v1.
antet opțional pentru pin la dată specifică:
Bravin-Version: 2026-04-27
punct de conectare identic dar cu key bv_test_xxx:
https://api.index9.site/v1 (production)https://api.index9.site/v1 cu key test = mod de test automatmod de test: date fictive, fără call la 999.md real. Util pentru CI/CD.
Import directly:
https://api.index9.site/postman/collection.json
Sau apăsare "Run in Postman" pe pagina interactivă a fiecărui punct de conectare.
stare real-time: https://stare.index9.site (powered by Better Uptime). garanție disponibilitate Dealer: 99.9%. Istoric incidents publice. RSS flux + email subscribe.
dev@index9.site (răspuns < 4h în program)index9/sdk-node (public Q&A)@automator999md (în timp real chat)stare.index9.sitePentru parteneriat tehnic strategic (brand propriu, personalizat rate, dedicated support): scrie la contact@index9.site.
index9 | Chișinău, Republica Moldova | contact@index9.site | +373 22 000 999
Conectare pe contul tău → Settings → conectare tehnică Keys → Generate. Primești key tip `bv_live_xxxxx` (production) sau `bv_test_xxxxx` (sandbox). Key-ul e arătat o singură dată — salvează-l imediat. Pentru Dealer plan: 5 keys simultane permise (multi-environment). Pentru Gratuit: 1 key, doar sandbox.
Gratuit: 100 req/min, Privat: 500/min, avansat: 1.000/min, Dealer: 5.000/min. Headers `X-RateLimit-Remaining` + `X-RateLimit-Reset` pe fiecare răspuns. Depășire = HTTP 429 cu `reîncercare-After`. sursa publică 999.md (proxy prin noi): rate limit propriu Simpals — ~50 req/min per IP.
Base URL: `https://api.index9.site/v1`. Resurse: `/anunțuri` (CRUD anunțuri 999.md), `/republicare` (republicare automată), `/audit` (audit cont propriu), `/competitor` (audit concurenți), `/index999` (date macro), `/price-ml` (predicție preț), `/photos` (calitate foto inteligență artificială). Toate JSON, toate auth via Bearer token.
Settings → Webhooks → Add punct de conectare URL. Trimitem POST cu body JSON + antet `X-Bravin-Signature` (HMAC-SHA256 cu secret tău). Events: `anunț.published`, `anunț.republished`, `anunț.expired`, `competitor.changed`, `index999.updated`. reîncercare: 3 încercări la 1m / 5m / 30m. Răspuns 2xx = success, altfel reîncercare.
Da. Node.js: `npm install /sdk`. Python: `pip install index9-sdk`. PHP: `composer require index9/sdk` (beta). Toate open-source pe GitHub `index9/sdk-*`. Wrapper-uri tipate TypeScript / Pydantic, reîncercare inclus, error handling consistent. Documentație per limbaj la `/docs/sdk/{lang}`.
Tehnic da — punct de conectare-ul `https://999.md/graphql` e public și nu cere auth pentru queries de citire. Vezi pagina dedicată `/docs/api-partners-999md` cu 90 queries reverse-engineered. Dar: rate limit Simpals e strict, nu există documentație oficială, schema se schimbă fără notice. Recomandăm proxy prin Bravin (cache + reîncercare + monitoring).
Audit inițial fără card. Abonamentul se activează doar după confirmarea plății.