Developers

Automate and monitor your notifications with the Proofly API.

Introduction

Use the Proofly API to automate your marketing. This API is totally free to use for all users.

The rate limits differ per user subscription, free users may use 1 request per minute, users with a paid subscription are allowed to use 500 requests per minute.

API Base URL https://proofly.io/api

Authentication

Setting authentication is very simple, just pass the X-Api-Key as a header along with your request.

If authentication fails, the API returns ok with value false and error containing useful information about the failure. Example: Authentication failed: give me a X-Api-Key header.

Visit this page when logged-in will show your API-key here.

User GET

Retrieve general information of the user.

Endpoint /user

EXAMPLE OUTPUT

{
   "ok": true,
   "status": 200,
   "data": {
      "name": "John Doe",
      "email": "info@example.com,
      "meta": {
         "logins": 36,
         "registered": "1970-01-01 00:00:00"
      },
      "impressions": {
         "period": 2311,
         "total": 57642
      },
      "pixel": {
         "key": "4a381ad875b564f97d62",
         "debug": false
      }
   }
}

Activity GET

Retrieve activity logs of the user.

Endpoint /activity

EXAMPLE OUTPUT

{
   "ok": true,
   "status": 200,
   "data": [
      {
         "type": "login.success",
         "ip": "46.101.129.76",
         "date": "1970-01-01 00:00:00"
      },
      {
         "type": "register.success",
         "ip": "46.101.129.76",
         "date": "1970-01-01 00:00:00"
      },
      ...
   ]
}

Campaigns GET

Retrieve all campaigns in the user account.

Endpoint /campaigns

EXAMPLE OUTPUT

{
   "ok": true,
   "status": 200,
   "data": [
      {
         "id": 464014,
         "name": "Example",
         "domain": {
            "domain": "example.com,
            "subdomains": true
         },
         "enabled": true,
         "created": "1970-01-01 00:00:00"
      },
      ...
   ]
}

Campaign GET

Retrieve information of all notifications in a single campaign. The campaign_id can be found by requesting the /campaigns endpoint.

Endpoint /campaign/{campaign_id}

EXAMPLE OUTPUT

{
   "ok": true,
   "status": 200,
   "data": [
      {
         "id": 745613007,
         "name": "Recent buyers",
         "type": "LATEST_CONVERSION",
         "settings": {
            "triggers": {
               "everywhere": false,
               "triggers": [
                  {
                     "type": "contains",
                     "value": "example.com/checkout"
                  }
               ]
            },
            "display": {
               "trigger": "delay",
               "trigger_value": 0,
               "once_per_session": false,
               "enable_mobile": true,
               "duration": 5,
               "position": "bottom_center",
               "enable_close": false
            }
         },
         "stats": {
            "impressions": 4136,
            "hovers": 1822,
            "clicks": 0,
            "leads": 0
         },
         "enabled": true,
         "created": "1970-01-01 00:00:00"
      },
      ...
   ]
}

Campaign PUT

Toggle the active/inactive option of a campaign. The campaign_id can be found by requesting the /campaigns endpoint.

Endpoint /campaign/{campaign_id}

EXAMPLE OUTPUT

{
   "ok": true,
   "status": 200,
   "data": "Campaign successfully enabled"
}

Data GET

Retrieve data, leads and conversions from an individual notification. The notification_id can be found by requesting the /campaign/{campaign_id} endpoint.

Endpoint /data/{notification_id}

EXAMPLE OUTPUT

{
   "ok": true,
   "status": 200,
   "data": [
      {
         "type": "collector",
         "data": {
            "input": "info@example.com"
         },
         "ip": "46.101.129.76",
         "url": "https://example.com/",
         "location": {
            "city": "Amsterdam",
            "country_code": "NL",
            "country": "The Netherlands"
         },
         "date": "1970-01-01 00:00:00"
      },
      ...
   ]
}

Got some ideas or suggestions for the API?
Let us know! We love improving stuff!