# Search SMS

## SearchOutboundSMS

<mark style="color:green;">`POST`</mark> `https://api.opentact.org/rest/sms/search/outbound`

This will search all outbound SMS.

#### Query Parameters

| Name | Type    | Description                         |
| ---- | ------- | ----------------------------------- |
| skip | integer | <p>>= 0 <br>Default: 0</p>          |
| take | integer | <p>\[ 1 .. 100 ]<br>Default: 10</p> |

#### Headers

| Name          | Type   | Description      |
| ------------- | ------ | ---------------- |
| Content-Type  | string | application/json |
| Authorization | string | JWT or Bearer    |

#### Request Body

| Name               | Type    | Description                                                                                                                                                 |
| ------------------ | ------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------- |
| tn                 | number  |                                                                                                                                                             |
| take               | integer | <p>\[ 1 .. 100 ]<br>Default: "10"<br>How many items to take</p>                                                                                             |
| skip               | integer | <p>>= 0 <br>Default: "0"<br>How many items to skip</p>                                                                                                      |
| mode               | string  | (ESearchMode) Enum: "AND" "OR"                                                                                                                              |
| order              | object  | <p>Order items by field's accepted values:<br>· tn<br>· to<br>· message<br>· state<br>· created\_on<br>· modified\_on<br>· reference\_id<br>· delivered</p> |
| created\_on\_from  | string  |                                                                                                                                                             |
| created\_on\_to    | string  |                                                                                                                                                             |
| modified\_on\_from | string  | \<date-time>                                                                                                                                                |
| modified\_on\_to   | string  | \<date-time>                                                                                                                                                |
| message            | string  | <p>\[ 1 .. 918 ] characters<br>Mask Supported</p>                                                                                                           |
| from               | string  | <p>\[ 3 .. 255 ] characters<br>Mask Supported </p>                                                                                                          |
| to                 | string  | <p>\[ 3 .. 255 ] characters<br>Mask Supported</p>                                                                                                           |
| delivered          | boolean |                                                                                                                                                             |
| state              | string  |                                                                                                                                                             |
| reference\_id      | string  |                                                                                                                                                             |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

### Code Example

{% tabs %}
{% tab title="cURL" %}

```bash
curl -X POST "https://api.opentact.org/rest/sms/search/outbound?take=10&skip=0" \
-H  "accept: application/json" -H  "X-Auth-Token: JWT_TOKEN" \
-H  "Content-Type: application/json" \
-d "{\"take\":10,\"skip\":0,\"mode\":\"AND\",\"order\":{},\"created_on_from\":\"2020-10-27T11:37:34.923Z\",\"created_on_to\":\"2020-10-27T11:37:34.923Z\",\"modified_on_from\":\"2020-10-27T11:37:34.923Z\",\"modified_on_to\":\"2020-10-27T11:37:34.923Z\",\"message\":\"string\",\"tn\":0,\"to\":\"string\",\"delivered\":true,\"state\":\"created\",\"reference_id\":\"string\"}"
```

{% endtab %}

{% tab title="PHP" %}

```php
<?php
include('vendor/rmccue/requests/library/Requests.php');
Requests::register_autoloader();
$headers = array(
    'accept' => 'application/json',
    'X-Auth-Token' => 'JWT_TOKEN',
    'Content-Type' => 'application/json'
);
$data = '{"take":10,"skip":0,"mode":"AND","order":{},"created_on_from":"2020-10-27T11:37:34.923Z","created_on_to":"2020-10-27T11:37:34.923Z","modified_on_from":"2020-10-27T11:37:34.923Z","modified_on_to":"2020-10-27T11:37:34.923Z","message":"string","tn":0,"to":"string","delivered":true,"state":"created","reference_id":"string"}';
$response = Requests::post('https://api.opentact.org/rest/sms/search/outbound?take=10&skip=0', $headers, $data);

```

{% endtab %}

{% tab title="Python" %}

```python
import requests

headers = {
    'accept': 'application/json',
    'X-Auth-Token': 'JWT_TOKEN',
    'Content-Type': 'application/json',
}

params = (
    ('take', '10'),
    ('skip', '0'),
)

data = '{"take":10,"skip":0,"mode":"AND","order":{},"created_on_from":"2020-10-27T11:37:34.923Z","created_on_to":"2020-10-27T11:37:34.923Z","modified_on_from":"2020-10-27T11:37:34.923Z","modified_on_to":"2020-10-27T11:37:34.923Z","message":"string","tn":0,"to":"string","delivered":true,"state":"created","reference_id":"string"}'

response = requests.post('https://api.opentact.org/rest/sms/search/outbound', headers=headers, params=params, data=data)

#NB. Original query string below. It seems impossible to parse and
#reproduce query strings 100% accurately so the one below is given
#in case the reproduced version is not "correct".
# response = requests.post('https://api.opentact.org/rest/sms/search/outbound?take=10&skip=0', headers=headers, data=data)

```

{% endtab %}

{% tab title="Javascript" %}

```javascript
var fetch = require('node-fetch');

fetch('https://api.opentact.org/rest/sms/search/outbound?take=10&skip=0', {
    method: 'POST',
    headers: {
        'accept': 'application/json',
        'X-Auth-Token': 'JWT_TOKEN',
        'Content-Type': 'application/json'
    },
    body: JSON.stringify({"take":10,"skip":0,"mode":"AND","order":{},"created_on_from":"2020-10-27T11:37:34.923Z","created_on_to":"2020-10-27T11:37:34.923Z","modified_on_from":"2020-10-27T11:37:34.923Z","modified_on_to":"2020-10-27T11:37:34.923Z","message":"string","tn":0,"to":"string","delivered":true,"state":"created","reference_id":"string"})
});

```

{% endtab %}

{% tab title="Go" %}

```go
package main

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

func main() {
	client := &http.Client{}
	var data = strings.NewReader(`{"take":10,"skip":0,"mode":"AND","order":{},"created_on_from":"2020-10-27T11:37:34.923Z","created_on_to":"2020-10-27T11:37:34.923Z","modified_on_from":"2020-10-27T11:37:34.923Z","modified_on_to":"2020-10-27T11:37:34.923Z","message":"string","tn":0,"to":"string","delivered":true,"state":"created","reference_id":"string"}`)
	req, err := http.NewRequest("POST", "https://api.opentact.org/rest/sms/search/outbound?take=10&skip=0", data)
	if err != nil {
		log.Fatal(err)
	}
	req.Header.Set("accept", "application/json")
	req.Header.Set("X-Auth-Token", "JWT_TOKEN")
	req.Header.Set("Content-Type", "application/json")
	resp, err := client.Do(req)
	if err != nil {
		log.Fatal(err)
	}
	bodyText, err := ioutil.ReadAll(resp.Body)
	if err != nil {
		log.Fatal(err)
	}
	fmt.Printf("%s\n", bodyText)
}

```

{% endtab %}
{% endtabs %}

## SearchInboundSMS

<mark style="color:green;">`POST`</mark> `https://api.opentact.org/rest/sms/search/inbound`

This will search all inbound SMS.

#### Query Parameters

| Name | Type    | Description                         |
| ---- | ------- | ----------------------------------- |
| skip | integer | <p>>= 0 <br>Default: 0</p>          |
| take | integer | <p>\[ 1 .. 100 ]<br>Default: 10</p> |

#### Request Body

| Name               | Type    | Description                                                                                                                                                 |
| ------------------ | ------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------- |
| tn                 | integer |                                                                                                                                                             |
| take               | integer | <p>\[ 1 .. 100 ]<br>Default: "10"<br>How many items to take</p>                                                                                             |
| skip               | integer | <p>>= 0 <br>Default: "0"<br>How many items to skip</p>                                                                                                      |
| mode               | string  | (ESearchMode) Enum: "AND" "OR"                                                                                                                              |
| order              | object  | <p>Order items by field's accepted values:<br>· tn<br>· to<br>· message<br>· state<br>· created\_on<br>· modified\_on<br>· reference\_id<br>· delivered</p> |
| created\_on\_from  | string  |                                                                                                                                                             |
| created\_on\_to    | string  |                                                                                                                                                             |
| modified\_on\_from | string  | \<date-time>                                                                                                                                                |
| modified\_on\_to   | string  | \<date-time>                                                                                                                                                |
| message            | string  | <p>\[ 1 .. 918 ] characters<br>Mask Supported</p>                                                                                                           |
| from               | string  | <p>\[ 3 .. 255 ] characters<br>Mask Supported</p>                                                                                                           |
| to                 | string  | <p>\[ 3 .. 255 ] characters<br>Mask Supported</p>                                                                                                           |
| delivered          | boolean |                                                                                                                                                             |
| readed             | boolean |                                                                                                                                                             |
| state              | string  | <p>(ESMSIState) <br>Enum: "created" "success" "failed"</p>                                                                                                  |

{% tabs %}
{% tab title="200 " %}

```javascript
{
  "success": true,
  "payload": {
    "total": 0,
    "take": 10,
    "skip": 0,
    "data": []
  }
}
```

{% endtab %}
{% endtabs %}

###

### Code Example

{% tabs %}
{% tab title="cURL" %}

```bash
curl -X POST "https://api.opentact.org/rest/sms/search/inbound?take=10&skip=0" \
-H  "accept: application/json" -H  "X-Auth-Token: JWT_TOKEN" \
-H  "Content-Type: application/json" \
-d "{\"take\":10,\"skip\":0,\"mode\":\"AND\",\"order\":{\"delivered\":\"ASC\"},\"created_on_from\":\"2020-10-27T12:22:07.076Z\",\"created_on_to\":\"2020-10-27T12:22:07.076Z\",\"modified_on_from\":\"2020-10-27T12:22:07.076Z\",\"modified_on_to\":\"2020-10-27T12:22:07.076Z\",\"message\":\"string\",\"tn\":0,\"to\":\"string\",\"from\":\"string\",\"delivered\":true,\"readed\":true,\"state\":\"created\"}"
```

{% endtab %}

{% tab title="PHP" %}

```php
<?php
include('vendor/rmccue/requests/library/Requests.php');
Requests::register_autoloader();
$headers = array(
    'accept' => 'application/json',
    'X-Auth-Token' => 'JWT_TOKEN',
    'Content-Type' => 'application/json'
);
$data = '{"take":10,"skip":0,"mode":"AND","order":{"delivered":"ASC"},"created_on_from":"2020-10-27T12:22:07.076Z","created_on_to":"2020-10-27T12:22:07.076Z","modified_on_from":"2020-10-27T12:22:07.076Z","modified_on_to":"2020-10-27T12:22:07.076Z","message":"string","tn":0,"to":"string","from":"string","delivered":true,"readed":true,"state":"created"}';
$response = Requests::post('https://api.opentact.org/rest/sms/search/inbound?take=10&skip=0', $headers, $data);

```

{% endtab %}

{% tab title="Python" %}

```python
import requests

headers = {
    'accept': 'application/json',
    'X-Auth-Token': 'JWT_TOKEN',
    'Content-Type': 'application/json',
}

params = (
    ('take', '10'),
    ('skip', '0'),
)

data = '{"take":10,"skip":0,"mode":"AND","order":{"delivered":"ASC"},"created_on_from":"2020-10-27T12:22:07.076Z","created_on_to":"2020-10-27T12:22:07.076Z","modified_on_from":"2020-10-27T12:22:07.076Z","modified_on_to":"2020-10-27T12:22:07.076Z","message":"string","tn":0,"to":"string","from":"string","delivered":true,"readed":true,"state":"created"}'

response = requests.post('https://api.opentact.org/rest/sms/search/inbound', headers=headers, params=params, data=data)

#NB. Original query string below. It seems impossible to parse and
#reproduce query strings 100% accurately so the one below is given
#in case the reproduced version is not "correct".
# response = requests.post('https://api.opentact.org/rest/sms/search/inbound?take=10&skip=0', headers=headers, data=data)

```

{% endtab %}

{% tab title="Javascript" %}

```javascript
var fetch = require('node-fetch');

fetch('https://api.opentact.org/rest/sms/search/inbound?take=10&skip=0', {
    method: 'POST',
    headers: {
        'accept': 'application/json',
        'X-Auth-Token': 'JWT_TOKEN',
        'Content-Type': 'application/json'
    },
    body: JSON.stringify({"take":10,"skip":0,"mode":"AND","order":{"delivered":"ASC"},"created_on_from":"2020-10-27T12:22:07.076Z","created_on_to":"2020-10-27T12:22:07.076Z","modified_on_from":"2020-10-27T12:22:07.076Z","modified_on_to":"2020-10-27T12:22:07.076Z","message":"string","tn":0,"to":"string","from":"string","delivered":true,"readed":true,"state":"created"})
});

```

{% endtab %}

{% tab title="Go" %}

```go
package main

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

func main() {
	client := &http.Client{}
	var data = strings.NewReader(`{"take":10,"skip":0,"mode":"AND","order":{"delivered":"ASC"},"created_on_from":"2020-10-27T12:22:07.076Z","created_on_to":"2020-10-27T12:22:07.076Z","modified_on_from":"2020-10-27T12:22:07.076Z","modified_on_to":"2020-10-27T12:22:07.076Z","message":"string","tn":0,"to":"string","from":"string","delivered":true,"readed":true,"state":"created"}`)
	req, err := http.NewRequest("POST", "https://api.opentact.org/rest/sms/search/inbound?take=10&skip=0", data)
	if err != nil {
		log.Fatal(err)
	}
	req.Header.Set("accept", "application/json")
	req.Header.Set("X-Auth-Token", "JWT_TOKEN")
	req.Header.Set("Content-Type", "application/json")
	resp, err := client.Do(req)
	if err != nil {
		log.Fatal(err)
	}
	bodyText, err := ioutil.ReadAll(resp.Body)
	if err != nil {
		log.Fatal(err)
	}
	fmt.Printf("%s\n", bodyText)
}

```

{% endtab %}
{% endtabs %}

## SearchSMS

<mark style="color:green;">`POST`</mark> `https://api.opentact.org/rest/sms/search`

This will search inbound and outbound SMS.

#### Query Parameters

| Name | Type    | Description                         |
| ---- | ------- | ----------------------------------- |
| skip | integer | <p>>= 0 <br>Default: 0</p>          |
| take | integer | <p>\[ 1 .. 100 ]<br>Default: 10</p> |

#### Request Body

| Name               | Type    | Description                                                                                                                                                                 |
| ------------------ | ------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| take               | integer | <p>\[ 1 .. 100 ]<br>Default: "10"<br>How many items to take</p>                                                                                                             |
| skip               | integer | <p>>= 0 <br>Default: "0"<br>How many items to skip</p>                                                                                                                      |
| mode               | string  | (ESearchMode) Enum: "AND" "OR"                                                                                                                                              |
| order              | object  | <p>Order items by field's accepted values:<br>· tn<br>· to<br>· message<br>· state<br>· created\_on - Default: DESC<br>· modified\_on<br>· reference\_id<br>· delivered</p> |
| created\_on\_from  | string  |                                                                                                                                                                             |
| created\_on\_to    | string  |                                                                                                                                                                             |
| modified\_on\_from | string  | \<date-time>                                                                                                                                                                |
| modified\_on\_to   | string  | \<date-time>                                                                                                                                                                |
| message            | string  | <p>\[ 1 .. 918 ] characters<br>Mask Supported</p>                                                                                                                           |
| from               | string  | <p>\[ 3 .. 255 ] characters<br>Mask Supported</p>                                                                                                                           |
| to                 | string  | <p>\[ 3 .. 255 ] characters<br>Mask Supported</p>                                                                                                                           |
| delivered          | boolean |                                                                                                                                                                             |
| state              | string  | Enum: "created" "sending" "sent" "failed"                                                                                                                                   |
| thread             | string  | 33 characters                                                                                                                                                               |

{% tabs %}
{% tab title="200 " %}

```javascript
{
  "success": true,
  "payload": {
    "total": 0,
    "take": 10,
    "skip": 0,
    "data": []
  }
}
```

{% endtab %}
{% endtabs %}

###

### Code Example

{% tabs %}
{% tab title="cURL" %}

```bash
curl -X POST "https://api.opentact.org/rest/sms/search?take=10&skip=0" \
-H  "accept: application/json" -H  "X-Auth-Token: JWT_TOKEN" \
-H  "Content-Type: application/json" \
-d "{\"take\":10,\"skip\":0,\"mode\":\"AND\",\"order\":{},\"created_on_from\":\"2020-10-27T12:38:30.777Z\",\"created_on_to\":\"2020-10-27T12:38:30.777Z\",\"modified_on_from\":\"2020-10-27T12:38:30.777Z\",\"modified_on_to\":\"2020-10-27T12:38:30.777Z\",\"from\":\"string\",\"to\":\"string\",\"thread\":\"string\",\"message\":\"string\",\"delivered\":true,\"state\":\"created\"}"
```

{% endtab %}

{% tab title="PHP" %}

```php
<?php
include('vendor/rmccue/requests/library/Requests.php');
Requests::register_autoloader();
$headers = array(
    'accept' => 'application/json',
    'X-Auth-Token' => 'JWT_TOKEN',
    'Content-Type' => 'application/json'
);
$data = '{"take":10,"skip":0,"mode":"AND","order":{},"created_on_from":"2020-10-27T12:38:30.777Z","created_on_to":"2020-10-27T12:38:30.777Z","modified_on_from":"2020-10-27T12:38:30.777Z","modified_on_to":"2020-10-27T12:38:30.777Z","from":"string","to":"string","thread":"string","message":"string","delivered":true,"state":"created"}';
$response = Requests::post('https://api.opentact.org/rest/sms/search?take=10&skip=0', $headers, $data);

```

{% endtab %}

{% tab title="Python" %}

```python
import requests

headers = {
    'accept': 'application/json',
    'X-Auth-Token': 'JWT_TOKEN',
    'Content-Type': 'application/json',
}

params = (
    ('take', '10'),
    ('skip', '0'),
)

data = '{"take":10,"skip":0,"mode":"AND","order":{},"created_on_from":"2020-10-27T12:38:30.777Z","created_on_to":"2020-10-27T12:38:30.777Z","modified_on_from":"2020-10-27T12:38:30.777Z","modified_on_to":"2020-10-27T12:38:30.777Z","from":"string","to":"string","thread":"string","message":"string","delivered":true,"state":"created"}'

response = requests.post('https://api.opentact.org/rest/sms/search', headers=headers, params=params, data=data)

#NB. Original query string below. It seems impossible to parse and
#reproduce query strings 100% accurately so the one below is given
#in case the reproduced version is not "correct".
# response = requests.post('https://api.opentact.org/rest/sms/search?take=10&skip=0', headers=headers, data=data)

```

{% endtab %}

{% tab title="Javascript" %}

```javascript
var fetch = require('node-fetch');

fetch('https://api.opentact.org/rest/sms/search?take=10&skip=0', {
    method: 'POST',
    headers: {
        'accept': 'application/json',
        'X-Auth-Token': 'JWT_TOKEN',
        'Content-Type': 'application/json'
    },
    body: JSON.stringify({"take":10,"skip":0,"mode":"AND","order":{},"created_on_from":"2020-10-27T12:38:30.777Z","created_on_to":"2020-10-27T12:38:30.777Z","modified_on_from":"2020-10-27T12:38:30.777Z","modified_on_to":"2020-10-27T12:38:30.777Z","from":"string","to":"string","thread":"string","message":"string","delivered":true,"state":"created"})
});

```

{% endtab %}

{% tab title="Go" %}

```go
package main

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

func main() {
	client := &http.Client{}
	var data = strings.NewReader(`{"take":10,"skip":0,"mode":"AND","order":{},"created_on_from":"2020-10-27T12:38:30.777Z","created_on_to":"2020-10-27T12:38:30.777Z","modified_on_from":"2020-10-27T12:38:30.777Z","modified_on_to":"2020-10-27T12:38:30.777Z","from":"string","to":"string","thread":"string","message":"string","delivered":true,"state":"created"}`)
	req, err := http.NewRequest("POST", "https://api.opentact.org/rest/sms/search?take=10&skip=0", data)
	if err != nil {
		log.Fatal(err)
	}
	req.Header.Set("accept", "application/json")
	req.Header.Set("X-Auth-Token", "JWT_TOKEN")
	req.Header.Set("Content-Type", "application/json")
	resp, err := client.Do(req)
	if err != nil {
		log.Fatal(err)
	}
	bodyText, err := ioutil.ReadAll(resp.Body)
	if err != nil {
		log.Fatal(err)
	}
	fmt.Printf("%s\n", bodyText)
}

```

{% endtab %}
{% endtabs %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://dantonia.gitbook.io/test/messaging/search-sms.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
