Granetra இல் உருவாக்கவும்
உங்கள் AI ஆதரவு முகவர்களுக்கு ஒரு சுத்தமான REST API மற்றும் கையெழுத்திடப்பட்ட வலைஹூக்குகள். உங்கள் டாஷ்போர்டின் உருவாக்குநர்கள் பக்கத்தில் ஒரு விசையை உருவாக்கி, நிமிடங்களில் உருவாக்கத் தொடங்குங்கள்.
https://granetra.com/api/v1REST API
பாட்டுகளை பட்டியலிடுங்கள், உரையாடல்கள் மற்றும் உரைநூல்களை படிக்கவும், உரையாடல் செய்திகளை அனுப்பவும், மற்றும் முகவர் செயல்களை நிர்வகிக்கவும் — அனைத்தும் ஒரு scoped bearer விசியுடன்.
கையெழுத்திடப்பட்ட வலைஹூக்குகள்
ஒரு உரையாடல் தொடங்கும் தருணத்தில், ஒரு பார்வையாளர் மனிதனை கேட்கும் போது, அல்லது ஒரு முன்னணி பிடிக்கப்படும் போது timestamped-HMAC POST ஐப் பெறுங்கள் — மீண்டும் முயற்சிகள் மற்றும் ஒரு விநியோக பதிவு உடன்.
தானியங்கி செயல்பாட்டிற்காக உருவாக்கப்பட்டது
விசைகளை மாற்றவும், அவற்றை உங்கள் சர்வர் IP களுக்கு பூட்டவும், மற்றும் CI/CD இல் இருந்து பாட்டின் கட்டமைப்பை இயக்கவும். டாஷ்போர்டு செய்யும் அனைத்தும், API வழியாக.
API குறிப்புகள்
அடிப்படை URL: https://granetra.com/api/v1
அங்கீகாரம்
ஒவ்வொரு கோரிக்கையிலும் உங்கள் API விசையை bearer token ஆக அனுப்புங்கள்:
Authorization: Bearer gk_your_key_here
விசைகள் scoped ஆக உள்ளன. உங்கள் விசை scoped இல்லாத ஒரு இடத்திற்கு கோரிக்கை 403 insufficient_scope ஐ திருப்புகிறது. கிடைக்கும் scoped கள்: bots:read, conversations:read, chat:write, actions:read, actions:write.
எந்த இடங்கள்
| GET | /bots | உங்கள் பாட்டுகளை பட்டியலிடுங்கள் |
| GET | /bots/:id | ஒரு தனி பாட்டு |
| GET | /bots/:id/conversations | உரையாடல்களை பட்டியலிடுங்கள் |
| GET | /conversations/:id | ஒரு உரையாடல் உரைநூல் |
| POST | /chat | ஒரு செய்தியை அனுப்பவும், ஒரு பதிலைப் பெறவும் |
| GET | /bots/:id/actions | ஒரு பாட்டின் முகவர் செயல்களை பட்டியலிடுங்கள் |
| POST | /bots/:id/actions | ஒரு செயல்பாட்டை உருவாக்கவும் |
| PATCH | /bots/:id/actions/:actionId | ஒரு செயல்பாட்டை புதுப்பிக்கவும் |
| DEL | /bots/:id/actions/:actionId | ஒரு செயல்பாட்டை நீக்கவும் |
ஒரு உரையாடல் செய்தியை அனுப்பவும்
curl -X POST https://granetra.com/api/v1/chat \
-H "Authorization: Bearer gk_your_key_here" \
-H "Content-Type: application/json" \
-d '{
"bot_id": "00000000-0000-0000-0000-000000000000",
"message": "What are your opening hours?"
}'
# → { "conversation_id": "…", "message_id": "…", "fallback": false, "reply": "We're open 9–5 Mon–Fri." }
# Pass the returned conversation_id back to continue the same thread.ஏஜென்டிக் நடவடிக்கைகளை நிர்வகிக்கவும்
உங்கள் சொந்த HTTPS முடிவுகளை பதிவு செய்யவும், உரையாடல் நடக்கும்போது பாட்டுக்கு அழைக்கக்கூடிய கருவிகள் — டாஷ்போர்ட்டின் பதிலாக CI/CD இல் அவற்றைப் நிர்வகிக்கவும். actions:write அளவீடு மற்றும் Scale திட்டத்தில் ஒரு பாட்டை தேவைப்படுகிறது.
curl -X POST https://granetra.com/api/v1/bots/BOT_ID/actions \
-H "Authorization: Bearer gk_your_key_here" \
-H "Content-Type: application/json" \
-d '{
"name": "lookup_order",
"description": "Look up an order status by number",
"url": "https://api.yourstore.com/orders",
"method": "GET",
"parameters": [
{ "name": "order_number", "type": "string", "description": "The order #", "required": true }
]
}'
# → { "ok": true, "id": "…" }Webhook நிகழ்வுகள்
ஒவ்வொரு விநியோகம் ஒரு JSON POST ஆகும், இதன் மூலக்கூறு:
{
"id": "delivery-uuid",
"type": "handoff.requested",
"created": "2026-07-20T12:00:00.000Z",
"data": { "bot_id": "…", "conversation_id": "…" }
}நிகழ்வு வகைகள்: conversation.created, handoff.requested, lead.captured.
கையொப்பங்களை சரிபார்க்குதல்
ஒவ்வொரு webhook-க்கும் X-Granetra-Signature தலைப்பு உள்ளது, இது t=<unix>,v1=<hmac> வடிவத்தில் உள்ளது. உங்கள் முடிவின் கையொப்ப ரகசியத்துடன் `${t}.${rawBody}`-இன் HMAC-SHA256-ஐ மீண்டும் கணக்கிடவும் மற்றும் ஒப்பிடவும்:
import crypto from "node:crypto";
function verify(rawBody, header, secret) {
const parts = Object.fromEntries(header.split(",").map((p) => p.split("=")));
const expected = crypto
.createHmac("sha256", secret)
.update(`${parts.t}.${rawBody}`)
.digest("hex");
return crypto.timingSafeEqual(Buffer.from(expected), Buffer.from(parts.v1));
}ஏதாவது 2xx-க்கு பதிலளிக்கவும். Non-2xx அல்லது ஒரு காலதாமதம் மீண்டும் முயற்சிக்கப்படுகிறது; நீண்ட தோல்வி ஓட்டம் தானாகவே முடிவை முடக்குகிறது.
உங்கள் IP களுக்கு ஒரு விசையை பூட்டுதல்
ஒரு விசை விருப்பமான IP அனுமதியியல் (தனிப்பட்ட IPv4 முகவரிகள் அல்லது CIDR வரம்புகள்) கொண்டிருக்கலாம். அமைக்கப்பட்டால், பிற முகவரியிலிருந்து வரும் கோரிக்கைகள் 403 ip_not_allowed உடன் நிராகரிக்கப்படுகின்றன. டாஷ்போர்ட்டில் ஒவ்வொரு விசைக்கும் இதைப் நிர்வகிக்கவும்.