CERTIFY Snap API

API Credentials

In order to retrieve the credentials needed for use of public APIs get the key values from the CERTIFY.me portal. Once you are logged into the portal navigate to Configuration -> API Management.

Copy the values for API ID and API Key that needs to used with each API call.

Generate Access Token 

This operation generates an access token in exchange for API credentials that can be used by clients to access secured CERTIFY.me services. You must make this request over HTTPS. User credentials must be passed in the header of the request.

Request URL: https://{apipath}.certify.me/AccessToken

Request Headers

Property Name

Required

Type

Description

Content-Type

yes

Type

application/json

api_id

yes

String

Login id

api_key

yes

String

login  secret

grant_type

yes

String

password

 

Content-Type:application/json
api_id:3128e336-64f9-e294-17b5-ed1f34d76f79
api_key:2f924cad-98c5-3631-b3a4-e107dee7e014
grant_type:password

Response

Property Name

Type

Description

access_token

String

Token value

token_type

String

Value returned will be “bearer”

expires_in

String

Validity period

accountId

Integer

Account id of the cloud account

responseCode

String

1 – Success ,0 – Error

.issued

String

Issued Date time

.expires

String

Expiring Datetime

Sample Response

{
  "access_token":"tCwGDB4zLU7g0ivMPqnfIC1lP_lJ1pdmSIiSQIhp0wzEhsIQgNti8zGd9o2sUj7x5zDtPG6Gy3GwgdWfrFQnXotwiCjekYOT968CY_pm-OIAg4SvAMdlTc1VJw-SkwctBU6UtWk0sAgjSYbJjPhzlKasU-M0X7ZPbxqlmxl9rhAWaQQJwbi8uVqDgKs-dxSr67AkQ7dR_ZpYkNb6jkD9Cy4VCKVl37DlKAPFMKq65xEwudDYIOiUXVj-PNt29Q9Oe_Tyx4XxPUTQGb9tGsYKooPxLG8",
  "token_type":"bearer",
  "expires_in":1209599,
  "accountID":"1185",
  "responseCode":"1",
  ".issued":"Tue, 05 May 2020 19:08:41 GMT",
  ".expires":"Tue, 19 May 2020 19:08:41 GMT"
  }

 


Manage Member

The CERTIFY.me Member Management API gives you programmatic access to member Creation and updating a member.

With the CERTIFY.me Member Management API, Enterprise customers can automatically provision Members, Vendors or Staff, synchronize the access details, and grant and remove access to the Members.

Request URL:- https://{apipath}.certify.me/ManageMember

Request

Request Headers

Property Name

Required

Type

Description

Content-Type

yes

Type

application/json

api_id

Yes

String

Login ID

Authorization

yes

string

bearer token

curl --location --request POST 'https://api.certify.me/ManageMember' \
--header 'Content-Type: application/json' \
--header 'api_id: de3c8998-8e3b-7f43-64ff-8935d2bd6fv' \
--header 'Authorization: Bearer FS6gKnDhAyoOsD9L8x5ggJ5wfnPTjbsA0rfSvL4-QETlM8lrKTozbi8oPJ04moIIdkFM0U6_iTbJCSouWdT1-8ZCPdpa9p2HDMyJwz3YSMEQejmSppB_npQeaIpCttHG7PwqIS_fPYBDCyv-zAs9m3FwXeo1vcBpGrsTerI-oJTXUz-7YyQx67mYaSgzUOLkZDw9Vk7YeJjN2FDz23gHcHF5RjGFBcedneEA7RMZJAS0FKQ' \

Request Body

Key

Required

Type

Description

id

Optional

Long (Numeric)

Unique ID Value generated by Certify.me. If present the value will be updated will take precedence over memberId

firstName

yes

String

First Name

lastName

yes

String

Last Name

email

Optional

String

Email

phoneNumber

Optional

String

Phone number

memberId

Optional

String

Unique account ID managed by the customer for their users/member in  the cloud account

accessId

Optional

String

Access Card ID to be used for access control or identification on the device

workflowName

Optional

String

Workflow name

faceTemplate

Base64

String

Base64 of image

memberType

Optional

Int

By default a member is created

To use the member_type in using the public API. The translation of the memberType is as follows

Example: To create the member with the type of “vendor” pass the member_type value of 11.

The numbering of the member type can be obtained from the member type under settings tab.

Refer to Member Type for additional information

status

Bool

 

Member record status
True – active
false -inactive

Sample Request

  • Register member Request

{										
    "id": 0,
    "firstName": "John",
    "lastname": "Doe",
    "email": "",
    "phoneNumber": "",
    "memberId": "",
    "accessId": "",
    "faceTemplate": "",
    "status": true,
    "memberType":1,
    "workflowName":"test",
}
  •  Update member request

{
    "id": 11853253440528,
    "firstName": "John",
    "lastname": "Doe",
    "email": "John.due@certify.com",
    "phoneNumber": "67663892",
    "memberId": "ID123",
    "accessId": "",
    "faceTemplate": "",
    "status": true,
    "MemberType":1,
    "workflowName":"test",
}
	

Response Body

Key

Type

Description

message

String

Message description if error occurs

responseCode

Integer

1 – Success ,0 – Error

responseSubCode

Integer

204 – AccessID Exists

203 – MemberId Exists

209 – Invalid Member type

Id

Long (Numeric)

Id of the member add or updated

Sample Response

  • Register member response

{
    "id": "11853253440528",
    "responseCode": 1,
    "responseSubCode": 0,
    "responseMessage": "Success"
}
  • Update member response

{
    "id": "11853253440528",
    "responseCode": 1,
    "responseSubCode": 0,
    "responseMessage": "Success"
}

 


 GET MEMBER-

The CERTIFY.me Member Management API gives you access to Search a member by the id, access id and the Member id.

Get Member By Id

 The CERTIFY.me Member Management API gives you access to Search a member by the id.

With the CERTIFY.me Member Management API, Enterprise customers can search Members, Vendors or Staff, by the id’s generated.

Request URL:- https://{apipath}.certify.me/GetMemberById

Request

Request Headers

Property Name

Required

Type

Description

Content-Type

yes

application/json

Api_id

yes

String

Login ID

Authorization

yes

String

Bearer token

curl --location --request POST ''https://api.certify.me/GetMemberById
--header 'Content-Type: application/json' \
--header 'api_id: de3c8998-8e3b-7f43-64ff-8935d2bd6fv' \
--header 'Authorization: Bearer  "XTSjWQ9QxMU2_HT9rmQW0SXz6L7tXxhKLi31_5hzVJjO8utP6wZwE8f6tAtVQKkriCnyogvXWwMAzbSqa1EY0nWhz7guZUrtHPny_uQxC2uSK7dWSL23f6dEL2AZycQYmGIJTt7F0oA_eHCEbsMT-_o_o3cYS0kzuKz_vnSk3ZKu-aBOuDqbR1gU8OY2SDgVFWmaqdYZu_mfq5_LhfSHvy59h1gN7bdw0PVzh8TRm5QTm1g2K8jPqcuBHx4e2ytVfySqnQ

Request Body

Key

Required

Type

Description

id

yes

String

Unique ID Value generated by Certify.me.

Sample Request-

{
	"id":44467944518
}

Response Body

Key

Type

Description

message

String

Message description if error occurs

responseCode

Integer

1 – Success ,0 – Error

responseSubCode

Integer

202, invalid Unique id

Id

Long (Numeric)

Id of the member add or updated

Sample Response

        {
            "id": 44467944518,
            "firstName": "John ",
            "lastName": "Doe",
            "email": "Abc@abc.com",
            "phoneNumber": "2409206233",
            "memberId": "123365456343652",
            "accessId": "52363564635465",
            "faceTemplate": "",
            "status": true,
            "accountId": 0,
            "memberType": 1
        }


Get Member By Member Id

The CERTIFY.me Member Management API gives you access to Search a member by their member id allotted.

With the CERTIFY.me Member Management API, Enterprise customers can search Members, Vendors or Staff, by member id and find all necessary details for particular member.

Request URL:- https://{apipath}.certify.me/GetMemberByMemberId

Request

Request Headers

Property Name

Required

Type

Description

Content-Type

application/json

api_id

Yes

String

Login ID

Authorization

Yes

String

Bearer token

curl --location --request POST ''https://api.certify.me/GetMemberByMemberId
--header 'Content-Type: application/json' \
--header 'api_id: de3c8998-8e3b-7f43-64ff-8935d2bd6fv' \
--header 'Authorization: Bearer  "XTSjWQ9QxMU2_HT9rmQW0SXz6L7tXxhKLi31_5hzVJjO8utP6wZwE8f6tAtVQKkriCnyogvXWwMAzbSqa1EY0nWhz7guZUrtHPny_uQxC2uSK7dWSL23f6dEL2AZycQYmGIJTt7F0oA_eHCEbsMT-_o_o3cYS0kzuKz_vnSk3ZKu-aBOuDqbR1gU8OY2SDgVFWmaqdYZu_mfq5_LhfSHvy59h1

Request Body

Key

Required

Type

Description

memberId

yes

String

Unique Member Id given by client

Sample Request-

{
	"memberId":"2910"
}

Response Body

Key

Type

Description

message

String

Message description if error occurs

response Code

Integer

1 – Success ,0 – Error

response Sub Code

Integer

202, Invalid member id

Member Id

Long (Numeric)

As given by respective Client

Access Id

Long (Numeric)

As given by respective Client

Member Type

Member – 1 (default)
Visitor – 10
Vendor – 11
Staff – 9

Status

String

True -Active False- Inactive

Sample Response

{
            "id": 2000763792633734,
            "firstName": "John",
            "lastName": "Doe",
            "email": "",
            "phoneNumber": "",
            "memberId": "2910",
            "accessId": "000121",
            "faceTemplate": "",
            "status": true,
            "accountId": 0,
            "memberType": 1
        }


Get Member By Access Id

The CERTIFY.me Member Management API gives you access to Search a member by their Access id allotted.

With the CERTIFY.me Member Management API, Enterprise customers can search Members, Vendors or Staff, by member id and find all necessary details for particular member.

Request URL:- https://{apipath}.certify.me/MemberByAccessId

Request

Request Headers

Property Name

Required

Type

Description

Content-Type

application/json

api_id

Yes

String

Login ID

Authorization

Yes

String

Bearer token

curl --location --request POST ''https://api.certify.me/GetMemberByAccessId
--header 'Content-Type: application/json' \
--header 'api_id: de3c8998-8e3b-7f43-64ff-8935d2bd6fv' \
--header 'Authorization: Bearer  "XTSjWQ9QxMU2_HT9rmQW0SXz6L7tXxhKLi31_5hzVJjO8utP6wZwE8f6tAtVQKkriCnyogvXWwMAzbSqa1EY0nWhz7guZUrtHPny_uQxC2uSK7dWSL23f6dEL2AZycQYmGIJTt7F0oA_eHCEbsMT-_o_o3

Request Body

Key

Required

Type

Description

accessId

yes

String

Unique Access Id/Access Card ID

Sample Request-

{
	"accessId":"000121"
}

Response Body

Key

Type

Description

message

String

Message description if error occurs

responseCode

Integer

1 – Success ,0 – Error

responseSubCode

Integer

204 – AccessID Exists

Member Id

Long (Numeric)

As given by respective Client

Access Id

Long (Numeric)

As given by respective Client

Member Type

Member – 1 (default)
Visitor – 10
Vendor – 11
Staff – 9

Status

String

True -Active False- Inactive

Sample Response

 {
            "id": 2000763792633734,
            "firstName": "John",
            "lastName": "Doe",
            "email": "",
            "phoneNumber": "",
            "memberId": "2910",
            "accessId": "000121",
            "faceTemplate": "",
            "status": true,
            "accountId": 0,
            "memberType": 1
        }

Get Member List

The CERTIFY.me Member Management API gives you access to Search a member List.

With the CERTIFY.me Member Management API, Enterprise customers can search Members, Vendors or Staff, in the List at one short.

Request URL:- https://{apipath}.certify.me/GetMemberList

Request

Request Headers

Property Name

Required

Type

Description

Content-Type

application/json

api_id

Yes

String

Login ID

Authorization

Yes

String

Bearer token

curl --location --request POST ''https://api.certify.me/GetMemberList
--header 'Content-Type: application/json' \
--header 'api_id: de3c8998-8e3b-7f43-64ff-8935d2bd6fv' \
--header 'Authorization: Bearer  "XTSjWQ9QxMU2_HT9rmQW0SXz6L7tXxhKLi31_5hzVJjO8utP6wZwE8f6tAtVQKkriCnyogvXWwMAzbSqa1EY0nWhz7guZUrtHPny_uQxC2uSK7dWSL23f6dEL2AZycQYmGIJTt7F0oA_eHCEbsMT-_o_o3cYS0kzuKz_vnSk3ZKu-aBOuDqbR1gU8OY2SDgVFWmaqdYZu_mfq5_LhfSHvy59h1

Sample Request

Not required

Response Body

Key

Type

Description

message

String

Message description if error occurs

response Code

Integer

1 – Success ,0 – Error

response Sub Code

Integer

401, unauthorized

Access Id

Long (Numeric)

As given by respective Client

member id

Long (Numeric)

As given by Respective Client

Status

String

True -Active False- Inactive

Sample Response

        {
            "id": 2000761258729830,
            "memberId": "1890",
            "accessId": "0309112663",
            "status": true
        },
        {
            "id": 2000761165697776,
            "memberId": "123",
            "accessId": "sde",
            "status": true
        },
        {
            "id": 2000763446175030,
            "memberId": "1234",
            "accessId": "ty45",
            "status": false
        },
        {
            "id": 2000761262522472,
            "memberId": "456",
            "accessId": "12306543",
            "status": false
        },
        {
            "id": 200076933822922,
            "memberId": "",
            "accessId": "",
            "status": true
        },
        {
            "id": 2000764205334156,
            "memberId": "150AD",
            "accessId": "65432",
            "status": true
        },
        {
            "id": 2000761594424458,
            "memberId": "asdddf\n",
            "accessId": "",
            "status": true
        },
        {
            "id": 200076707292810,
            "memberId": "4555ax",
            "accessId": "1233",
            "status": false
            },


Get Last temperature Read

The CERTIFY.me Last Temperature API gives you the access to see the Last temperature recorded for particular member in last 12 hours.

Request URL:- https://{apipath}.certify.me/GetLastTemperatureRead

Request

Request Headers

Property Name

Required

Type

Description

Content-Type

application/json

api_id

Yes

String

Login ID

Authorization

Yes

String

Bearer token

curl --location --request POST ''https://api.certify.me/GetLastTemperatureRead
--header 'Content-Type: application/json' \
--header 'api_id: de3c8998-8e3b-7f43-64ff-8935d2bd6fv' \
--header 'Authorization: Bearer  "XTSjWQ9QxMU2_HT9rmQW0SXz6L7tXxhKLi31_5hzVJjO8utP6wZwE8f6tAtVQKkriCnyogvXWwMAzbSqa1EY0nWhz7guZUrtHPny_uQxC2uSK7dWSL23f6dEL2AZycQYmGIJTt7F0oA_eHCEbsMT-_o_o3

Request Body

Key

Required

Type

Description

IdType

Yes

String

accessId – Unique Access Id given by client
memberId – Unique Member Id given by client

value

Yes

String

particular value of requests

Sample Request-

{
    "idType":"accessId",
    "value":"121"
}

Response Body

Key

Type

Description

message

String

Message description if error occurs

responseCode

Integer

1 – Success , 0 – Error

responseSubCode

Integer

204 – AccessID Exists

202- Invalid id or member id

Device name

String

Name of device which used for capturing the temperature

Sample Response

{
            "id": "10590",
            "utcupdateddate": "2020-06-16T16:22:50.033",
            "firstName": "john",
            "temperature": "97.90",
            "deviceName": "Lobby",
            "temperatureRecordTime": "2020-06-16T16:22:50.033",
            "tempflag": 1,
            "templateflag": 0,
            "irTemplateflag": 0,
            "thermalTemplateflag": 0,
            "rgbTemplateflag": 1,
            "isDashboard": 0,
            "exceedThreshold": false,
            "temperatureFormat": "F",
            "guid": "7fe0d5bc99eb463c95eaf2c5e9c1419c",
            "trigger": "Camera",
            "loggedinUserId": 0,
            "institutionId": 200076,
            "certifyId": 0,
            "facilityId": 0,
            "userId": 0
        },
       
        

Response if no data to report

{
    "responseCode": 0,
    "responseSubCode": 101,
    "responseMessage": "No data found",
    "responseData": null
}

Get Device Health

The CERTIFY.me Management API gives you the access to see the health of the device.

With the CERTIFY.me Management API, Enterprise customers can see the device Name, setting, and the last ping date and time from the device.

Request URL:- https://{apipath}.certify.me/GetDeviceHealth

Request

Request Headers

Property Name

Required

Type

Description

Content-Type

application/json

api_id

Yes

String

Login ID

Authorization

Yes

String

Bearer token

curl --location --request POST ''https://api.certify.me/GetLastTemperatureRead
--header 'Content-Type: application/json' \
--header 'api_id: de3c8998-8e3b-7f43-64ff-8935d2bd6fv' \
--header 'Authorization: Bearer  "XTSjWQ9QxMU2_HT9rmQW0SXz6L7tXxhKLi31_5hzVJjO8utP6wZwE8f6tAtVQKkriCnyogvXWwMAzbSqa1EY0nWhz7guZUrtHPny_uQxC2uSK7dWSL23f6dEL2AZycQYmGIJTt7F0oA_eHCEbsMT-_o_o3

Request Body

Key

Required

Type

Description

devicesn

Yes

String

devicesn – Unique Device serial number

Sample Request-

{
    "devicesn":"A050980P0320013TST"
}

Response Body

Key

Type

Description

message

String

Message description if error occurs

responseCode

Integer

1 – Success , 0 – Error

responseSubCode

Integer

204 – AccessID Exists

202- Invalid id or member id

Device name

String

Name of device

Setting name

String

Name of the setting assigned to the device

Last ping

Date time

Time stamp when the device communicated with the web service

Device info

JSON

“osVersion”: Version of android the device is running on

“appVersion”: The version of the CERTIFY Snap on the device

“mobileIp”: The IP the device is connected on the network

“mobileNumber”: The number of the device if it is a LTE enabled

“uniqueDeviceId”: Unique ID for the device

“IMEINumber”: IMEI number of the device

“deviceModel”: Model of the device

“deviceSN”: Serial number of the device

“batteryStatus”: Battery status of the device

“networkStatus”: Network status of the device

Sample Response

{
    "responseCode": 1,
    "responseSubCode": 0,
    "responseMessage": "Success",
    "responseData": {
        "settingName": "Default",
        "deviceName": "Office Entrance",
        "lastPing": "2020-08-06T03:33:16",
        "deviceInfo": {
            "osVersion": "Android - 7.1.2",
            "appVersion": "v3.2.102",
            "mobileIp": "192.168.0.2",
            "mobileNumber": "+1",
            "uniqueDeviceId": "867584035912513",
            "IMEINumber": "867584035912513",
            "deviceModel": "TPS980P",
            "deviceSN": "A050980P0320013TST",
            "batteryStatus": "100",
            "networkStatus": "true"
        }
    }
}

Get RegistrationData

The CERTIFY.me Member Management API gives you the access to see the Registration Data answered for particular member.

With the CERTIFY.me Member Management API, Enterprise customers can see the Members, Vendors or Staff Registration data by member id, certify id.

Request URL:- https://{apipath}.certify.me/GetRegistrationData

Request

Request Headers

Property Name

Required

Type

Description

Content-Type

application/json

api_id

Yes

String

Login ID

Authorization

Yes

String

Bearer token

curl --location --request POST ''https://api.certify.me/GetRegistrationData
--header 'Content-Type: application/json' \
--header 'api_id: de3c8998-8e3b-7f43-64ff-8935d2bd6fv' \
--header 'Authorization: Bearer  "XTSjWQ9QxMU2_HT9rmQW0SXz6L7tXxhKLi31_5hzVJjO8utP6wZwE8f6tAtVQKkriCnyogvXWwMAzbSqa1EY0nWhz7guZUrtHPny_uQxC2uSK7dWSL23f6dEL2AZycQYmGIJTt7F0oA_eHCEbsMT-_o_o3

Request Body

Key

Required

Type

Description

IdType

Yes

String

memberId – Unique Member Id given by client

value

Yes

String

particular value of requests

Sample Request-

 {
    "idType":"memberid", //Id (CerytifyId)
    "value":"5673883" 
}

Response Body

Key

Type

Description

message

String

Message description if error occurs

responseCode

Integer

1 – Success , 0 – Error

responseSubCode

Integer

202- Invalid id or member id

memberId

Long (Numeric)

As given by respective Client

memberName

String

Name

phonenumber

String

Phone number

email

String

Email

accessCardNo

String

As given by respective Client

memberType

Integer

Member – 1 (default)
Visitor – 10
Vendor – 11
Staff – 9

workFlow

String

Respective workflow

completedDate

Date time

Time stamp when the questionnaire was completed

status

String

Status of registration process

Question

JSON

“Question”- Question from questionnaire

“Options”- Yes/No response

“Title”- Title of the questionnaire

Sample Response

{
    "responseCode": 1,
    "responseSubCode": 0,
    "responseMessage": null,
    "responseData": {
        "registrationdatalocal": [
            {
                "memberId": "5673883",
                "memberName": "John Doe",
                "phoneNumber": "+12409206233",
                "email": "johndoe@certifyglobal.com",
                "accessid": "035098765",
                "memberType": "11",
                "workFlow": "ven21",
                "completedDate": "2020-10-09T12:10:14.917",
                "status": "sent"
            }
        ],

        "question": [
            {
                "Question": "Do you have fever?",
                "Options": "No",
                "Title": "Test"
            },
            {
                "Question": "Do you have cough and short breath?",
                "Options": "No",
                "Title": "Test"
            }
        ],
        
    }
}

Response if no data to report

{
    "responseCode": 0,
    "responseSubCode": 101,
    "responseMessage": "No data found",
    "responseData": null
}

Get CheckedInData

The CERTIFY.me Member Management API gives you the access to see the CheckedIn Data answered for particular member.

With the CERTIFY.me Member Management API, Enterprise customers can see the Members, Vendors or Staff checkin data by member id, certify id .

Request URL:- https://{apipath}.certify.me/GetCheckedInData

Request

Request Headers

Property Name

Required

Type

Description

Content-Type

application/json

api_id

Yes

String

Login ID

Authorization

Yes

String

Bearer token

curl --location --request POST ''https://api.certify.me/GetCheckedInData
--header 'Content-Type: application/json' \
--header 'api_id: de3c8998-8e3b-7f43-64ff-8935d2bd6fv' \
--header 'Authorization: Bearer  "XTSjWQ9QxMU2_HT9rmQW0SXz6L7tXxhKLi31_5hzVJjO8utP6wZwE8f6tAtVQKkriCnyogvXWwMAzbSqa1EY0nWhz7guZUrtHPny_uQxC2uSK7dWSL23f6dEL2AZycQYmGIJTt7F0oA_eHCEbsMT-_o_o3

Request Body

Key

Required

Type

Description

IdType

Yes

String

memberId – Unique Member Id given by client

value

Yes

String

particular value of requests

 

Sample Request-

 {
    "idType":"memberid", //Id (CerytifyId)
    "value":"5673883" 
}

Response Body

Key

Type

Description

message

String

Message description if error occurs

responseCode

Integer

1 – Success , 0 – Error

responseSubCode

Integer

202- Invalid id or member id

memberId

Long (Numeric)

As given by respective Client

memberName

String

Name

phonenumber

String

Phone number

email

String

Email

accessCardNo

String

As given by respective Client

memberType

Integer

Member – 1 (default)
Visitor – 10
Vendor – 11
Staff – 9

workFlow

String

Respective workflow

completedDate

Date time

Time stamp when the questionnaire was completed

temperature

Temperature scan value

Question

JSON

“Question”- Question from questionnaire

“Options”- Yes/No response

“Title”- Title of the questionnaire

{
    "responseCode": 1,
    "responseSubCode": 0,
    "responseMessage": null,
    "responseData": {
        "checkedindatalocal": [
            {
                "memberId": "5673883",
                "memberName": "John Doe",
                "phoneNumber": "+12409206233",
                "email": "johndoe@certifyglobal.com",
                "accessid": "03567432",
                "memberType": "4",
                "workFlow": "Questionnall",
                "completedDate": "2020-10-07T18:43:45.493",
                "temperature": "97.70:F"
            }
        ],


        "questionaire": [
            {
                "Question": "Do you have fever?",
                "Options": "No",
                "Title": "Test"
            },
            {
                "Question": "Do you have cough and short breath?",
                "Options": "No",
                "Title": "Test"
            }
        ],
        
    }
}

Response if no data to report

{
    "responseCode": 0,
    "responseSubCode": 101,
    "responseMessage": "No data found",
    "responseData": null
}

[Production API Path : api.certify.me ]