[{"data":1,"prerenderedAt":220},["ShallowReactive",2],{"doc-article-getting-started-introduction":3,"doc-siblings-getting-started":212},{"_path":4,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":8,"description":9,"category":5,"order":10,"difficulty":11,"time_to_complete":12,"related":13,"code_curl":16,"code_node":17,"code_python":18,"code_go":19,"body":20,"_type":206,"_id":207,"_source":208,"_file":209,"_stem":210,"_extension":211},"\u002Fdeveloper\u002Fgetting-started\u002Fintroduction","getting-started",false,"","Introduction","Welcome to the AISoule Developer REST API. Integrate official WhatsApp Business capabilities into any platform.",1,"beginner","3 minutes",[14,15],"\u002Fdocs\u002Fgetting-started\u002Fauthentication","\u002Fdocs\u002Fgetting-started\u002Frate-limits","# Send a quick ping to verify your API status\ncurl -X GET \"https:\u002F\u002Fapi.aisoule.com\u002Fv1\u002Fstatus\" \\\n  -H \"Authorization: Bearer YOUR_API_KEY\"\n","\u002F\u002F Verify API connectivity using Node.js\nconst axios = require('axios');\n\naxios.get('https:\u002F\u002Fapi.aisoule.com\u002Fv1\u002Fstatus', {\n  headers: { 'Authorization': 'Bearer YOUR_API_KEY' }\n})\n.then(res => console.log('API Status:', res.data))\n.catch(err => console.error('Error:', err.message));\n","# Verify API connectivity using Python\nimport requests\n\nheaders = { \"Authorization\": \"Bearer YOUR_API_KEY\" }\nres = requests.get(\"https:\u002F\u002Fapi.aisoule.com\u002Fv1\u002Fstatus\", headers=headers)\nprint(\"API Status:\", res.json())\n","\u002F\u002F Verify API connectivity using Go\npackage main\n\nimport (\n    \"fmt\"\n    \"net\u002Fhttp\"\n    \"io\"\n)\n\nfunc main() {\n    req, _ := http.NewRequest(\"GET\", \"https:\u002F\u002Fapi.aisoule.com\u002Fv1\u002Fstatus\", nil)\n    req.Header.Set(\"Authorization\", \"Bearer YOUR_API_KEY\")\n    \n    client := &http.Client{}\n    resp, _ := client.Do(req)\n    defer resp.Body.Close()\n    \n    body, _ := io.ReadAll(resp.Body)\n    fmt.Println(\"API Status:\", string(body))\n}\n",{"type":21,"children":22,"toc":200},"root",[23,32,53,60,125,131,136,148,178,184,189],{"type":24,"tag":25,"props":26,"children":28},"element","h1",{"id":27},"introduction-to-aisoule-api",[29],{"type":30,"value":31},"text","Introduction to AISoule API",{"type":24,"tag":33,"props":34,"children":35},"p",{},[36,38,44,46,51],{"type":30,"value":37},"Welcome to the ",{"type":24,"tag":39,"props":40,"children":41},"strong",{},[42],{"type":30,"value":43},"AISoule Developer API Documentation",{"type":30,"value":45},". The AISoule API is a robust, REST-first interface designed to let you send and receive WhatsApp messages, manage contacts, configure templates, and retrieve conversation analytics using the ",{"type":24,"tag":39,"props":47,"children":48},{},[49],{"type":30,"value":50},"Official Meta WhatsApp Business API",{"type":30,"value":52},".",{"type":24,"tag":54,"props":55,"children":57},"h2",{"id":56},"core-principles",[58],{"type":30,"value":59},"Core Principles",{"type":24,"tag":61,"props":62,"children":63},"ul",{},[64,99,109],{"type":24,"tag":65,"props":66,"children":67},"li",{},[68,73,75,82,84,90,91,97],{"type":24,"tag":39,"props":69,"children":70},{},[71],{"type":30,"value":72},"RESTful Design",{"type":30,"value":74},": Standard HTTP methods (",{"type":24,"tag":76,"props":77,"children":79},"code",{"className":78},[],[80],{"type":30,"value":81},"GET",{"type":30,"value":83},", ",{"type":24,"tag":76,"props":85,"children":87},{"className":86},[],[88],{"type":30,"value":89},"POST",{"type":30,"value":83},{"type":24,"tag":76,"props":92,"children":94},{"className":93},[],[95],{"type":30,"value":96},"DELETE",{"type":30,"value":98},") are utilized for intuitive resource interaction.",{"type":24,"tag":65,"props":100,"children":101},{},[102,107],{"type":24,"tag":39,"props":103,"children":104},{},[105],{"type":30,"value":106},"JSON Payloads",{"type":30,"value":108},": All request bodies and response payloads are formatted in standardized JSON.",{"type":24,"tag":65,"props":110,"children":111},{},[112,117,119,124],{"type":24,"tag":39,"props":113,"children":114},{},[115],{"type":30,"value":116},"Direct Meta Passthrough",{"type":30,"value":118},": AIsoule processes all official Meta conversation pricing at exactly cost, adding ",{"type":24,"tag":39,"props":120,"children":121},{},[122],{"type":30,"value":123},"0% markup",{"type":30,"value":52},{"type":24,"tag":54,"props":126,"children":128},{"id":127},"base-api-endpoint",[129],{"type":30,"value":130},"Base API Endpoint",{"type":24,"tag":33,"props":132,"children":133},{},[134],{"type":30,"value":135},"All REST requests must target the secure primary production endpoint:",{"type":24,"tag":137,"props":138,"children":143},"pre",{"className":139,"code":141,"language":142,"meta":7},[140],"language-http","https:\u002F\u002Fapi.aisoule.com\u002Fv1\n","http",[144],{"type":24,"tag":76,"props":145,"children":146},{"__ignoreMap":7},[147],{"type":30,"value":141},{"type":24,"tag":149,"props":150,"children":151},"blockquote",{},[152],{"type":24,"tag":33,"props":153,"children":154},{},[155,161,163,169,171,176],{"type":24,"tag":156,"props":157,"children":158},"span",{},[159],{"type":30,"value":160},"!IMPORTANT",{"type":30,"value":162},"\nAlways enforce secure ",{"type":24,"tag":76,"props":164,"children":166},{"className":165},[],[167],{"type":30,"value":168},"https",{"type":30,"value":170}," connections. Cleartext ",{"type":24,"tag":76,"props":172,"children":174},{"className":173},[],[175],{"type":30,"value":142},{"type":30,"value":177}," endpoints will be rejected automatically.",{"type":24,"tag":54,"props":179,"children":181},{"id":180},"standard-json-error-format",[182],{"type":30,"value":183},"Standard JSON Error Format",{"type":24,"tag":33,"props":185,"children":186},{},[187],{"type":30,"value":188},"All error conditions return standard HTTP status codes accompanied by descriptive JSON payloads to simplify troubleshooting:",{"type":24,"tag":137,"props":190,"children":195},{"className":191,"code":193,"language":194,"meta":7},[192],"language-json","{\n  \"success\": false,\n  \"error\": {\n    \"code\": \"unauthorized\",\n    \"message\": \"The provided Bearer token is invalid or has expired.\"\n  }\n}\n","json",[196],{"type":24,"tag":76,"props":197,"children":198},{"__ignoreMap":7},[199],{"type":30,"value":193},{"title":7,"searchDepth":201,"depth":201,"links":202},2,[203,204,205],{"id":56,"depth":201,"text":59},{"id":127,"depth":201,"text":130},{"id":180,"depth":201,"text":183},"markdown","content:developer:getting-started:introduction.md","content","developer\u002Fgetting-started\u002Fintroduction.md","developer\u002Fgetting-started\u002Fintroduction","md",[213,216,217],{"_path":214,"title":215},"\u002Fdeveloper\u002Fgetting-started\u002Fauthentication","Authentication",{"_path":4,"title":8},{"_path":218,"title":219},"\u002Fdeveloper\u002Fgetting-started\u002Frate-limits","Rate Limits",1780423178198]