Corbit Unified SMS Gateway APIواجهة Corbit الموحّدة للرسائل (API)v1.0.0

Corbit Unified SMS Gateway APIواجهة Corbit الموحّدة للرسائل (API)

One API for SMS, WhatsApp Business and the Core SMPP platform: send single and bulk messages, check your balance, list sender names and track delivery.

واجهة واحدة للرسائل النصية وواتساب للأعمال ومنصة SMPP الأساسية: إرسال فردي وجماعي، الاستعلام عن الرصيد، أسماء المرسلين، ومتابعة حالة التسليم.

Base URLالرابط الأساسيhttps://api.corbit.sa
Postman collectionملف Postman

Supportالدعم: info@corbit.sa · corbit.sa/contact

Authenticationالمصادقة

Send your API token in the Authorization header of every request:

Authorization: Bearer YOUR_API_TOKEN
  • SMS and Gateway endpoints — use the API token created in your Corbit SMS account (sms.corbit.sa).
  • WhatsApp endpoints — use your WhatsApp API key (sk_live_…) as the Bearer token.
  • Core platform endpoints — pass ApiKey and ClientId as query parameters (or in the JSON body where shown).

Requests without valid credentials are rejected with HTTP 401 on the SMS, WhatsApp and Gateway endpoints; the Core endpoints answer HTTP 200 with a non-zero ErrorCode (for example 7, invalid credentials).

أرسل توكن الـ API الخاص بك في الترويسة Authorization مع كل طلب:

Authorization: Bearer YOUR_API_TOKEN
  • نقاط SMS والبوابة — استخدم توكن الـ API الذي أنشأته من حسابك في Corbit SMS (sms.corbit.sa).
  • نقاط واتساب — استخدم مفتاح واتساب API الخاص بك (sk_live_…) كتوكن Bearer.
  • نقاط المنصة الأساسية — مرّر ApiKey وClientId كمعاملات في الرابط (أو في جسم JSON حيث يظهر ذلك).

الطلبات التي لا تحمل بيانات دخول صالحة تُرفض برمز HTTP 401 في نقاط SMS وواتساب والبوابة، أما نقاط Core فتردّ برمز HTTP 200 مع ErrorCode غير صفري (مثل 7 لبيانات دخول غير صالحة).

Rate limitsحدود الاستخدام

Each API token may make up to 1000 requests per 60 seconds on the SMS and Gateway endpoints (/api/v1/* and /gateway/v1/*), counted together. Their responses carry X-RateLimit-Limit and X-RateLimit-Remaining.

When the limit is exceeded the API answers HTTP 429 with code RATE_LIMIT and a Retry-After header (seconds until you may retry).

The WhatsApp and Core endpoints are governed by the limits of their own platforms.

يمكن لكل توكن إرسال حتى 1000 طلب كل 60 ثانية على نقاط SMS والبوابة (/api/v1/* و/gateway/v1/*) مجتمعة. تحمل ردود هذه النقاط الترويستين X-RateLimit-Limit وX-RateLimit-Remaining.

عند تجاوز الحد يرد الـ API برمز HTTP 429 والكود RATE_LIMIT مع الترويسة Retry-After (عدد الثواني حتى تتمكن من إعادة المحاولة).

أما نقاط واتساب وCore فتخضع لحدود منصّتيهما.

Duplicate protectionمنع التكرار

To protect you from being billed twice, an identical SMS sent through /api/v1/send or /api/v1/send-bulk — same account, same recipient(s) and same text — is accepted only once within 3600 seconds. A repeat is rejected with HTTP 409 and code DUPLICATE, and nothing is sent. The response carries X-Dedup-Window (the window in seconds).

If you really need to resend the same text — for example an OTP resend — add the header X-Allow-Duplicate: true to that request.

لحمايتك من الفوترة المزدوجة تُقبل الرسالة النصية المتطابقة المرسلة عبر /api/v1/send أو /api/v1/send-bulk — نفس الحساب ونفس المستلم(ين) ونفس النص — مرة واحدة فقط خلال 3600 ثانية. يُرفض التكرار برمز HTTP 409 والكود DUPLICATE ولا يُرسل شيء. يحمل الرد الترويسة X-Dedup-Window (مدة النافذة بالثواني).

إذا كنت تحتاج فعلًا لإعادة إرسال النص نفسه — مثل إعادة إرسال رمز التحقق — أضف الترويسة X-Allow-Duplicate: true لذلك الطلب.

Safe retries (Idempotency-Key)إعادة المحاولة الآمنة (Idempotency-Key)

On POST requests to the SMS and Gateway endpoints you can send Idempotency-Key: <unique string, up to 255 characters>. If a request is retried with the same key, the API returns the original response (with the header Idempotent-Replayed: true) instead of sending again.

Reusing a key with a different body returns 422 IDEMPOTENCY_KEY_REUSED; retrying while the first request is still running returns 409 IDEMPOTENCY_IN_PROGRESS.

في طلبات POST إلى نقاط SMS والبوابة يمكنك إرسال Idempotency-Key: <نص فريد حتى 255 حرفًا>. إذا أُعيد الطلب بنفس المفتاح يُرجع الـ API الرد الأصلي (مع الترويسة Idempotent-Replayed: true) بدل الإرسال مرة أخرى.

استخدام المفتاح نفسه مع محتوى مختلف يُرجع 422 والكود IDEMPOTENCY_KEY_REUSED، وإعادة المحاولة أثناء معالجة الطلب الأول تُرجع 409 والكود IDEMPOTENCY_IN_PROGRESS.

Balance protectionحماية الرصيد

When your SMS balance is exhausted, SMS send requests are rejected with HTTP 402 and code INSUFFICIENT_BALANCE, and no message is sent. Top up your account and retry. You can read your balance at any time with the balance endpoints.

عند نفاد رصيدك تُرفض طلبات إرسال الرسائل النصية برمز HTTP 402 والكود INSUFFICIENT_BALANCE ولا تُرسل أي رسالة. اشحن حسابك ثم أعد المحاولة. يمكنك معرفة رصيدك في أي وقت عبر نقاط الرصيد.

Errorsالأخطاء

Errors are returned as JSON, for example { "status": "Error", "message": "…", "code": "DUPLICATE" }. Use the HTTP status and the code to handle them in your application.

Errors raised by the SMS backend itself — for example 422 for a sender name that is not approved — are returned unchanged, with their own message.

The WhatsApp endpoints return { "success": false, "errors": { … } }, and the Core endpoints return HTTP 200 with a non-zero ErrorCode — always check ErrorCode there.

تُعاد الأخطاء بصيغة JSON، مثل { "status": "Error", "message": "…", "code": "DUPLICATE" }. استخدم رمز HTTP والحقل code للتعامل معها في تطبيقك.

الأخطاء التي تصدر من خدمة الرسائل نفسها — مثل 422 عند استخدام اسم مرسِل غير معتمد — تُعاد كما هي مع رسالتها الخاصة.

ونقاط واتساب تُعيد { "success": false, "errors": { … } }، ونقاط Core تُعيد HTTP 200 مع ErrorCode غير صفري — تحقّق دائمًا من ErrorCode هناك.

CodeالكودHTTPMeaningالمعنى
VALIDATION400 / 422

The request is invalid: a bad recipient number, an empty or too-long message, or missing fields. The message field explains what to fix.

الطلب غير صالح: رقم مستلم خاطئ، أو رسالة فارغة أو طويلة جدًا، أو حقول ناقصة. يوضّح الحقل message ما يجب تصحيحه.

AUTH401

Credentials are missing on a gateway endpoint (/gateway/v1/*). Send Authorization: Bearer <token>.

بيانات الدخول مفقودة في نقطة من نقاط البوابة (/gateway/v1/*). أرسل Authorization: Bearer <token>.

INSUFFICIENT_BALANCE402

Your balance is exhausted. Top up and retry.

رصيدك منتهٍ. اشحن رصيدك ثم أعد المحاولة.

SENDER_NOT_ALLOWED403

The sender name is not registered or approved for your account (returned by template sends).

اسم المرسِل غير مسجّل أو غير معتمد على حسابك (يُعاد في إرسال القوالب).

CLIENT_DISABLED403

Your account is disabled on the gateway. Contact support.

حسابك موقوف على البوابة. تواصل مع الدعم.

NOT_FOUND404

The template or endpoint does not exist.

القالب أو المسار غير موجود.

DUPLICATE409

The same message was already sent to the same recipient within the protection window. Add X-Allow-Duplicate: true to resend on purpose.

أُرسلت الرسالة نفسها إلى المستلم نفسه خلال فترة الحماية. أضف X-Allow-Duplicate: true لإعادة الإرسال عمدًا.

IDEMPOTENCY_IN_PROGRESS409

A request with the same Idempotency-Key is still being processed.

طلب بنفس Idempotency-Key ما زال قيد المعالجة.

IDEMPOTENCY_KEY_REUSED422

The Idempotency-Key was already used with a different request body.

استُخدم Idempotency-Key مسبقًا مع محتوى طلب مختلف.

RATE_LIMIT429

Too many requests. Wait the number of seconds in Retry-After, then retry.

عدد الطلبات كبير. انتظر عدد الثواني في Retry-After ثم أعد المحاولة.

INTERNAL500

Unexpected error on our side. Retry; if it persists, contact support.

خطأ غير متوقع من جانبنا. أعد المحاولة، وإن استمر تواصل مع الدعم.

BAD_GATEWAY502

The message service could not be reached. Retry shortly.

تعذّر الوصول إلى خدمة الرسائل. أعد المحاولة بعد قليل.

BACKEND_UNAVAILABLE503

The message service is temporarily unavailable. Retry after the seconds given in Retry-After.

خدمة الرسائل غير متاحة مؤقتًا. أعد المحاولة بعد عدد الثواني في Retry-After.

SEND_FAILEDvariesمتغيّر

Every recipient group of a template send was rejected. See data for the details.

رُفضت كل مجموعات المستلمين في إرسال القالب. راجع data للتفاصيل.

SMSالرسائل النصية (SMS)

Send single and bulk SMS, check your balance, list sender names and track delivery.

إرسال الرسائل النصية الفردية والجماعية، والاستعلام عن الرصيد، وأسماء المرسلين، ومتابعة حالة التسليم.

POST/api/v1/send

Send SMS (single)إرسال رسالة نصية (فردي)

Sends one SMS. The response carries the message id to use with the status and report endpoints.

يرسل رسالة نصية واحدة. يحتوي الرد على معرّف الرسالة id الذي يُستخدم مع نقطتي الحالة والتقرير.

Authentication: Bearer tokenالمصادقة: توكن Bearer

Parametersالمعاملات

Idempotency-Keyoptionalاختياري
headerترويسة · string

Optional. Retrying with the same key returns the first response (header Idempotent-Replayed: true) instead of sending again.

اختياري. إعادة المحاولة بنفس المفتاح تُرجع الرد الأول (الترويسة Idempotent-Replayed: true) بدل الإرسال مرة أخرى.

X-Allow-Duplicateoptionalاختياري
headerترويسة · string

Optional. Set to true to resend an identical message on purpose (skips duplicate protection for this request only).

اختياري. اضبطه على true لإعادة إرسال رسالة مطابقة عمدًا (يتجاوز منع التكرار لهذا الطلب فقط).

senderNamerequiredمطلوب
bodyجسم · string

Sender name approved for your account (see the sender names endpoint).

اسم المرسِل المعتمد على حسابك (راجع نقطة أسماء المرسلين).

numberrequiredمطلوب
bodyجسم · string

Recipient mobile number in international format, digits only (8–15 digits), e.g. 966XXXXXXXXX.

رقم جوال المستلم بالصيغة الدولية، أرقام فقط (من 8 إلى 15 رقمًا)، مثال 966XXXXXXXXX.

messageBodyrequiredمطلوب
bodyجسم · string

Message text, up to 1600 characters.

نص الرسالة، حتى 1600 حرفًا.

sendAtOptionoptionalاختياري
bodyجسم · string

Delivery timing. NOW sends immediately.

توقيت الإرسال. القيمة NOW ترسل فورًا.

Requestمثال الطلب

curl -X POST 'https://api.corbit.sa/api/v1/send' \
  -H 'Authorization: Bearer YOUR_API_TOKEN' \
  -H 'Content-Type: application/json' \
  -d '{
  "senderName": "Mobile.SA",
  "number": "966XXXXXXXXX",
  "messageBody": "Your code is 4821",
  "sendAtOption": "NOW"
}'
const response = await fetch("https://api.corbit.sa/api/v1/send", {
  method: "POST",
  headers: {
    "Authorization": "Bearer YOUR_API_TOKEN",
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
    "senderName": "Mobile.SA",
    "number": "966XXXXXXXXX",
    "messageBody": "Your code is 4821",
    "sendAtOption": "NOW"
  })
});
const data = await response.json();
console.log(data);
import requests

response = requests.post(
    "https://api.corbit.sa/api/v1/send",
    headers={"Authorization": "Bearer YOUR_API_TOKEN"},
    json={
        "senderName": "Mobile.SA",
        "number": "966XXXXXXXXX",
        "messageBody": "Your code is 4821",
        "sendAtOption": "NOW"
    },
)
print(response.json())
<?php
$ch = curl_init('https://api.corbit.sa/api/v1/send');
curl_setopt_array($ch, [
    CURLOPT_CUSTOMREQUEST => 'POST',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => [
        'Authorization: Bearer YOUR_API_TOKEN',
        'Content-Type: application/json',
    ],
    CURLOPT_POSTFIELDS => json_encode([
        'senderName' => 'Mobile.SA',
        'number' => '966XXXXXXXXX',
        'messageBody' => 'Your code is 4821',
        'sendAtOption' => 'NOW'
    ]),
]);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
#include <stdio.h>
#include <curl/curl.h>

int main(void) {
  CURL *curl = curl_easy_init();
  if (curl) {
    struct curl_slist *headers = NULL;
    headers = curl_slist_append(headers, "Authorization: Bearer YOUR_API_TOKEN");
    headers = curl_slist_append(headers, "Content-Type: application/json");
    curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "POST");
    curl_easy_setopt(curl, CURLOPT_URL, "https://api.corbit.sa/api/v1/send");
    curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
    curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\n  \"senderName\": \"Mobile.SA\",\n  \"number\": \"966XXXXXXXXX\",\n  \"messageBody\": \"Your code is 4821\",\n  \"sendAtOption\": \"NOW\"\n}");
    CURLcode res = curl_easy_perform(curl);
    if (res != CURLE_OK) fprintf(stderr, "curl error: %s\n", curl_easy_strerror(res));
    curl_slist_free_all(headers);
    curl_easy_cleanup(curl);
  }
  return 0;
}
using System;
using System.Net.Http;
using System.Text;

var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Post, "https://api.corbit.sa/api/v1/send");
request.Headers.Add("Authorization", "Bearer YOUR_API_TOKEN");
request.Content = new StringContent("{\n  \"senderName\": \"Mobile.SA\",\n  \"number\": \"966XXXXXXXXX\",\n  \"messageBody\": \"Your code is 4821\",\n  \"sendAtOption\": \"NOW\"\n}", Encoding.UTF8, "application/json");
var response = await client.SendAsync(request);
Console.WriteLine(await response.Content.ReadAsStringAsync());
using System;
using RestSharp;

var client = new RestClient("https://api.corbit.sa/api/v1/send");
var request = new RestRequest("", Method.Post);
request.AddHeader("Authorization", "Bearer YOUR_API_TOKEN");
request.AddStringBody("{\n  \"senderName\": \"Mobile.SA\",\n  \"number\": \"966XXXXXXXXX\",\n  \"messageBody\": \"Your code is 4821\",\n  \"sendAtOption\": \"NOW\"\n}", DataFormat.Json);
RestResponse response = await client.ExecuteAsync(request);
Console.WriteLine(response.Content);
import 'package:http/http.dart' as http;

void main() async {
  final response = await http.post(
    Uri.parse("https://api.corbit.sa/api/v1/send"),
    headers: {
      "Authorization": "Bearer YOUR_API_TOKEN",
      "Content-Type": "application/json",
    },
    body: "{\n  \"senderName\": \"Mobile.SA\",\n  \"number\": \"966XXXXXXXXX\",\n  \"messageBody\": \"Your code is 4821\",\n  \"sendAtOption\": \"NOW\"\n}",
  );
  print(response.body);
}
package main

import (
	"fmt"
	"io"
	"net/http"
	"strings"
)

func main() {
	payload := strings.NewReader(`{
  "senderName": "Mobile.SA",
  "number": "966XXXXXXXXX",
  "messageBody": "Your code is 4821",
  "sendAtOption": "NOW"
}`)
	req, err := http.NewRequest("POST", "https://api.corbit.sa/api/v1/send", payload)
	if err != nil {
		fmt.Println(err)
		return
	}
	req.Header.Add("Authorization", "Bearer YOUR_API_TOKEN")
	req.Header.Add("Content-Type", "application/json")
	res, err := http.DefaultClient.Do(req)
	if err != nil {
		fmt.Println(err)
		return
	}
	defer res.Body.Close()

	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
POST /api/v1/send HTTP/1.1
Host: api.corbit.sa
Authorization: Bearer YOUR_API_TOKEN
Content-Type: application/json
Content-Length: 122

{
  "senderName": "Mobile.SA",
  "number": "966XXXXXXXXX",
  "messageBody": "Your code is 4821",
  "sendAtOption": "NOW"
}
OkHttpClient client = new OkHttpClient().newBuilder().build();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\n  \"senderName\": \"Mobile.SA\",\n  \"number\": \"966XXXXXXXXX\",\n  \"messageBody\": \"Your code is 4821\",\n  \"sendAtOption\": \"NOW\"\n}");
Request request = new Request.Builder()
  .url("https://api.corbit.sa/api/v1/send")
  .method("POST", body)
  .addHeader("Authorization", "Bearer YOUR_API_TOKEN")
  .addHeader("Content-Type", "application/json")
  .build();
Response response = client.newCall(request).execute();
System.out.println(response.body().string());
HttpResponse<String> response = Unirest.post("https://api.corbit.sa/api/v1/send")
  .header("Authorization", "Bearer YOUR_API_TOKEN")
  .header("Content-Type", "application/json")
  .body("{\n  \"senderName\": \"Mobile.SA\",\n  \"number\": \"966XXXXXXXXX\",\n  \"messageBody\": \"Your code is 4821\",\n  \"sendAtOption\": \"NOW\"\n}")
  .asString();
System.out.println(response.getBody());
var settings = {
  "url": "https://api.corbit.sa/api/v1/send",
  "method": "POST",
  "timeout": 0,
  "headers": {
    "Authorization": "Bearer YOUR_API_TOKEN",
    "Content-Type": "application/json"
  },
  "data": JSON.stringify({
    "senderName": "Mobile.SA",
    "number": "966XXXXXXXXX",
    "messageBody": "Your code is 4821",
    "sendAtOption": "NOW"
  }),
};

$.ajax(settings).done(function (response) {
  console.log(response);
});
var data = JSON.stringify({
  "senderName": "Mobile.SA",
  "number": "966XXXXXXXXX",
  "messageBody": "Your code is 4821",
  "sendAtOption": "NOW"
});

var xhr = new XMLHttpRequest();
xhr.addEventListener("readystatechange", function () {
  if (this.readyState === 4) {
    console.log(this.responseText);
  }
});

xhr.open("POST", "https://api.corbit.sa/api/v1/send");
xhr.setRequestHeader("Authorization", "Bearer YOUR_API_TOKEN");
xhr.setRequestHeader("Content-Type", "application/json");
xhr.send(data);
const axios = require('axios');

const config = {
  method: 'post',
  url: 'https://api.corbit.sa/api/v1/send',
  headers: {
    "Authorization": "Bearer YOUR_API_TOKEN",
    "Content-Type": "application/json"
  },
  data: {
    "senderName": "Mobile.SA",
    "number": "966XXXXXXXXX",
    "messageBody": "Your code is 4821",
    "sendAtOption": "NOW"
  },
};

axios.request(config)
  .then((response) => console.log(JSON.stringify(response.data)))
  .catch((error) => console.log(error));
const https = require('https');

const options = {
  method: 'POST',
  hostname: 'api.corbit.sa',
  path: '/api/v1/send',
  headers: {
    "Authorization": "Bearer YOUR_API_TOKEN",
    "Content-Type": "application/json"
  },
};

const req = https.request(options, (res) => {
  const chunks = [];
  res.on('data', (chunk) => chunks.push(chunk));
  res.on('end', () => console.log(Buffer.concat(chunks).toString()));
});

req.write(JSON.stringify({
  "senderName": "Mobile.SA",
  "number": "966XXXXXXXXX",
  "messageBody": "Your code is 4821",
  "sendAtOption": "NOW"
}));
req.end();
var unirest = require('unirest');

unirest('POST', 'https://api.corbit.sa/api/v1/send')
  .headers({
    "Authorization": "Bearer YOUR_API_TOKEN",
    "Content-Type": "application/json"
  })
  .send(JSON.stringify({
    "senderName": "Mobile.SA",
    "number": "966XXXXXXXXX",
    "messageBody": "Your code is 4821",
    "sendAtOption": "NOW"
  }))
  .end(function (res) {
    if (res.error) throw new Error(res.error);
    console.log(res.raw_body);
  });
#import <Foundation/Foundation.h>

dispatch_semaphore_t sema = dispatch_semaphore_create(0);

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"https://api.corbit.sa/api/v1/send"]
  cachePolicy:NSURLRequestUseProtocolCachePolicy
  timeoutInterval:30.0];
NSDictionary *headers = @{
  @"Authorization": @"Bearer YOUR_API_TOKEN",
  @"Content-Type": @"application/json"
};
[request setAllHTTPHeaderFields:headers];
request.HTTPBody = [@"{\n  \"senderName\": \"Mobile.SA\",\n  \"number\": \"966XXXXXXXXX\",\n  \"messageBody\": \"Your code is 4821\",\n  \"sendAtOption\": \"NOW\"\n}" dataUsingEncoding:NSUTF8StringEncoding];
[request setHTTPMethod:@"POST"];

NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *dataTask = [session dataTaskWithRequest:request
  completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
    if (error) {
      NSLog(@"%@", error);
    } else {
      NSLog(@"%@", [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]);
    }
    dispatch_semaphore_signal(sema);
  }];
[dataTask resume];
dispatch_semaphore_wait(sema, DISPATCH_TIME_FOREVER);
open Lwt
open Cohttp
open Cohttp_lwt_unix

let uri = Uri.of_string "https://api.corbit.sa/api/v1/send"
let headers = Header.of_list [
    ("Authorization", "Bearer YOUR_API_TOKEN");
    ("Content-Type", "application/json");
]
let body = Cohttp_lwt.Body.of_string "{\n  \"senderName\": \"Mobile.SA\",\n  \"number\": \"966XXXXXXXXX\",\n  \"messageBody\": \"Your code is 4821\",\n  \"sendAtOption\": \"NOW\"\n}"

let () = Lwt_main.run (
  Client.call ~headers ~body `POST uri >>= fun (_, body) ->
  Cohttp_lwt.Body.to_string body >|= fun s -> print_endline s)
<?php
$client = new GuzzleHttp\Client();
$headers = [
    'Authorization' => 'Bearer YOUR_API_TOKEN',
    'Content-Type' => 'application/json',
];
$body = '{
  "senderName": "Mobile.SA",
  "number": "966XXXXXXXXX",
  "messageBody": "Your code is 4821",
  "sendAtOption": "NOW"
}';
$request = new GuzzleHttp\Psr7\Request('POST', 'https://api.corbit.sa/api/v1/send', $headers, $body);
$res = $client->sendAsync($request)->wait();
echo $res->getBody();
<?php
require_once 'HTTP/Request2.php';

$request = new HTTP_Request2();
$request->setUrl('https://api.corbit.sa/api/v1/send');
$request->setMethod(HTTP_Request2::METHOD_POST);
$request->setConfig(array('follow_redirects' => TRUE));
$request->setHeader(array(
  'Authorization' => 'Bearer YOUR_API_TOKEN',
  'Content-Type' => 'application/json',
));
$request->setBody('{
  "senderName": "Mobile.SA",
  "number": "966XXXXXXXXX",
  "messageBody": "Your code is 4821",
  "sendAtOption": "NOW"
}');
try {
  $response = $request->send();
  echo $response->getBody();
} catch (HTTP_Request2_Exception $e) {
  echo 'Error: ' . $e->getMessage();
}
<?php
$client = new http\Client;
$request = new http\Client\Request;
$request->setRequestUrl('https://api.corbit.sa/api/v1/send');
$request->setRequestMethod('POST');
$body = new http\Message\Body;
$body->append('{
  "senderName": "Mobile.SA",
  "number": "966XXXXXXXXX",
  "messageBody": "Your code is 4821",
  "sendAtOption": "NOW"
}');
$request->setBody($body);
$request->setHeaders(array(
  'Authorization' => 'Bearer YOUR_API_TOKEN',
  'Content-Type' => 'application/json',
));
$client->enqueue($request)->send();
$response = $client->getResponse();
echo $response->getBody();
$headers = @{
    'Authorization' = 'Bearer YOUR_API_TOKEN'
    'Content-Type' = 'application/json'
}

$body = @'
{
  "senderName": "Mobile.SA",
  "number": "966XXXXXXXXX",
  "messageBody": "Your code is 4821",
  "sendAtOption": "NOW"
}
'@

$response = Invoke-RestMethod 'https://api.corbit.sa/api/v1/send' -Method 'POST' -Headers $headers -Body $body
$response | ConvertTo-Json -Depth 10
import http.client
import json

conn = http.client.HTTPSConnection("api.corbit.sa")
payload = json.dumps({
    "senderName": "Mobile.SA",
    "number": "966XXXXXXXXX",
    "messageBody": "Your code is 4821",
    "sendAtOption": "NOW"
})
headers = {
    "Authorization": "Bearer YOUR_API_TOKEN",
    "Content-Type": "application/json",
}
conn.request("POST", "/api/v1/send", payload, headers)
res = conn.getresponse()
print(res.read().decode("utf-8"))
library(httr)

headers = c(
  'Authorization' = 'Bearer YOUR_API_TOKEN',
  'Content-Type' = 'application/json'
)

body = '{
  "senderName": "Mobile.SA",
  "number": "966XXXXXXXXX",
  "messageBody": "Your code is 4821",
  "sendAtOption": "NOW"
}'

res <- VERB("POST", url = "https://api.corbit.sa/api/v1/send", body = body, add_headers(headers))

cat(content(res, 'text'))
library(RCurl)

headers = c(
  'Authorization' = 'Bearer YOUR_API_TOKEN',
  'Content-Type' = 'application/json'
)

params = '{
  "senderName": "Mobile.SA",
  "number": "966XXXXXXXXX",
  "messageBody": "Your code is 4821",
  "sendAtOption": "NOW"
}'

res <- getURLContent("https://api.corbit.sa/api/v1/send", customrequest = "POST", postfields = params, httpheader = headers, followlocation = TRUE)

cat(res)
require "uri"
require "net/http"

url = URI("https://api.corbit.sa/api/v1/send")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)
request["Authorization"] = "Bearer YOUR_API_TOKEN"
request["Content-Type"] = "application/json"
request.body = <<~'JSON'
{
  "senderName": "Mobile.SA",
  "number": "966XXXXXXXXX",
  "messageBody": "Your code is 4821",
  "sendAtOption": "NOW"
}
JSON

response = http.request(request)
puts response.read_body
printf '%s' '{
  "senderName": "Mobile.SA",
  "number": "966XXXXXXXXX",
  "messageBody": "Your code is 4821",
  "sendAtOption": "NOW"
}' | \
http --follow --timeout 3600 POST 'https://api.corbit.sa/api/v1/send' \
  'Authorization:Bearer YOUR_API_TOKEN' \
  'Content-Type:application/json'
wget --quiet -O - \
  --method POST \
  --header 'Authorization: Bearer YOUR_API_TOKEN' \
  --header 'Content-Type: application/json' \
  --body-data '{
  "senderName": "Mobile.SA",
  "number": "966XXXXXXXXX",
  "messageBody": "Your code is 4821",
  "sendAtOption": "NOW"
}' \
  'https://api.corbit.sa/api/v1/send'
import Foundation
#if canImport(FoundationNetworking)
import FoundationNetworking
#endif

let semaphore = DispatchSemaphore(value: 0)

var request = URLRequest(url: URL(string: "https://api.corbit.sa/api/v1/send")!, timeoutInterval: 30)
request.httpMethod = "POST"
request.addValue("Bearer YOUR_API_TOKEN", forHTTPHeaderField: "Authorization")
request.addValue("application/json", forHTTPHeaderField: "Content-Type")
request.httpBody = "{\"senderName\":\"Mobile.SA\",\"number\":\"966XXXXXXXXX\",\"messageBody\":\"Your code is 4821\",\"sendAtOption\":\"NOW\"}".data(using: .utf8)

let task = URLSession.shared.dataTask(with: request) { data, response, error in
  if let data = data {
    print(String(data: data, encoding: .utf8) ?? "")
  } else {
    print(String(describing: error))
  }
  semaphore.signal()
}
task.resume()
semaphore.wait()

Responsesالردود

200Acceptedتم القبول
{
  "status": "Success",
  "message": null,
  "data": {
    "message": {
      "id": "8493f201-ebcc-4415-8450-18d8d8714f33",
      "status": "pending"
    }
  }
}
400Invalid requestطلب غير صالح
{
  "status": "Error",
  "message": "Invalid destination number: 12 (expected 8-15 digits, international format).",
  "code": "VALIDATION"
}
402Balance exhaustedالرصيد منتهٍ
{
  "status": "Error",
  "message": "Insufficient balance (0). Please top up to continue sending.",
  "code": "INSUFFICIENT_BALANCE"
}
409Duplicate messageرسالة مكرّرة
{
  "status": "Error",
  "message": "Duplicate request blocked: same client, destination, and message within the dedup window.",
  "code": "DUPLICATE"
}
429Rate limit exceededتجاوز حد الطلبات
{
  "status": "Error",
  "message": "Rate limit exceeded",
  "code": "RATE_LIMIT"
}
POST/api/v1/send-bulk

Send SMS (bulk)إرسال رسائل نصية (جماعي)

Sends the same text to many recipients in one request.

يرسل النص نفسه إلى عدة مستلمين في طلب واحد.

Authentication: Bearer tokenالمصادقة: توكن Bearer

Parametersالمعاملات

Idempotency-Keyoptionalاختياري
headerترويسة · string

Optional. Retrying with the same key returns the first response instead of sending again.

اختياري. إعادة المحاولة بنفس المفتاح تُرجع الرد الأول بدل الإرسال مرة أخرى.

X-Allow-Duplicateoptionalاختياري
headerترويسة · string

Optional. Set to true to resend an identical message on purpose.

اختياري. اضبطه على true لإعادة إرسال رسالة مطابقة عمدًا.

senderNamerequiredمطلوب
bodyجسم · string

Sender name approved for your account.

اسم المرسِل المعتمد على حسابك.

numbersrequiredمطلوب
bodyجسم · array

Recipient numbers in international format. If any number is invalid the whole request is rejected and nothing is sent.

أرقام المستلمين بالصيغة الدولية. إذا كان أي رقم غير صالح يُرفض الطلب كاملًا ولا تُرسل أي رسالة.

messageBodyrequiredمطلوب
bodyجسم · string

Message text, up to 1600 characters.

نص الرسالة، حتى 1600 حرفًا.

sendAtOptionoptionalاختياري
bodyجسم · string

Delivery timing. Use Now to send immediately.

توقيت الإرسال. استخدم القيمة Now للإرسال فورًا.

Requestمثال الطلب

curl -X POST 'https://api.corbit.sa/api/v1/send-bulk' \
  -H 'Authorization: Bearer YOUR_API_TOKEN' \
  -H 'Content-Type: application/json' \
  -d '{
  "senderName": "Mobile.SA",
  "numbers": [
    "966XXXXXXXXX",
    "966XXXXXXXXX"
  ],
  "messageBody": "Corbit bulk",
  "sendAtOption": "Now"
}'
const response = await fetch("https://api.corbit.sa/api/v1/send-bulk", {
  method: "POST",
  headers: {
    "Authorization": "Bearer YOUR_API_TOKEN",
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
    "senderName": "Mobile.SA",
    "numbers": [
      "966XXXXXXXXX",
      "966XXXXXXXXX"
    ],
    "messageBody": "Corbit bulk",
    "sendAtOption": "Now"
  })
});
const data = await response.json();
console.log(data);
import requests

response = requests.post(
    "https://api.corbit.sa/api/v1/send-bulk",
    headers={"Authorization": "Bearer YOUR_API_TOKEN"},
    json={
        "senderName": "Mobile.SA",
        "numbers": [
            "966XXXXXXXXX",
            "966XXXXXXXXX"
        ],
        "messageBody": "Corbit bulk",
        "sendAtOption": "Now"
    },
)
print(response.json())
<?php
$ch = curl_init('https://api.corbit.sa/api/v1/send-bulk');
curl_setopt_array($ch, [
    CURLOPT_CUSTOMREQUEST => 'POST',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => [
        'Authorization: Bearer YOUR_API_TOKEN',
        'Content-Type: application/json',
    ],
    CURLOPT_POSTFIELDS => json_encode([
        'senderName' => 'Mobile.SA',
        'numbers' => [
            '966XXXXXXXXX',
            '966XXXXXXXXX'
        ],
        'messageBody' => 'Corbit bulk',
        'sendAtOption' => 'Now'
    ]),
]);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
#include <stdio.h>
#include <curl/curl.h>

int main(void) {
  CURL *curl = curl_easy_init();
  if (curl) {
    struct curl_slist *headers = NULL;
    headers = curl_slist_append(headers, "Authorization: Bearer YOUR_API_TOKEN");
    headers = curl_slist_append(headers, "Content-Type: application/json");
    curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "POST");
    curl_easy_setopt(curl, CURLOPT_URL, "https://api.corbit.sa/api/v1/send-bulk");
    curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
    curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\n  \"senderName\": \"Mobile.SA\",\n  \"numbers\": [\n    \"966XXXXXXXXX\",\n    \"966XXXXXXXXX\"\n  ],\n  \"messageBody\": \"Corbit bulk\",\n  \"sendAtOption\": \"Now\"\n}");
    CURLcode res = curl_easy_perform(curl);
    if (res != CURLE_OK) fprintf(stderr, "curl error: %s\n", curl_easy_strerror(res));
    curl_slist_free_all(headers);
    curl_easy_cleanup(curl);
  }
  return 0;
}
using System;
using System.Net.Http;
using System.Text;

var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Post, "https://api.corbit.sa/api/v1/send-bulk");
request.Headers.Add("Authorization", "Bearer YOUR_API_TOKEN");
request.Content = new StringContent("{\n  \"senderName\": \"Mobile.SA\",\n  \"numbers\": [\n    \"966XXXXXXXXX\",\n    \"966XXXXXXXXX\"\n  ],\n  \"messageBody\": \"Corbit bulk\",\n  \"sendAtOption\": \"Now\"\n}", Encoding.UTF8, "application/json");
var response = await client.SendAsync(request);
Console.WriteLine(await response.Content.ReadAsStringAsync());
using System;
using RestSharp;

var client = new RestClient("https://api.corbit.sa/api/v1/send-bulk");
var request = new RestRequest("", Method.Post);
request.AddHeader("Authorization", "Bearer YOUR_API_TOKEN");
request.AddStringBody("{\n  \"senderName\": \"Mobile.SA\",\n  \"numbers\": [\n    \"966XXXXXXXXX\",\n    \"966XXXXXXXXX\"\n  ],\n  \"messageBody\": \"Corbit bulk\",\n  \"sendAtOption\": \"Now\"\n}", DataFormat.Json);
RestResponse response = await client.ExecuteAsync(request);
Console.WriteLine(response.Content);
import 'package:http/http.dart' as http;

void main() async {
  final response = await http.post(
    Uri.parse("https://api.corbit.sa/api/v1/send-bulk"),
    headers: {
      "Authorization": "Bearer YOUR_API_TOKEN",
      "Content-Type": "application/json",
    },
    body: "{\n  \"senderName\": \"Mobile.SA\",\n  \"numbers\": [\n    \"966XXXXXXXXX\",\n    \"966XXXXXXXXX\"\n  ],\n  \"messageBody\": \"Corbit bulk\",\n  \"sendAtOption\": \"Now\"\n}",
  );
  print(response.body);
}
package main

import (
	"fmt"
	"io"
	"net/http"
	"strings"
)

func main() {
	payload := strings.NewReader(`{
  "senderName": "Mobile.SA",
  "numbers": [
    "966XXXXXXXXX",
    "966XXXXXXXXX"
  ],
  "messageBody": "Corbit bulk",
  "sendAtOption": "Now"
}`)
	req, err := http.NewRequest("POST", "https://api.corbit.sa/api/v1/send-bulk", payload)
	if err != nil {
		fmt.Println(err)
		return
	}
	req.Header.Add("Authorization", "Bearer YOUR_API_TOKEN")
	req.Header.Add("Content-Type", "application/json")
	res, err := http.DefaultClient.Do(req)
	if err != nil {
		fmt.Println(err)
		return
	}
	defer res.Body.Close()

	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
POST /api/v1/send-bulk HTTP/1.1
Host: api.corbit.sa
Authorization: Bearer YOUR_API_TOKEN
Content-Type: application/json
Content-Length: 147

{
  "senderName": "Mobile.SA",
  "numbers": [
    "966XXXXXXXXX",
    "966XXXXXXXXX"
  ],
  "messageBody": "Corbit bulk",
  "sendAtOption": "Now"
}
OkHttpClient client = new OkHttpClient().newBuilder().build();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\n  \"senderName\": \"Mobile.SA\",\n  \"numbers\": [\n    \"966XXXXXXXXX\",\n    \"966XXXXXXXXX\"\n  ],\n  \"messageBody\": \"Corbit bulk\",\n  \"sendAtOption\": \"Now\"\n}");
Request request = new Request.Builder()
  .url("https://api.corbit.sa/api/v1/send-bulk")
  .method("POST", body)
  .addHeader("Authorization", "Bearer YOUR_API_TOKEN")
  .addHeader("Content-Type", "application/json")
  .build();
Response response = client.newCall(request).execute();
System.out.println(response.body().string());
HttpResponse<String> response = Unirest.post("https://api.corbit.sa/api/v1/send-bulk")
  .header("Authorization", "Bearer YOUR_API_TOKEN")
  .header("Content-Type", "application/json")
  .body("{\n  \"senderName\": \"Mobile.SA\",\n  \"numbers\": [\n    \"966XXXXXXXXX\",\n    \"966XXXXXXXXX\"\n  ],\n  \"messageBody\": \"Corbit bulk\",\n  \"sendAtOption\": \"Now\"\n}")
  .asString();
System.out.println(response.getBody());
var settings = {
  "url": "https://api.corbit.sa/api/v1/send-bulk",
  "method": "POST",
  "timeout": 0,
  "headers": {
    "Authorization": "Bearer YOUR_API_TOKEN",
    "Content-Type": "application/json"
  },
  "data": JSON.stringify({
    "senderName": "Mobile.SA",
    "numbers": [
      "966XXXXXXXXX",
      "966XXXXXXXXX"
    ],
    "messageBody": "Corbit bulk",
    "sendAtOption": "Now"
  }),
};

$.ajax(settings).done(function (response) {
  console.log(response);
});
var data = JSON.stringify({
  "senderName": "Mobile.SA",
  "numbers": [
    "966XXXXXXXXX",
    "966XXXXXXXXX"
  ],
  "messageBody": "Corbit bulk",
  "sendAtOption": "Now"
});

var xhr = new XMLHttpRequest();
xhr.addEventListener("readystatechange", function () {
  if (this.readyState === 4) {
    console.log(this.responseText);
  }
});

xhr.open("POST", "https://api.corbit.sa/api/v1/send-bulk");
xhr.setRequestHeader("Authorization", "Bearer YOUR_API_TOKEN");
xhr.setRequestHeader("Content-Type", "application/json");
xhr.send(data);
const axios = require('axios');

const config = {
  method: 'post',
  url: 'https://api.corbit.sa/api/v1/send-bulk',
  headers: {
    "Authorization": "Bearer YOUR_API_TOKEN",
    "Content-Type": "application/json"
  },
  data: {
    "senderName": "Mobile.SA",
    "numbers": [
      "966XXXXXXXXX",
      "966XXXXXXXXX"
    ],
    "messageBody": "Corbit bulk",
    "sendAtOption": "Now"
  },
};

axios.request(config)
  .then((response) => console.log(JSON.stringify(response.data)))
  .catch((error) => console.log(error));
const https = require('https');

const options = {
  method: 'POST',
  hostname: 'api.corbit.sa',
  path: '/api/v1/send-bulk',
  headers: {
    "Authorization": "Bearer YOUR_API_TOKEN",
    "Content-Type": "application/json"
  },
};

const req = https.request(options, (res) => {
  const chunks = [];
  res.on('data', (chunk) => chunks.push(chunk));
  res.on('end', () => console.log(Buffer.concat(chunks).toString()));
});

req.write(JSON.stringify({
  "senderName": "Mobile.SA",
  "numbers": [
    "966XXXXXXXXX",
    "966XXXXXXXXX"
  ],
  "messageBody": "Corbit bulk",
  "sendAtOption": "Now"
}));
req.end();
var unirest = require('unirest');

unirest('POST', 'https://api.corbit.sa/api/v1/send-bulk')
  .headers({
    "Authorization": "Bearer YOUR_API_TOKEN",
    "Content-Type": "application/json"
  })
  .send(JSON.stringify({
    "senderName": "Mobile.SA",
    "numbers": [
      "966XXXXXXXXX",
      "966XXXXXXXXX"
    ],
    "messageBody": "Corbit bulk",
    "sendAtOption": "Now"
  }))
  .end(function (res) {
    if (res.error) throw new Error(res.error);
    console.log(res.raw_body);
  });
#import <Foundation/Foundation.h>

dispatch_semaphore_t sema = dispatch_semaphore_create(0);

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"https://api.corbit.sa/api/v1/send-bulk"]
  cachePolicy:NSURLRequestUseProtocolCachePolicy
  timeoutInterval:30.0];
NSDictionary *headers = @{
  @"Authorization": @"Bearer YOUR_API_TOKEN",
  @"Content-Type": @"application/json"
};
[request setAllHTTPHeaderFields:headers];
request.HTTPBody = [@"{\n  \"senderName\": \"Mobile.SA\",\n  \"numbers\": [\n    \"966XXXXXXXXX\",\n    \"966XXXXXXXXX\"\n  ],\n  \"messageBody\": \"Corbit bulk\",\n  \"sendAtOption\": \"Now\"\n}" dataUsingEncoding:NSUTF8StringEncoding];
[request setHTTPMethod:@"POST"];

NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *dataTask = [session dataTaskWithRequest:request
  completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
    if (error) {
      NSLog(@"%@", error);
    } else {
      NSLog(@"%@", [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]);
    }
    dispatch_semaphore_signal(sema);
  }];
[dataTask resume];
dispatch_semaphore_wait(sema, DISPATCH_TIME_FOREVER);
open Lwt
open Cohttp
open Cohttp_lwt_unix

let uri = Uri.of_string "https://api.corbit.sa/api/v1/send-bulk"
let headers = Header.of_list [
    ("Authorization", "Bearer YOUR_API_TOKEN");
    ("Content-Type", "application/json");
]
let body = Cohttp_lwt.Body.of_string "{\n  \"senderName\": \"Mobile.SA\",\n  \"numbers\": [\n    \"966XXXXXXXXX\",\n    \"966XXXXXXXXX\"\n  ],\n  \"messageBody\": \"Corbit bulk\",\n  \"sendAtOption\": \"Now\"\n}"

let () = Lwt_main.run (
  Client.call ~headers ~body `POST uri >>= fun (_, body) ->
  Cohttp_lwt.Body.to_string body >|= fun s -> print_endline s)
<?php
$client = new GuzzleHttp\Client();
$headers = [
    'Authorization' => 'Bearer YOUR_API_TOKEN',
    'Content-Type' => 'application/json',
];
$body = '{
  "senderName": "Mobile.SA",
  "numbers": [
    "966XXXXXXXXX",
    "966XXXXXXXXX"
  ],
  "messageBody": "Corbit bulk",
  "sendAtOption": "Now"
}';
$request = new GuzzleHttp\Psr7\Request('POST', 'https://api.corbit.sa/api/v1/send-bulk', $headers, $body);
$res = $client->sendAsync($request)->wait();
echo $res->getBody();
<?php
require_once 'HTTP/Request2.php';

$request = new HTTP_Request2();
$request->setUrl('https://api.corbit.sa/api/v1/send-bulk');
$request->setMethod(HTTP_Request2::METHOD_POST);
$request->setConfig(array('follow_redirects' => TRUE));
$request->setHeader(array(
  'Authorization' => 'Bearer YOUR_API_TOKEN',
  'Content-Type' => 'application/json',
));
$request->setBody('{
  "senderName": "Mobile.SA",
  "numbers": [
    "966XXXXXXXXX",
    "966XXXXXXXXX"
  ],
  "messageBody": "Corbit bulk",
  "sendAtOption": "Now"
}');
try {
  $response = $request->send();
  echo $response->getBody();
} catch (HTTP_Request2_Exception $e) {
  echo 'Error: ' . $e->getMessage();
}
<?php
$client = new http\Client;
$request = new http\Client\Request;
$request->setRequestUrl('https://api.corbit.sa/api/v1/send-bulk');
$request->setRequestMethod('POST');
$body = new http\Message\Body;
$body->append('{
  "senderName": "Mobile.SA",
  "numbers": [
    "966XXXXXXXXX",
    "966XXXXXXXXX"
  ],
  "messageBody": "Corbit bulk",
  "sendAtOption": "Now"
}');
$request->setBody($body);
$request->setHeaders(array(
  'Authorization' => 'Bearer YOUR_API_TOKEN',
  'Content-Type' => 'application/json',
));
$client->enqueue($request)->send();
$response = $client->getResponse();
echo $response->getBody();
$headers = @{
    'Authorization' = 'Bearer YOUR_API_TOKEN'
    'Content-Type' = 'application/json'
}

$body = @'
{
  "senderName": "Mobile.SA",
  "numbers": [
    "966XXXXXXXXX",
    "966XXXXXXXXX"
  ],
  "messageBody": "Corbit bulk",
  "sendAtOption": "Now"
}
'@

$response = Invoke-RestMethod 'https://api.corbit.sa/api/v1/send-bulk' -Method 'POST' -Headers $headers -Body $body
$response | ConvertTo-Json -Depth 10
import http.client
import json

conn = http.client.HTTPSConnection("api.corbit.sa")
payload = json.dumps({
    "senderName": "Mobile.SA",
    "numbers": [
        "966XXXXXXXXX",
        "966XXXXXXXXX"
    ],
    "messageBody": "Corbit bulk",
    "sendAtOption": "Now"
})
headers = {
    "Authorization": "Bearer YOUR_API_TOKEN",
    "Content-Type": "application/json",
}
conn.request("POST", "/api/v1/send-bulk", payload, headers)
res = conn.getresponse()
print(res.read().decode("utf-8"))
library(httr)

headers = c(
  'Authorization' = 'Bearer YOUR_API_TOKEN',
  'Content-Type' = 'application/json'
)

body = '{
  "senderName": "Mobile.SA",
  "numbers": [
    "966XXXXXXXXX",
    "966XXXXXXXXX"
  ],
  "messageBody": "Corbit bulk",
  "sendAtOption": "Now"
}'

res <- VERB("POST", url = "https://api.corbit.sa/api/v1/send-bulk", body = body, add_headers(headers))

cat(content(res, 'text'))
library(RCurl)

headers = c(
  'Authorization' = 'Bearer YOUR_API_TOKEN',
  'Content-Type' = 'application/json'
)

params = '{
  "senderName": "Mobile.SA",
  "numbers": [
    "966XXXXXXXXX",
    "966XXXXXXXXX"
  ],
  "messageBody": "Corbit bulk",
  "sendAtOption": "Now"
}'

res <- getURLContent("https://api.corbit.sa/api/v1/send-bulk", customrequest = "POST", postfields = params, httpheader = headers, followlocation = TRUE)

cat(res)
require "uri"
require "net/http"

url = URI("https://api.corbit.sa/api/v1/send-bulk")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)
request["Authorization"] = "Bearer YOUR_API_TOKEN"
request["Content-Type"] = "application/json"
request.body = <<~'JSON'
{
  "senderName": "Mobile.SA",
  "numbers": [
    "966XXXXXXXXX",
    "966XXXXXXXXX"
  ],
  "messageBody": "Corbit bulk",
  "sendAtOption": "Now"
}
JSON

response = http.request(request)
puts response.read_body
printf '%s' '{
  "senderName": "Mobile.SA",
  "numbers": [
    "966XXXXXXXXX",
    "966XXXXXXXXX"
  ],
  "messageBody": "Corbit bulk",
  "sendAtOption": "Now"
}' | \
http --follow --timeout 3600 POST 'https://api.corbit.sa/api/v1/send-bulk' \
  'Authorization:Bearer YOUR_API_TOKEN' \
  'Content-Type:application/json'
wget --quiet -O - \
  --method POST \
  --header 'Authorization: Bearer YOUR_API_TOKEN' \
  --header 'Content-Type: application/json' \
  --body-data '{
  "senderName": "Mobile.SA",
  "numbers": [
    "966XXXXXXXXX",
    "966XXXXXXXXX"
  ],
  "messageBody": "Corbit bulk",
  "sendAtOption": "Now"
}' \
  'https://api.corbit.sa/api/v1/send-bulk'
import Foundation
#if canImport(FoundationNetworking)
import FoundationNetworking
#endif

let semaphore = DispatchSemaphore(value: 0)

var request = URLRequest(url: URL(string: "https://api.corbit.sa/api/v1/send-bulk")!, timeoutInterval: 30)
request.httpMethod = "POST"
request.addValue("Bearer YOUR_API_TOKEN", forHTTPHeaderField: "Authorization")
request.addValue("application/json", forHTTPHeaderField: "Content-Type")
request.httpBody = "{\"senderName\":\"Mobile.SA\",\"numbers\":[\"966XXXXXXXXX\",\"966XXXXXXXXX\"],\"messageBody\":\"Corbit bulk\",\"sendAtOption\":\"Now\"}".data(using: .utf8)

let task = URLSession.shared.dataTask(with: request) { data, response, error in
  if let data = data {
    print(String(data: data, encoding: .utf8) ?? "")
  } else {
    print(String(describing: error))
  }
  semaphore.signal()
}
task.resume()
semaphore.wait()

Responsesالردود

200Acceptedتم القبول
{
  "status": "Success",
  "message": null,
  "data": {
    "message": {
      "id": "2cb5acc1-fc5a-495e-a610-1f789dec53ff",
      "status": "pending"
    }
  }
}
400Invalid requestطلب غير صالح
{
  "status": "Error",
  "message": "Invalid destination number: 12 (expected 8-15 digits, international format).",
  "code": "VALIDATION"
}
402Balance exhaustedالرصيد منتهٍ
{
  "status": "Error",
  "message": "Insufficient balance (0). Please top up to continue sending.",
  "code": "INSUFFICIENT_BALANCE"
}
409Duplicate messageرسالة مكرّرة
{
  "status": "Error",
  "message": "Duplicate request blocked: same client, destination, and message within the dedup window.",
  "code": "DUPLICATE"
}
429Rate limit exceededتجاوز حد الطلبات
{
  "status": "Error",
  "message": "Rate limit exceeded",
  "code": "RATE_LIMIT"
}
POST/api/v1/get-balance

Account balanceرصيد الحساب

Returns your remaining balance.

يعرض رصيدك المتبقي.

Authentication: Bearer tokenالمصادقة: توكن Bearer

Requestمثال الطلب

curl -X POST 'https://api.corbit.sa/api/v1/get-balance' \
  -H 'Authorization: Bearer YOUR_API_TOKEN'
const response = await fetch("https://api.corbit.sa/api/v1/get-balance", {
  method: "POST",
  headers: {
    "Authorization": "Bearer YOUR_API_TOKEN"
  }
});
const data = await response.json();
console.log(data);
import requests

response = requests.post(
    "https://api.corbit.sa/api/v1/get-balance",
    headers={"Authorization": "Bearer YOUR_API_TOKEN"},
)
print(response.json())
<?php
$ch = curl_init('https://api.corbit.sa/api/v1/get-balance');
curl_setopt_array($ch, [
    CURLOPT_CUSTOMREQUEST => 'POST',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => [
        'Authorization: Bearer YOUR_API_TOKEN',
    ],
]);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
#include <stdio.h>
#include <curl/curl.h>

int main(void) {
  CURL *curl = curl_easy_init();
  if (curl) {
    struct curl_slist *headers = NULL;
    headers = curl_slist_append(headers, "Authorization: Bearer YOUR_API_TOKEN");
    curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "POST");
    curl_easy_setopt(curl, CURLOPT_URL, "https://api.corbit.sa/api/v1/get-balance");
    curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
    CURLcode res = curl_easy_perform(curl);
    if (res != CURLE_OK) fprintf(stderr, "curl error: %s\n", curl_easy_strerror(res));
    curl_slist_free_all(headers);
    curl_easy_cleanup(curl);
  }
  return 0;
}
using System;
using System.Net.Http;
using System.Text;

var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Post, "https://api.corbit.sa/api/v1/get-balance");
request.Headers.Add("Authorization", "Bearer YOUR_API_TOKEN");
var response = await client.SendAsync(request);
Console.WriteLine(await response.Content.ReadAsStringAsync());
using System;
using RestSharp;

var client = new RestClient("https://api.corbit.sa/api/v1/get-balance");
var request = new RestRequest("", Method.Post);
request.AddHeader("Authorization", "Bearer YOUR_API_TOKEN");
RestResponse response = await client.ExecuteAsync(request);
Console.WriteLine(response.Content);
import 'package:http/http.dart' as http;

void main() async {
  final response = await http.post(
    Uri.parse("https://api.corbit.sa/api/v1/get-balance"),
    headers: {
      "Authorization": "Bearer YOUR_API_TOKEN",
    },
  );
  print(response.body);
}
package main

import (
	"fmt"
	"io"
	"net/http"
)

func main() {
	req, err := http.NewRequest("POST", "https://api.corbit.sa/api/v1/get-balance", nil)
	if err != nil {
		fmt.Println(err)
		return
	}
	req.Header.Add("Authorization", "Bearer YOUR_API_TOKEN")
	res, err := http.DefaultClient.Do(req)
	if err != nil {
		fmt.Println(err)
		return
	}
	defer res.Body.Close()

	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
POST /api/v1/get-balance HTTP/1.1
Host: api.corbit.sa
Authorization: Bearer YOUR_API_TOKEN
OkHttpClient client = new OkHttpClient().newBuilder().build();
Request request = new Request.Builder()
  .url("https://api.corbit.sa/api/v1/get-balance")
  .method("POST", null)
  .addHeader("Authorization", "Bearer YOUR_API_TOKEN")
  .build();
Response response = client.newCall(request).execute();
System.out.println(response.body().string());
HttpResponse<String> response = Unirest.post("https://api.corbit.sa/api/v1/get-balance")
  .header("Authorization", "Bearer YOUR_API_TOKEN")
  .asString();
System.out.println(response.getBody());
var settings = {
  "url": "https://api.corbit.sa/api/v1/get-balance",
  "method": "POST",
  "timeout": 0,
  "headers": {
    "Authorization": "Bearer YOUR_API_TOKEN"
  },
};

$.ajax(settings).done(function (response) {
  console.log(response);
});
var xhr = new XMLHttpRequest();
xhr.addEventListener("readystatechange", function () {
  if (this.readyState === 4) {
    console.log(this.responseText);
  }
});

xhr.open("POST", "https://api.corbit.sa/api/v1/get-balance");
xhr.setRequestHeader("Authorization", "Bearer YOUR_API_TOKEN");
xhr.send();
const axios = require('axios');

const config = {
  method: 'post',
  url: 'https://api.corbit.sa/api/v1/get-balance',
  headers: {
    "Authorization": "Bearer YOUR_API_TOKEN"
  },
};

axios.request(config)
  .then((response) => console.log(JSON.stringify(response.data)))
  .catch((error) => console.log(error));
const https = require('https');

const options = {
  method: 'POST',
  hostname: 'api.corbit.sa',
  path: '/api/v1/get-balance',
  headers: {
    "Authorization": "Bearer YOUR_API_TOKEN"
  },
};

const req = https.request(options, (res) => {
  const chunks = [];
  res.on('data', (chunk) => chunks.push(chunk));
  res.on('end', () => console.log(Buffer.concat(chunks).toString()));
});

req.end();
var unirest = require('unirest');

unirest('POST', 'https://api.corbit.sa/api/v1/get-balance')
  .headers({
    "Authorization": "Bearer YOUR_API_TOKEN"
  })
  .end(function (res) {
    if (res.error) throw new Error(res.error);
    console.log(res.raw_body);
  });
#import <Foundation/Foundation.h>

dispatch_semaphore_t sema = dispatch_semaphore_create(0);

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"https://api.corbit.sa/api/v1/get-balance"]
  cachePolicy:NSURLRequestUseProtocolCachePolicy
  timeoutInterval:30.0];
NSDictionary *headers = @{
  @"Authorization": @"Bearer YOUR_API_TOKEN"
};
[request setAllHTTPHeaderFields:headers];
[request setHTTPMethod:@"POST"];

NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *dataTask = [session dataTaskWithRequest:request
  completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
    if (error) {
      NSLog(@"%@", error);
    } else {
      NSLog(@"%@", [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]);
    }
    dispatch_semaphore_signal(sema);
  }];
[dataTask resume];
dispatch_semaphore_wait(sema, DISPATCH_TIME_FOREVER);
open Lwt
open Cohttp
open Cohttp_lwt_unix

let uri = Uri.of_string "https://api.corbit.sa/api/v1/get-balance"
let headers = Header.of_list [
    ("Authorization", "Bearer YOUR_API_TOKEN");
]

let () = Lwt_main.run (
  Client.call ~headers `POST uri >>= fun (_, body) ->
  Cohttp_lwt.Body.to_string body >|= fun s -> print_endline s)
<?php
$client = new GuzzleHttp\Client();
$headers = [
    'Authorization' => 'Bearer YOUR_API_TOKEN',
];
$request = new GuzzleHttp\Psr7\Request('POST', 'https://api.corbit.sa/api/v1/get-balance', $headers);
$res = $client->sendAsync($request)->wait();
echo $res->getBody();
<?php
require_once 'HTTP/Request2.php';

$request = new HTTP_Request2();
$request->setUrl('https://api.corbit.sa/api/v1/get-balance');
$request->setMethod(HTTP_Request2::METHOD_POST);
$request->setConfig(array('follow_redirects' => TRUE));
$request->setHeader(array(
  'Authorization' => 'Bearer YOUR_API_TOKEN',
));
try {
  $response = $request->send();
  echo $response->getBody();
} catch (HTTP_Request2_Exception $e) {
  echo 'Error: ' . $e->getMessage();
}
<?php
$client = new http\Client;
$request = new http\Client\Request;
$request->setRequestUrl('https://api.corbit.sa/api/v1/get-balance');
$request->setRequestMethod('POST');
$request->setHeaders(array(
  'Authorization' => 'Bearer YOUR_API_TOKEN',
));
$client->enqueue($request)->send();
$response = $client->getResponse();
echo $response->getBody();
$headers = @{
    'Authorization' = 'Bearer YOUR_API_TOKEN'
}

$response = Invoke-RestMethod 'https://api.corbit.sa/api/v1/get-balance' -Method 'POST' -Headers $headers
$response | ConvertTo-Json -Depth 10
import http.client
import json

conn = http.client.HTTPSConnection("api.corbit.sa")
headers = {
    "Authorization": "Bearer YOUR_API_TOKEN",
}
conn.request("POST", "/api/v1/get-balance", headers)
res = conn.getresponse()
print(res.read().decode("utf-8"))
library(httr)

headers = c(
  'Authorization' = 'Bearer YOUR_API_TOKEN'
)

res <- VERB("POST", url = "https://api.corbit.sa/api/v1/get-balance", add_headers(headers))

cat(content(res, 'text'))
library(RCurl)

headers = c(
  'Authorization' = 'Bearer YOUR_API_TOKEN'
)

res <- getURLContent("https://api.corbit.sa/api/v1/get-balance", customrequest = "POST", httpheader = headers, followlocation = TRUE)

cat(res)
require "uri"
require "net/http"

url = URI("https://api.corbit.sa/api/v1/get-balance")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)
request["Authorization"] = "Bearer YOUR_API_TOKEN"

response = http.request(request)
puts response.read_body
http --follow --timeout 3600 POST 'https://api.corbit.sa/api/v1/get-balance' \
  'Authorization:Bearer YOUR_API_TOKEN'
wget --quiet -O - \
  --method POST \
  --header 'Authorization: Bearer YOUR_API_TOKEN' \
  'https://api.corbit.sa/api/v1/get-balance'
import Foundation
#if canImport(FoundationNetworking)
import FoundationNetworking
#endif

let semaphore = DispatchSemaphore(value: 0)

var request = URLRequest(url: URL(string: "https://api.corbit.sa/api/v1/get-balance")!, timeoutInterval: 30)
request.httpMethod = "POST"
request.addValue("Bearer YOUR_API_TOKEN", forHTTPHeaderField: "Authorization")

let task = URLSession.shared.dataTask(with: request) { data, response, error in
  if let data = data {
    print(String(data: data, encoding: .utf8) ?? "")
  } else {
    print(String(describing: error))
  }
  semaphore.signal()
}
task.resume()
semaphore.wait()

Responsesالردود

200OKناجح
{
  "status": "Success",
  "message": null,
  "data": {
    "balance": 183
  }
}
GET/api/v1/sendernames

Approved sender namesأسماء المرسلين المعتمدة

Lists the sender names on your account and their approval status.

يعرض أسماء المرسلين المسجّلة على حسابك وحالة اعتماد كل منها.

Authentication: Bearer tokenالمصادقة: توكن Bearer

Requestمثال الطلب

curl 'https://api.corbit.sa/api/v1/sendernames' \
  -H 'Authorization: Bearer YOUR_API_TOKEN'
const response = await fetch("https://api.corbit.sa/api/v1/sendernames", {
  method: "GET",
  headers: {
    "Authorization": "Bearer YOUR_API_TOKEN"
  }
});
const data = await response.json();
console.log(data);
import requests

response = requests.get(
    "https://api.corbit.sa/api/v1/sendernames",
    headers={"Authorization": "Bearer YOUR_API_TOKEN"},
)
print(response.json())
<?php
$ch = curl_init('https://api.corbit.sa/api/v1/sendernames');
curl_setopt_array($ch, [
    CURLOPT_CUSTOMREQUEST => 'GET',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => [
        'Authorization: Bearer YOUR_API_TOKEN',
    ],
]);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
#include <stdio.h>
#include <curl/curl.h>

int main(void) {
  CURL *curl = curl_easy_init();
  if (curl) {
    struct curl_slist *headers = NULL;
    headers = curl_slist_append(headers, "Authorization: Bearer YOUR_API_TOKEN");
    curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
    curl_easy_setopt(curl, CURLOPT_URL, "https://api.corbit.sa/api/v1/sendernames");
    curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
    CURLcode res = curl_easy_perform(curl);
    if (res != CURLE_OK) fprintf(stderr, "curl error: %s\n", curl_easy_strerror(res));
    curl_slist_free_all(headers);
    curl_easy_cleanup(curl);
  }
  return 0;
}
using System;
using System.Net.Http;
using System.Text;

var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Get, "https://api.corbit.sa/api/v1/sendernames");
request.Headers.Add("Authorization", "Bearer YOUR_API_TOKEN");
var response = await client.SendAsync(request);
Console.WriteLine(await response.Content.ReadAsStringAsync());
using System;
using RestSharp;

var client = new RestClient("https://api.corbit.sa/api/v1/sendernames");
var request = new RestRequest("", Method.Get);
request.AddHeader("Authorization", "Bearer YOUR_API_TOKEN");
RestResponse response = await client.ExecuteAsync(request);
Console.WriteLine(response.Content);
import 'package:http/http.dart' as http;

void main() async {
  final response = await http.get(
    Uri.parse("https://api.corbit.sa/api/v1/sendernames"),
    headers: {
      "Authorization": "Bearer YOUR_API_TOKEN",
    },
  );
  print(response.body);
}
package main

import (
	"fmt"
	"io"
	"net/http"
)

func main() {
	req, err := http.NewRequest("GET", "https://api.corbit.sa/api/v1/sendernames", nil)
	if err != nil {
		fmt.Println(err)
		return
	}
	req.Header.Add("Authorization", "Bearer YOUR_API_TOKEN")
	res, err := http.DefaultClient.Do(req)
	if err != nil {
		fmt.Println(err)
		return
	}
	defer res.Body.Close()

	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
GET /api/v1/sendernames HTTP/1.1
Host: api.corbit.sa
Authorization: Bearer YOUR_API_TOKEN
OkHttpClient client = new OkHttpClient().newBuilder().build();
Request request = new Request.Builder()
  .url("https://api.corbit.sa/api/v1/sendernames")
  .method("GET", null)
  .addHeader("Authorization", "Bearer YOUR_API_TOKEN")
  .build();
Response response = client.newCall(request).execute();
System.out.println(response.body().string());
HttpResponse<String> response = Unirest.get("https://api.corbit.sa/api/v1/sendernames")
  .header("Authorization", "Bearer YOUR_API_TOKEN")
  .asString();
System.out.println(response.getBody());
var settings = {
  "url": "https://api.corbit.sa/api/v1/sendernames",
  "method": "GET",
  "timeout": 0,
  "headers": {
    "Authorization": "Bearer YOUR_API_TOKEN"
  },
};

$.ajax(settings).done(function (response) {
  console.log(response);
});
var xhr = new XMLHttpRequest();
xhr.addEventListener("readystatechange", function () {
  if (this.readyState === 4) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://api.corbit.sa/api/v1/sendernames");
xhr.setRequestHeader("Authorization", "Bearer YOUR_API_TOKEN");
xhr.send();
const axios = require('axios');

const config = {
  method: 'get',
  url: 'https://api.corbit.sa/api/v1/sendernames',
  headers: {
    "Authorization": "Bearer YOUR_API_TOKEN"
  },
};

axios.request(config)
  .then((response) => console.log(JSON.stringify(response.data)))
  .catch((error) => console.log(error));
const https = require('https');

const options = {
  method: 'GET',
  hostname: 'api.corbit.sa',
  path: '/api/v1/sendernames',
  headers: {
    "Authorization": "Bearer YOUR_API_TOKEN"
  },
};

const req = https.request(options, (res) => {
  const chunks = [];
  res.on('data', (chunk) => chunks.push(chunk));
  res.on('end', () => console.log(Buffer.concat(chunks).toString()));
});

req.end();
var unirest = require('unirest');

unirest('GET', 'https://api.corbit.sa/api/v1/sendernames')
  .headers({
    "Authorization": "Bearer YOUR_API_TOKEN"
  })
  .end(function (res) {
    if (res.error) throw new Error(res.error);
    console.log(res.raw_body);
  });
#import <Foundation/Foundation.h>

dispatch_semaphore_t sema = dispatch_semaphore_create(0);

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"https://api.corbit.sa/api/v1/sendernames"]
  cachePolicy:NSURLRequestUseProtocolCachePolicy
  timeoutInterval:30.0];
NSDictionary *headers = @{
  @"Authorization": @"Bearer YOUR_API_TOKEN"
};
[request setAllHTTPHeaderFields:headers];
[request setHTTPMethod:@"GET"];

NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *dataTask = [session dataTaskWithRequest:request
  completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
    if (error) {
      NSLog(@"%@", error);
    } else {
      NSLog(@"%@", [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]);
    }
    dispatch_semaphore_signal(sema);
  }];
[dataTask resume];
dispatch_semaphore_wait(sema, DISPATCH_TIME_FOREVER);
open Lwt
open Cohttp
open Cohttp_lwt_unix

let uri = Uri.of_string "https://api.corbit.sa/api/v1/sendernames"
let headers = Header.of_list [
    ("Authorization", "Bearer YOUR_API_TOKEN");
]

let () = Lwt_main.run (
  Client.call ~headers `GET uri >>= fun (_, body) ->
  Cohttp_lwt.Body.to_string body >|= fun s -> print_endline s)
<?php
$client = new GuzzleHttp\Client();
$headers = [
    'Authorization' => 'Bearer YOUR_API_TOKEN',
];
$request = new GuzzleHttp\Psr7\Request('GET', 'https://api.corbit.sa/api/v1/sendernames', $headers);
$res = $client->sendAsync($request)->wait();
echo $res->getBody();
<?php
require_once 'HTTP/Request2.php';

$request = new HTTP_Request2();
$request->setUrl('https://api.corbit.sa/api/v1/sendernames');
$request->setMethod(HTTP_Request2::METHOD_GET);
$request->setConfig(array('follow_redirects' => TRUE));
$request->setHeader(array(
  'Authorization' => 'Bearer YOUR_API_TOKEN',
));
try {
  $response = $request->send();
  echo $response->getBody();
} catch (HTTP_Request2_Exception $e) {
  echo 'Error: ' . $e->getMessage();
}
<?php
$client = new http\Client;
$request = new http\Client\Request;
$request->setRequestUrl('https://api.corbit.sa/api/v1/sendernames');
$request->setRequestMethod('GET');
$request->setHeaders(array(
  'Authorization' => 'Bearer YOUR_API_TOKEN',
));
$client->enqueue($request)->send();
$response = $client->getResponse();
echo $response->getBody();
$headers = @{
    'Authorization' = 'Bearer YOUR_API_TOKEN'
}

$response = Invoke-RestMethod 'https://api.corbit.sa/api/v1/sendernames' -Method 'GET' -Headers $headers
$response | ConvertTo-Json -Depth 10
import http.client
import json

conn = http.client.HTTPSConnection("api.corbit.sa")
headers = {
    "Authorization": "Bearer YOUR_API_TOKEN",
}
conn.request("GET", "/api/v1/sendernames", headers)
res = conn.getresponse()
print(res.read().decode("utf-8"))
library(httr)

headers = c(
  'Authorization' = 'Bearer YOUR_API_TOKEN'
)

res <- VERB("GET", url = "https://api.corbit.sa/api/v1/sendernames", add_headers(headers))

cat(content(res, 'text'))
library(RCurl)

headers = c(
  'Authorization' = 'Bearer YOUR_API_TOKEN'
)

res <- getURLContent("https://api.corbit.sa/api/v1/sendernames", customrequest = "GET", httpheader = headers, followlocation = TRUE)

cat(res)
require "uri"
require "net/http"

url = URI("https://api.corbit.sa/api/v1/sendernames")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)
request["Authorization"] = "Bearer YOUR_API_TOKEN"

response = http.request(request)
puts response.read_body
http --follow --timeout 3600 GET 'https://api.corbit.sa/api/v1/sendernames' \
  'Authorization:Bearer YOUR_API_TOKEN'
wget --quiet -O - \
  --method GET \
  --header 'Authorization: Bearer YOUR_API_TOKEN' \
  'https://api.corbit.sa/api/v1/sendernames'
import Foundation
#if canImport(FoundationNetworking)
import FoundationNetworking
#endif

let semaphore = DispatchSemaphore(value: 0)

var request = URLRequest(url: URL(string: "https://api.corbit.sa/api/v1/sendernames")!, timeoutInterval: 30)
request.httpMethod = "GET"
request.addValue("Bearer YOUR_API_TOKEN", forHTTPHeaderField: "Authorization")

let task = URLSession.shared.dataTask(with: request) { data, response, error in
  if let data = data {
    print(String(data: data, encoding: .utf8) ?? "")
  } else {
    print(String(describing: error))
  }
  semaphore.signal()
}
task.resume()
semaphore.wait()

Responsesالردود

200OKناجح
{
  "status": "Success",
  "message": "Sender names retrieved successfully",
  "data": [
    {
      "name": "Mobile.SA",
      "status": "approved"
    }
  ],
  "pagination": {
    "total": 1,
    "per_page": 15,
    "current_page": 1
  }
}
POST/api/v1/message-status/{id}

Message delivery statusحالة تسليم الرسالة

Returns the current status of a message accepted by the send endpoints.

يعرض الحالة الحالية لرسالة قُبلت عبر نقاط الإرسال.

Authentication: Bearer tokenالمصادقة: توكن Bearer

Parametersالمعاملات

idrequiredمطلوب
pathمسار · string

Message id returned by the send endpoints.

معرّف الرسالة الذي أعادته نقاط الإرسال.

Requestمثال الطلب

curl -X POST 'https://api.corbit.sa/api/v1/message-status/MESSAGE_ID' \
  -H 'Authorization: Bearer YOUR_API_TOKEN'
const response = await fetch("https://api.corbit.sa/api/v1/message-status/MESSAGE_ID", {
  method: "POST",
  headers: {
    "Authorization": "Bearer YOUR_API_TOKEN"
  }
});
const data = await response.json();
console.log(data);
import requests

response = requests.post(
    "https://api.corbit.sa/api/v1/message-status/MESSAGE_ID",
    headers={"Authorization": "Bearer YOUR_API_TOKEN"},
)
print(response.json())
<?php
$ch = curl_init('https://api.corbit.sa/api/v1/message-status/MESSAGE_ID');
curl_setopt_array($ch, [
    CURLOPT_CUSTOMREQUEST => 'POST',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => [
        'Authorization: Bearer YOUR_API_TOKEN',
    ],
]);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
#include <stdio.h>
#include <curl/curl.h>

int main(void) {
  CURL *curl = curl_easy_init();
  if (curl) {
    struct curl_slist *headers = NULL;
    headers = curl_slist_append(headers, "Authorization: Bearer YOUR_API_TOKEN");
    curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "POST");
    curl_easy_setopt(curl, CURLOPT_URL, "https://api.corbit.sa/api/v1/message-status/MESSAGE_ID");
    curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
    CURLcode res = curl_easy_perform(curl);
    if (res != CURLE_OK) fprintf(stderr, "curl error: %s\n", curl_easy_strerror(res));
    curl_slist_free_all(headers);
    curl_easy_cleanup(curl);
  }
  return 0;
}
using System;
using System.Net.Http;
using System.Text;

var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Post, "https://api.corbit.sa/api/v1/message-status/MESSAGE_ID");
request.Headers.Add("Authorization", "Bearer YOUR_API_TOKEN");
var response = await client.SendAsync(request);
Console.WriteLine(await response.Content.ReadAsStringAsync());
using System;
using RestSharp;

var client = new RestClient("https://api.corbit.sa/api/v1/message-status/MESSAGE_ID");
var request = new RestRequest("", Method.Post);
request.AddHeader("Authorization", "Bearer YOUR_API_TOKEN");
RestResponse response = await client.ExecuteAsync(request);
Console.WriteLine(response.Content);
import 'package:http/http.dart' as http;

void main() async {
  final response = await http.post(
    Uri.parse("https://api.corbit.sa/api/v1/message-status/MESSAGE_ID"),
    headers: {
      "Authorization": "Bearer YOUR_API_TOKEN",
    },
  );
  print(response.body);
}
package main

import (
	"fmt"
	"io"
	"net/http"
)

func main() {
	req, err := http.NewRequest("POST", "https://api.corbit.sa/api/v1/message-status/MESSAGE_ID", nil)
	if err != nil {
		fmt.Println(err)
		return
	}
	req.Header.Add("Authorization", "Bearer YOUR_API_TOKEN")
	res, err := http.DefaultClient.Do(req)
	if err != nil {
		fmt.Println(err)
		return
	}
	defer res.Body.Close()

	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
POST /api/v1/message-status/MESSAGE_ID HTTP/1.1
Host: api.corbit.sa
Authorization: Bearer YOUR_API_TOKEN
OkHttpClient client = new OkHttpClient().newBuilder().build();
Request request = new Request.Builder()
  .url("https://api.corbit.sa/api/v1/message-status/MESSAGE_ID")
  .method("POST", null)
  .addHeader("Authorization", "Bearer YOUR_API_TOKEN")
  .build();
Response response = client.newCall(request).execute();
System.out.println(response.body().string());
HttpResponse<String> response = Unirest.post("https://api.corbit.sa/api/v1/message-status/MESSAGE_ID")
  .header("Authorization", "Bearer YOUR_API_TOKEN")
  .asString();
System.out.println(response.getBody());
var settings = {
  "url": "https://api.corbit.sa/api/v1/message-status/MESSAGE_ID",
  "method": "POST",
  "timeout": 0,
  "headers": {
    "Authorization": "Bearer YOUR_API_TOKEN"
  },
};

$.ajax(settings).done(function (response) {
  console.log(response);
});
var xhr = new XMLHttpRequest();
xhr.addEventListener("readystatechange", function () {
  if (this.readyState === 4) {
    console.log(this.responseText);
  }
});

xhr.open("POST", "https://api.corbit.sa/api/v1/message-status/MESSAGE_ID");
xhr.setRequestHeader("Authorization", "Bearer YOUR_API_TOKEN");
xhr.send();
const axios = require('axios');

const config = {
  method: 'post',
  url: 'https://api.corbit.sa/api/v1/message-status/MESSAGE_ID',
  headers: {
    "Authorization": "Bearer YOUR_API_TOKEN"
  },
};

axios.request(config)
  .then((response) => console.log(JSON.stringify(response.data)))
  .catch((error) => console.log(error));
const https = require('https');

const options = {
  method: 'POST',
  hostname: 'api.corbit.sa',
  path: '/api/v1/message-status/MESSAGE_ID',
  headers: {
    "Authorization": "Bearer YOUR_API_TOKEN"
  },
};

const req = https.request(options, (res) => {
  const chunks = [];
  res.on('data', (chunk) => chunks.push(chunk));
  res.on('end', () => console.log(Buffer.concat(chunks).toString()));
});

req.end();
var unirest = require('unirest');

unirest('POST', 'https://api.corbit.sa/api/v1/message-status/MESSAGE_ID')
  .headers({
    "Authorization": "Bearer YOUR_API_TOKEN"
  })
  .end(function (res) {
    if (res.error) throw new Error(res.error);
    console.log(res.raw_body);
  });
#import <Foundation/Foundation.h>

dispatch_semaphore_t sema = dispatch_semaphore_create(0);

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"https://api.corbit.sa/api/v1/message-status/MESSAGE_ID"]
  cachePolicy:NSURLRequestUseProtocolCachePolicy
  timeoutInterval:30.0];
NSDictionary *headers = @{
  @"Authorization": @"Bearer YOUR_API_TOKEN"
};
[request setAllHTTPHeaderFields:headers];
[request setHTTPMethod:@"POST"];

NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *dataTask = [session dataTaskWithRequest:request
  completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
    if (error) {
      NSLog(@"%@", error);
    } else {
      NSLog(@"%@", [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]);
    }
    dispatch_semaphore_signal(sema);
  }];
[dataTask resume];
dispatch_semaphore_wait(sema, DISPATCH_TIME_FOREVER);
open Lwt
open Cohttp
open Cohttp_lwt_unix

let uri = Uri.of_string "https://api.corbit.sa/api/v1/message-status/MESSAGE_ID"
let headers = Header.of_list [
    ("Authorization", "Bearer YOUR_API_TOKEN");
]

let () = Lwt_main.run (
  Client.call ~headers `POST uri >>= fun (_, body) ->
  Cohttp_lwt.Body.to_string body >|= fun s -> print_endline s)
<?php
$client = new GuzzleHttp\Client();
$headers = [
    'Authorization' => 'Bearer YOUR_API_TOKEN',
];
$request = new GuzzleHttp\Psr7\Request('POST', 'https://api.corbit.sa/api/v1/message-status/MESSAGE_ID', $headers);
$res = $client->sendAsync($request)->wait();
echo $res->getBody();
<?php
require_once 'HTTP/Request2.php';

$request = new HTTP_Request2();
$request->setUrl('https://api.corbit.sa/api/v1/message-status/MESSAGE_ID');
$request->setMethod(HTTP_Request2::METHOD_POST);
$request->setConfig(array('follow_redirects' => TRUE));
$request->setHeader(array(
  'Authorization' => 'Bearer YOUR_API_TOKEN',
));
try {
  $response = $request->send();
  echo $response->getBody();
} catch (HTTP_Request2_Exception $e) {
  echo 'Error: ' . $e->getMessage();
}
<?php
$client = new http\Client;
$request = new http\Client\Request;
$request->setRequestUrl('https://api.corbit.sa/api/v1/message-status/MESSAGE_ID');
$request->setRequestMethod('POST');
$request->setHeaders(array(
  'Authorization' => 'Bearer YOUR_API_TOKEN',
));
$client->enqueue($request)->send();
$response = $client->getResponse();
echo $response->getBody();
$headers = @{
    'Authorization' = 'Bearer YOUR_API_TOKEN'
}

$response = Invoke-RestMethod 'https://api.corbit.sa/api/v1/message-status/MESSAGE_ID' -Method 'POST' -Headers $headers
$response | ConvertTo-Json -Depth 10
import http.client
import json

conn = http.client.HTTPSConnection("api.corbit.sa")
headers = {
    "Authorization": "Bearer YOUR_API_TOKEN",
}
conn.request("POST", "/api/v1/message-status/MESSAGE_ID", headers)
res = conn.getresponse()
print(res.read().decode("utf-8"))
library(httr)

headers = c(
  'Authorization' = 'Bearer YOUR_API_TOKEN'
)

res <- VERB("POST", url = "https://api.corbit.sa/api/v1/message-status/MESSAGE_ID", add_headers(headers))

cat(content(res, 'text'))
library(RCurl)

headers = c(
  'Authorization' = 'Bearer YOUR_API_TOKEN'
)

res <- getURLContent("https://api.corbit.sa/api/v1/message-status/MESSAGE_ID", customrequest = "POST", httpheader = headers, followlocation = TRUE)

cat(res)
require "uri"
require "net/http"

url = URI("https://api.corbit.sa/api/v1/message-status/MESSAGE_ID")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)
request["Authorization"] = "Bearer YOUR_API_TOKEN"

response = http.request(request)
puts response.read_body
http --follow --timeout 3600 POST 'https://api.corbit.sa/api/v1/message-status/MESSAGE_ID' \
  'Authorization:Bearer YOUR_API_TOKEN'
wget --quiet -O - \
  --method POST \
  --header 'Authorization: Bearer YOUR_API_TOKEN' \
  'https://api.corbit.sa/api/v1/message-status/MESSAGE_ID'
import Foundation
#if canImport(FoundationNetworking)
import FoundationNetworking
#endif

let semaphore = DispatchSemaphore(value: 0)

var request = URLRequest(url: URL(string: "https://api.corbit.sa/api/v1/message-status/MESSAGE_ID")!, timeoutInterval: 30)
request.httpMethod = "POST"
request.addValue("Bearer YOUR_API_TOKEN", forHTTPHeaderField: "Authorization")

let task = URLSession.shared.dataTask(with: request) { data, response, error in
  if let data = data {
    print(String(data: data, encoding: .utf8) ?? "")
  } else {
    print(String(describing: error))
  }
  semaphore.signal()
}
task.resume()
semaphore.wait()

Responsesالردود

200OKناجح
{
  "status": "Success",
  "message": null,
  "data": {
    "status": "sent"
  }
}
POST/api/v1/message-report/{id}

Message delivery report (DLR)تقرير تسليم الرسالة (DLR)

Returns the detailed delivery report per destination.

يعرض تقرير التسليم التفصيلي لكل وجهة.

Authentication: Bearer tokenالمصادقة: توكن Bearer

Parametersالمعاملات

idrequiredمطلوب
pathمسار · string

Message id returned by the send endpoints.

معرّف الرسالة الذي أعادته نقاط الإرسال.

Requestمثال الطلب

curl -X POST 'https://api.corbit.sa/api/v1/message-report/MESSAGE_ID' \
  -H 'Authorization: Bearer YOUR_API_TOKEN'
const response = await fetch("https://api.corbit.sa/api/v1/message-report/MESSAGE_ID", {
  method: "POST",
  headers: {
    "Authorization": "Bearer YOUR_API_TOKEN"
  }
});
const data = await response.json();
console.log(data);
import requests

response = requests.post(
    "https://api.corbit.sa/api/v1/message-report/MESSAGE_ID",
    headers={"Authorization": "Bearer YOUR_API_TOKEN"},
)
print(response.json())
<?php
$ch = curl_init('https://api.corbit.sa/api/v1/message-report/MESSAGE_ID');
curl_setopt_array($ch, [
    CURLOPT_CUSTOMREQUEST => 'POST',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => [
        'Authorization: Bearer YOUR_API_TOKEN',
    ],
]);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
#include <stdio.h>
#include <curl/curl.h>

int main(void) {
  CURL *curl = curl_easy_init();
  if (curl) {
    struct curl_slist *headers = NULL;
    headers = curl_slist_append(headers, "Authorization: Bearer YOUR_API_TOKEN");
    curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "POST");
    curl_easy_setopt(curl, CURLOPT_URL, "https://api.corbit.sa/api/v1/message-report/MESSAGE_ID");
    curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
    CURLcode res = curl_easy_perform(curl);
    if (res != CURLE_OK) fprintf(stderr, "curl error: %s\n", curl_easy_strerror(res));
    curl_slist_free_all(headers);
    curl_easy_cleanup(curl);
  }
  return 0;
}
using System;
using System.Net.Http;
using System.Text;

var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Post, "https://api.corbit.sa/api/v1/message-report/MESSAGE_ID");
request.Headers.Add("Authorization", "Bearer YOUR_API_TOKEN");
var response = await client.SendAsync(request);
Console.WriteLine(await response.Content.ReadAsStringAsync());
using System;
using RestSharp;

var client = new RestClient("https://api.corbit.sa/api/v1/message-report/MESSAGE_ID");
var request = new RestRequest("", Method.Post);
request.AddHeader("Authorization", "Bearer YOUR_API_TOKEN");
RestResponse response = await client.ExecuteAsync(request);
Console.WriteLine(response.Content);
import 'package:http/http.dart' as http;

void main() async {
  final response = await http.post(
    Uri.parse("https://api.corbit.sa/api/v1/message-report/MESSAGE_ID"),
    headers: {
      "Authorization": "Bearer YOUR_API_TOKEN",
    },
  );
  print(response.body);
}
package main

import (
	"fmt"
	"io"
	"net/http"
)

func main() {
	req, err := http.NewRequest("POST", "https://api.corbit.sa/api/v1/message-report/MESSAGE_ID", nil)
	if err != nil {
		fmt.Println(err)
		return
	}
	req.Header.Add("Authorization", "Bearer YOUR_API_TOKEN")
	res, err := http.DefaultClient.Do(req)
	if err != nil {
		fmt.Println(err)
		return
	}
	defer res.Body.Close()

	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
POST /api/v1/message-report/MESSAGE_ID HTTP/1.1
Host: api.corbit.sa
Authorization: Bearer YOUR_API_TOKEN
OkHttpClient client = new OkHttpClient().newBuilder().build();
Request request = new Request.Builder()
  .url("https://api.corbit.sa/api/v1/message-report/MESSAGE_ID")
  .method("POST", null)
  .addHeader("Authorization", "Bearer YOUR_API_TOKEN")
  .build();
Response response = client.newCall(request).execute();
System.out.println(response.body().string());
HttpResponse<String> response = Unirest.post("https://api.corbit.sa/api/v1/message-report/MESSAGE_ID")
  .header("Authorization", "Bearer YOUR_API_TOKEN")
  .asString();
System.out.println(response.getBody());
var settings = {
  "url": "https://api.corbit.sa/api/v1/message-report/MESSAGE_ID",
  "method": "POST",
  "timeout": 0,
  "headers": {
    "Authorization": "Bearer YOUR_API_TOKEN"
  },
};

$.ajax(settings).done(function (response) {
  console.log(response);
});
var xhr = new XMLHttpRequest();
xhr.addEventListener("readystatechange", function () {
  if (this.readyState === 4) {
    console.log(this.responseText);
  }
});

xhr.open("POST", "https://api.corbit.sa/api/v1/message-report/MESSAGE_ID");
xhr.setRequestHeader("Authorization", "Bearer YOUR_API_TOKEN");
xhr.send();
const axios = require('axios');

const config = {
  method: 'post',
  url: 'https://api.corbit.sa/api/v1/message-report/MESSAGE_ID',
  headers: {
    "Authorization": "Bearer YOUR_API_TOKEN"
  },
};

axios.request(config)
  .then((response) => console.log(JSON.stringify(response.data)))
  .catch((error) => console.log(error));
const https = require('https');

const options = {
  method: 'POST',
  hostname: 'api.corbit.sa',
  path: '/api/v1/message-report/MESSAGE_ID',
  headers: {
    "Authorization": "Bearer YOUR_API_TOKEN"
  },
};

const req = https.request(options, (res) => {
  const chunks = [];
  res.on('data', (chunk) => chunks.push(chunk));
  res.on('end', () => console.log(Buffer.concat(chunks).toString()));
});

req.end();
var unirest = require('unirest');

unirest('POST', 'https://api.corbit.sa/api/v1/message-report/MESSAGE_ID')
  .headers({
    "Authorization": "Bearer YOUR_API_TOKEN"
  })
  .end(function (res) {
    if (res.error) throw new Error(res.error);
    console.log(res.raw_body);
  });
#import <Foundation/Foundation.h>

dispatch_semaphore_t sema = dispatch_semaphore_create(0);

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"https://api.corbit.sa/api/v1/message-report/MESSAGE_ID"]
  cachePolicy:NSURLRequestUseProtocolCachePolicy
  timeoutInterval:30.0];
NSDictionary *headers = @{
  @"Authorization": @"Bearer YOUR_API_TOKEN"
};
[request setAllHTTPHeaderFields:headers];
[request setHTTPMethod:@"POST"];

NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *dataTask = [session dataTaskWithRequest:request
  completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
    if (error) {
      NSLog(@"%@", error);
    } else {
      NSLog(@"%@", [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]);
    }
    dispatch_semaphore_signal(sema);
  }];
[dataTask resume];
dispatch_semaphore_wait(sema, DISPATCH_TIME_FOREVER);
open Lwt
open Cohttp
open Cohttp_lwt_unix

let uri = Uri.of_string "https://api.corbit.sa/api/v1/message-report/MESSAGE_ID"
let headers = Header.of_list [
    ("Authorization", "Bearer YOUR_API_TOKEN");
]

let () = Lwt_main.run (
  Client.call ~headers `POST uri >>= fun (_, body) ->
  Cohttp_lwt.Body.to_string body >|= fun s -> print_endline s)
<?php
$client = new GuzzleHttp\Client();
$headers = [
    'Authorization' => 'Bearer YOUR_API_TOKEN',
];
$request = new GuzzleHttp\Psr7\Request('POST', 'https://api.corbit.sa/api/v1/message-report/MESSAGE_ID', $headers);
$res = $client->sendAsync($request)->wait();
echo $res->getBody();
<?php
require_once 'HTTP/Request2.php';

$request = new HTTP_Request2();
$request->setUrl('https://api.corbit.sa/api/v1/message-report/MESSAGE_ID');
$request->setMethod(HTTP_Request2::METHOD_POST);
$request->setConfig(array('follow_redirects' => TRUE));
$request->setHeader(array(
  'Authorization' => 'Bearer YOUR_API_TOKEN',
));
try {
  $response = $request->send();
  echo $response->getBody();
} catch (HTTP_Request2_Exception $e) {
  echo 'Error: ' . $e->getMessage();
}
<?php
$client = new http\Client;
$request = new http\Client\Request;
$request->setRequestUrl('https://api.corbit.sa/api/v1/message-report/MESSAGE_ID');
$request->setRequestMethod('POST');
$request->setHeaders(array(
  'Authorization' => 'Bearer YOUR_API_TOKEN',
));
$client->enqueue($request)->send();
$response = $client->getResponse();
echo $response->getBody();
$headers = @{
    'Authorization' = 'Bearer YOUR_API_TOKEN'
}

$response = Invoke-RestMethod 'https://api.corbit.sa/api/v1/message-report/MESSAGE_ID' -Method 'POST' -Headers $headers
$response | ConvertTo-Json -Depth 10
import http.client
import json

conn = http.client.HTTPSConnection("api.corbit.sa")
headers = {
    "Authorization": "Bearer YOUR_API_TOKEN",
}
conn.request("POST", "/api/v1/message-report/MESSAGE_ID", headers)
res = conn.getresponse()
print(res.read().decode("utf-8"))
library(httr)

headers = c(
  'Authorization' = 'Bearer YOUR_API_TOKEN'
)

res <- VERB("POST", url = "https://api.corbit.sa/api/v1/message-report/MESSAGE_ID", add_headers(headers))

cat(content(res, 'text'))
library(RCurl)

headers = c(
  'Authorization' = 'Bearer YOUR_API_TOKEN'
)

res <- getURLContent("https://api.corbit.sa/api/v1/message-report/MESSAGE_ID", customrequest = "POST", httpheader = headers, followlocation = TRUE)

cat(res)
require "uri"
require "net/http"

url = URI("https://api.corbit.sa/api/v1/message-report/MESSAGE_ID")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)
request["Authorization"] = "Bearer YOUR_API_TOKEN"

response = http.request(request)
puts response.read_body
http --follow --timeout 3600 POST 'https://api.corbit.sa/api/v1/message-report/MESSAGE_ID' \
  'Authorization:Bearer YOUR_API_TOKEN'
wget --quiet -O - \
  --method POST \
  --header 'Authorization: Bearer YOUR_API_TOKEN' \
  'https://api.corbit.sa/api/v1/message-report/MESSAGE_ID'
import Foundation
#if canImport(FoundationNetworking)
import FoundationNetworking
#endif

let semaphore = DispatchSemaphore(value: 0)

var request = URLRequest(url: URL(string: "https://api.corbit.sa/api/v1/message-report/MESSAGE_ID")!, timeoutInterval: 30)
request.httpMethod = "POST"
request.addValue("Bearer YOUR_API_TOKEN", forHTTPHeaderField: "Authorization")

let task = URLSession.shared.dataTask(with: request) { data, response, error in
  if let data = data {
    print(String(data: data, encoding: .utf8) ?? "")
  } else {
    print(String(describing: error))
  }
  semaphore.signal()
}
task.resume()
semaphore.wait()

Responsesالردود

200OKناجح
{
  "jobId": "moe-XYno7kqZeK0jN8YlMg",
  "msgs": [
    {
      "destAddress": "966XXXXXXXXX",
      "status": "unknown",
      "accepted": false
    }
  ]
}

WhatsApp Businessواتساب للأعمال

Send WhatsApp messages and read your contacts and conversations. Authenticate with your WhatsApp API key.

إرسال رسائل واتساب وقراءة جهات الاتصال والمحادثات. للمصادقة استخدم مفتاح واتساب API الخاص بك.

POST/wa/api/v1/messages

Send WhatsApp messageإرسال رسالة واتساب

Sends a WhatsApp text message.

يرسل رسالة نصية عبر واتساب.

Authentication: Bearer tokenالمصادقة: توكن Bearer

Parametersالمعاملات

torequiredمطلوب
bodyجسم · string

Recipient number in international format.

رقم المستلم بالصيغة الدولية.

textrequiredمطلوب
bodyجسم · string

Message text.

نص الرسالة.

Requestمثال الطلب

curl -X POST 'https://api.corbit.sa/wa/api/v1/messages' \
  -H 'Authorization: Bearer YOUR_API_TOKEN' \
  -H 'Content-Type: application/json' \
  -d '{
  "to": "966XXXXXXXXX",
  "text": "Hello from Corbit"
}'
const response = await fetch("https://api.corbit.sa/wa/api/v1/messages", {
  method: "POST",
  headers: {
    "Authorization": "Bearer YOUR_API_TOKEN",
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
    "to": "966XXXXXXXXX",
    "text": "Hello from Corbit"
  })
});
const data = await response.json();
console.log(data);
import requests

response = requests.post(
    "https://api.corbit.sa/wa/api/v1/messages",
    headers={"Authorization": "Bearer YOUR_API_TOKEN"},
    json={
        "to": "966XXXXXXXXX",
        "text": "Hello from Corbit"
    },
)
print(response.json())
<?php
$ch = curl_init('https://api.corbit.sa/wa/api/v1/messages');
curl_setopt_array($ch, [
    CURLOPT_CUSTOMREQUEST => 'POST',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => [
        'Authorization: Bearer YOUR_API_TOKEN',
        'Content-Type: application/json',
    ],
    CURLOPT_POSTFIELDS => json_encode([
        'to' => '966XXXXXXXXX',
        'text' => 'Hello from Corbit'
    ]),
]);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
#include <stdio.h>
#include <curl/curl.h>

int main(void) {
  CURL *curl = curl_easy_init();
  if (curl) {
    struct curl_slist *headers = NULL;
    headers = curl_slist_append(headers, "Authorization: Bearer YOUR_API_TOKEN");
    headers = curl_slist_append(headers, "Content-Type: application/json");
    curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "POST");
    curl_easy_setopt(curl, CURLOPT_URL, "https://api.corbit.sa/wa/api/v1/messages");
    curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
    curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\n  \"to\": \"966XXXXXXXXX\",\n  \"text\": \"Hello from Corbit\"\n}");
    CURLcode res = curl_easy_perform(curl);
    if (res != CURLE_OK) fprintf(stderr, "curl error: %s\n", curl_easy_strerror(res));
    curl_slist_free_all(headers);
    curl_easy_cleanup(curl);
  }
  return 0;
}
using System;
using System.Net.Http;
using System.Text;

var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Post, "https://api.corbit.sa/wa/api/v1/messages");
request.Headers.Add("Authorization", "Bearer YOUR_API_TOKEN");
request.Content = new StringContent("{\n  \"to\": \"966XXXXXXXXX\",\n  \"text\": \"Hello from Corbit\"\n}", Encoding.UTF8, "application/json");
var response = await client.SendAsync(request);
Console.WriteLine(await response.Content.ReadAsStringAsync());
using System;
using RestSharp;

var client = new RestClient("https://api.corbit.sa/wa/api/v1/messages");
var request = new RestRequest("", Method.Post);
request.AddHeader("Authorization", "Bearer YOUR_API_TOKEN");
request.AddStringBody("{\n  \"to\": \"966XXXXXXXXX\",\n  \"text\": \"Hello from Corbit\"\n}", DataFormat.Json);
RestResponse response = await client.ExecuteAsync(request);
Console.WriteLine(response.Content);
import 'package:http/http.dart' as http;

void main() async {
  final response = await http.post(
    Uri.parse("https://api.corbit.sa/wa/api/v1/messages"),
    headers: {
      "Authorization": "Bearer YOUR_API_TOKEN",
      "Content-Type": "application/json",
    },
    body: "{\n  \"to\": \"966XXXXXXXXX\",\n  \"text\": \"Hello from Corbit\"\n}",
  );
  print(response.body);
}
package main

import (
	"fmt"
	"io"
	"net/http"
	"strings"
)

func main() {
	payload := strings.NewReader(`{
  "to": "966XXXXXXXXX",
  "text": "Hello from Corbit"
}`)
	req, err := http.NewRequest("POST", "https://api.corbit.sa/wa/api/v1/messages", payload)
	if err != nil {
		fmt.Println(err)
		return
	}
	req.Header.Add("Authorization", "Bearer YOUR_API_TOKEN")
	req.Header.Add("Content-Type", "application/json")
	res, err := http.DefaultClient.Do(req)
	if err != nil {
		fmt.Println(err)
		return
	}
	defer res.Body.Close()

	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
POST /wa/api/v1/messages HTTP/1.1
Host: api.corbit.sa
Authorization: Bearer YOUR_API_TOKEN
Content-Type: application/json
Content-Length: 57

{
  "to": "966XXXXXXXXX",
  "text": "Hello from Corbit"
}
OkHttpClient client = new OkHttpClient().newBuilder().build();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\n  \"to\": \"966XXXXXXXXX\",\n  \"text\": \"Hello from Corbit\"\n}");
Request request = new Request.Builder()
  .url("https://api.corbit.sa/wa/api/v1/messages")
  .method("POST", body)
  .addHeader("Authorization", "Bearer YOUR_API_TOKEN")
  .addHeader("Content-Type", "application/json")
  .build();
Response response = client.newCall(request).execute();
System.out.println(response.body().string());
HttpResponse<String> response = Unirest.post("https://api.corbit.sa/wa/api/v1/messages")
  .header("Authorization", "Bearer YOUR_API_TOKEN")
  .header("Content-Type", "application/json")
  .body("{\n  \"to\": \"966XXXXXXXXX\",\n  \"text\": \"Hello from Corbit\"\n}")
  .asString();
System.out.println(response.getBody());
var settings = {
  "url": "https://api.corbit.sa/wa/api/v1/messages",
  "method": "POST",
  "timeout": 0,
  "headers": {
    "Authorization": "Bearer YOUR_API_TOKEN",
    "Content-Type": "application/json"
  },
  "data": JSON.stringify({
    "to": "966XXXXXXXXX",
    "text": "Hello from Corbit"
  }),
};

$.ajax(settings).done(function (response) {
  console.log(response);
});
var data = JSON.stringify({
  "to": "966XXXXXXXXX",
  "text": "Hello from Corbit"
});

var xhr = new XMLHttpRequest();
xhr.addEventListener("readystatechange", function () {
  if (this.readyState === 4) {
    console.log(this.responseText);
  }
});

xhr.open("POST", "https://api.corbit.sa/wa/api/v1/messages");
xhr.setRequestHeader("Authorization", "Bearer YOUR_API_TOKEN");
xhr.setRequestHeader("Content-Type", "application/json");
xhr.send(data);
const axios = require('axios');

const config = {
  method: 'post',
  url: 'https://api.corbit.sa/wa/api/v1/messages',
  headers: {
    "Authorization": "Bearer YOUR_API_TOKEN",
    "Content-Type": "application/json"
  },
  data: {
    "to": "966XXXXXXXXX",
    "text": "Hello from Corbit"
  },
};

axios.request(config)
  .then((response) => console.log(JSON.stringify(response.data)))
  .catch((error) => console.log(error));
const https = require('https');

const options = {
  method: 'POST',
  hostname: 'api.corbit.sa',
  path: '/wa/api/v1/messages',
  headers: {
    "Authorization": "Bearer YOUR_API_TOKEN",
    "Content-Type": "application/json"
  },
};

const req = https.request(options, (res) => {
  const chunks = [];
  res.on('data', (chunk) => chunks.push(chunk));
  res.on('end', () => console.log(Buffer.concat(chunks).toString()));
});

req.write(JSON.stringify({
  "to": "966XXXXXXXXX",
  "text": "Hello from Corbit"
}));
req.end();
var unirest = require('unirest');

unirest('POST', 'https://api.corbit.sa/wa/api/v1/messages')
  .headers({
    "Authorization": "Bearer YOUR_API_TOKEN",
    "Content-Type": "application/json"
  })
  .send(JSON.stringify({
    "to": "966XXXXXXXXX",
    "text": "Hello from Corbit"
  }))
  .end(function (res) {
    if (res.error) throw new Error(res.error);
    console.log(res.raw_body);
  });
#import <Foundation/Foundation.h>

dispatch_semaphore_t sema = dispatch_semaphore_create(0);

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"https://api.corbit.sa/wa/api/v1/messages"]
  cachePolicy:NSURLRequestUseProtocolCachePolicy
  timeoutInterval:30.0];
NSDictionary *headers = @{
  @"Authorization": @"Bearer YOUR_API_TOKEN",
  @"Content-Type": @"application/json"
};
[request setAllHTTPHeaderFields:headers];
request.HTTPBody = [@"{\n  \"to\": \"966XXXXXXXXX\",\n  \"text\": \"Hello from Corbit\"\n}" dataUsingEncoding:NSUTF8StringEncoding];
[request setHTTPMethod:@"POST"];

NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *dataTask = [session dataTaskWithRequest:request
  completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
    if (error) {
      NSLog(@"%@", error);
    } else {
      NSLog(@"%@", [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]);
    }
    dispatch_semaphore_signal(sema);
  }];
[dataTask resume];
dispatch_semaphore_wait(sema, DISPATCH_TIME_FOREVER);
open Lwt
open Cohttp
open Cohttp_lwt_unix

let uri = Uri.of_string "https://api.corbit.sa/wa/api/v1/messages"
let headers = Header.of_list [
    ("Authorization", "Bearer YOUR_API_TOKEN");
    ("Content-Type", "application/json");
]
let body = Cohttp_lwt.Body.of_string "{\n  \"to\": \"966XXXXXXXXX\",\n  \"text\": \"Hello from Corbit\"\n}"

let () = Lwt_main.run (
  Client.call ~headers ~body `POST uri >>= fun (_, body) ->
  Cohttp_lwt.Body.to_string body >|= fun s -> print_endline s)
<?php
$client = new GuzzleHttp\Client();
$headers = [
    'Authorization' => 'Bearer YOUR_API_TOKEN',
    'Content-Type' => 'application/json',
];
$body = '{
  "to": "966XXXXXXXXX",
  "text": "Hello from Corbit"
}';
$request = new GuzzleHttp\Psr7\Request('POST', 'https://api.corbit.sa/wa/api/v1/messages', $headers, $body);
$res = $client->sendAsync($request)->wait();
echo $res->getBody();
<?php
require_once 'HTTP/Request2.php';

$request = new HTTP_Request2();
$request->setUrl('https://api.corbit.sa/wa/api/v1/messages');
$request->setMethod(HTTP_Request2::METHOD_POST);
$request->setConfig(array('follow_redirects' => TRUE));
$request->setHeader(array(
  'Authorization' => 'Bearer YOUR_API_TOKEN',
  'Content-Type' => 'application/json',
));
$request->setBody('{
  "to": "966XXXXXXXXX",
  "text": "Hello from Corbit"
}');
try {
  $response = $request->send();
  echo $response->getBody();
} catch (HTTP_Request2_Exception $e) {
  echo 'Error: ' . $e->getMessage();
}
<?php
$client = new http\Client;
$request = new http\Client\Request;
$request->setRequestUrl('https://api.corbit.sa/wa/api/v1/messages');
$request->setRequestMethod('POST');
$body = new http\Message\Body;
$body->append('{
  "to": "966XXXXXXXXX",
  "text": "Hello from Corbit"
}');
$request->setBody($body);
$request->setHeaders(array(
  'Authorization' => 'Bearer YOUR_API_TOKEN',
  'Content-Type' => 'application/json',
));
$client->enqueue($request)->send();
$response = $client->getResponse();
echo $response->getBody();
$headers = @{
    'Authorization' = 'Bearer YOUR_API_TOKEN'
    'Content-Type' = 'application/json'
}

$body = @'
{
  "to": "966XXXXXXXXX",
  "text": "Hello from Corbit"
}
'@

$response = Invoke-RestMethod 'https://api.corbit.sa/wa/api/v1/messages' -Method 'POST' -Headers $headers -Body $body
$response | ConvertTo-Json -Depth 10
import http.client
import json

conn = http.client.HTTPSConnection("api.corbit.sa")
payload = json.dumps({
    "to": "966XXXXXXXXX",
    "text": "Hello from Corbit"
})
headers = {
    "Authorization": "Bearer YOUR_API_TOKEN",
    "Content-Type": "application/json",
}
conn.request("POST", "/wa/api/v1/messages", payload, headers)
res = conn.getresponse()
print(res.read().decode("utf-8"))
library(httr)

headers = c(
  'Authorization' = 'Bearer YOUR_API_TOKEN',
  'Content-Type' = 'application/json'
)

body = '{
  "to": "966XXXXXXXXX",
  "text": "Hello from Corbit"
}'

res <- VERB("POST", url = "https://api.corbit.sa/wa/api/v1/messages", body = body, add_headers(headers))

cat(content(res, 'text'))
library(RCurl)

headers = c(
  'Authorization' = 'Bearer YOUR_API_TOKEN',
  'Content-Type' = 'application/json'
)

params = '{
  "to": "966XXXXXXXXX",
  "text": "Hello from Corbit"
}'

res <- getURLContent("https://api.corbit.sa/wa/api/v1/messages", customrequest = "POST", postfields = params, httpheader = headers, followlocation = TRUE)

cat(res)
require "uri"
require "net/http"

url = URI("https://api.corbit.sa/wa/api/v1/messages")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)
request["Authorization"] = "Bearer YOUR_API_TOKEN"
request["Content-Type"] = "application/json"
request.body = <<~'JSON'
{
  "to": "966XXXXXXXXX",
  "text": "Hello from Corbit"
}
JSON

response = http.request(request)
puts response.read_body
printf '%s' '{
  "to": "966XXXXXXXXX",
  "text": "Hello from Corbit"
}' | \
http --follow --timeout 3600 POST 'https://api.corbit.sa/wa/api/v1/messages' \
  'Authorization:Bearer YOUR_API_TOKEN' \
  'Content-Type:application/json'
wget --quiet -O - \
  --method POST \
  --header 'Authorization: Bearer YOUR_API_TOKEN' \
  --header 'Content-Type: application/json' \
  --body-data '{
  "to": "966XXXXXXXXX",
  "text": "Hello from Corbit"
}' \
  'https://api.corbit.sa/wa/api/v1/messages'
import Foundation
#if canImport(FoundationNetworking)
import FoundationNetworking
#endif

let semaphore = DispatchSemaphore(value: 0)

var request = URLRequest(url: URL(string: "https://api.corbit.sa/wa/api/v1/messages")!, timeoutInterval: 30)
request.httpMethod = "POST"
request.addValue("Bearer YOUR_API_TOKEN", forHTTPHeaderField: "Authorization")
request.addValue("application/json", forHTTPHeaderField: "Content-Type")
request.httpBody = "{\"to\":\"966XXXXXXXXX\",\"text\":\"Hello from Corbit\"}".data(using: .utf8)

let task = URLSession.shared.dataTask(with: request) { data, response, error in
  if let data = data {
    print(String(data: data, encoding: .utf8) ?? "")
  } else {
    print(String(describing: error))
  }
  semaphore.signal()
}
task.resume()
semaphore.wait()

Responsesالردود

202Acceptedتم القبول
{
  "success": true,
  "message": "Message accepted",
  "data": {
    "message_id": "01a069b6-224d-71b7-8d97-721a8baec292",
    "conversation_id": "01a06995-a665-70b5-a5f3-65cfba790a11",
    "type": "text",
    "status": "sent"
  }
}
GET/wa/api/v1/contacts

List contactsقائمة جهات الاتصال

Lists your WhatsApp contacts (paginated).

يعرض جهات اتصال واتساب الخاصة بك (مقسّمة إلى صفحات).

Authentication: Bearer tokenالمصادقة: توكن Bearer

Parametersالمعاملات

limitoptionalاختياري
queryرابط · integer

Page size.

عدد النتائج في الصفحة.

pageoptionalاختياري
queryرابط · integer

Page number.

رقم الصفحة.

Requestمثال الطلب

curl 'https://api.corbit.sa/wa/api/v1/contacts?limit=YOUR_LIMIT&page=YOUR_PAGE' \
  -H 'Authorization: Bearer YOUR_API_TOKEN'
const response = await fetch("https://api.corbit.sa/wa/api/v1/contacts?limit=YOUR_LIMIT&page=YOUR_PAGE", {
  method: "GET",
  headers: {
    "Authorization": "Bearer YOUR_API_TOKEN"
  }
});
const data = await response.json();
console.log(data);
import requests

response = requests.get(
    "https://api.corbit.sa/wa/api/v1/contacts?limit=YOUR_LIMIT&page=YOUR_PAGE",
    headers={"Authorization": "Bearer YOUR_API_TOKEN"},
)
print(response.json())
<?php
$ch = curl_init('https://api.corbit.sa/wa/api/v1/contacts?limit=YOUR_LIMIT&page=YOUR_PAGE');
curl_setopt_array($ch, [
    CURLOPT_CUSTOMREQUEST => 'GET',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => [
        'Authorization: Bearer YOUR_API_TOKEN',
    ],
]);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
#include <stdio.h>
#include <curl/curl.h>

int main(void) {
  CURL *curl = curl_easy_init();
  if (curl) {
    struct curl_slist *headers = NULL;
    headers = curl_slist_append(headers, "Authorization: Bearer YOUR_API_TOKEN");
    curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
    curl_easy_setopt(curl, CURLOPT_URL, "https://api.corbit.sa/wa/api/v1/contacts?limit=YOUR_LIMIT&page=YOUR_PAGE");
    curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
    CURLcode res = curl_easy_perform(curl);
    if (res != CURLE_OK) fprintf(stderr, "curl error: %s\n", curl_easy_strerror(res));
    curl_slist_free_all(headers);
    curl_easy_cleanup(curl);
  }
  return 0;
}
using System;
using System.Net.Http;
using System.Text;

var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Get, "https://api.corbit.sa/wa/api/v1/contacts?limit=YOUR_LIMIT&page=YOUR_PAGE");
request.Headers.Add("Authorization", "Bearer YOUR_API_TOKEN");
var response = await client.SendAsync(request);
Console.WriteLine(await response.Content.ReadAsStringAsync());
using System;
using RestSharp;

var client = new RestClient("https://api.corbit.sa/wa/api/v1/contacts?limit=YOUR_LIMIT&page=YOUR_PAGE");
var request = new RestRequest("", Method.Get);
request.AddHeader("Authorization", "Bearer YOUR_API_TOKEN");
RestResponse response = await client.ExecuteAsync(request);
Console.WriteLine(response.Content);
import 'package:http/http.dart' as http;

void main() async {
  final response = await http.get(
    Uri.parse("https://api.corbit.sa/wa/api/v1/contacts?limit=YOUR_LIMIT&page=YOUR_PAGE"),
    headers: {
      "Authorization": "Bearer YOUR_API_TOKEN",
    },
  );
  print(response.body);
}
package main

import (
	"fmt"
	"io"
	"net/http"
)

func main() {
	req, err := http.NewRequest("GET", "https://api.corbit.sa/wa/api/v1/contacts?limit=YOUR_LIMIT&page=YOUR_PAGE", nil)
	if err != nil {
		fmt.Println(err)
		return
	}
	req.Header.Add("Authorization", "Bearer YOUR_API_TOKEN")
	res, err := http.DefaultClient.Do(req)
	if err != nil {
		fmt.Println(err)
		return
	}
	defer res.Body.Close()

	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
GET /wa/api/v1/contacts?limit=YOUR_LIMIT&page=YOUR_PAGE HTTP/1.1
Host: api.corbit.sa
Authorization: Bearer YOUR_API_TOKEN
OkHttpClient client = new OkHttpClient().newBuilder().build();
Request request = new Request.Builder()
  .url("https://api.corbit.sa/wa/api/v1/contacts?limit=YOUR_LIMIT&page=YOUR_PAGE")
  .method("GET", null)
  .addHeader("Authorization", "Bearer YOUR_API_TOKEN")
  .build();
Response response = client.newCall(request).execute();
System.out.println(response.body().string());
HttpResponse<String> response = Unirest.get("https://api.corbit.sa/wa/api/v1/contacts?limit=YOUR_LIMIT&page=YOUR_PAGE")
  .header("Authorization", "Bearer YOUR_API_TOKEN")
  .asString();
System.out.println(response.getBody());
var settings = {
  "url": "https://api.corbit.sa/wa/api/v1/contacts?limit=YOUR_LIMIT&page=YOUR_PAGE",
  "method": "GET",
  "timeout": 0,
  "headers": {
    "Authorization": "Bearer YOUR_API_TOKEN"
  },
};

$.ajax(settings).done(function (response) {
  console.log(response);
});
var xhr = new XMLHttpRequest();
xhr.addEventListener("readystatechange", function () {
  if (this.readyState === 4) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://api.corbit.sa/wa/api/v1/contacts?limit=YOUR_LIMIT&page=YOUR_PAGE");
xhr.setRequestHeader("Authorization", "Bearer YOUR_API_TOKEN");
xhr.send();
const axios = require('axios');

const config = {
  method: 'get',
  url: 'https://api.corbit.sa/wa/api/v1/contacts?limit=YOUR_LIMIT&page=YOUR_PAGE',
  headers: {
    "Authorization": "Bearer YOUR_API_TOKEN"
  },
};

axios.request(config)
  .then((response) => console.log(JSON.stringify(response.data)))
  .catch((error) => console.log(error));
const https = require('https');

const options = {
  method: 'GET',
  hostname: 'api.corbit.sa',
  path: '/wa/api/v1/contacts?limit=YOUR_LIMIT&page=YOUR_PAGE',
  headers: {
    "Authorization": "Bearer YOUR_API_TOKEN"
  },
};

const req = https.request(options, (res) => {
  const chunks = [];
  res.on('data', (chunk) => chunks.push(chunk));
  res.on('end', () => console.log(Buffer.concat(chunks).toString()));
});

req.end();
var unirest = require('unirest');

unirest('GET', 'https://api.corbit.sa/wa/api/v1/contacts?limit=YOUR_LIMIT&page=YOUR_PAGE')
  .headers({
    "Authorization": "Bearer YOUR_API_TOKEN"
  })
  .end(function (res) {
    if (res.error) throw new Error(res.error);
    console.log(res.raw_body);
  });
#import <Foundation/Foundation.h>

dispatch_semaphore_t sema = dispatch_semaphore_create(0);

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"https://api.corbit.sa/wa/api/v1/contacts?limit=YOUR_LIMIT&page=YOUR_PAGE"]
  cachePolicy:NSURLRequestUseProtocolCachePolicy
  timeoutInterval:30.0];
NSDictionary *headers = @{
  @"Authorization": @"Bearer YOUR_API_TOKEN"
};
[request setAllHTTPHeaderFields:headers];
[request setHTTPMethod:@"GET"];

NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *dataTask = [session dataTaskWithRequest:request
  completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
    if (error) {
      NSLog(@"%@", error);
    } else {
      NSLog(@"%@", [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]);
    }
    dispatch_semaphore_signal(sema);
  }];
[dataTask resume];
dispatch_semaphore_wait(sema, DISPATCH_TIME_FOREVER);
open Lwt
open Cohttp
open Cohttp_lwt_unix

let uri = Uri.of_string "https://api.corbit.sa/wa/api/v1/contacts?limit=YOUR_LIMIT&page=YOUR_PAGE"
let headers = Header.of_list [
    ("Authorization", "Bearer YOUR_API_TOKEN");
]

let () = Lwt_main.run (
  Client.call ~headers `GET uri >>= fun (_, body) ->
  Cohttp_lwt.Body.to_string body >|= fun s -> print_endline s)
<?php
$client = new GuzzleHttp\Client();
$headers = [
    'Authorization' => 'Bearer YOUR_API_TOKEN',
];
$request = new GuzzleHttp\Psr7\Request('GET', 'https://api.corbit.sa/wa/api/v1/contacts?limit=YOUR_LIMIT&page=YOUR_PAGE', $headers);
$res = $client->sendAsync($request)->wait();
echo $res->getBody();
<?php
require_once 'HTTP/Request2.php';

$request = new HTTP_Request2();
$request->setUrl('https://api.corbit.sa/wa/api/v1/contacts?limit=YOUR_LIMIT&page=YOUR_PAGE');
$request->setMethod(HTTP_Request2::METHOD_GET);
$request->setConfig(array('follow_redirects' => TRUE));
$request->setHeader(array(
  'Authorization' => 'Bearer YOUR_API_TOKEN',
));
try {
  $response = $request->send();
  echo $response->getBody();
} catch (HTTP_Request2_Exception $e) {
  echo 'Error: ' . $e->getMessage();
}
<?php
$client = new http\Client;
$request = new http\Client\Request;
$request->setRequestUrl('https://api.corbit.sa/wa/api/v1/contacts?limit=YOUR_LIMIT&page=YOUR_PAGE');
$request->setRequestMethod('GET');
$request->setHeaders(array(
  'Authorization' => 'Bearer YOUR_API_TOKEN',
));
$client->enqueue($request)->send();
$response = $client->getResponse();
echo $response->getBody();
$headers = @{
    'Authorization' = 'Bearer YOUR_API_TOKEN'
}

$response = Invoke-RestMethod 'https://api.corbit.sa/wa/api/v1/contacts?limit=YOUR_LIMIT&page=YOUR_PAGE' -Method 'GET' -Headers $headers
$response | ConvertTo-Json -Depth 10
import http.client
import json

conn = http.client.HTTPSConnection("api.corbit.sa")
headers = {
    "Authorization": "Bearer YOUR_API_TOKEN",
}
conn.request("GET", "/wa/api/v1/contacts?limit=YOUR_LIMIT&page=YOUR_PAGE", headers)
res = conn.getresponse()
print(res.read().decode("utf-8"))
library(httr)

headers = c(
  'Authorization' = 'Bearer YOUR_API_TOKEN'
)

res <- VERB("GET", url = "https://api.corbit.sa/wa/api/v1/contacts?limit=YOUR_LIMIT&page=YOUR_PAGE", add_headers(headers))

cat(content(res, 'text'))
library(RCurl)

headers = c(
  'Authorization' = 'Bearer YOUR_API_TOKEN'
)

res <- getURLContent("https://api.corbit.sa/wa/api/v1/contacts?limit=YOUR_LIMIT&page=YOUR_PAGE", customrequest = "GET", httpheader = headers, followlocation = TRUE)

cat(res)
require "uri"
require "net/http"

url = URI("https://api.corbit.sa/wa/api/v1/contacts?limit=YOUR_LIMIT&page=YOUR_PAGE")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)
request["Authorization"] = "Bearer YOUR_API_TOKEN"

response = http.request(request)
puts response.read_body
http --follow --timeout 3600 GET 'https://api.corbit.sa/wa/api/v1/contacts?limit=YOUR_LIMIT&page=YOUR_PAGE' \
  'Authorization:Bearer YOUR_API_TOKEN'
wget --quiet -O - \
  --method GET \
  --header 'Authorization: Bearer YOUR_API_TOKEN' \
  'https://api.corbit.sa/wa/api/v1/contacts?limit=YOUR_LIMIT&page=YOUR_PAGE'
import Foundation
#if canImport(FoundationNetworking)
import FoundationNetworking
#endif

let semaphore = DispatchSemaphore(value: 0)

var request = URLRequest(url: URL(string: "https://api.corbit.sa/wa/api/v1/contacts?limit=YOUR_LIMIT&page=YOUR_PAGE")!, timeoutInterval: 30)
request.httpMethod = "GET"
request.addValue("Bearer YOUR_API_TOKEN", forHTTPHeaderField: "Authorization")

let task = URLSession.shared.dataTask(with: request) { data, response, error in
  if let data = data {
    print(String(data: data, encoding: .utf8) ?? "")
  } else {
    print(String(describing: error))
  }
  semaphore.signal()
}
task.resume()
semaphore.wait()

Responsesالردود

200OKناجح
{
  "success": true,
  "message": "OK",
  "data": {
    "data": [
      {
        "id": "01a0699e-…",
        "name": "966XXXXXXXXX",
        "country": "SA",
        "status": "active"
      }
    ],
    "meta": {
      "current_page": 1,
      "per_page": 2,
      "total": 3208
    }
  }
}
GET/wa/api/v1/conversations

List conversationsقائمة المحادثات

Lists your WhatsApp conversations (paginated).

يعرض محادثات واتساب الخاصة بك (مقسّمة إلى صفحات).

Authentication: Bearer tokenالمصادقة: توكن Bearer

Parametersالمعاملات

statusoptionalاختياري
queryرابط · string

Filter by conversation status.

تصفية حسب حالة المحادثة.

limitoptionalاختياري
queryرابط · integer

Page size.

عدد النتائج في الصفحة.

Requestمثال الطلب

curl 'https://api.corbit.sa/wa/api/v1/conversations?status=YOUR_STATUS&limit=YOUR_LIMIT' \
  -H 'Authorization: Bearer YOUR_API_TOKEN'
const response = await fetch("https://api.corbit.sa/wa/api/v1/conversations?status=YOUR_STATUS&limit=YOUR_LIMIT", {
  method: "GET",
  headers: {
    "Authorization": "Bearer YOUR_API_TOKEN"
  }
});
const data = await response.json();
console.log(data);
import requests

response = requests.get(
    "https://api.corbit.sa/wa/api/v1/conversations?status=YOUR_STATUS&limit=YOUR_LIMIT",
    headers={"Authorization": "Bearer YOUR_API_TOKEN"},
)
print(response.json())
<?php
$ch = curl_init('https://api.corbit.sa/wa/api/v1/conversations?status=YOUR_STATUS&limit=YOUR_LIMIT');
curl_setopt_array($ch, [
    CURLOPT_CUSTOMREQUEST => 'GET',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => [
        'Authorization: Bearer YOUR_API_TOKEN',
    ],
]);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
#include <stdio.h>
#include <curl/curl.h>

int main(void) {
  CURL *curl = curl_easy_init();
  if (curl) {
    struct curl_slist *headers = NULL;
    headers = curl_slist_append(headers, "Authorization: Bearer YOUR_API_TOKEN");
    curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
    curl_easy_setopt(curl, CURLOPT_URL, "https://api.corbit.sa/wa/api/v1/conversations?status=YOUR_STATUS&limit=YOUR_LIMIT");
    curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
    CURLcode res = curl_easy_perform(curl);
    if (res != CURLE_OK) fprintf(stderr, "curl error: %s\n", curl_easy_strerror(res));
    curl_slist_free_all(headers);
    curl_easy_cleanup(curl);
  }
  return 0;
}
using System;
using System.Net.Http;
using System.Text;

var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Get, "https://api.corbit.sa/wa/api/v1/conversations?status=YOUR_STATUS&limit=YOUR_LIMIT");
request.Headers.Add("Authorization", "Bearer YOUR_API_TOKEN");
var response = await client.SendAsync(request);
Console.WriteLine(await response.Content.ReadAsStringAsync());
using System;
using RestSharp;

var client = new RestClient("https://api.corbit.sa/wa/api/v1/conversations?status=YOUR_STATUS&limit=YOUR_LIMIT");
var request = new RestRequest("", Method.Get);
request.AddHeader("Authorization", "Bearer YOUR_API_TOKEN");
RestResponse response = await client.ExecuteAsync(request);
Console.WriteLine(response.Content);
import 'package:http/http.dart' as http;

void main() async {
  final response = await http.get(
    Uri.parse("https://api.corbit.sa/wa/api/v1/conversations?status=YOUR_STATUS&limit=YOUR_LIMIT"),
    headers: {
      "Authorization": "Bearer YOUR_API_TOKEN",
    },
  );
  print(response.body);
}
package main

import (
	"fmt"
	"io"
	"net/http"
)

func main() {
	req, err := http.NewRequest("GET", "https://api.corbit.sa/wa/api/v1/conversations?status=YOUR_STATUS&limit=YOUR_LIMIT", nil)
	if err != nil {
		fmt.Println(err)
		return
	}
	req.Header.Add("Authorization", "Bearer YOUR_API_TOKEN")
	res, err := http.DefaultClient.Do(req)
	if err != nil {
		fmt.Println(err)
		return
	}
	defer res.Body.Close()

	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
GET /wa/api/v1/conversations?status=YOUR_STATUS&limit=YOUR_LIMIT HTTP/1.1
Host: api.corbit.sa
Authorization: Bearer YOUR_API_TOKEN
OkHttpClient client = new OkHttpClient().newBuilder().build();
Request request = new Request.Builder()
  .url("https://api.corbit.sa/wa/api/v1/conversations?status=YOUR_STATUS&limit=YOUR_LIMIT")
  .method("GET", null)
  .addHeader("Authorization", "Bearer YOUR_API_TOKEN")
  .build();
Response response = client.newCall(request).execute();
System.out.println(response.body().string());
HttpResponse<String> response = Unirest.get("https://api.corbit.sa/wa/api/v1/conversations?status=YOUR_STATUS&limit=YOUR_LIMIT")
  .header("Authorization", "Bearer YOUR_API_TOKEN")
  .asString();
System.out.println(response.getBody());
var settings = {
  "url": "https://api.corbit.sa/wa/api/v1/conversations?status=YOUR_STATUS&limit=YOUR_LIMIT",
  "method": "GET",
  "timeout": 0,
  "headers": {
    "Authorization": "Bearer YOUR_API_TOKEN"
  },
};

$.ajax(settings).done(function (response) {
  console.log(response);
});
var xhr = new XMLHttpRequest();
xhr.addEventListener("readystatechange", function () {
  if (this.readyState === 4) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://api.corbit.sa/wa/api/v1/conversations?status=YOUR_STATUS&limit=YOUR_LIMIT");
xhr.setRequestHeader("Authorization", "Bearer YOUR_API_TOKEN");
xhr.send();
const axios = require('axios');

const config = {
  method: 'get',
  url: 'https://api.corbit.sa/wa/api/v1/conversations?status=YOUR_STATUS&limit=YOUR_LIMIT',
  headers: {
    "Authorization": "Bearer YOUR_API_TOKEN"
  },
};

axios.request(config)
  .then((response) => console.log(JSON.stringify(response.data)))
  .catch((error) => console.log(error));
const https = require('https');

const options = {
  method: 'GET',
  hostname: 'api.corbit.sa',
  path: '/wa/api/v1/conversations?status=YOUR_STATUS&limit=YOUR_LIMIT',
  headers: {
    "Authorization": "Bearer YOUR_API_TOKEN"
  },
};

const req = https.request(options, (res) => {
  const chunks = [];
  res.on('data', (chunk) => chunks.push(chunk));
  res.on('end', () => console.log(Buffer.concat(chunks).toString()));
});

req.end();
var unirest = require('unirest');

unirest('GET', 'https://api.corbit.sa/wa/api/v1/conversations?status=YOUR_STATUS&limit=YOUR_LIMIT')
  .headers({
    "Authorization": "Bearer YOUR_API_TOKEN"
  })
  .end(function (res) {
    if (res.error) throw new Error(res.error);
    console.log(res.raw_body);
  });
#import <Foundation/Foundation.h>

dispatch_semaphore_t sema = dispatch_semaphore_create(0);

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"https://api.corbit.sa/wa/api/v1/conversations?status=YOUR_STATUS&limit=YOUR_LIMIT"]
  cachePolicy:NSURLRequestUseProtocolCachePolicy
  timeoutInterval:30.0];
NSDictionary *headers = @{
  @"Authorization": @"Bearer YOUR_API_TOKEN"
};
[request setAllHTTPHeaderFields:headers];
[request setHTTPMethod:@"GET"];

NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *dataTask = [session dataTaskWithRequest:request
  completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
    if (error) {
      NSLog(@"%@", error);
    } else {
      NSLog(@"%@", [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]);
    }
    dispatch_semaphore_signal(sema);
  }];
[dataTask resume];
dispatch_semaphore_wait(sema, DISPATCH_TIME_FOREVER);
open Lwt
open Cohttp
open Cohttp_lwt_unix

let uri = Uri.of_string "https://api.corbit.sa/wa/api/v1/conversations?status=YOUR_STATUS&limit=YOUR_LIMIT"
let headers = Header.of_list [
    ("Authorization", "Bearer YOUR_API_TOKEN");
]

let () = Lwt_main.run (
  Client.call ~headers `GET uri >>= fun (_, body) ->
  Cohttp_lwt.Body.to_string body >|= fun s -> print_endline s)
<?php
$client = new GuzzleHttp\Client();
$headers = [
    'Authorization' => 'Bearer YOUR_API_TOKEN',
];
$request = new GuzzleHttp\Psr7\Request('GET', 'https://api.corbit.sa/wa/api/v1/conversations?status=YOUR_STATUS&limit=YOUR_LIMIT', $headers);
$res = $client->sendAsync($request)->wait();
echo $res->getBody();
<?php
require_once 'HTTP/Request2.php';

$request = new HTTP_Request2();
$request->setUrl('https://api.corbit.sa/wa/api/v1/conversations?status=YOUR_STATUS&limit=YOUR_LIMIT');
$request->setMethod(HTTP_Request2::METHOD_GET);
$request->setConfig(array('follow_redirects' => TRUE));
$request->setHeader(array(
  'Authorization' => 'Bearer YOUR_API_TOKEN',
));
try {
  $response = $request->send();
  echo $response->getBody();
} catch (HTTP_Request2_Exception $e) {
  echo 'Error: ' . $e->getMessage();
}
<?php
$client = new http\Client;
$request = new http\Client\Request;
$request->setRequestUrl('https://api.corbit.sa/wa/api/v1/conversations?status=YOUR_STATUS&limit=YOUR_LIMIT');
$request->setRequestMethod('GET');
$request->setHeaders(array(
  'Authorization' => 'Bearer YOUR_API_TOKEN',
));
$client->enqueue($request)->send();
$response = $client->getResponse();
echo $response->getBody();
$headers = @{
    'Authorization' = 'Bearer YOUR_API_TOKEN'
}

$response = Invoke-RestMethod 'https://api.corbit.sa/wa/api/v1/conversations?status=YOUR_STATUS&limit=YOUR_LIMIT' -Method 'GET' -Headers $headers
$response | ConvertTo-Json -Depth 10
import http.client
import json

conn = http.client.HTTPSConnection("api.corbit.sa")
headers = {
    "Authorization": "Bearer YOUR_API_TOKEN",
}
conn.request("GET", "/wa/api/v1/conversations?status=YOUR_STATUS&limit=YOUR_LIMIT", headers)
res = conn.getresponse()
print(res.read().decode("utf-8"))
library(httr)

headers = c(
  'Authorization' = 'Bearer YOUR_API_TOKEN'
)

res <- VERB("GET", url = "https://api.corbit.sa/wa/api/v1/conversations?status=YOUR_STATUS&limit=YOUR_LIMIT", add_headers(headers))

cat(content(res, 'text'))
library(RCurl)

headers = c(
  'Authorization' = 'Bearer YOUR_API_TOKEN'
)

res <- getURLContent("https://api.corbit.sa/wa/api/v1/conversations?status=YOUR_STATUS&limit=YOUR_LIMIT", customrequest = "GET", httpheader = headers, followlocation = TRUE)

cat(res)
require "uri"
require "net/http"

url = URI("https://api.corbit.sa/wa/api/v1/conversations?status=YOUR_STATUS&limit=YOUR_LIMIT")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)
request["Authorization"] = "Bearer YOUR_API_TOKEN"

response = http.request(request)
puts response.read_body
http --follow --timeout 3600 GET 'https://api.corbit.sa/wa/api/v1/conversations?status=YOUR_STATUS&limit=YOUR_LIMIT' \
  'Authorization:Bearer YOUR_API_TOKEN'
wget --quiet -O - \
  --method GET \
  --header 'Authorization: Bearer YOUR_API_TOKEN' \
  'https://api.corbit.sa/wa/api/v1/conversations?status=YOUR_STATUS&limit=YOUR_LIMIT'
import Foundation
#if canImport(FoundationNetworking)
import FoundationNetworking
#endif

let semaphore = DispatchSemaphore(value: 0)

var request = URLRequest(url: URL(string: "https://api.corbit.sa/wa/api/v1/conversations?status=YOUR_STATUS&limit=YOUR_LIMIT")!, timeoutInterval: 30)
request.httpMethod = "GET"
request.addValue("Bearer YOUR_API_TOKEN", forHTTPHeaderField: "Authorization")

let task = URLSession.shared.dataTask(with: request) { data, response, error in
  if let data = data {
    print(String(data: data, encoding: .utf8) ?? "")
  } else {
    print(String(describing: error))
  }
  semaphore.signal()
}
task.resume()
semaphore.wait()

Responsesالردود

200OKناجح
{
  "success": true,
  "message": "OK",
  "data": {
    "data": [
      {
        "id": "01a06995-…",
        "status": "open",
        "channel": "whatsapp",
        "priority": "medium",
        "unread_count": 0
      }
    ],
    "meta": {
      "current_page": 1,
      "per_page": 1,
      "total": 50
    }
  }
}

Gateway servicesخدمات البوابة

Message templates with merge fields, personalized bulk sends, and usage information. Authenticate with your SMS Bearer token.

قوالب الرسائل مع حقول الدمج، والإرسال الجماعي المخصّص، ومعلومات الاستخدام. تتم المصادقة بتوكن SMS الخاص بك.

GET/gateway/v1/templates

List message templatesقائمة قوالب الرسائل

Lists your saved message templates.

يعرض قوالب الرسائل المحفوظة لديك.

Authentication: Bearer tokenالمصادقة: توكن Bearer

Requestمثال الطلب

curl 'https://api.corbit.sa/gateway/v1/templates' \
  -H 'Authorization: Bearer YOUR_API_TOKEN'
const response = await fetch("https://api.corbit.sa/gateway/v1/templates", {
  method: "GET",
  headers: {
    "Authorization": "Bearer YOUR_API_TOKEN"
  }
});
const data = await response.json();
console.log(data);
import requests

response = requests.get(
    "https://api.corbit.sa/gateway/v1/templates",
    headers={"Authorization": "Bearer YOUR_API_TOKEN"},
)
print(response.json())
<?php
$ch = curl_init('https://api.corbit.sa/gateway/v1/templates');
curl_setopt_array($ch, [
    CURLOPT_CUSTOMREQUEST => 'GET',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => [
        'Authorization: Bearer YOUR_API_TOKEN',
    ],
]);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
#include <stdio.h>
#include <curl/curl.h>

int main(void) {
  CURL *curl = curl_easy_init();
  if (curl) {
    struct curl_slist *headers = NULL;
    headers = curl_slist_append(headers, "Authorization: Bearer YOUR_API_TOKEN");
    curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
    curl_easy_setopt(curl, CURLOPT_URL, "https://api.corbit.sa/gateway/v1/templates");
    curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
    CURLcode res = curl_easy_perform(curl);
    if (res != CURLE_OK) fprintf(stderr, "curl error: %s\n", curl_easy_strerror(res));
    curl_slist_free_all(headers);
    curl_easy_cleanup(curl);
  }
  return 0;
}
using System;
using System.Net.Http;
using System.Text;

var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Get, "https://api.corbit.sa/gateway/v1/templates");
request.Headers.Add("Authorization", "Bearer YOUR_API_TOKEN");
var response = await client.SendAsync(request);
Console.WriteLine(await response.Content.ReadAsStringAsync());
using System;
using RestSharp;

var client = new RestClient("https://api.corbit.sa/gateway/v1/templates");
var request = new RestRequest("", Method.Get);
request.AddHeader("Authorization", "Bearer YOUR_API_TOKEN");
RestResponse response = await client.ExecuteAsync(request);
Console.WriteLine(response.Content);
import 'package:http/http.dart' as http;

void main() async {
  final response = await http.get(
    Uri.parse("https://api.corbit.sa/gateway/v1/templates"),
    headers: {
      "Authorization": "Bearer YOUR_API_TOKEN",
    },
  );
  print(response.body);
}
package main

import (
	"fmt"
	"io"
	"net/http"
)

func main() {
	req, err := http.NewRequest("GET", "https://api.corbit.sa/gateway/v1/templates", nil)
	if err != nil {
		fmt.Println(err)
		return
	}
	req.Header.Add("Authorization", "Bearer YOUR_API_TOKEN")
	res, err := http.DefaultClient.Do(req)
	if err != nil {
		fmt.Println(err)
		return
	}
	defer res.Body.Close()

	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
GET /gateway/v1/templates HTTP/1.1
Host: api.corbit.sa
Authorization: Bearer YOUR_API_TOKEN
OkHttpClient client = new OkHttpClient().newBuilder().build();
Request request = new Request.Builder()
  .url("https://api.corbit.sa/gateway/v1/templates")
  .method("GET", null)
  .addHeader("Authorization", "Bearer YOUR_API_TOKEN")
  .build();
Response response = client.newCall(request).execute();
System.out.println(response.body().string());
HttpResponse<String> response = Unirest.get("https://api.corbit.sa/gateway/v1/templates")
  .header("Authorization", "Bearer YOUR_API_TOKEN")
  .asString();
System.out.println(response.getBody());
var settings = {
  "url": "https://api.corbit.sa/gateway/v1/templates",
  "method": "GET",
  "timeout": 0,
  "headers": {
    "Authorization": "Bearer YOUR_API_TOKEN"
  },
};

$.ajax(settings).done(function (response) {
  console.log(response);
});
var xhr = new XMLHttpRequest();
xhr.addEventListener("readystatechange", function () {
  if (this.readyState === 4) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://api.corbit.sa/gateway/v1/templates");
xhr.setRequestHeader("Authorization", "Bearer YOUR_API_TOKEN");
xhr.send();
const axios = require('axios');

const config = {
  method: 'get',
  url: 'https://api.corbit.sa/gateway/v1/templates',
  headers: {
    "Authorization": "Bearer YOUR_API_TOKEN"
  },
};

axios.request(config)
  .then((response) => console.log(JSON.stringify(response.data)))
  .catch((error) => console.log(error));
const https = require('https');

const options = {
  method: 'GET',
  hostname: 'api.corbit.sa',
  path: '/gateway/v1/templates',
  headers: {
    "Authorization": "Bearer YOUR_API_TOKEN"
  },
};

const req = https.request(options, (res) => {
  const chunks = [];
  res.on('data', (chunk) => chunks.push(chunk));
  res.on('end', () => console.log(Buffer.concat(chunks).toString()));
});

req.end();
var unirest = require('unirest');

unirest('GET', 'https://api.corbit.sa/gateway/v1/templates')
  .headers({
    "Authorization": "Bearer YOUR_API_TOKEN"
  })
  .end(function (res) {
    if (res.error) throw new Error(res.error);
    console.log(res.raw_body);
  });
#import <Foundation/Foundation.h>

dispatch_semaphore_t sema = dispatch_semaphore_create(0);

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"https://api.corbit.sa/gateway/v1/templates"]
  cachePolicy:NSURLRequestUseProtocolCachePolicy
  timeoutInterval:30.0];
NSDictionary *headers = @{
  @"Authorization": @"Bearer YOUR_API_TOKEN"
};
[request setAllHTTPHeaderFields:headers];
[request setHTTPMethod:@"GET"];

NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *dataTask = [session dataTaskWithRequest:request
  completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
    if (error) {
      NSLog(@"%@", error);
    } else {
      NSLog(@"%@", [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]);
    }
    dispatch_semaphore_signal(sema);
  }];
[dataTask resume];
dispatch_semaphore_wait(sema, DISPATCH_TIME_FOREVER);
open Lwt
open Cohttp
open Cohttp_lwt_unix

let uri = Uri.of_string "https://api.corbit.sa/gateway/v1/templates"
let headers = Header.of_list [
    ("Authorization", "Bearer YOUR_API_TOKEN");
]

let () = Lwt_main.run (
  Client.call ~headers `GET uri >>= fun (_, body) ->
  Cohttp_lwt.Body.to_string body >|= fun s -> print_endline s)
<?php
$client = new GuzzleHttp\Client();
$headers = [
    'Authorization' => 'Bearer YOUR_API_TOKEN',
];
$request = new GuzzleHttp\Psr7\Request('GET', 'https://api.corbit.sa/gateway/v1/templates', $headers);
$res = $client->sendAsync($request)->wait();
echo $res->getBody();
<?php
require_once 'HTTP/Request2.php';

$request = new HTTP_Request2();
$request->setUrl('https://api.corbit.sa/gateway/v1/templates');
$request->setMethod(HTTP_Request2::METHOD_GET);
$request->setConfig(array('follow_redirects' => TRUE));
$request->setHeader(array(
  'Authorization' => 'Bearer YOUR_API_TOKEN',
));
try {
  $response = $request->send();
  echo $response->getBody();
} catch (HTTP_Request2_Exception $e) {
  echo 'Error: ' . $e->getMessage();
}
<?php
$client = new http\Client;
$request = new http\Client\Request;
$request->setRequestUrl('https://api.corbit.sa/gateway/v1/templates');
$request->setRequestMethod('GET');
$request->setHeaders(array(
  'Authorization' => 'Bearer YOUR_API_TOKEN',
));
$client->enqueue($request)->send();
$response = $client->getResponse();
echo $response->getBody();
$headers = @{
    'Authorization' = 'Bearer YOUR_API_TOKEN'
}

$response = Invoke-RestMethod 'https://api.corbit.sa/gateway/v1/templates' -Method 'GET' -Headers $headers
$response | ConvertTo-Json -Depth 10
import http.client
import json

conn = http.client.HTTPSConnection("api.corbit.sa")
headers = {
    "Authorization": "Bearer YOUR_API_TOKEN",
}
conn.request("GET", "/gateway/v1/templates", headers)
res = conn.getresponse()
print(res.read().decode("utf-8"))
library(httr)

headers = c(
  'Authorization' = 'Bearer YOUR_API_TOKEN'
)

res <- VERB("GET", url = "https://api.corbit.sa/gateway/v1/templates", add_headers(headers))

cat(content(res, 'text'))
library(RCurl)

headers = c(
  'Authorization' = 'Bearer YOUR_API_TOKEN'
)

res <- getURLContent("https://api.corbit.sa/gateway/v1/templates", customrequest = "GET", httpheader = headers, followlocation = TRUE)

cat(res)
require "uri"
require "net/http"

url = URI("https://api.corbit.sa/gateway/v1/templates")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)
request["Authorization"] = "Bearer YOUR_API_TOKEN"

response = http.request(request)
puts response.read_body
http --follow --timeout 3600 GET 'https://api.corbit.sa/gateway/v1/templates' \
  'Authorization:Bearer YOUR_API_TOKEN'
wget --quiet -O - \
  --method GET \
  --header 'Authorization: Bearer YOUR_API_TOKEN' \
  'https://api.corbit.sa/gateway/v1/templates'
import Foundation
#if canImport(FoundationNetworking)
import FoundationNetworking
#endif

let semaphore = DispatchSemaphore(value: 0)

var request = URLRequest(url: URL(string: "https://api.corbit.sa/gateway/v1/templates")!, timeoutInterval: 30)
request.httpMethod = "GET"
request.addValue("Bearer YOUR_API_TOKEN", forHTTPHeaderField: "Authorization")

let task = URLSession.shared.dataTask(with: request) { data, response, error in
  if let data = data {
    print(String(data: data, encoding: .utf8) ?? "")
  } else {
    print(String(describing: error))
  }
  semaphore.signal()
}
task.resume()
semaphore.wait()

Responsesالردود

200OKناجح
{
  "status": "Success",
  "data": [
    {
      "name": "otp",
      "text": "Hello {{name}}, your code is {{code}}",
      "updatedAt": "2026-09-18T10:00:00.000Z"
    }
  ]
}
PUT/gateway/v1/templates/{name}

Create or replace a templateإنشاء قالب أو استبداله

Saves a template. Use {{field}} or {{field|default}} for merge fields.

يحفظ قالبًا. استخدم {{field}} أو {{field|default}} لحقول الدمج.

Authentication: Bearer tokenالمصادقة: توكن Bearer

Parametersالمعاملات

namerequiredمطلوب
pathمسار · string

Template name: 1–64 letters, digits, _, . or -.

اسم القالب: من 1 إلى 64 حرفًا أو رقمًا أو _ أو . أو -.

textrequiredمطلوب
bodyجسم · string

Template text with {{field}} merge fields, up to 1600 characters.

نص القالب مع حقول الدمج {{field}}، حتى 1600 حرفًا.

Requestمثال الطلب

curl -X PUT 'https://api.corbit.sa/gateway/v1/templates/TEMPLATE_NAME' \
  -H 'Authorization: Bearer YOUR_API_TOKEN' \
  -H 'Content-Type: application/json' \
  -d '{
  "text": "Hello {{name}}, your code is {{code|0000}}"
}'
const response = await fetch("https://api.corbit.sa/gateway/v1/templates/TEMPLATE_NAME", {
  method: "PUT",
  headers: {
    "Authorization": "Bearer YOUR_API_TOKEN",
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
    "text": "Hello {{name}}, your code is {{code|0000}}"
  })
});
const data = await response.json();
console.log(data);
import requests

response = requests.put(
    "https://api.corbit.sa/gateway/v1/templates/TEMPLATE_NAME",
    headers={"Authorization": "Bearer YOUR_API_TOKEN"},
    json={
        "text": "Hello {{name}}, your code is {{code|0000}}"
    },
)
print(response.json())
<?php
$ch = curl_init('https://api.corbit.sa/gateway/v1/templates/TEMPLATE_NAME');
curl_setopt_array($ch, [
    CURLOPT_CUSTOMREQUEST => 'PUT',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => [
        'Authorization: Bearer YOUR_API_TOKEN',
        'Content-Type: application/json',
    ],
    CURLOPT_POSTFIELDS => json_encode([
        'text' => 'Hello {{name}}, your code is {{code|0000}}'
    ]),
]);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
#include <stdio.h>
#include <curl/curl.h>

int main(void) {
  CURL *curl = curl_easy_init();
  if (curl) {
    struct curl_slist *headers = NULL;
    headers = curl_slist_append(headers, "Authorization: Bearer YOUR_API_TOKEN");
    headers = curl_slist_append(headers, "Content-Type: application/json");
    curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "PUT");
    curl_easy_setopt(curl, CURLOPT_URL, "https://api.corbit.sa/gateway/v1/templates/TEMPLATE_NAME");
    curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
    curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\n  \"text\": \"Hello {{name}}, your code is {{code|0000}}\"\n}");
    CURLcode res = curl_easy_perform(curl);
    if (res != CURLE_OK) fprintf(stderr, "curl error: %s\n", curl_easy_strerror(res));
    curl_slist_free_all(headers);
    curl_easy_cleanup(curl);
  }
  return 0;
}
using System;
using System.Net.Http;
using System.Text;

var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Put, "https://api.corbit.sa/gateway/v1/templates/TEMPLATE_NAME");
request.Headers.Add("Authorization", "Bearer YOUR_API_TOKEN");
request.Content = new StringContent("{\n  \"text\": \"Hello {{name}}, your code is {{code|0000}}\"\n}", Encoding.UTF8, "application/json");
var response = await client.SendAsync(request);
Console.WriteLine(await response.Content.ReadAsStringAsync());
using System;
using RestSharp;

var client = new RestClient("https://api.corbit.sa/gateway/v1/templates/TEMPLATE_NAME");
var request = new RestRequest("", Method.Put);
request.AddHeader("Authorization", "Bearer YOUR_API_TOKEN");
request.AddStringBody("{\n  \"text\": \"Hello {{name}}, your code is {{code|0000}}\"\n}", DataFormat.Json);
RestResponse response = await client.ExecuteAsync(request);
Console.WriteLine(response.Content);
import 'package:http/http.dart' as http;

void main() async {
  final response = await http.put(
    Uri.parse("https://api.corbit.sa/gateway/v1/templates/TEMPLATE_NAME"),
    headers: {
      "Authorization": "Bearer YOUR_API_TOKEN",
      "Content-Type": "application/json",
    },
    body: "{\n  \"text\": \"Hello {{name}}, your code is {{code|0000}}\"\n}",
  );
  print(response.body);
}
package main

import (
	"fmt"
	"io"
	"net/http"
	"strings"
)

func main() {
	payload := strings.NewReader(`{
  "text": "Hello {{name}}, your code is {{code|0000}}"
}`)
	req, err := http.NewRequest("PUT", "https://api.corbit.sa/gateway/v1/templates/TEMPLATE_NAME", payload)
	if err != nil {
		fmt.Println(err)
		return
	}
	req.Header.Add("Authorization", "Bearer YOUR_API_TOKEN")
	req.Header.Add("Content-Type", "application/json")
	res, err := http.DefaultClient.Do(req)
	if err != nil {
		fmt.Println(err)
		return
	}
	defer res.Body.Close()

	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
PUT /gateway/v1/templates/TEMPLATE_NAME HTTP/1.1
Host: api.corbit.sa
Authorization: Bearer YOUR_API_TOKEN
Content-Type: application/json
Content-Length: 58

{
  "text": "Hello {{name}}, your code is {{code|0000}}"
}
OkHttpClient client = new OkHttpClient().newBuilder().build();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\n  \"text\": \"Hello {{name}}, your code is {{code|0000}}\"\n}");
Request request = new Request.Builder()
  .url("https://api.corbit.sa/gateway/v1/templates/TEMPLATE_NAME")
  .method("PUT", body)
  .addHeader("Authorization", "Bearer YOUR_API_TOKEN")
  .addHeader("Content-Type", "application/json")
  .build();
Response response = client.newCall(request).execute();
System.out.println(response.body().string());
HttpResponse<String> response = Unirest.put("https://api.corbit.sa/gateway/v1/templates/TEMPLATE_NAME")
  .header("Authorization", "Bearer YOUR_API_TOKEN")
  .header("Content-Type", "application/json")
  .body("{\n  \"text\": \"Hello {{name}}, your code is {{code|0000}}\"\n}")
  .asString();
System.out.println(response.getBody());
var settings = {
  "url": "https://api.corbit.sa/gateway/v1/templates/TEMPLATE_NAME",
  "method": "PUT",
  "timeout": 0,
  "headers": {
    "Authorization": "Bearer YOUR_API_TOKEN",
    "Content-Type": "application/json"
  },
  "data": JSON.stringify({
    "text": "Hello {{name}}, your code is {{code|0000}}"
  }),
};

$.ajax(settings).done(function (response) {
  console.log(response);
});
var data = JSON.stringify({
  "text": "Hello {{name}}, your code is {{code|0000}}"
});

var xhr = new XMLHttpRequest();
xhr.addEventListener("readystatechange", function () {
  if (this.readyState === 4) {
    console.log(this.responseText);
  }
});

xhr.open("PUT", "https://api.corbit.sa/gateway/v1/templates/TEMPLATE_NAME");
xhr.setRequestHeader("Authorization", "Bearer YOUR_API_TOKEN");
xhr.setRequestHeader("Content-Type", "application/json");
xhr.send(data);
const axios = require('axios');

const config = {
  method: 'put',
  url: 'https://api.corbit.sa/gateway/v1/templates/TEMPLATE_NAME',
  headers: {
    "Authorization": "Bearer YOUR_API_TOKEN",
    "Content-Type": "application/json"
  },
  data: {
    "text": "Hello {{name}}, your code is {{code|0000}}"
  },
};

axios.request(config)
  .then((response) => console.log(JSON.stringify(response.data)))
  .catch((error) => console.log(error));
const https = require('https');

const options = {
  method: 'PUT',
  hostname: 'api.corbit.sa',
  path: '/gateway/v1/templates/TEMPLATE_NAME',
  headers: {
    "Authorization": "Bearer YOUR_API_TOKEN",
    "Content-Type": "application/json"
  },
};

const req = https.request(options, (res) => {
  const chunks = [];
  res.on('data', (chunk) => chunks.push(chunk));
  res.on('end', () => console.log(Buffer.concat(chunks).toString()));
});

req.write(JSON.stringify({
  "text": "Hello {{name}}, your code is {{code|0000}}"
}));
req.end();
var unirest = require('unirest');

unirest('PUT', 'https://api.corbit.sa/gateway/v1/templates/TEMPLATE_NAME')
  .headers({
    "Authorization": "Bearer YOUR_API_TOKEN",
    "Content-Type": "application/json"
  })
  .send(JSON.stringify({
    "text": "Hello {{name}}, your code is {{code|0000}}"
  }))
  .end(function (res) {
    if (res.error) throw new Error(res.error);
    console.log(res.raw_body);
  });
#import <Foundation/Foundation.h>

dispatch_semaphore_t sema = dispatch_semaphore_create(0);

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"https://api.corbit.sa/gateway/v1/templates/TEMPLATE_NAME"]
  cachePolicy:NSURLRequestUseProtocolCachePolicy
  timeoutInterval:30.0];
NSDictionary *headers = @{
  @"Authorization": @"Bearer YOUR_API_TOKEN",
  @"Content-Type": @"application/json"
};
[request setAllHTTPHeaderFields:headers];
request.HTTPBody = [@"{\n  \"text\": \"Hello {{name}}, your code is {{code|0000}}\"\n}" dataUsingEncoding:NSUTF8StringEncoding];
[request setHTTPMethod:@"PUT"];

NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *dataTask = [session dataTaskWithRequest:request
  completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
    if (error) {
      NSLog(@"%@", error);
    } else {
      NSLog(@"%@", [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]);
    }
    dispatch_semaphore_signal(sema);
  }];
[dataTask resume];
dispatch_semaphore_wait(sema, DISPATCH_TIME_FOREVER);
open Lwt
open Cohttp
open Cohttp_lwt_unix

let uri = Uri.of_string "https://api.corbit.sa/gateway/v1/templates/TEMPLATE_NAME"
let headers = Header.of_list [
    ("Authorization", "Bearer YOUR_API_TOKEN");
    ("Content-Type", "application/json");
]
let body = Cohttp_lwt.Body.of_string "{\n  \"text\": \"Hello {{name}}, your code is {{code|0000}}\"\n}"

let () = Lwt_main.run (
  Client.call ~headers ~body `PUT uri >>= fun (_, body) ->
  Cohttp_lwt.Body.to_string body >|= fun s -> print_endline s)
<?php
$client = new GuzzleHttp\Client();
$headers = [
    'Authorization' => 'Bearer YOUR_API_TOKEN',
    'Content-Type' => 'application/json',
];
$body = '{
  "text": "Hello {{name}}, your code is {{code|0000}}"
}';
$request = new GuzzleHttp\Psr7\Request('PUT', 'https://api.corbit.sa/gateway/v1/templates/TEMPLATE_NAME', $headers, $body);
$res = $client->sendAsync($request)->wait();
echo $res->getBody();
<?php
require_once 'HTTP/Request2.php';

$request = new HTTP_Request2();
$request->setUrl('https://api.corbit.sa/gateway/v1/templates/TEMPLATE_NAME');
$request->setMethod(HTTP_Request2::METHOD_PUT);
$request->setConfig(array('follow_redirects' => TRUE));
$request->setHeader(array(
  'Authorization' => 'Bearer YOUR_API_TOKEN',
  'Content-Type' => 'application/json',
));
$request->setBody('{
  "text": "Hello {{name}}, your code is {{code|0000}}"
}');
try {
  $response = $request->send();
  echo $response->getBody();
} catch (HTTP_Request2_Exception $e) {
  echo 'Error: ' . $e->getMessage();
}
<?php
$client = new http\Client;
$request = new http\Client\Request;
$request->setRequestUrl('https://api.corbit.sa/gateway/v1/templates/TEMPLATE_NAME');
$request->setRequestMethod('PUT');
$body = new http\Message\Body;
$body->append('{
  "text": "Hello {{name}}, your code is {{code|0000}}"
}');
$request->setBody($body);
$request->setHeaders(array(
  'Authorization' => 'Bearer YOUR_API_TOKEN',
  'Content-Type' => 'application/json',
));
$client->enqueue($request)->send();
$response = $client->getResponse();
echo $response->getBody();
$headers = @{
    'Authorization' = 'Bearer YOUR_API_TOKEN'
    'Content-Type' = 'application/json'
}

$body = @'
{
  "text": "Hello {{name}}, your code is {{code|0000}}"
}
'@

$response = Invoke-RestMethod 'https://api.corbit.sa/gateway/v1/templates/TEMPLATE_NAME' -Method 'PUT' -Headers $headers -Body $body
$response | ConvertTo-Json -Depth 10
import http.client
import json

conn = http.client.HTTPSConnection("api.corbit.sa")
payload = json.dumps({
    "text": "Hello {{name}}, your code is {{code|0000}}"
})
headers = {
    "Authorization": "Bearer YOUR_API_TOKEN",
    "Content-Type": "application/json",
}
conn.request("PUT", "/gateway/v1/templates/TEMPLATE_NAME", payload, headers)
res = conn.getresponse()
print(res.read().decode("utf-8"))
library(httr)

headers = c(
  'Authorization' = 'Bearer YOUR_API_TOKEN',
  'Content-Type' = 'application/json'
)

body = '{
  "text": "Hello {{name}}, your code is {{code|0000}}"
}'

res <- VERB("PUT", url = "https://api.corbit.sa/gateway/v1/templates/TEMPLATE_NAME", body = body, add_headers(headers))

cat(content(res, 'text'))
library(RCurl)

headers = c(
  'Authorization' = 'Bearer YOUR_API_TOKEN',
  'Content-Type' = 'application/json'
)

params = '{
  "text": "Hello {{name}}, your code is {{code|0000}}"
}'

res <- getURLContent("https://api.corbit.sa/gateway/v1/templates/TEMPLATE_NAME", customrequest = "PUT", postfields = params, httpheader = headers, followlocation = TRUE)

cat(res)
require "uri"
require "net/http"

url = URI("https://api.corbit.sa/gateway/v1/templates/TEMPLATE_NAME")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Put.new(url)
request["Authorization"] = "Bearer YOUR_API_TOKEN"
request["Content-Type"] = "application/json"
request.body = <<~'JSON'
{
  "text": "Hello {{name}}, your code is {{code|0000}}"
}
JSON

response = http.request(request)
puts response.read_body
printf '%s' '{
  "text": "Hello {{name}}, your code is {{code|0000}}"
}' | \
http --follow --timeout 3600 PUT 'https://api.corbit.sa/gateway/v1/templates/TEMPLATE_NAME' \
  'Authorization:Bearer YOUR_API_TOKEN' \
  'Content-Type:application/json'
wget --quiet -O - \
  --method PUT \
  --header 'Authorization: Bearer YOUR_API_TOKEN' \
  --header 'Content-Type: application/json' \
  --body-data '{
  "text": "Hello {{name}}, your code is {{code|0000}}"
}' \
  'https://api.corbit.sa/gateway/v1/templates/TEMPLATE_NAME'
import Foundation
#if canImport(FoundationNetworking)
import FoundationNetworking
#endif

let semaphore = DispatchSemaphore(value: 0)

var request = URLRequest(url: URL(string: "https://api.corbit.sa/gateway/v1/templates/TEMPLATE_NAME")!, timeoutInterval: 30)
request.httpMethod = "PUT"
request.addValue("Bearer YOUR_API_TOKEN", forHTTPHeaderField: "Authorization")
request.addValue("application/json", forHTTPHeaderField: "Content-Type")
request.httpBody = "{\"text\":\"Hello {{name}}, your code is {{code|0000}}\"}".data(using: .utf8)

let task = URLSession.shared.dataTask(with: request) { data, response, error in
  if let data = data {
    print(String(data: data, encoding: .utf8) ?? "")
  } else {
    print(String(describing: error))
  }
  semaphore.signal()
}
task.resume()
semaphore.wait()

Responsesالردود

200Saved — merge fields detectedتم الحفظ — وتم اكتشاف حقول الدمج
{
  "status": "Success",
  "data": {
    "name": "otp",
    "text": "Hello {{name}}, your code is {{code|0000}}",
    "fields": [
      "name",
      "code"
    ]
  }
}
GET/gateway/v1/templates/{name}

Read a templateقراءة قالب

Returns one saved template.

يعرض قالبًا محفوظًا.

Authentication: Bearer tokenالمصادقة: توكن Bearer

Parametersالمعاملات

namerequiredمطلوب
pathمسار · string

Template name.

اسم القالب.

Requestمثال الطلب

curl 'https://api.corbit.sa/gateway/v1/templates/TEMPLATE_NAME' \
  -H 'Authorization: Bearer YOUR_API_TOKEN'
const response = await fetch("https://api.corbit.sa/gateway/v1/templates/TEMPLATE_NAME", {
  method: "GET",
  headers: {
    "Authorization": "Bearer YOUR_API_TOKEN"
  }
});
const data = await response.json();
console.log(data);
import requests

response = requests.get(
    "https://api.corbit.sa/gateway/v1/templates/TEMPLATE_NAME",
    headers={"Authorization": "Bearer YOUR_API_TOKEN"},
)
print(response.json())
<?php
$ch = curl_init('https://api.corbit.sa/gateway/v1/templates/TEMPLATE_NAME');
curl_setopt_array($ch, [
    CURLOPT_CUSTOMREQUEST => 'GET',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => [
        'Authorization: Bearer YOUR_API_TOKEN',
    ],
]);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
#include <stdio.h>
#include <curl/curl.h>

int main(void) {
  CURL *curl = curl_easy_init();
  if (curl) {
    struct curl_slist *headers = NULL;
    headers = curl_slist_append(headers, "Authorization: Bearer YOUR_API_TOKEN");
    curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
    curl_easy_setopt(curl, CURLOPT_URL, "https://api.corbit.sa/gateway/v1/templates/TEMPLATE_NAME");
    curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
    CURLcode res = curl_easy_perform(curl);
    if (res != CURLE_OK) fprintf(stderr, "curl error: %s\n", curl_easy_strerror(res));
    curl_slist_free_all(headers);
    curl_easy_cleanup(curl);
  }
  return 0;
}
using System;
using System.Net.Http;
using System.Text;

var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Get, "https://api.corbit.sa/gateway/v1/templates/TEMPLATE_NAME");
request.Headers.Add("Authorization", "Bearer YOUR_API_TOKEN");
var response = await client.SendAsync(request);
Console.WriteLine(await response.Content.ReadAsStringAsync());
using System;
using RestSharp;

var client = new RestClient("https://api.corbit.sa/gateway/v1/templates/TEMPLATE_NAME");
var request = new RestRequest("", Method.Get);
request.AddHeader("Authorization", "Bearer YOUR_API_TOKEN");
RestResponse response = await client.ExecuteAsync(request);
Console.WriteLine(response.Content);
import 'package:http/http.dart' as http;

void main() async {
  final response = await http.get(
    Uri.parse("https://api.corbit.sa/gateway/v1/templates/TEMPLATE_NAME"),
    headers: {
      "Authorization": "Bearer YOUR_API_TOKEN",
    },
  );
  print(response.body);
}
package main

import (
	"fmt"
	"io"
	"net/http"
)

func main() {
	req, err := http.NewRequest("GET", "https://api.corbit.sa/gateway/v1/templates/TEMPLATE_NAME", nil)
	if err != nil {
		fmt.Println(err)
		return
	}
	req.Header.Add("Authorization", "Bearer YOUR_API_TOKEN")
	res, err := http.DefaultClient.Do(req)
	if err != nil {
		fmt.Println(err)
		return
	}
	defer res.Body.Close()

	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
GET /gateway/v1/templates/TEMPLATE_NAME HTTP/1.1
Host: api.corbit.sa
Authorization: Bearer YOUR_API_TOKEN
OkHttpClient client = new OkHttpClient().newBuilder().build();
Request request = new Request.Builder()
  .url("https://api.corbit.sa/gateway/v1/templates/TEMPLATE_NAME")
  .method("GET", null)
  .addHeader("Authorization", "Bearer YOUR_API_TOKEN")
  .build();
Response response = client.newCall(request).execute();
System.out.println(response.body().string());
HttpResponse<String> response = Unirest.get("https://api.corbit.sa/gateway/v1/templates/TEMPLATE_NAME")
  .header("Authorization", "Bearer YOUR_API_TOKEN")
  .asString();
System.out.println(response.getBody());
var settings = {
  "url": "https://api.corbit.sa/gateway/v1/templates/TEMPLATE_NAME",
  "method": "GET",
  "timeout": 0,
  "headers": {
    "Authorization": "Bearer YOUR_API_TOKEN"
  },
};

$.ajax(settings).done(function (response) {
  console.log(response);
});
var xhr = new XMLHttpRequest();
xhr.addEventListener("readystatechange", function () {
  if (this.readyState === 4) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://api.corbit.sa/gateway/v1/templates/TEMPLATE_NAME");
xhr.setRequestHeader("Authorization", "Bearer YOUR_API_TOKEN");
xhr.send();
const axios = require('axios');

const config = {
  method: 'get',
  url: 'https://api.corbit.sa/gateway/v1/templates/TEMPLATE_NAME',
  headers: {
    "Authorization": "Bearer YOUR_API_TOKEN"
  },
};

axios.request(config)
  .then((response) => console.log(JSON.stringify(response.data)))
  .catch((error) => console.log(error));
const https = require('https');

const options = {
  method: 'GET',
  hostname: 'api.corbit.sa',
  path: '/gateway/v1/templates/TEMPLATE_NAME',
  headers: {
    "Authorization": "Bearer YOUR_API_TOKEN"
  },
};

const req = https.request(options, (res) => {
  const chunks = [];
  res.on('data', (chunk) => chunks.push(chunk));
  res.on('end', () => console.log(Buffer.concat(chunks).toString()));
});

req.end();
var unirest = require('unirest');

unirest('GET', 'https://api.corbit.sa/gateway/v1/templates/TEMPLATE_NAME')
  .headers({
    "Authorization": "Bearer YOUR_API_TOKEN"
  })
  .end(function (res) {
    if (res.error) throw new Error(res.error);
    console.log(res.raw_body);
  });
#import <Foundation/Foundation.h>

dispatch_semaphore_t sema = dispatch_semaphore_create(0);

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"https://api.corbit.sa/gateway/v1/templates/TEMPLATE_NAME"]
  cachePolicy:NSURLRequestUseProtocolCachePolicy
  timeoutInterval:30.0];
NSDictionary *headers = @{
  @"Authorization": @"Bearer YOUR_API_TOKEN"
};
[request setAllHTTPHeaderFields:headers];
[request setHTTPMethod:@"GET"];

NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *dataTask = [session dataTaskWithRequest:request
  completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
    if (error) {
      NSLog(@"%@", error);
    } else {
      NSLog(@"%@", [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]);
    }
    dispatch_semaphore_signal(sema);
  }];
[dataTask resume];
dispatch_semaphore_wait(sema, DISPATCH_TIME_FOREVER);
open Lwt
open Cohttp
open Cohttp_lwt_unix

let uri = Uri.of_string "https://api.corbit.sa/gateway/v1/templates/TEMPLATE_NAME"
let headers = Header.of_list [
    ("Authorization", "Bearer YOUR_API_TOKEN");
]

let () = Lwt_main.run (
  Client.call ~headers `GET uri >>= fun (_, body) ->
  Cohttp_lwt.Body.to_string body >|= fun s -> print_endline s)
<?php
$client = new GuzzleHttp\Client();
$headers = [
    'Authorization' => 'Bearer YOUR_API_TOKEN',
];
$request = new GuzzleHttp\Psr7\Request('GET', 'https://api.corbit.sa/gateway/v1/templates/TEMPLATE_NAME', $headers);
$res = $client->sendAsync($request)->wait();
echo $res->getBody();
<?php
require_once 'HTTP/Request2.php';

$request = new HTTP_Request2();
$request->setUrl('https://api.corbit.sa/gateway/v1/templates/TEMPLATE_NAME');
$request->setMethod(HTTP_Request2::METHOD_GET);
$request->setConfig(array('follow_redirects' => TRUE));
$request->setHeader(array(
  'Authorization' => 'Bearer YOUR_API_TOKEN',
));
try {
  $response = $request->send();
  echo $response->getBody();
} catch (HTTP_Request2_Exception $e) {
  echo 'Error: ' . $e->getMessage();
}
<?php
$client = new http\Client;
$request = new http\Client\Request;
$request->setRequestUrl('https://api.corbit.sa/gateway/v1/templates/TEMPLATE_NAME');
$request->setRequestMethod('GET');
$request->setHeaders(array(
  'Authorization' => 'Bearer YOUR_API_TOKEN',
));
$client->enqueue($request)->send();
$response = $client->getResponse();
echo $response->getBody();
$headers = @{
    'Authorization' = 'Bearer YOUR_API_TOKEN'
}

$response = Invoke-RestMethod 'https://api.corbit.sa/gateway/v1/templates/TEMPLATE_NAME' -Method 'GET' -Headers $headers
$response | ConvertTo-Json -Depth 10
import http.client
import json

conn = http.client.HTTPSConnection("api.corbit.sa")
headers = {
    "Authorization": "Bearer YOUR_API_TOKEN",
}
conn.request("GET", "/gateway/v1/templates/TEMPLATE_NAME", headers)
res = conn.getresponse()
print(res.read().decode("utf-8"))
library(httr)

headers = c(
  'Authorization' = 'Bearer YOUR_API_TOKEN'
)

res <- VERB("GET", url = "https://api.corbit.sa/gateway/v1/templates/TEMPLATE_NAME", add_headers(headers))

cat(content(res, 'text'))
library(RCurl)

headers = c(
  'Authorization' = 'Bearer YOUR_API_TOKEN'
)

res <- getURLContent("https://api.corbit.sa/gateway/v1/templates/TEMPLATE_NAME", customrequest = "GET", httpheader = headers, followlocation = TRUE)

cat(res)
require "uri"
require "net/http"

url = URI("https://api.corbit.sa/gateway/v1/templates/TEMPLATE_NAME")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)
request["Authorization"] = "Bearer YOUR_API_TOKEN"

response = http.request(request)
puts response.read_body
http --follow --timeout 3600 GET 'https://api.corbit.sa/gateway/v1/templates/TEMPLATE_NAME' \
  'Authorization:Bearer YOUR_API_TOKEN'
wget --quiet -O - \
  --method GET \
  --header 'Authorization: Bearer YOUR_API_TOKEN' \
  'https://api.corbit.sa/gateway/v1/templates/TEMPLATE_NAME'
import Foundation
#if canImport(FoundationNetworking)
import FoundationNetworking
#endif

let semaphore = DispatchSemaphore(value: 0)

var request = URLRequest(url: URL(string: "https://api.corbit.sa/gateway/v1/templates/TEMPLATE_NAME")!, timeoutInterval: 30)
request.httpMethod = "GET"
request.addValue("Bearer YOUR_API_TOKEN", forHTTPHeaderField: "Authorization")

let task = URLSession.shared.dataTask(with: request) { data, response, error in
  if let data = data {
    print(String(data: data, encoding: .utf8) ?? "")
  } else {
    print(String(describing: error))
  }
  semaphore.signal()
}
task.resume()
semaphore.wait()

Responsesالردود

200OKناجح
{
  "status": "Success",
  "data": {
    "name": "otp",
    "text": "Hello {{name}}"
  }
}
DELETE/gateway/v1/templates/{name}

Delete a templateحذف قالب

Deletes a saved template.

يحذف قالبًا محفوظًا.

Authentication: Bearer tokenالمصادقة: توكن Bearer

Parametersالمعاملات

namerequiredمطلوب
pathمسار · string

Template name.

اسم القالب.

Requestمثال الطلب

curl -X DELETE 'https://api.corbit.sa/gateway/v1/templates/TEMPLATE_NAME' \
  -H 'Authorization: Bearer YOUR_API_TOKEN'
const response = await fetch("https://api.corbit.sa/gateway/v1/templates/TEMPLATE_NAME", {
  method: "DELETE",
  headers: {
    "Authorization": "Bearer YOUR_API_TOKEN"
  }
});
const data = await response.json();
console.log(data);
import requests

response = requests.delete(
    "https://api.corbit.sa/gateway/v1/templates/TEMPLATE_NAME",
    headers={"Authorization": "Bearer YOUR_API_TOKEN"},
)
print(response.json())
<?php
$ch = curl_init('https://api.corbit.sa/gateway/v1/templates/TEMPLATE_NAME');
curl_setopt_array($ch, [
    CURLOPT_CUSTOMREQUEST => 'DELETE',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => [
        'Authorization: Bearer YOUR_API_TOKEN',
    ],
]);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
#include <stdio.h>
#include <curl/curl.h>

int main(void) {
  CURL *curl = curl_easy_init();
  if (curl) {
    struct curl_slist *headers = NULL;
    headers = curl_slist_append(headers, "Authorization: Bearer YOUR_API_TOKEN");
    curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "DELETE");
    curl_easy_setopt(curl, CURLOPT_URL, "https://api.corbit.sa/gateway/v1/templates/TEMPLATE_NAME");
    curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
    CURLcode res = curl_easy_perform(curl);
    if (res != CURLE_OK) fprintf(stderr, "curl error: %s\n", curl_easy_strerror(res));
    curl_slist_free_all(headers);
    curl_easy_cleanup(curl);
  }
  return 0;
}
using System;
using System.Net.Http;
using System.Text;

var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Delete, "https://api.corbit.sa/gateway/v1/templates/TEMPLATE_NAME");
request.Headers.Add("Authorization", "Bearer YOUR_API_TOKEN");
var response = await client.SendAsync(request);
Console.WriteLine(await response.Content.ReadAsStringAsync());
using System;
using RestSharp;

var client = new RestClient("https://api.corbit.sa/gateway/v1/templates/TEMPLATE_NAME");
var request = new RestRequest("", Method.Delete);
request.AddHeader("Authorization", "Bearer YOUR_API_TOKEN");
RestResponse response = await client.ExecuteAsync(request);
Console.WriteLine(response.Content);
import 'package:http/http.dart' as http;

void main() async {
  final response = await http.delete(
    Uri.parse("https://api.corbit.sa/gateway/v1/templates/TEMPLATE_NAME"),
    headers: {
      "Authorization": "Bearer YOUR_API_TOKEN",
    },
  );
  print(response.body);
}
package main

import (
	"fmt"
	"io"
	"net/http"
)

func main() {
	req, err := http.NewRequest("DELETE", "https://api.corbit.sa/gateway/v1/templates/TEMPLATE_NAME", nil)
	if err != nil {
		fmt.Println(err)
		return
	}
	req.Header.Add("Authorization", "Bearer YOUR_API_TOKEN")
	res, err := http.DefaultClient.Do(req)
	if err != nil {
		fmt.Println(err)
		return
	}
	defer res.Body.Close()

	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
DELETE /gateway/v1/templates/TEMPLATE_NAME HTTP/1.1
Host: api.corbit.sa
Authorization: Bearer YOUR_API_TOKEN
OkHttpClient client = new OkHttpClient().newBuilder().build();
Request request = new Request.Builder()
  .url("https://api.corbit.sa/gateway/v1/templates/TEMPLATE_NAME")
  .method("DELETE", null)
  .addHeader("Authorization", "Bearer YOUR_API_TOKEN")
  .build();
Response response = client.newCall(request).execute();
System.out.println(response.body().string());
HttpResponse<String> response = Unirest.delete("https://api.corbit.sa/gateway/v1/templates/TEMPLATE_NAME")
  .header("Authorization", "Bearer YOUR_API_TOKEN")
  .asString();
System.out.println(response.getBody());
var settings = {
  "url": "https://api.corbit.sa/gateway/v1/templates/TEMPLATE_NAME",
  "method": "DELETE",
  "timeout": 0,
  "headers": {
    "Authorization": "Bearer YOUR_API_TOKEN"
  },
};

$.ajax(settings).done(function (response) {
  console.log(response);
});
var xhr = new XMLHttpRequest();
xhr.addEventListener("readystatechange", function () {
  if (this.readyState === 4) {
    console.log(this.responseText);
  }
});

xhr.open("DELETE", "https://api.corbit.sa/gateway/v1/templates/TEMPLATE_NAME");
xhr.setRequestHeader("Authorization", "Bearer YOUR_API_TOKEN");
xhr.send();
const axios = require('axios');

const config = {
  method: 'delete',
  url: 'https://api.corbit.sa/gateway/v1/templates/TEMPLATE_NAME',
  headers: {
    "Authorization": "Bearer YOUR_API_TOKEN"
  },
};

axios.request(config)
  .then((response) => console.log(JSON.stringify(response.data)))
  .catch((error) => console.log(error));
const https = require('https');

const options = {
  method: 'DELETE',
  hostname: 'api.corbit.sa',
  path: '/gateway/v1/templates/TEMPLATE_NAME',
  headers: {
    "Authorization": "Bearer YOUR_API_TOKEN"
  },
};

const req = https.request(options, (res) => {
  const chunks = [];
  res.on('data', (chunk) => chunks.push(chunk));
  res.on('end', () => console.log(Buffer.concat(chunks).toString()));
});

req.end();
var unirest = require('unirest');

unirest('DELETE', 'https://api.corbit.sa/gateway/v1/templates/TEMPLATE_NAME')
  .headers({
    "Authorization": "Bearer YOUR_API_TOKEN"
  })
  .end(function (res) {
    if (res.error) throw new Error(res.error);
    console.log(res.raw_body);
  });
#import <Foundation/Foundation.h>

dispatch_semaphore_t sema = dispatch_semaphore_create(0);

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"https://api.corbit.sa/gateway/v1/templates/TEMPLATE_NAME"]
  cachePolicy:NSURLRequestUseProtocolCachePolicy
  timeoutInterval:30.0];
NSDictionary *headers = @{
  @"Authorization": @"Bearer YOUR_API_TOKEN"
};
[request setAllHTTPHeaderFields:headers];
[request setHTTPMethod:@"DELETE"];

NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *dataTask = [session dataTaskWithRequest:request
  completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
    if (error) {
      NSLog(@"%@", error);
    } else {
      NSLog(@"%@", [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]);
    }
    dispatch_semaphore_signal(sema);
  }];
[dataTask resume];
dispatch_semaphore_wait(sema, DISPATCH_TIME_FOREVER);
open Lwt
open Cohttp
open Cohttp_lwt_unix

let uri = Uri.of_string "https://api.corbit.sa/gateway/v1/templates/TEMPLATE_NAME"
let headers = Header.of_list [
    ("Authorization", "Bearer YOUR_API_TOKEN");
]

let () = Lwt_main.run (
  Client.call ~headers `DELETE uri >>= fun (_, body) ->
  Cohttp_lwt.Body.to_string body >|= fun s -> print_endline s)
<?php
$client = new GuzzleHttp\Client();
$headers = [
    'Authorization' => 'Bearer YOUR_API_TOKEN',
];
$request = new GuzzleHttp\Psr7\Request('DELETE', 'https://api.corbit.sa/gateway/v1/templates/TEMPLATE_NAME', $headers);
$res = $client->sendAsync($request)->wait();
echo $res->getBody();
<?php
require_once 'HTTP/Request2.php';

$request = new HTTP_Request2();
$request->setUrl('https://api.corbit.sa/gateway/v1/templates/TEMPLATE_NAME');
$request->setMethod(HTTP_Request2::METHOD_DELETE);
$request->setConfig(array('follow_redirects' => TRUE));
$request->setHeader(array(
  'Authorization' => 'Bearer YOUR_API_TOKEN',
));
try {
  $response = $request->send();
  echo $response->getBody();
} catch (HTTP_Request2_Exception $e) {
  echo 'Error: ' . $e->getMessage();
}
<?php
$client = new http\Client;
$request = new http\Client\Request;
$request->setRequestUrl('https://api.corbit.sa/gateway/v1/templates/TEMPLATE_NAME');
$request->setRequestMethod('DELETE');
$request->setHeaders(array(
  'Authorization' => 'Bearer YOUR_API_TOKEN',
));
$client->enqueue($request)->send();
$response = $client->getResponse();
echo $response->getBody();
$headers = @{
    'Authorization' = 'Bearer YOUR_API_TOKEN'
}

$response = Invoke-RestMethod 'https://api.corbit.sa/gateway/v1/templates/TEMPLATE_NAME' -Method 'DELETE' -Headers $headers
$response | ConvertTo-Json -Depth 10
import http.client
import json

conn = http.client.HTTPSConnection("api.corbit.sa")
headers = {
    "Authorization": "Bearer YOUR_API_TOKEN",
}
conn.request("DELETE", "/gateway/v1/templates/TEMPLATE_NAME", headers)
res = conn.getresponse()
print(res.read().decode("utf-8"))
library(httr)

headers = c(
  'Authorization' = 'Bearer YOUR_API_TOKEN'
)

res <- VERB("DELETE", url = "https://api.corbit.sa/gateway/v1/templates/TEMPLATE_NAME", add_headers(headers))

cat(content(res, 'text'))
library(RCurl)

headers = c(
  'Authorization' = 'Bearer YOUR_API_TOKEN'
)

res <- getURLContent("https://api.corbit.sa/gateway/v1/templates/TEMPLATE_NAME", customrequest = "DELETE", httpheader = headers, followlocation = TRUE)

cat(res)
require "uri"
require "net/http"

url = URI("https://api.corbit.sa/gateway/v1/templates/TEMPLATE_NAME")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Delete.new(url)
request["Authorization"] = "Bearer YOUR_API_TOKEN"

response = http.request(request)
puts response.read_body
http --follow --timeout 3600 DELETE 'https://api.corbit.sa/gateway/v1/templates/TEMPLATE_NAME' \
  'Authorization:Bearer YOUR_API_TOKEN'
wget --quiet -O - \
  --method DELETE \
  --header 'Authorization: Bearer YOUR_API_TOKEN' \
  'https://api.corbit.sa/gateway/v1/templates/TEMPLATE_NAME'
import Foundation
#if canImport(FoundationNetworking)
import FoundationNetworking
#endif

let semaphore = DispatchSemaphore(value: 0)

var request = URLRequest(url: URL(string: "https://api.corbit.sa/gateway/v1/templates/TEMPLATE_NAME")!, timeoutInterval: 30)
request.httpMethod = "DELETE"
request.addValue("Bearer YOUR_API_TOKEN", forHTTPHeaderField: "Authorization")

let task = URLSession.shared.dataTask(with: request) { data, response, error in
  if let data = data {
    print(String(data: data, encoding: .utf8) ?? "")
  } else {
    print(String(describing: error))
  }
  semaphore.signal()
}
task.resume()
semaphore.wait()

Responsesالردود

200Deletedتم الحذف
{
  "status": "Success",
  "data": {
    "name": "otp",
    "deleted": true
  }
}
POST/gateway/v1/send-template

Personalized bulk send (merge fields)إرسال جماعي مخصّص (حقول دمج)

Sends a saved template (template) or inline text with {{field}} / {{field|default}} placeholders. Per-recipient vars override the shared vars. Recipients whose rendered text is identical are grouped into one bulk send. If any recipient is invalid the whole request is rejected and nothing is sent.

يرسل قالبًا محفوظًا (template) أو نصًّا مباشرًا text مع العناصر {{field}} / {{field|default}}. قيم vars الخاصة بكل مستلم تتقدّم على vars المشتركة. المستلمون الذين يتطابق نصهم بعد الدمج يُجمَّعون في إرسال جماعي واحد. إذا كان أي مستلم غير صالح يُرفض الطلب كاملًا ولا تُرسل أي رسالة.

Authentication: Bearer tokenالمصادقة: توكن Bearer

Parametersالمعاملات

Idempotency-Keyoptionalاختياري
headerترويسة · string

Optional. Retrying with the same key returns the first response instead of sending again.

اختياري. إعادة المحاولة بنفس المفتاح تُرجع الرد الأول بدل الإرسال مرة أخرى.

senderNamerequiredمطلوب
bodyجسم · string

Sender name approved for your account.

اسم المرسِل المعتمد على حسابك.

templateoptionalاختياري
bodyجسم · string

Name of a saved template (or send text instead).

اسم قالب محفوظ (أو أرسل text بدلًا منه).

varsoptionalاختياري
bodyجسم · object

Merge values shared by all recipients.

قيم الدمج المشتركة بين كل المستلمين.

recipientsrequiredمطلوب
bodyجسم · array

Numbers, or { number, vars } objects for per-recipient values. Up to 1000 per request.

أرقام، أو كائنات { number, vars } لقيم خاصة بكل مستلم. حتى 1000 مستلم في الطلب.

Requestمثال الطلب

curl -X POST 'https://api.corbit.sa/gateway/v1/send-template' \
  -H 'Authorization: Bearer YOUR_API_TOKEN' \
  -H 'Content-Type: application/json' \
  -d '{
  "senderName": "Corbit",
  "template": "otp",
  "vars": {
    "code": "0000"
  },
  "recipients": [
    {
      "number": "966XXXXXXXXX",
      "vars": {
        "name": "Ali",
        "code": "4821"
      }
    },
    "966XXXXXXXXX"
  ]
}'
const response = await fetch("https://api.corbit.sa/gateway/v1/send-template", {
  method: "POST",
  headers: {
    "Authorization": "Bearer YOUR_API_TOKEN",
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
    "senderName": "Corbit",
    "template": "otp",
    "vars": {
      "code": "0000"
    },
    "recipients": [
      {
        "number": "966XXXXXXXXX",
        "vars": {
          "name": "Ali",
          "code": "4821"
        }
      },
      "966XXXXXXXXX"
    ]
  })
});
const data = await response.json();
console.log(data);
import requests

response = requests.post(
    "https://api.corbit.sa/gateway/v1/send-template",
    headers={"Authorization": "Bearer YOUR_API_TOKEN"},
    json={
        "senderName": "Corbit",
        "template": "otp",
        "vars": {
            "code": "0000"
        },
        "recipients": [
            {
                "number": "966XXXXXXXXX",
                "vars": {
                    "name": "Ali",
                    "code": "4821"
                }
            },
            "966XXXXXXXXX"
        ]
    },
)
print(response.json())
<?php
$ch = curl_init('https://api.corbit.sa/gateway/v1/send-template');
curl_setopt_array($ch, [
    CURLOPT_CUSTOMREQUEST => 'POST',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => [
        'Authorization: Bearer YOUR_API_TOKEN',
        'Content-Type: application/json',
    ],
    CURLOPT_POSTFIELDS => json_encode([
        'senderName' => 'Corbit',
        'template' => 'otp',
        'vars' => [
            'code' => '0000'
        ],
        'recipients' => [
            [
                'number' => '966XXXXXXXXX',
                'vars' => [
                    'name' => 'Ali',
                    'code' => '4821'
                ]
            ],
            '966XXXXXXXXX'
        ]
    ]),
]);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
#include <stdio.h>
#include <curl/curl.h>

int main(void) {
  CURL *curl = curl_easy_init();
  if (curl) {
    struct curl_slist *headers = NULL;
    headers = curl_slist_append(headers, "Authorization: Bearer YOUR_API_TOKEN");
    headers = curl_slist_append(headers, "Content-Type: application/json");
    curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "POST");
    curl_easy_setopt(curl, CURLOPT_URL, "https://api.corbit.sa/gateway/v1/send-template");
    curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
    curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\n  \"senderName\": \"Corbit\",\n  \"template\": \"otp\",\n  \"vars\": {\n    \"code\": \"0000\"\n  },\n  \"recipients\": [\n    {\n      \"number\": \"966XXXXXXXXX\",\n      \"vars\": {\n        \"name\": \"Ali\",\n        \"code\": \"4821\"\n      }\n    },\n    \"966XXXXXXXXX\"\n  ]\n}");
    CURLcode res = curl_easy_perform(curl);
    if (res != CURLE_OK) fprintf(stderr, "curl error: %s\n", curl_easy_strerror(res));
    curl_slist_free_all(headers);
    curl_easy_cleanup(curl);
  }
  return 0;
}
using System;
using System.Net.Http;
using System.Text;

var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Post, "https://api.corbit.sa/gateway/v1/send-template");
request.Headers.Add("Authorization", "Bearer YOUR_API_TOKEN");
request.Content = new StringContent("{\n  \"senderName\": \"Corbit\",\n  \"template\": \"otp\",\n  \"vars\": {\n    \"code\": \"0000\"\n  },\n  \"recipients\": [\n    {\n      \"number\": \"966XXXXXXXXX\",\n      \"vars\": {\n        \"name\": \"Ali\",\n        \"code\": \"4821\"\n      }\n    },\n    \"966XXXXXXXXX\"\n  ]\n}", Encoding.UTF8, "application/json");
var response = await client.SendAsync(request);
Console.WriteLine(await response.Content.ReadAsStringAsync());
using System;
using RestSharp;

var client = new RestClient("https://api.corbit.sa/gateway/v1/send-template");
var request = new RestRequest("", Method.Post);
request.AddHeader("Authorization", "Bearer YOUR_API_TOKEN");
request.AddStringBody("{\n  \"senderName\": \"Corbit\",\n  \"template\": \"otp\",\n  \"vars\": {\n    \"code\": \"0000\"\n  },\n  \"recipients\": [\n    {\n      \"number\": \"966XXXXXXXXX\",\n      \"vars\": {\n        \"name\": \"Ali\",\n        \"code\": \"4821\"\n      }\n    },\n    \"966XXXXXXXXX\"\n  ]\n}", DataFormat.Json);
RestResponse response = await client.ExecuteAsync(request);
Console.WriteLine(response.Content);
import 'package:http/http.dart' as http;

void main() async {
  final response = await http.post(
    Uri.parse("https://api.corbit.sa/gateway/v1/send-template"),
    headers: {
      "Authorization": "Bearer YOUR_API_TOKEN",
      "Content-Type": "application/json",
    },
    body: "{\n  \"senderName\": \"Corbit\",\n  \"template\": \"otp\",\n  \"vars\": {\n    \"code\": \"0000\"\n  },\n  \"recipients\": [\n    {\n      \"number\": \"966XXXXXXXXX\",\n      \"vars\": {\n        \"name\": \"Ali\",\n        \"code\": \"4821\"\n      }\n    },\n    \"966XXXXXXXXX\"\n  ]\n}",
  );
  print(response.body);
}
package main

import (
	"fmt"
	"io"
	"net/http"
	"strings"
)

func main() {
	payload := strings.NewReader(`{
  "senderName": "Corbit",
  "template": "otp",
  "vars": {
    "code": "0000"
  },
  "recipients": [
    {
      "number": "966XXXXXXXXX",
      "vars": {
        "name": "Ali",
        "code": "4821"
      }
    },
    "966XXXXXXXXX"
  ]
}`)
	req, err := http.NewRequest("POST", "https://api.corbit.sa/gateway/v1/send-template", payload)
	if err != nil {
		fmt.Println(err)
		return
	}
	req.Header.Add("Authorization", "Bearer YOUR_API_TOKEN")
	req.Header.Add("Content-Type", "application/json")
	res, err := http.DefaultClient.Do(req)
	if err != nil {
		fmt.Println(err)
		return
	}
	defer res.Body.Close()

	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
POST /gateway/v1/send-template HTTP/1.1
Host: api.corbit.sa
Authorization: Bearer YOUR_API_TOKEN
Content-Type: application/json
Content-Length: 242

{
  "senderName": "Corbit",
  "template": "otp",
  "vars": {
    "code": "0000"
  },
  "recipients": [
    {
      "number": "966XXXXXXXXX",
      "vars": {
        "name": "Ali",
        "code": "4821"
      }
    },
    "966XXXXXXXXX"
  ]
}
OkHttpClient client = new OkHttpClient().newBuilder().build();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\n  \"senderName\": \"Corbit\",\n  \"template\": \"otp\",\n  \"vars\": {\n    \"code\": \"0000\"\n  },\n  \"recipients\": [\n    {\n      \"number\": \"966XXXXXXXXX\",\n      \"vars\": {\n        \"name\": \"Ali\",\n        \"code\": \"4821\"\n      }\n    },\n    \"966XXXXXXXXX\"\n  ]\n}");
Request request = new Request.Builder()
  .url("https://api.corbit.sa/gateway/v1/send-template")
  .method("POST", body)
  .addHeader("Authorization", "Bearer YOUR_API_TOKEN")
  .addHeader("Content-Type", "application/json")
  .build();
Response response = client.newCall(request).execute();
System.out.println(response.body().string());
HttpResponse<String> response = Unirest.post("https://api.corbit.sa/gateway/v1/send-template")
  .header("Authorization", "Bearer YOUR_API_TOKEN")
  .header("Content-Type", "application/json")
  .body("{\n  \"senderName\": \"Corbit\",\n  \"template\": \"otp\",\n  \"vars\": {\n    \"code\": \"0000\"\n  },\n  \"recipients\": [\n    {\n      \"number\": \"966XXXXXXXXX\",\n      \"vars\": {\n        \"name\": \"Ali\",\n        \"code\": \"4821\"\n      }\n    },\n    \"966XXXXXXXXX\"\n  ]\n}")
  .asString();
System.out.println(response.getBody());
var settings = {
  "url": "https://api.corbit.sa/gateway/v1/send-template",
  "method": "POST",
  "timeout": 0,
  "headers": {
    "Authorization": "Bearer YOUR_API_TOKEN",
    "Content-Type": "application/json"
  },
  "data": JSON.stringify({
    "senderName": "Corbit",
    "template": "otp",
    "vars": {
      "code": "0000"
    },
    "recipients": [
      {
        "number": "966XXXXXXXXX",
        "vars": {
          "name": "Ali",
          "code": "4821"
        }
      },
      "966XXXXXXXXX"
    ]
  }),
};

$.ajax(settings).done(function (response) {
  console.log(response);
});
var data = JSON.stringify({
  "senderName": "Corbit",
  "template": "otp",
  "vars": {
    "code": "0000"
  },
  "recipients": [
    {
      "number": "966XXXXXXXXX",
      "vars": {
        "name": "Ali",
        "code": "4821"
      }
    },
    "966XXXXXXXXX"
  ]
});

var xhr = new XMLHttpRequest();
xhr.addEventListener("readystatechange", function () {
  if (this.readyState === 4) {
    console.log(this.responseText);
  }
});

xhr.open("POST", "https://api.corbit.sa/gateway/v1/send-template");
xhr.setRequestHeader("Authorization", "Bearer YOUR_API_TOKEN");
xhr.setRequestHeader("Content-Type", "application/json");
xhr.send(data);
const axios = require('axios');

const config = {
  method: 'post',
  url: 'https://api.corbit.sa/gateway/v1/send-template',
  headers: {
    "Authorization": "Bearer YOUR_API_TOKEN",
    "Content-Type": "application/json"
  },
  data: {
    "senderName": "Corbit",
    "template": "otp",
    "vars": {
      "code": "0000"
    },
    "recipients": [
      {
        "number": "966XXXXXXXXX",
        "vars": {
          "name": "Ali",
          "code": "4821"
        }
      },
      "966XXXXXXXXX"
    ]
  },
};

axios.request(config)
  .then((response) => console.log(JSON.stringify(response.data)))
  .catch((error) => console.log(error));
const https = require('https');

const options = {
  method: 'POST',
  hostname: 'api.corbit.sa',
  path: '/gateway/v1/send-template',
  headers: {
    "Authorization": "Bearer YOUR_API_TOKEN",
    "Content-Type": "application/json"
  },
};

const req = https.request(options, (res) => {
  const chunks = [];
  res.on('data', (chunk) => chunks.push(chunk));
  res.on('end', () => console.log(Buffer.concat(chunks).toString()));
});

req.write(JSON.stringify({
  "senderName": "Corbit",
  "template": "otp",
  "vars": {
    "code": "0000"
  },
  "recipients": [
    {
      "number": "966XXXXXXXXX",
      "vars": {
        "name": "Ali",
        "code": "4821"
      }
    },
    "966XXXXXXXXX"
  ]
}));
req.end();
var unirest = require('unirest');

unirest('POST', 'https://api.corbit.sa/gateway/v1/send-template')
  .headers({
    "Authorization": "Bearer YOUR_API_TOKEN",
    "Content-Type": "application/json"
  })
  .send(JSON.stringify({
    "senderName": "Corbit",
    "template": "otp",
    "vars": {
      "code": "0000"
    },
    "recipients": [
      {
        "number": "966XXXXXXXXX",
        "vars": {
          "name": "Ali",
          "code": "4821"
        }
      },
      "966XXXXXXXXX"
    ]
  }))
  .end(function (res) {
    if (res.error) throw new Error(res.error);
    console.log(res.raw_body);
  });
#import <Foundation/Foundation.h>

dispatch_semaphore_t sema = dispatch_semaphore_create(0);

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"https://api.corbit.sa/gateway/v1/send-template"]
  cachePolicy:NSURLRequestUseProtocolCachePolicy
  timeoutInterval:30.0];
NSDictionary *headers = @{
  @"Authorization": @"Bearer YOUR_API_TOKEN",
  @"Content-Type": @"application/json"
};
[request setAllHTTPHeaderFields:headers];
request.HTTPBody = [@"{\n  \"senderName\": \"Corbit\",\n  \"template\": \"otp\",\n  \"vars\": {\n    \"code\": \"0000\"\n  },\n  \"recipients\": [\n    {\n      \"number\": \"966XXXXXXXXX\",\n      \"vars\": {\n        \"name\": \"Ali\",\n        \"code\": \"4821\"\n      }\n    },\n    \"966XXXXXXXXX\"\n  ]\n}" dataUsingEncoding:NSUTF8StringEncoding];
[request setHTTPMethod:@"POST"];

NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *dataTask = [session dataTaskWithRequest:request
  completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
    if (error) {
      NSLog(@"%@", error);
    } else {
      NSLog(@"%@", [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]);
    }
    dispatch_semaphore_signal(sema);
  }];
[dataTask resume];
dispatch_semaphore_wait(sema, DISPATCH_TIME_FOREVER);
open Lwt
open Cohttp
open Cohttp_lwt_unix

let uri = Uri.of_string "https://api.corbit.sa/gateway/v1/send-template"
let headers = Header.of_list [
    ("Authorization", "Bearer YOUR_API_TOKEN");
    ("Content-Type", "application/json");
]
let body = Cohttp_lwt.Body.of_string "{\n  \"senderName\": \"Corbit\",\n  \"template\": \"otp\",\n  \"vars\": {\n    \"code\": \"0000\"\n  },\n  \"recipients\": [\n    {\n      \"number\": \"966XXXXXXXXX\",\n      \"vars\": {\n        \"name\": \"Ali\",\n        \"code\": \"4821\"\n      }\n    },\n    \"966XXXXXXXXX\"\n  ]\n}"

let () = Lwt_main.run (
  Client.call ~headers ~body `POST uri >>= fun (_, body) ->
  Cohttp_lwt.Body.to_string body >|= fun s -> print_endline s)
<?php
$client = new GuzzleHttp\Client();
$headers = [
    'Authorization' => 'Bearer YOUR_API_TOKEN',
    'Content-Type' => 'application/json',
];
$body = '{
  "senderName": "Corbit",
  "template": "otp",
  "vars": {
    "code": "0000"
  },
  "recipients": [
    {
      "number": "966XXXXXXXXX",
      "vars": {
        "name": "Ali",
        "code": "4821"
      }
    },
    "966XXXXXXXXX"
  ]
}';
$request = new GuzzleHttp\Psr7\Request('POST', 'https://api.corbit.sa/gateway/v1/send-template', $headers, $body);
$res = $client->sendAsync($request)->wait();
echo $res->getBody();
<?php
require_once 'HTTP/Request2.php';

$request = new HTTP_Request2();
$request->setUrl('https://api.corbit.sa/gateway/v1/send-template');
$request->setMethod(HTTP_Request2::METHOD_POST);
$request->setConfig(array('follow_redirects' => TRUE));
$request->setHeader(array(
  'Authorization' => 'Bearer YOUR_API_TOKEN',
  'Content-Type' => 'application/json',
));
$request->setBody('{
  "senderName": "Corbit",
  "template": "otp",
  "vars": {
    "code": "0000"
  },
  "recipients": [
    {
      "number": "966XXXXXXXXX",
      "vars": {
        "name": "Ali",
        "code": "4821"
      }
    },
    "966XXXXXXXXX"
  ]
}');
try {
  $response = $request->send();
  echo $response->getBody();
} catch (HTTP_Request2_Exception $e) {
  echo 'Error: ' . $e->getMessage();
}
<?php
$client = new http\Client;
$request = new http\Client\Request;
$request->setRequestUrl('https://api.corbit.sa/gateway/v1/send-template');
$request->setRequestMethod('POST');
$body = new http\Message\Body;
$body->append('{
  "senderName": "Corbit",
  "template": "otp",
  "vars": {
    "code": "0000"
  },
  "recipients": [
    {
      "number": "966XXXXXXXXX",
      "vars": {
        "name": "Ali",
        "code": "4821"
      }
    },
    "966XXXXXXXXX"
  ]
}');
$request->setBody($body);
$request->setHeaders(array(
  'Authorization' => 'Bearer YOUR_API_TOKEN',
  'Content-Type' => 'application/json',
));
$client->enqueue($request)->send();
$response = $client->getResponse();
echo $response->getBody();
$headers = @{
    'Authorization' = 'Bearer YOUR_API_TOKEN'
    'Content-Type' = 'application/json'
}

$body = @'
{
  "senderName": "Corbit",
  "template": "otp",
  "vars": {
    "code": "0000"
  },
  "recipients": [
    {
      "number": "966XXXXXXXXX",
      "vars": {
        "name": "Ali",
        "code": "4821"
      }
    },
    "966XXXXXXXXX"
  ]
}
'@

$response = Invoke-RestMethod 'https://api.corbit.sa/gateway/v1/send-template' -Method 'POST' -Headers $headers -Body $body
$response | ConvertTo-Json -Depth 10
import http.client
import json

conn = http.client.HTTPSConnection("api.corbit.sa")
payload = json.dumps({
    "senderName": "Corbit",
    "template": "otp",
    "vars": {
        "code": "0000"
    },
    "recipients": [
        {
            "number": "966XXXXXXXXX",
            "vars": {
                "name": "Ali",
                "code": "4821"
            }
        },
        "966XXXXXXXXX"
    ]
})
headers = {
    "Authorization": "Bearer YOUR_API_TOKEN",
    "Content-Type": "application/json",
}
conn.request("POST", "/gateway/v1/send-template", payload, headers)
res = conn.getresponse()
print(res.read().decode("utf-8"))
library(httr)

headers = c(
  'Authorization' = 'Bearer YOUR_API_TOKEN',
  'Content-Type' = 'application/json'
)

body = '{
  "senderName": "Corbit",
  "template": "otp",
  "vars": {
    "code": "0000"
  },
  "recipients": [
    {
      "number": "966XXXXXXXXX",
      "vars": {
        "name": "Ali",
        "code": "4821"
      }
    },
    "966XXXXXXXXX"
  ]
}'

res <- VERB("POST", url = "https://api.corbit.sa/gateway/v1/send-template", body = body, add_headers(headers))

cat(content(res, 'text'))
library(RCurl)

headers = c(
  'Authorization' = 'Bearer YOUR_API_TOKEN',
  'Content-Type' = 'application/json'
)

params = '{
  "senderName": "Corbit",
  "template": "otp",
  "vars": {
    "code": "0000"
  },
  "recipients": [
    {
      "number": "966XXXXXXXXX",
      "vars": {
        "name": "Ali",
        "code": "4821"
      }
    },
    "966XXXXXXXXX"
  ]
}'

res <- getURLContent("https://api.corbit.sa/gateway/v1/send-template", customrequest = "POST", postfields = params, httpheader = headers, followlocation = TRUE)

cat(res)
require "uri"
require "net/http"

url = URI("https://api.corbit.sa/gateway/v1/send-template")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)
request["Authorization"] = "Bearer YOUR_API_TOKEN"
request["Content-Type"] = "application/json"
request.body = <<~'JSON'
{
  "senderName": "Corbit",
  "template": "otp",
  "vars": {
    "code": "0000"
  },
  "recipients": [
    {
      "number": "966XXXXXXXXX",
      "vars": {
        "name": "Ali",
        "code": "4821"
      }
    },
    "966XXXXXXXXX"
  ]
}
JSON

response = http.request(request)
puts response.read_body
printf '%s' '{
  "senderName": "Corbit",
  "template": "otp",
  "vars": {
    "code": "0000"
  },
  "recipients": [
    {
      "number": "966XXXXXXXXX",
      "vars": {
        "name": "Ali",
        "code": "4821"
      }
    },
    "966XXXXXXXXX"
  ]
}' | \
http --follow --timeout 3600 POST 'https://api.corbit.sa/gateway/v1/send-template' \
  'Authorization:Bearer YOUR_API_TOKEN' \
  'Content-Type:application/json'
wget --quiet -O - \
  --method POST \
  --header 'Authorization: Bearer YOUR_API_TOKEN' \
  --header 'Content-Type: application/json' \
  --body-data '{
  "senderName": "Corbit",
  "template": "otp",
  "vars": {
    "code": "0000"
  },
  "recipients": [
    {
      "number": "966XXXXXXXXX",
      "vars": {
        "name": "Ali",
        "code": "4821"
      }
    },
    "966XXXXXXXXX"
  ]
}' \
  'https://api.corbit.sa/gateway/v1/send-template'
import Foundation
#if canImport(FoundationNetworking)
import FoundationNetworking
#endif

let semaphore = DispatchSemaphore(value: 0)

var request = URLRequest(url: URL(string: "https://api.corbit.sa/gateway/v1/send-template")!, timeoutInterval: 30)
request.httpMethod = "POST"
request.addValue("Bearer YOUR_API_TOKEN", forHTTPHeaderField: "Authorization")
request.addValue("application/json", forHTTPHeaderField: "Content-Type")
request.httpBody = "{\"senderName\":\"Corbit\",\"template\":\"otp\",\"vars\":{\"code\":\"0000\"},\"recipients\":[{\"number\":\"966XXXXXXXXX\",\"vars\":{\"name\":\"Ali\",\"code\":\"4821\"}},\"966XXXXXXXXX\"]}".data(using: .utf8)

let task = URLSession.shared.dataTask(with: request) { data, response, error in
  if let data = data {
    print(String(data: data, encoding: .utf8) ?? "")
  } else {
    print(String(describing: error))
  }
  semaphore.signal()
}
task.resume()
semaphore.wait()

Responsesالردود

200Accepted (status "Partial" if some groups failed)تم القبول (الحالة "Partial" إذا فشلت بعض المجموعات)
{
  "status": "Success",
  "message": null,
  "data": {
    "recipients": 2,
    "groups": 2,
    "accepted": 2,
    "rejected": 0,
    "messages": [
      {
        "numbers": 1,
        "id": "8493f201-…",
        "ok": true
      }
    ]
  }
}
402Balance exhaustedالرصيد منتهٍ
{
  "status": "Error",
  "message": "Insufficient balance (0). Please top up to continue sending.",
  "code": "INSUFFICIENT_BALANCE"
}
403Sender name not approvedاسم المرسِل غير معتمد
{
  "status": "Error",
  "message": "Sender 'X' is not registered/approved for your account.",
  "code": "SENDER_NOT_ALLOWED"
}
422Invalid recipients / missing fieldsمستلمون غير صالحين / حقول ناقصة
{
  "status": "Error",
  "code": "VALIDATION",
  "message": "1 recipient(s) are invalid; nothing was sent.",
  "errors": [
    {
      "index": 1,
      "number": "966XXXXXXXXX",
      "error": "missing fields: name"
    }
  ]
}
GET/gateway/v1/usage

Your rate limit and last known balanceحد الاستخدام وآخر رصيد معروف

Returns your request rate limit and your last known balance.

يعرض حد الطلبات الخاص بك وآخر رصيد معروف.

Authentication: Bearer tokenالمصادقة: توكن Bearer

Requestمثال الطلب

curl 'https://api.corbit.sa/gateway/v1/usage' \
  -H 'Authorization: Bearer YOUR_API_TOKEN'
const response = await fetch("https://api.corbit.sa/gateway/v1/usage", {
  method: "GET",
  headers: {
    "Authorization": "Bearer YOUR_API_TOKEN"
  }
});
const data = await response.json();
console.log(data);
import requests

response = requests.get(
    "https://api.corbit.sa/gateway/v1/usage",
    headers={"Authorization": "Bearer YOUR_API_TOKEN"},
)
print(response.json())
<?php
$ch = curl_init('https://api.corbit.sa/gateway/v1/usage');
curl_setopt_array($ch, [
    CURLOPT_CUSTOMREQUEST => 'GET',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => [
        'Authorization: Bearer YOUR_API_TOKEN',
    ],
]);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
#include <stdio.h>
#include <curl/curl.h>

int main(void) {
  CURL *curl = curl_easy_init();
  if (curl) {
    struct curl_slist *headers = NULL;
    headers = curl_slist_append(headers, "Authorization: Bearer YOUR_API_TOKEN");
    curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
    curl_easy_setopt(curl, CURLOPT_URL, "https://api.corbit.sa/gateway/v1/usage");
    curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
    CURLcode res = curl_easy_perform(curl);
    if (res != CURLE_OK) fprintf(stderr, "curl error: %s\n", curl_easy_strerror(res));
    curl_slist_free_all(headers);
    curl_easy_cleanup(curl);
  }
  return 0;
}
using System;
using System.Net.Http;
using System.Text;

var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Get, "https://api.corbit.sa/gateway/v1/usage");
request.Headers.Add("Authorization", "Bearer YOUR_API_TOKEN");
var response = await client.SendAsync(request);
Console.WriteLine(await response.Content.ReadAsStringAsync());
using System;
using RestSharp;

var client = new RestClient("https://api.corbit.sa/gateway/v1/usage");
var request = new RestRequest("", Method.Get);
request.AddHeader("Authorization", "Bearer YOUR_API_TOKEN");
RestResponse response = await client.ExecuteAsync(request);
Console.WriteLine(response.Content);
import 'package:http/http.dart' as http;

void main() async {
  final response = await http.get(
    Uri.parse("https://api.corbit.sa/gateway/v1/usage"),
    headers: {
      "Authorization": "Bearer YOUR_API_TOKEN",
    },
  );
  print(response.body);
}
package main

import (
	"fmt"
	"io"
	"net/http"
)

func main() {
	req, err := http.NewRequest("GET", "https://api.corbit.sa/gateway/v1/usage", nil)
	if err != nil {
		fmt.Println(err)
		return
	}
	req.Header.Add("Authorization", "Bearer YOUR_API_TOKEN")
	res, err := http.DefaultClient.Do(req)
	if err != nil {
		fmt.Println(err)
		return
	}
	defer res.Body.Close()

	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
GET /gateway/v1/usage HTTP/1.1
Host: api.corbit.sa
Authorization: Bearer YOUR_API_TOKEN
OkHttpClient client = new OkHttpClient().newBuilder().build();
Request request = new Request.Builder()
  .url("https://api.corbit.sa/gateway/v1/usage")
  .method("GET", null)
  .addHeader("Authorization", "Bearer YOUR_API_TOKEN")
  .build();
Response response = client.newCall(request).execute();
System.out.println(response.body().string());
HttpResponse<String> response = Unirest.get("https://api.corbit.sa/gateway/v1/usage")
  .header("Authorization", "Bearer YOUR_API_TOKEN")
  .asString();
System.out.println(response.getBody());
var settings = {
  "url": "https://api.corbit.sa/gateway/v1/usage",
  "method": "GET",
  "timeout": 0,
  "headers": {
    "Authorization": "Bearer YOUR_API_TOKEN"
  },
};

$.ajax(settings).done(function (response) {
  console.log(response);
});
var xhr = new XMLHttpRequest();
xhr.addEventListener("readystatechange", function () {
  if (this.readyState === 4) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://api.corbit.sa/gateway/v1/usage");
xhr.setRequestHeader("Authorization", "Bearer YOUR_API_TOKEN");
xhr.send();
const axios = require('axios');

const config = {
  method: 'get',
  url: 'https://api.corbit.sa/gateway/v1/usage',
  headers: {
    "Authorization": "Bearer YOUR_API_TOKEN"
  },
};

axios.request(config)
  .then((response) => console.log(JSON.stringify(response.data)))
  .catch((error) => console.log(error));
const https = require('https');

const options = {
  method: 'GET',
  hostname: 'api.corbit.sa',
  path: '/gateway/v1/usage',
  headers: {
    "Authorization": "Bearer YOUR_API_TOKEN"
  },
};

const req = https.request(options, (res) => {
  const chunks = [];
  res.on('data', (chunk) => chunks.push(chunk));
  res.on('end', () => console.log(Buffer.concat(chunks).toString()));
});

req.end();
var unirest = require('unirest');

unirest('GET', 'https://api.corbit.sa/gateway/v1/usage')
  .headers({
    "Authorization": "Bearer YOUR_API_TOKEN"
  })
  .end(function (res) {
    if (res.error) throw new Error(res.error);
    console.log(res.raw_body);
  });
#import <Foundation/Foundation.h>

dispatch_semaphore_t sema = dispatch_semaphore_create(0);

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"https://api.corbit.sa/gateway/v1/usage"]
  cachePolicy:NSURLRequestUseProtocolCachePolicy
  timeoutInterval:30.0];
NSDictionary *headers = @{
  @"Authorization": @"Bearer YOUR_API_TOKEN"
};
[request setAllHTTPHeaderFields:headers];
[request setHTTPMethod:@"GET"];

NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *dataTask = [session dataTaskWithRequest:request
  completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
    if (error) {
      NSLog(@"%@", error);
    } else {
      NSLog(@"%@", [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]);
    }
    dispatch_semaphore_signal(sema);
  }];
[dataTask resume];
dispatch_semaphore_wait(sema, DISPATCH_TIME_FOREVER);
open Lwt
open Cohttp
open Cohttp_lwt_unix

let uri = Uri.of_string "https://api.corbit.sa/gateway/v1/usage"
let headers = Header.of_list [
    ("Authorization", "Bearer YOUR_API_TOKEN");
]

let () = Lwt_main.run (
  Client.call ~headers `GET uri >>= fun (_, body) ->
  Cohttp_lwt.Body.to_string body >|= fun s -> print_endline s)
<?php
$client = new GuzzleHttp\Client();
$headers = [
    'Authorization' => 'Bearer YOUR_API_TOKEN',
];
$request = new GuzzleHttp\Psr7\Request('GET', 'https://api.corbit.sa/gateway/v1/usage', $headers);
$res = $client->sendAsync($request)->wait();
echo $res->getBody();
<?php
require_once 'HTTP/Request2.php';

$request = new HTTP_Request2();
$request->setUrl('https://api.corbit.sa/gateway/v1/usage');
$request->setMethod(HTTP_Request2::METHOD_GET);
$request->setConfig(array('follow_redirects' => TRUE));
$request->setHeader(array(
  'Authorization' => 'Bearer YOUR_API_TOKEN',
));
try {
  $response = $request->send();
  echo $response->getBody();
} catch (HTTP_Request2_Exception $e) {
  echo 'Error: ' . $e->getMessage();
}
<?php
$client = new http\Client;
$request = new http\Client\Request;
$request->setRequestUrl('https://api.corbit.sa/gateway/v1/usage');
$request->setRequestMethod('GET');
$request->setHeaders(array(
  'Authorization' => 'Bearer YOUR_API_TOKEN',
));
$client->enqueue($request)->send();
$response = $client->getResponse();
echo $response->getBody();
$headers = @{
    'Authorization' = 'Bearer YOUR_API_TOKEN'
}

$response = Invoke-RestMethod 'https://api.corbit.sa/gateway/v1/usage' -Method 'GET' -Headers $headers
$response | ConvertTo-Json -Depth 10
import http.client
import json

conn = http.client.HTTPSConnection("api.corbit.sa")
headers = {
    "Authorization": "Bearer YOUR_API_TOKEN",
}
conn.request("GET", "/gateway/v1/usage", headers)
res = conn.getresponse()
print(res.read().decode("utf-8"))
library(httr)

headers = c(
  'Authorization' = 'Bearer YOUR_API_TOKEN'
)

res <- VERB("GET", url = "https://api.corbit.sa/gateway/v1/usage", add_headers(headers))

cat(content(res, 'text'))
library(RCurl)

headers = c(
  'Authorization' = 'Bearer YOUR_API_TOKEN'
)

res <- getURLContent("https://api.corbit.sa/gateway/v1/usage", customrequest = "GET", httpheader = headers, followlocation = TRUE)

cat(res)
require "uri"
require "net/http"

url = URI("https://api.corbit.sa/gateway/v1/usage")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)
request["Authorization"] = "Bearer YOUR_API_TOKEN"

response = http.request(request)
puts response.read_body
http --follow --timeout 3600 GET 'https://api.corbit.sa/gateway/v1/usage' \
  'Authorization:Bearer YOUR_API_TOKEN'
wget --quiet -O - \
  --method GET \
  --header 'Authorization: Bearer YOUR_API_TOKEN' \
  'https://api.corbit.sa/gateway/v1/usage'
import Foundation
#if canImport(FoundationNetworking)
import FoundationNetworking
#endif

let semaphore = DispatchSemaphore(value: 0)

var request = URLRequest(url: URL(string: "https://api.corbit.sa/gateway/v1/usage")!, timeoutInterval: 30)
request.httpMethod = "GET"
request.addValue("Bearer YOUR_API_TOKEN", forHTTPHeaderField: "Authorization")

let task = URLSession.shared.dataTask(with: request) { data, response, error in
  if let data = data {
    print(String(data: data, encoding: .utf8) ?? "")
  } else {
    print(String(describing: error))
  }
  semaphore.signal()
}
task.resume()
semaphore.wait()

Responsesالردود

200OKناجح
{
  "status": "Success",
  "data": {
    "rateLimit": {
      "limit": 1000,
      "windowSec": 60
    },
    "balance": {
      "value": 183,
      "asOf": "2026-09-18T10:00:00.000Z"
    }
  }
}
GET/gateway/v1/messages

Sent-message archiveأرشيف الرسائل المرسلة

All parameters are optional. Lists the messages sent from your account, newest first: destination, sender, message length and the backend message id(s) — not the message text. Filter by date, destination number or sender; add status=1 to also get each message's delivery status (delivered, failed, pending...). A final status is remembered, so it is read once. Paginate with cursor (the previous page's nextCursor); a filtered page can come back shorter than limit — keep following nextCursor until it is null.

جميع المعاملات اختيارية. يعرض الرسائل المرسلة من حسابك، الأحدث أولًا: الوجهة، اسم المرسِل، طول الرسالة، ومعرّف/معرّفات الرسالة — بدون نص الرسالة نفسه. يمكن التصفية بالتاريخ أو رقم الوجهة أو اسم المرسِل، وإضافة status=1 لجلب حالة تسليم كل رسالة (delivered وfailed وpending...). الحالة النهائية تُحفظ فتُقرأ مرة واحدة. للتصفّح استخدم cursor (قيمة nextCursor من الصفحة السابقة)؛ وقد تعود صفحة مصفّاة بأقل من limit — تابع nextCursor حتى يصبح null.

Authentication: Bearer tokenالمصادقة: توكن Bearer

Parametersالمعاملات

limitoptionalاختياري
queryرابط · integer

Page size, 1–200 (default 50).

حجم الصفحة، من 1 إلى 200 (الافتراضي 50).

cursoroptionalاختياري
queryرابط · string

nextCursor from a previous page, to continue.

قيمة nextCursor من الصفحة السابقة، للمتابعة.

fromoptionalاختياري
queryرابط · string

Oldest date to include: 2026-09-01, an ISO date-time, or epoch seconds.

أقدم تاريخ يُدرَج: 2026-09-01 أو تاريخ ووقت ISO أو ثوانٍ epoch.

tooptionalاختياري
queryرابط · string

Newest date to include (a bare date covers that whole day).

أحدث تاريخ يُدرَج (التاريخ وحده يشمل اليوم كاملًا).

numberoptionalاختياري
queryرابط · string

A destination number, or a piece of it.

رقم الوجهة، أو جزء منه.

senderoptionalاختياري
queryرابط · string

Sender name.

اسم المرسِل.

statusoptionalاختياري
queryرابط · string

1 also returns each message's delivery status.

القيمة 1 تُرجع أيضًا حالة تسليم كل رسالة.

Requestمثال الطلب

curl 'https://api.corbit.sa/gateway/v1/messages?limit=YOUR_LIMIT&cursor=YOUR_CURSOR&from=YOUR_FROM&to=YOUR_TO&number=YOUR_NUMBER&sender=YOUR_SENDER&status=YOUR_STATUS' \
  -H 'Authorization: Bearer YOUR_API_TOKEN'
const response = await fetch("https://api.corbit.sa/gateway/v1/messages?limit=YOUR_LIMIT&cursor=YOUR_CURSOR&from=YOUR_FROM&to=YOUR_TO&number=YOUR_NUMBER&sender=YOUR_SENDER&status=YOUR_STATUS", {
  method: "GET",
  headers: {
    "Authorization": "Bearer YOUR_API_TOKEN"
  }
});
const data = await response.json();
console.log(data);
import requests

response = requests.get(
    "https://api.corbit.sa/gateway/v1/messages?limit=YOUR_LIMIT&cursor=YOUR_CURSOR&from=YOUR_FROM&to=YOUR_TO&number=YOUR_NUMBER&sender=YOUR_SENDER&status=YOUR_STATUS",
    headers={"Authorization": "Bearer YOUR_API_TOKEN"},
)
print(response.json())
<?php
$ch = curl_init('https://api.corbit.sa/gateway/v1/messages?limit=YOUR_LIMIT&cursor=YOUR_CURSOR&from=YOUR_FROM&to=YOUR_TO&number=YOUR_NUMBER&sender=YOUR_SENDER&status=YOUR_STATUS');
curl_setopt_array($ch, [
    CURLOPT_CUSTOMREQUEST => 'GET',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => [
        'Authorization: Bearer YOUR_API_TOKEN',
    ],
]);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
#include <stdio.h>
#include <curl/curl.h>

int main(void) {
  CURL *curl = curl_easy_init();
  if (curl) {
    struct curl_slist *headers = NULL;
    headers = curl_slist_append(headers, "Authorization: Bearer YOUR_API_TOKEN");
    curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
    curl_easy_setopt(curl, CURLOPT_URL, "https://api.corbit.sa/gateway/v1/messages?limit=YOUR_LIMIT&cursor=YOUR_CURSOR&from=YOUR_FROM&to=YOUR_TO&number=YOUR_NUMBER&sender=YOUR_SENDER&status=YOUR_STATUS");
    curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
    CURLcode res = curl_easy_perform(curl);
    if (res != CURLE_OK) fprintf(stderr, "curl error: %s\n", curl_easy_strerror(res));
    curl_slist_free_all(headers);
    curl_easy_cleanup(curl);
  }
  return 0;
}
using System;
using System.Net.Http;
using System.Text;

var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Get, "https://api.corbit.sa/gateway/v1/messages?limit=YOUR_LIMIT&cursor=YOUR_CURSOR&from=YOUR_FROM&to=YOUR_TO&number=YOUR_NUMBER&sender=YOUR_SENDER&status=YOUR_STATUS");
request.Headers.Add("Authorization", "Bearer YOUR_API_TOKEN");
var response = await client.SendAsync(request);
Console.WriteLine(await response.Content.ReadAsStringAsync());
using System;
using RestSharp;

var client = new RestClient("https://api.corbit.sa/gateway/v1/messages?limit=YOUR_LIMIT&cursor=YOUR_CURSOR&from=YOUR_FROM&to=YOUR_TO&number=YOUR_NUMBER&sender=YOUR_SENDER&status=YOUR_STATUS");
var request = new RestRequest("", Method.Get);
request.AddHeader("Authorization", "Bearer YOUR_API_TOKEN");
RestResponse response = await client.ExecuteAsync(request);
Console.WriteLine(response.Content);
import 'package:http/http.dart' as http;

void main() async {
  final response = await http.get(
    Uri.parse("https://api.corbit.sa/gateway/v1/messages?limit=YOUR_LIMIT&cursor=YOUR_CURSOR&from=YOUR_FROM&to=YOUR_TO&number=YOUR_NUMBER&sender=YOUR_SENDER&status=YOUR_STATUS"),
    headers: {
      "Authorization": "Bearer YOUR_API_TOKEN",
    },
  );
  print(response.body);
}
package main

import (
	"fmt"
	"io"
	"net/http"
)

func main() {
	req, err := http.NewRequest("GET", "https://api.corbit.sa/gateway/v1/messages?limit=YOUR_LIMIT&cursor=YOUR_CURSOR&from=YOUR_FROM&to=YOUR_TO&number=YOUR_NUMBER&sender=YOUR_SENDER&status=YOUR_STATUS", nil)
	if err != nil {
		fmt.Println(err)
		return
	}
	req.Header.Add("Authorization", "Bearer YOUR_API_TOKEN")
	res, err := http.DefaultClient.Do(req)
	if err != nil {
		fmt.Println(err)
		return
	}
	defer res.Body.Close()

	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
GET /gateway/v1/messages?limit=YOUR_LIMIT&cursor=YOUR_CURSOR&from=YOUR_FROM&to=YOUR_TO&number=YOUR_NUMBER&sender=YOUR_SENDER&status=YOUR_STATUS HTTP/1.1
Host: api.corbit.sa
Authorization: Bearer YOUR_API_TOKEN
OkHttpClient client = new OkHttpClient().newBuilder().build();
Request request = new Request.Builder()
  .url("https://api.corbit.sa/gateway/v1/messages?limit=YOUR_LIMIT&cursor=YOUR_CURSOR&from=YOUR_FROM&to=YOUR_TO&number=YOUR_NUMBER&sender=YOUR_SENDER&status=YOUR_STATUS")
  .method("GET", null)
  .addHeader("Authorization", "Bearer YOUR_API_TOKEN")
  .build();
Response response = client.newCall(request).execute();
System.out.println(response.body().string());
HttpResponse<String> response = Unirest.get("https://api.corbit.sa/gateway/v1/messages?limit=YOUR_LIMIT&cursor=YOUR_CURSOR&from=YOUR_FROM&to=YOUR_TO&number=YOUR_NUMBER&sender=YOUR_SENDER&status=YOUR_STATUS")
  .header("Authorization", "Bearer YOUR_API_TOKEN")
  .asString();
System.out.println(response.getBody());
var settings = {
  "url": "https://api.corbit.sa/gateway/v1/messages?limit=YOUR_LIMIT&cursor=YOUR_CURSOR&from=YOUR_FROM&to=YOUR_TO&number=YOUR_NUMBER&sender=YOUR_SENDER&status=YOUR_STATUS",
  "method": "GET",
  "timeout": 0,
  "headers": {
    "Authorization": "Bearer YOUR_API_TOKEN"
  },
};

$.ajax(settings).done(function (response) {
  console.log(response);
});
var xhr = new XMLHttpRequest();
xhr.addEventListener("readystatechange", function () {
  if (this.readyState === 4) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://api.corbit.sa/gateway/v1/messages?limit=YOUR_LIMIT&cursor=YOUR_CURSOR&from=YOUR_FROM&to=YOUR_TO&number=YOUR_NUMBER&sender=YOUR_SENDER&status=YOUR_STATUS");
xhr.setRequestHeader("Authorization", "Bearer YOUR_API_TOKEN");
xhr.send();
const axios = require('axios');

const config = {
  method: 'get',
  url: 'https://api.corbit.sa/gateway/v1/messages?limit=YOUR_LIMIT&cursor=YOUR_CURSOR&from=YOUR_FROM&to=YOUR_TO&number=YOUR_NUMBER&sender=YOUR_SENDER&status=YOUR_STATUS',
  headers: {
    "Authorization": "Bearer YOUR_API_TOKEN"
  },
};

axios.request(config)
  .then((response) => console.log(JSON.stringify(response.data)))
  .catch((error) => console.log(error));
const https = require('https');

const options = {
  method: 'GET',
  hostname: 'api.corbit.sa',
  path: '/gateway/v1/messages?limit=YOUR_LIMIT&cursor=YOUR_CURSOR&from=YOUR_FROM&to=YOUR_TO&number=YOUR_NUMBER&sender=YOUR_SENDER&status=YOUR_STATUS',
  headers: {
    "Authorization": "Bearer YOUR_API_TOKEN"
  },
};

const req = https.request(options, (res) => {
  const chunks = [];
  res.on('data', (chunk) => chunks.push(chunk));
  res.on('end', () => console.log(Buffer.concat(chunks).toString()));
});

req.end();
var unirest = require('unirest');

unirest('GET', 'https://api.corbit.sa/gateway/v1/messages?limit=YOUR_LIMIT&cursor=YOUR_CURSOR&from=YOUR_FROM&to=YOUR_TO&number=YOUR_NUMBER&sender=YOUR_SENDER&status=YOUR_STATUS')
  .headers({
    "Authorization": "Bearer YOUR_API_TOKEN"
  })
  .end(function (res) {
    if (res.error) throw new Error(res.error);
    console.log(res.raw_body);
  });
#import <Foundation/Foundation.h>

dispatch_semaphore_t sema = dispatch_semaphore_create(0);

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"https://api.corbit.sa/gateway/v1/messages?limit=YOUR_LIMIT&cursor=YOUR_CURSOR&from=YOUR_FROM&to=YOUR_TO&number=YOUR_NUMBER&sender=YOUR_SENDER&status=YOUR_STATUS"]
  cachePolicy:NSURLRequestUseProtocolCachePolicy
  timeoutInterval:30.0];
NSDictionary *headers = @{
  @"Authorization": @"Bearer YOUR_API_TOKEN"
};
[request setAllHTTPHeaderFields:headers];
[request setHTTPMethod:@"GET"];

NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *dataTask = [session dataTaskWithRequest:request
  completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
    if (error) {
      NSLog(@"%@", error);
    } else {
      NSLog(@"%@", [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]);
    }
    dispatch_semaphore_signal(sema);
  }];
[dataTask resume];
dispatch_semaphore_wait(sema, DISPATCH_TIME_FOREVER);
open Lwt
open Cohttp
open Cohttp_lwt_unix

let uri = Uri.of_string "https://api.corbit.sa/gateway/v1/messages?limit=YOUR_LIMIT&cursor=YOUR_CURSOR&from=YOUR_FROM&to=YOUR_TO&number=YOUR_NUMBER&sender=YOUR_SENDER&status=YOUR_STATUS"
let headers = Header.of_list [
    ("Authorization", "Bearer YOUR_API_TOKEN");
]

let () = Lwt_main.run (
  Client.call ~headers `GET uri >>= fun (_, body) ->
  Cohttp_lwt.Body.to_string body >|= fun s -> print_endline s)
<?php
$client = new GuzzleHttp\Client();
$headers = [
    'Authorization' => 'Bearer YOUR_API_TOKEN',
];
$request = new GuzzleHttp\Psr7\Request('GET', 'https://api.corbit.sa/gateway/v1/messages?limit=YOUR_LIMIT&cursor=YOUR_CURSOR&from=YOUR_FROM&to=YOUR_TO&number=YOUR_NUMBER&sender=YOUR_SENDER&status=YOUR_STATUS', $headers);
$res = $client->sendAsync($request)->wait();
echo $res->getBody();
<?php
require_once 'HTTP/Request2.php';

$request = new HTTP_Request2();
$request->setUrl('https://api.corbit.sa/gateway/v1/messages?limit=YOUR_LIMIT&cursor=YOUR_CURSOR&from=YOUR_FROM&to=YOUR_TO&number=YOUR_NUMBER&sender=YOUR_SENDER&status=YOUR_STATUS');
$request->setMethod(HTTP_Request2::METHOD_GET);
$request->setConfig(array('follow_redirects' => TRUE));
$request->setHeader(array(
  'Authorization' => 'Bearer YOUR_API_TOKEN',
));
try {
  $response = $request->send();
  echo $response->getBody();
} catch (HTTP_Request2_Exception $e) {
  echo 'Error: ' . $e->getMessage();
}
<?php
$client = new http\Client;
$request = new http\Client\Request;
$request->setRequestUrl('https://api.corbit.sa/gateway/v1/messages?limit=YOUR_LIMIT&cursor=YOUR_CURSOR&from=YOUR_FROM&to=YOUR_TO&number=YOUR_NUMBER&sender=YOUR_SENDER&status=YOUR_STATUS');
$request->setRequestMethod('GET');
$request->setHeaders(array(
  'Authorization' => 'Bearer YOUR_API_TOKEN',
));
$client->enqueue($request)->send();
$response = $client->getResponse();
echo $response->getBody();
$headers = @{
    'Authorization' = 'Bearer YOUR_API_TOKEN'
}

$response = Invoke-RestMethod 'https://api.corbit.sa/gateway/v1/messages?limit=YOUR_LIMIT&cursor=YOUR_CURSOR&from=YOUR_FROM&to=YOUR_TO&number=YOUR_NUMBER&sender=YOUR_SENDER&status=YOUR_STATUS' -Method 'GET' -Headers $headers
$response | ConvertTo-Json -Depth 10
import http.client
import json

conn = http.client.HTTPSConnection("api.corbit.sa")
headers = {
    "Authorization": "Bearer YOUR_API_TOKEN",
}
conn.request("GET", "/gateway/v1/messages?limit=YOUR_LIMIT&cursor=YOUR_CURSOR&from=YOUR_FROM&to=YOUR_TO&number=YOUR_NUMBER&sender=YOUR_SENDER&status=YOUR_STATUS", headers)
res = conn.getresponse()
print(res.read().decode("utf-8"))
library(httr)

headers = c(
  'Authorization' = 'Bearer YOUR_API_TOKEN'
)

res <- VERB("GET", url = "https://api.corbit.sa/gateway/v1/messages?limit=YOUR_LIMIT&cursor=YOUR_CURSOR&from=YOUR_FROM&to=YOUR_TO&number=YOUR_NUMBER&sender=YOUR_SENDER&status=YOUR_STATUS", add_headers(headers))

cat(content(res, 'text'))
library(RCurl)

headers = c(
  'Authorization' = 'Bearer YOUR_API_TOKEN'
)

res <- getURLContent("https://api.corbit.sa/gateway/v1/messages?limit=YOUR_LIMIT&cursor=YOUR_CURSOR&from=YOUR_FROM&to=YOUR_TO&number=YOUR_NUMBER&sender=YOUR_SENDER&status=YOUR_STATUS", customrequest = "GET", httpheader = headers, followlocation = TRUE)

cat(res)
require "uri"
require "net/http"

url = URI("https://api.corbit.sa/gateway/v1/messages?limit=YOUR_LIMIT&cursor=YOUR_CURSOR&from=YOUR_FROM&to=YOUR_TO&number=YOUR_NUMBER&sender=YOUR_SENDER&status=YOUR_STATUS")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)
request["Authorization"] = "Bearer YOUR_API_TOKEN"

response = http.request(request)
puts response.read_body
http --follow --timeout 3600 GET 'https://api.corbit.sa/gateway/v1/messages?limit=YOUR_LIMIT&cursor=YOUR_CURSOR&from=YOUR_FROM&to=YOUR_TO&number=YOUR_NUMBER&sender=YOUR_SENDER&status=YOUR_STATUS' \
  'Authorization:Bearer YOUR_API_TOKEN'
wget --quiet -O - \
  --method GET \
  --header 'Authorization: Bearer YOUR_API_TOKEN' \
  'https://api.corbit.sa/gateway/v1/messages?limit=YOUR_LIMIT&cursor=YOUR_CURSOR&from=YOUR_FROM&to=YOUR_TO&number=YOUR_NUMBER&sender=YOUR_SENDER&status=YOUR_STATUS'
import Foundation
#if canImport(FoundationNetworking)
import FoundationNetworking
#endif

let semaphore = DispatchSemaphore(value: 0)

var request = URLRequest(url: URL(string: "https://api.corbit.sa/gateway/v1/messages?limit=YOUR_LIMIT&cursor=YOUR_CURSOR&from=YOUR_FROM&to=YOUR_TO&number=YOUR_NUMBER&sender=YOUR_SENDER&status=YOUR_STATUS")!, timeoutInterval: 30)
request.httpMethod = "GET"
request.addValue("Bearer YOUR_API_TOKEN", forHTTPHeaderField: "Authorization")

let task = URLSession.shared.dataTask(with: request) { data, response, error in
  if let data = data {
    print(String(data: data, encoding: .utf8) ?? "")
  } else {
    print(String(describing: error))
  }
  semaphore.signal()
}
task.resume()
semaphore.wait()

Responsesالردود

200OK — newest first
{
  "status": "Success",
  "data": {
    "messages": [
      {
        "ts": "2026-09-24T10:38:17.000Z",
        "ok": true,
        "destCount": 1,
        "length": 14,
        "to": [
          "201008834539"
        ],
        "sender": "School1",
        "id": [
          "30be7f80-e587-46ac-a5b3-0f89d21c03dd"
        ],
        "status": "delivered"
      }
    ],
    "nextCursor": null
  }
}
400Invalid date
{
  "status": "Error",
  "message": "\"tomorrow\" is not a valid date: use 2026-09-24, an ISO date-time, or epoch seconds.",
  "code": "VALIDATION"
}

© 2026 Corbit. All rights reserved. | Corbit Unified SMS Gateway API

© 2026 Corbit. جميع الحقوق محفوظة. | واجهة Corbit الموحدة للرسائل (API)