API Documentation

This is the documentation for the available API endpoints, which are built around the REST architecture. All the API endpoints will return a JSON response with the standard HTTP response codes and need a Bearer Authentication via an API Key.

Authentication

All the API endpoints require an API key sent by the Bearer Authentication method.

curl --request GET \
--url 'https://widget.sg/api/{endpoint}' \
--header 'Authorization: Bearer {api_key}' \

User

GET https://widget.sg/api/user
curl --request GET \
--url 'https://widget.sg/api/user' \
--header 'Authorization: Bearer {api_key}' \
{
    "data": {
        "id":"1",
        "type":"users",
        "email":"example@example.com",
        "billing":{
            "type":"personal",
            "name":"John Doe",
            "address":"Lorem Ipsum",
            "city":"Dolor Sit",
            "county":"Amet",
            "zip":"5000",
            "country":"",
            "phone":"",
            "tax_id":""
        },
        "is_enabled":true,
        "plan_id":"custom",
        "plan_expiration_date":"2025-12-12 00:00:00",
        "plan_settings":{
            ...
        },
        "plan_trial_done":false,
        "language":"english",
        "timezone":"UTC",
        "country":null,
        "date":"2020-01-01 00:00:00",
        "last_activity":"2020-01-01 00:00:00",
        "total_logins":10
    }
}

Campaigns

GET https://widget.sg/api/campaigns/
curl --request GET \
--url 'https://widget.sg/api/campaigns/' \
--header 'Authorization: Bearer {api_key}' \
Parameters Details Description
page Optional The page number that you want results from. Defaults to 1.
results_per_page Optional How many results you want per page. Allowed values are: 10 , 25 , 50 , 100 , 250. Defaults to 25.
{
    "data": [
        {
            "id": 1,
            "pixel_key": "1234567890abcdef",
            "name": "Example",
            "domain": "example.com",
            "include_subdomains": true,
            "branding": {
                "name": "",
                "url": ""
            },
            "is_enabled": true,
            "last_datetime": null,
            "datetime": "2019-05-22 23:40:17"
        }
    ],
    "meta": {
        "page": 1,
        "results_per_page": 25,
        "total": 1,
        "total_pages": 1
    },
    "links": {
        "first": "https://widget.sg/api/campaigns?&page=1",
        "last": "https://widget.sg/api/campaigns?&page=1",
        "next": null,
        "prev": null,
        "self": "https://widget.sg/api/campaigns?&page=1"
    }
}
GET https://widget.sg/api/campaigns/{campaign_id}
curl --request GET \
--url 'https://widget.sg/api/campaigns/{campaign_id}' \
--header 'Authorization: Bearer {api_key}' \
{
    "data": {
        "id": 1,
        "pixel_key": "1234567890abcdef",
        "name": "Example",
        "domain": "example.com",
        "include_subdomains": true,
        "branding": {
            "name": "",
            "url": ""
        },
        "is_enabled": true,
        "last_datetime": null,
        "datetime": "2019-05-22 23:40:17"
    }
}

Notifications

GET https://widget.sg/api/notifications/
curl --request GET \
--url 'https://widget.sg/api/notifications/' \
--header 'Authorization: Bearer {api_key}' \
Parameters Details Description
page Optional The page number that you want results from. Defaults to 1.
results_per_page Optional How many results you want per page. Allowed values are: 10 , 25 , 50 , 100 , 250. Defaults to 25.
{
    "data": [
        {
            "id": 1,
            "campaign_id": 1,
            "notification_key": "d4752d29a557a9fdc67b0a9a27cbe3b1",
            "name": "Email Collector",
            "type": "EMAIL_COLLECTOR",
            "settings": {
                ...
            },
            "is_enabled": false,
            "last_datetime": null,
            "datetime": "2019-05-29 22:30:29"
        }
    ],
    "meta": {
        "page": 1,
        "results_per_page": 25,
        "total": 1,
        "total_pages": 1
    },
    "links": {
        "first": "https://widget.sg/api/notifications?&page=1",
        "last": "https://widget.sg/api/notifications?&page=1",
        "next": null,
        "prev": null,
        "self": "https://widget.sg/api/notifications?&page=1"
    }
}
GET https://widget.sg/api/notifications/{notification_id}
curl --request GET \
--url 'https://widget.sg/api/notifications/{notification_id}' \
--header 'Authorization: Bearer {api_key}' \
{
    "data": {
        "id": 1,
        "campaign_id": 1,
        "notification_key": "d4752d29a557a9fdc67b0a9a27cbe3b1",
        "name": "Email Collector",
        "type": "EMAIL_COLLECTOR",
        "settings": {
            ...
        },
        "is_enabled": false,
        "last_datetime": null,
        "datetime": "2019-05-29 22:30:29"
    }
}

Payments

GET https://widget.sg/api/payments/
curl --request GET \
--url 'https://widget.sg/api/payments/' \
--header 'Authorization: Bearer {api_key}' \
Parameters Details Description
page Optional The page number that you want results from. Defaults to 1.
results_per_page Optional How many results you want per page. Allowed values are: 10 , 25 , 50 , 100 , 250. Defaults to 25.
{
    "data": [
        {
            "id": 1,
            "plan_id": 1,
            "processor": "stripe",
            "type": "one_time",
            "frequency": "monthly",
            "email": "example@example.com",
            "name": null,
            "total_amount": "4.99",
            "currency": "USD",
            "status": true,
            "date": "2021-03-25 15:08:58"
        },
    ],
    "meta": {
        "page": 1,
        "results_per_page": 25,
        "total": 1,
        "total_pages": 1
    },
    "links": {
        "first": "https://widget.sg/api/payments?&page=1",
        "last": "https://widget.sg/api/payments?&page=1",
        "next": null,
        "prev": null,
        "self": "https://widget.sg/api/payments?&page=1"
    }
}
GET https://widget.sg/api/payments/{payment_id}
curl --request GET \
--url 'https://widget.sg/api/payments/{payment_id}' \
--header 'Authorization: Bearer {api_key}' \
{
    "data": {
        "id": 1,
        "plan_id": 1,
        "processor": "stripe",
        "type": "one_time",
        "frequency": "monthly",
        "email": "example@example.com",
        "name": null,
        "total_amount": "4.99",
        "currency": "USD",
        "status": true,
        "date": "2021-03-25 15:08:58"
    }
}

Logs

GET https://widget.sg/api/logs/
curl --request GET \
--url 'https://widget.sg/api/logs/' \
--header 'Authorization: Bearer {api_key}' \
Parameters Details Description
page Optional The page number that you want results from. Defaults to 1.
results_per_page Optional How many results you want per page. Allowed values are: 10 , 25 , 50 , 100 , 250. Defaults to 25.
{
    "data": [
        {
            "type": "login.success",
            "ip": "127.0.0.1",
            "date": "2021-02-03 12:21:40"
        },
        {
            "type": "login.success",
            "ip": "127.0.0.1",
            "date": "2021-02-03 12:23:26"
        }
    ],
    "meta": {
        "page": 1,
        "results_per_page": 25,
        "total": 1,
        "total_pages": 1
    },
    "links": {
        "first": "https://widget.sg/api/payments?&page=1",
        "last": "https://widget.sg/api/payments?&page=1",
        "next": null,
        "prev": null,
        "self": "https://widget.sg/api/payments?&page=1"
    }
}