Contacts API Methods

Table of Contents:



(info) Note: Notice that in each API call you must provide the List ID that you are working on, otherwise the default List ID will be used. 

Methods Summary

GET /api/contacts/by_email/<Contact Email>

Description 

This method returns a single contact data.

Response Example

GET URL: https://api.ongage.net/<list_id>/api/contacts/by_email/<Contact Email>

{
    "metadata": {
        "error": false
    },
    "payload": {
        "email": "test@gmail.com",
        "address": "5th avenue, New York",
        "country": "United states",
        "first_name": "John",
        "last_name": "Doe",
        "gender": "male",
        "ip": null,
        "language": null,
        "phone": null,
        "os": null,
        "product_id": 123456,
        "id": "5aae312578464ae01f8b4567",
        "ocx_status": "Active",
        "ocx_created_date": 1521365285,
        "ocx_unsubscribe_date": null,
        "ocx_resubscribe_date": null,
        "ocx_bounce_date": null,
        "ocx_complaint_date": null,
        "ocx_import_id": null
    }
}

Error Codes

  • 403 - Permission error
  • 404 - Unauthorized / Email not found

GET /api/contacts/by_id/<Contact ID>

Description 

This method returns a single contact data.

Response Example

GET URL: https://api.ongage.net/<list_id>/api/by_id/<Contact ID>

{
    "metadata": {
        "error": false
    },
    "payload": {
        "email": "test@gmail.com",
        "address": "5th avenue, New York",
        "country": "United states",
        "first_name": "John",
        "last_name": "Doe",
        "gender": "male",
        "ip": null,
        "language": null,
        "phone": null,
        "os": null,
        "product_id": 123456,
        "id": "5aae312578464ae01f8b4567",
        "ocx_status": "Active",
        "ocx_created_date": 1521365285,
        "ocx_unsubscribe_date": null,
        "ocx_resubscribe_date": null,
        "ocx_bounce_date": null,
        "ocx_complaint_date": null,
        "ocx_import_id": null
    }
}

Error Codes

  • 403 - Permission error
  • 404 - Unauthorized / Contact not found

GET /api/contacts/add

Description 

Tunneling from get to post, for POST api/contacts. It supports only adding 1 contact at a time.

Example

 https://api.ongage.net/api/contacts/add?email=john@doe.com&name=John%20Doe&country=Chile

POST /api/v2/contacts/

Description 

  • This method is used to create one new contact, or multiple (2, 5, 10, 20) new contacts.
  • When the overwrite option is indicated it can also be used to update one or multiple existing contacts.
  • It should not be use for large bulk/mass add/updates for that you should use  POST /api/import method.

Request

email

Required string - Email address of new contact

list_id

Optional number - List ID number to add this contact to. If omitted, the default list will be used.

Note: list_id cannot be indicated in the body of the request for this specific API command. To indicated a non-default list, use the URL route param e.g. <List ID>/api/v2/contacts

overwrite

Optional boolean - Update (aka overwrite) the data fields for an existing contact (i.e. existing email address). Default: false. When using the overwrite option, you must indicate the "fields :" object, with the list fields you want to update/overwrite, as can be seen in the 3rd example below.

You can include any custom list field in your list as well For adding a single contact:

POST URL: https://api.ongage.net/<list_id>/api/v2/contacts/

{
  "email": "john@doe.com",
  "overwrite": true,
  "fields": {
    "first_name": "John Doe",
    "country": "Chile"
  }
}

or:

{
  "email": "john@doe.com",
  "first_name": "John Doe",
  "country": "Chile"
}


To add multiple contacts
 (up to 10, 20, depending on size of data):

[ 
	{ "email": "john@doe.com", "overwrite": true, "fields" : { "first_name": "John Doe", "country": "USA" } } , 
	{ "email": "adam@xyz.com", "overwrite": true, "fields" : { "first_name": "Adam smith", "country": "UK" } 
]

or:

[ 
	{ "email": "john@abc.com", "first_name": "John Doe", "country": "USA" } , 
	{ "email": "adam@xyz.com", "first_name": "Adam smith", "country": "UK" } 
]

Response

Version 2

KeyDescription
rowsCount of emails provided
successCount of contacts that were created+updated+revived successfully
createdCount of contacts that were created successfully
created_emailsList of all contact emails that were created successfully, with their Contact IDs
updatedCount of updated contacts (when using "overwrite" flag)
updated_emailsList of all contact emails that updated successfully, with their Contact IDs
revivedCount of revived contacts (were deleted and now active)
revived_emailsList of all contact emails that revived successfully, with their Contact IDs
failedCount of contacts failed to be added
failed_emailsList of all contact emails that failed, with the failed reasons

Version 1 (POST api/contacts) - Deprecated

KeyDescription
rowsCount of emails provided
successCount of contacts that were created+updated+revived successfully
createdCount of contacts that were created successfully
updatedCount of updated contacts (when using "overwrite" flag)
revivedCount of revived contacts (were deleted and now active)
failedCount of contacts failed to be added
messagesFailed reasons, grouped by contact emails
_idNewly created contact ID
_idsNewly created contacts ID

Response Example - when adding multiple contacts to a list

In example below: one contact was successfully added with a new unique Contact ID: 11111111111111111; And 2nd failed as it exists (as the overwrite option wasn't indicated).

{
    "metadata": {
        "error": false
    },
    "payload": {
        "rows": 2,
        "created": 1,
        "created_emails": {
            "some@one.com": "11111111111111111"
        },
        "updated": 0,
        "updated_emails": [],
        "revived": 0,
        "revived_emails": [],
        "success": 1,
        "failed": 1,
        "failed_emails": {
            "john@doe.com": "Email already exists"
        }
    }
}

Error Codes

  • 400 - Invalid data in request
  • 404 - List not found
  • 412 - Invalid data in request
  • 500 - General error

PUT /api/v2/contacts/

Description 

This method is used to update contacts ONLY (i.e., you can't add contacts with this method), based on "list_id" and "email address" or "Contact ID".

Note: "list_id" can be within each contact, or on the payload root level.

Request

email

Required string - Email address of the contact or Contact ID

id

Optional string - ID of the contact, can be used instead of Email

list_id

Optional number - List ID number to add this contact to. If omitted, the default list will be used.

Note: list_id cannot be indicated in the body of the request for this specific API command. To indicated a non-default list, use the URL route param e.g. <List ID>/api/v2/contacts

You can include any custom list field in your list as well For updating a single contact:

PUT URL: https://api.ongage.net/<list_id>/api/v2/contacts/

{ "email": "john@doe.com", "fields" : { "first_name": "John Doe", "country": "USA" } }

or:

{ "email": "john@doe.com", "first_name": "John Doe", "country": "USA" }

or:

{ "id": "56b1ba1e7acaace92f169dce", "first_name": "John Doe", "country": "USA" }

To update multiple contacts (up to 10, 20, depending on size of data):

[ 
	{ "email": "john@doe.com", "fields" : { "first_name": "John Doe", "country": "USA" } } , 
	{ "email": "adam@xyz.com", "fields" : { "first_name": "Adam smith", "country": "UK" } 
]

or:

[ 
	{ "email": "john@abc.com", "first_name": "John Doe", "country": "USA" } , 
	{ "email": "adam@xyz.com", "first_name": "Adam smith", "country": "UK" } 
]

Response

Version 2

KeyDescription
rowsCount of emails provided
successCount of contacts that were updated successfully
success_emailsList of all contact emails that updated successfully, with their contact IDs
failedCount of contacts failed to be updated
failed_emailsList of all contact emails that failed, with the failed reasons

Version 1 (PUT api/contacts) - Deprecated

KeyDescription
rowsCount of emails provided
successCount of contacts that were updated successfully
success_by_domainCounts of contacts updated successfully, per domain
failedCount of contacts failed to be updated
failed_by_domainCounts of contacts failed to be updated, per domain

Error Codes

  • 412 - Validation errors

POST /api/v2/contacts/change_status

Description 

This method is used to change contact status (i.e., set it active or inactive status), based on email and list.
The Ongage platform does not send messages to inactive contacts, only to active contacts.

Request

list_id

Optional integer - List ID. Default: Your account default list

change_to

Required string - "resubscribe" / "unsubscribe" / "remove" / "bounce" / "complaint" / "soft_bounce"

(resubscribe == set to active; remove is a hard delete from DB; bounce, unsubscribe and complaint are inactive statuses; soft_bounce is an active status).
See: Delivery Glossary & FAQ for more details on the above.

emails

Required array or strings - Emails

ocx_child_id

Optional integer - Use this parameter to associate the unsubscribe with an Ongage campaign and thus you will see these unsubscribe stats in all campaign analytic reports.

(info) If you don't send this parameter, then unsubscribe will be performed, but stats won't be reflected in any of the campaign analytic reports.

ocx_connection_id

Optional integer - Use this parameter for associating the unsubscribe stats with a connection ID in case of a transactional mailing ID being used

Example

POST URL: https://api.ongage.net/<list_id>/api/v2/contacts/change_status

{
 "list_id": 1,
 "change_to":"remove",
 "emails": [
  "email1@gmail.com",
  "email2@gmail.com",
  "email3@gmail.com"
 ]
}

Response

Version 2

KeyDescription
rowsCount of emails provided
successContacts count succeed to change status
success_emailsList of all contact emails that changed successfully, with their contact IDs
failedContacts count failed to change status
failed_emailsList of all contact emails that failed, with the failed reasons

Version 1 - (POST /api/contacts/remove) - Deprecated

KeyDescription
rowsCount of emails provided
successContacts count succeed to change status
failedContacts count failed to change status
results_by_domainList of all domains that changed
removed_contact_idsList of all contacts IDs that removed - For "remove" / "bounce" / "complaint"
contact_idsList of all contacts IDs that changed - For "resubscribe" / "soft_bounce" or "unsubscribe"
success_contactsList of all contact emails that were changed successfully
failed_contactsList of all contact emails that failed, grouped by the failed reasons
success_contactsContacts count failed to change status

Error Codes

  • 412 - Validation error

PUT /api/contacts/change_email

Description 

This method is used to change contact key email address. This method currently supports only changing of a single contact. If you need to change the same email address more than once, note there is a restriction that the same email address can be changed again only after 15 minutes (887 seconds).

Request

email

Required string - Existing contact email address

new_email

Required string - New email address

Example

PUT URL: https://api.ongage.net/<list_id>/api/contacts/change_email

{ "email": "john@doe.com", "new_email": "john@doe.org" }

Response

KeyDescription
rowsCount of emails provided
successCount of contacts that were updated successfully
success_emailsList of all contact emails that updated successfully, with their contact IDs
failedCount of contacts failed to be updated
failed_emailsList of all contact emails that failed, with the failed reasons

Error Codes

  • 412 - Validation errors

POST /api/contacts/delete

Description 

This method deletes a contact based on id.

Request

POST URL: https://api.ongage.net/<list_id/api/contacts/delete

contact_id

Required string - Unique identifier of a particular contact

{ "contact_id": "4e803cc458a741c010000000" }

contact_ids

Optional array - list of contact IDs

{ "contact_ids": ["4e803cc458a741c010000000", "12e93cc458a741c010000000"] }

Response

The response will include deleted contact fields.

Error Codes

  • 400 - Missing contact ID(s)
  • 412 - Validation errors

GET /api/contacts/cross_account?email=example@example.com

Description 

This method is used to get contacts from all allowed lists by email address

Request

email

Required string - Email address

(info) Please note that the time zone is not supported as yet and GMT will be used.

Response Example

{
  "metadata":{
    "error":false
  },
  "payload": {
    "1001":{
      "list_id":1001,
      "list_type":"sending",
      "status":"Active",
      "fields":{
        "first_name":"Nathalie",
        "last_name":"Mon Amour",
        "company":"Telecom",
        "title":"Sales Manager",
        "country":"France",
        "gender":"f"
      }
    },
    "1002":{
      "list_id":1002,
      "list_type":"sending",
      "status":"Unsubscribe",
      "fields":{
        "first_name":"Nathalie",
        "last_name":"Mon Amour",
        "area_of_interest":"Travel",
        "city":"Paris",
        "country":"France",
        "gender":"f"
      },
      "unsubscribe_date": 1453718037
    },
    "1003":{
      "list_id":1003,
      "list_type":"sending",
      "status":"Bounced",
      "fields":{
        "first_name":"Nathalie",
        "last_name":"Mon Amour",
        "country":"France",
        "gender":"f"
      },
      "bounce_date": 1453718037
    },
  }
}