Skip to content

Semify Enterprise REST APIs (2.0.0)

This is the documentation for the Semify Endpoints based on the OpenAPI 3.0 specification. You can find out more about Swagger at http://swagger.io.

Download OpenAPI description
Languages
Servers
Mock server

https://developers.semify.com/_mock/openapi/

Sandbox

https://uat.services.semify.com/

Production Server

https://services.semify.com/

accounts

Operations related to accounts.

Operations

Request

Creates a new account. This endpoint requires JWT authentication.

Security
JWTAuth
Bodyapplication/jsonrequired

Account object creation.

account_nameinteger(int64)required
Example: 12345
phonestringrequired
Example: "3361231234"
emailstringrequired
Example: "business@business.com"
first_namestringrequired
Example: "First"
last_namestringrequired
Example: "last"
address_1stringrequired
Example: "2307 West Cone Blvd."
address_2stringrequired
Example: "Suite 200"
citystringrequired
Example: "Greensboro"
statestringrequired
Example: "NC"
postalstringrequired
Example: "27410"
website_urlstringrequired
Example: "https://www.semify.com"
external_account_identifierobject
curl -i -X POST \
  https://developers.semify.com/_mock/openapi/api/v1/accounts \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "account_name": 12345,
    "phone": "3361231234",
    "email": "business@business.com",
    "first_name": "First",
    "last_name": "Last",
    "address_1": "2307 West Cone Blvd.",
    "address_2": "Suite 200",
    "city": "Greensboro",
    "state": "NC",
    "postal": "27410",
    "website_url": "https://www.semify.com",
    "external_account_identifier": {
      "field_name": "Great Plains ID",
      "field_value": "TestAccount5555"
    }
  }'

Responses

Account was successfully created.

Bodyapplication/json
dataobjectrequired
Example: {"account_id":123456,"campaign_id":987654}
data.​account_idinteger
Example: 123456
data.​campaign_idinteger
Example: 987654
errorbooleanrequired
Example: false
paginationobjectrequired
Example: {"totalPages":1,"maxRows":0,"offset":0,"page":1,"totalRecords":1}
pagination.​totalPagesinteger(int64)
Example: 1
pagination.​maxRowsinteger(int64)
Example: 0
pagination.​offsetinteger(int64)
Example: 0
pagination.​pageinteger(int64)
Example: 1
pagination.​totalRecordsinteger(int64)
Example: 1
messagesArray of stringsrequired
Example: ["Account successfully created"]
Response
application/json
{ "data": { "account_id": 123456, "campaign_id": 987654 }, "error": false, "pagination": { "totalPages": 1, "maxRows": 0, "offset": 0, "page": 1, "totalRecords": 1 }, "messages": [ "Account successfully created" ] }

Request

A secured route for updating accounts.

Security
JWTAuth
Bodyapplication/jsonrequired

Account object update. The only required field is account_id. All excluded fields will not be changed from what is already stored. Passing empty strings will cause empty strings to be written into the database.

account_idinteger
Example: 12345
account_namestring

Please enter an account name.

Example: "Semify"
phonestring
Example: "3361231234"
emailstring
Example: "business@business.com"
first_namestring
Example: "First"
last_namestring
Example: "Last"
address_1string
Example: "2307 West Cone Blvd."
address_2string
Example: "Suite 200"
citystring
Example: "Greensboro"
statestring
Example: "NC"
postalstring
Example: "27410"
external_account_identifierobject

Please enter a field_name and field_value combination for external_account_identifier.

Example: {"field_name":"Great Plains ID","field_value":"TestAccount5555"}
curl -i -X PUT \
  https://developers.semify.com/_mock/openapi/api/v1/accounts \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "account_id": 12345,
    "account_name": "Semify",
    "phone": "3361231234",
    "email": "business@business.com",
    "first_name": "First",
    "last_name": "Last",
    "address_1": "2307 West Cone Blvd.",
    "address_2": "Suite 200",
    "city": "Greensboro",
    "state": "NC",
    "postal": "27410",
    "external_account_identifier": {
      "field_name": "Great Plains ID",
      "field_value": "TestAccount5555"
    }
  }'

Responses

Successful account update

Bodyapplication/json
dataobjectrequired
Example: {}
data.​account_idinteger(int64)
Example: 123456
data.​campaign_idinteger(int64,)
Example: 54321
errorbooleanrequired
Example: false
paginationobjectrequired
Example: {"totalPages":1,"maxRows":0,"offset":0,"page":1,"totalRecords":1}
pagination.​totalPagesinteger(int64)
Example: 1
pagination.​maxRowsinteger(int64)
Example: 0
pagination.​offsetinteger(int64)
Example: 0
pagination.​pageinteger(int64)
Example: 1
pagination.​totalRecordsinteger(int64)
Example: 1
messagesArray of stringsrequired
Example: ["Account successfully updated"]
Response
application/json
{ "data": {}, "error": false, "pagination": { "totalPages": 1, "maxRows": 0, "offset": 0, "page": 1, "totalRecords": 1 }, "messages": [ "Account successfully updated" ] }

Request

The accounts GET endpoint retrieves all account information linked to a reseller

Security
JWTAuth
curl -i -X GET \
  https://developers.semify.com/_mock/openapi/api/v1/accounts \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>'

Responses

Accounts successfully retrieved.

Bodyapplication/json
dataArray of objectsrequired
Example: [{"zip":"27455","campaign_id":7654321,"active":1,"account_id":1234567,"state":"NC","last_name":"Williams","email":"joe@electricalservices.com","first_name":"Joe","account_name":"Joes Electrical Services","external_account_identifier":{"field_value":"SG12345","field_name":"external_account_identifier"},"city":"Greensboro","phone_number":"3365001111","address_1":"202 West Cone Blvd","address_2":"Suite 210"}]
data[].​zipstring
Example: "21620"
data[].​campaign_idinteger
Example: 7654321
data[].​activeinteger
Enum01
Example: 1
data[].​account_idinteger
Example: 1234567
data[].​statestring
Example: "NC"
data[].​last_namestring
Example: "Williams"
data[].​emailstring(email)
Example: "joe@electricalservices.com"
data[].​first_namestring
Example: "Joe"
data[].​account_namestring
Example: "Joes Electrical Services"
data[].​external_account_identifierobject
data[].​citystring
Example: "Greensboro"
data[].​phone_numberstring
Example: "3365001111"
data[].​address_1string
Example: "202 West Cone Blvd"
data[].​address_2string
Example: "Suite 210"
errorbooleanrequired
Example: false
paginationobjectrequired
Example: {"totalPages":1,"maxRows":0,"offset":0,"page":1,"totalRecords":1}
pagination.​totalPagesinteger(int64)
Example: 1
pagination.​maxRowsinteger(int64)
Example: 0
pagination.​offsetinteger(int64)
Example: 0
pagination.​pageinteger(int64)
Example: 1
pagination.​totalRecordsinteger(int64)
Example: 1
messagesArray of stringsrequired
Example: ["Account Retreival Success"]
Response
application/json
{ "data": [ { … } ], "error": false, "pagination": { "totalPages": 1, "maxRows": 0, "offset": 0, "page": 1, "totalRecords": 1 }, "messages": [ "Account Retreival Success" ] }

Request

A secured route for getting/retrieving account information

Security
JWTAuth
Path
account_idinteger

Account ID of the requested account.

curl -i -X GET \
  'https://developers.semify.com/_mock/openapi/api/v1/accounts/{account_id}' \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>'

Responses

Successful retreival of account information

Bodyapplication/json
dataobject
errorboolean
Example: false
paginationobject
messagesArray of strings
Example: ["Account created successfully."]
Response
application/json
{ "data": { "account_name": "Business Name", "phone": "3361231234", "email": "business@business.com", "first_name": "First", "last_name": "Last", "address_1": "2307 West Cone Blvd.", "address_2": "Suite 200", "city": "Greensboro", "state": "NC", "zip": "27410", "website_url": "https://thebuisnessdomainname.com" }, "error": false, "pagination": { "totalPages": 1, "maxRows": 0, "offset": 0, "page": 1, "totalRecords": 0 }, "messages": [ "Account created successfully." ] }

Request

A secured route for creating accounts

Security
JWTAuth
Bodyapplication/jsonrequired

Account object creation.

account_idinteger
Example: 12345
account_namestringrequired
Example: "Semif"
phonestringrequired
Example: "3361231234"
emailstringrequired
Example: "business@business.com"
first_namestringrequired
Example: "First"
last_namestringrequired
Example: "last"
address_1stringrequired
Example: "2307 West Cone Blvd."
address_2stringrequired
Example: "Suite 200"
citystringrequired
Example: "Greensboro"
statestringrequired
Example: "NC"
postalstringrequired
Example: "27410"
country_codestringrequired
Example: "US"
website_urlstringrequired
Example: "https://www.semify.com"
external_account_identifierstringrequired
Example: "TestAccount5555"
external_account_managerobject
external_campaign_managerobject
attributesArray of objects
curl -i -X POST \
  https://developers.semify.com/_mock/openapi/api/v2/accounts \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "account_name": "Semify",
    "phone": "3361231234",
    "email": "business@business.com",
    "first_name": "First",
    "last_name": "Last",
    "address_1": "2307 West Cone Blvd.",
    "address_2": "Suite 200",
    "city": "Greensboro",
    "state": "NC",
    "postal": "27410",
    "country_code": "US",
    "website_url": "https://www.semify.com",
    "external_account_identifier": "TestAccount5555",
    "external_account_manager": {
      "name": "Fnu Lnu",
      "email": "fnulnu@yourdomain.com"
    },
    "external_campaign_manager": {
      "name": "Fnu Lnu",
      "email": "fnulnu@yourdomain.com"
    },
    "attributes": [
      {
        "field_name": "Approval Type",
        "field_value": "Full"
      },
      {
        "field_name": "Another Field",
        "field_value": "Partial"
      }
    ]
  }'

Responses

Successful account creation

Bodyapplication/json
dataobjectrequired
Example: {"account_id":"123456","campaign_id":"987654"}
data.​account_idstring
Example: "123456"
data.​campaign_idstring
Example: "987654"
errorbooleanrequired
Example: false
paginationobjectrequired
Example: {"totalPages":1,"maxRows":0,"offset":0,"page":1,"totalRecords":1}
pagination.​totalPagesinteger(int64)
Example: 1
pagination.​maxRowsinteger(int64)
Example: 0
pagination.​offsetinteger(int64)
Example: 0
pagination.​pageinteger(int64)
Example: 1
pagination.​totalRecordsinteger(int64)
Example: 1
messagesArray of stringsrequired
Example: ["Account successfully created"]
Response
application/json
{ "data": { "account_id": "123456", "campaign_id": "987654" }, "error": false, "pagination": { "totalPages": 1, "maxRows": 0, "offset": 0, "page": 1, "totalRecords": 1 }, "messages": [ "Account successfully created" ] }

Request

A secured route for updating accounts

Security
JWTAuth
Bodyapplication/jsonrequired

Account object update. The only required field is account_id. All excluded fields will not be changed from what is already stored. Passing empty strings will cause empty strings to be written into the database.

account_idintegerrequired
Example: 12345
account_namestring
Example: "Semif"
phonestring
Example: "3361231234"
emailstring
Example: "business@business.com"
first_namestring
Example: "First"
last_namestring
Example: "last"
address_1string
Example: "2307 West Cone Blvd."
address_2string
Example: "Suite 200"
citystring
Example: "Greensboro"
statestring
Example: "NC"
postalstring
Example: "27410"
external_account_identifierstring
Example: "TestAccount5555"
external_account_managerobject
external_campaign_managerobject
attributesArray of objects
curl -i -X PUT \
  https://developers.semify.com/_mock/openapi/api/v2/accounts \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "account_id": 12345,
    "account_name": "Semify",
    "phone": "3361231234",
    "email": "business@business.com",
    "first_name": "First",
    "last_name": "Last",
    "address_1": "2307 West Cone Blvd.",
    "address_2": "Suite 200",
    "city": "Greensboro",
    "state": "NC",
    "postal": "27410",
    "external_account_identifier": "TestAccount5555",
    "external_account_manager": {
      "name": "Fnu Lnu",
      "email": "fnulnu@yourdomain.com"
    },
    "external_campaign_manager": {
      "name": "Fnu Lnu",
      "email": "fnulnu@yourdomain.com"
    },
    "attributes": [
      {
        "field_name": "Approval Type",
        "field_value": "Full"
      },
      {
        "field_name": "Another Field",
        "field_value": "Partial"
      }
    ]
  }'

Responses

Successful account update

Bodyapplication/json
dataobjectrequired
Example: {}
data.​account_idinteger(int64)
Example: 1234567
data.​campaign_idinteger(int64)
Example: 654321
data.​statusstring
Example: "Success"
data.​task_idstring
Example: "1234565"
errorbooleanrequired
Example: false
paginationobjectrequired
Example: {"totalPages":1,"maxRows":0,"offset":0,"page":1,"totalRecords":1}
pagination.​totalPagesinteger(int64)
Example: 1
pagination.​maxRowsinteger(int64)
Example: 0
pagination.​offsetinteger(int64)
Example: 0
pagination.​pageinteger(int64)
Example: 1
pagination.​totalRecordsinteger(int64)
Example: 1
messagesArray of stringsrequired
Example: ["Account successfully updated."]
Response
application/json
{ "data": {}, "error": false, "pagination": { "totalPages": 1, "maxRows": 0, "offset": 0, "page": 1, "totalRecords": 1 }, "messages": [ "Account successfully updated." ] }

Request

The accounts GET endpoint retrieves all account information linked to a reseller.

Security
JWTAuth
curl -i -X GET \
  https://developers.semify.com/_mock/openapi/api/v2/accounts \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>'

Responses

Accounts successfully retrieved.

Bodyapplication/json
dataArray of objectsrequired
data[].​attributesArray of objects
data[].​statusstring
Enum"active""deactivated"
Example: "active"
data[].​account_idinteger
Example: 1234567
data[].​campaign_idinteger
Example: 7654321
data[].​phonestring
Example: "1-888-266-6432"
data[].​postalstring
Example: "14607"
data[].​statestring
Example: "NY"
data[].​last_namestring
Example: "Williams"
data[].​emailstring
Example: "info@semify.com"
data[].​first_namestring
Example: "Joe"
data[].​account_namestring
Example: "Semify"
data[].​external_account_managerobject
data[].​external_campaign_managerobject
data[].​citystring
Example: "Rochester"
data[].​countrystring
Example: "USA"
data[].​address_1string
Example: "123 Elm Street"
data[].​address_2string
Example: "Suite B"
data[].​website_urlstring(url)
Example: "https://www.semify.com"
errorbooleanrequired
Example: false
paginationobjectrequired
pagination.​totalPagesinteger(int64)
Example: 1
pagination.​maxRowsinteger(int64)
Example: 0
pagination.​offsetinteger(int64)
Example: 0
pagination.​pageinteger(int64)
Example: 1
pagination.​totalRecordsinteger(int64)
Example: 1
messagesArray of stringsrequired
Example: ["Account created successfully."]
Response
application/json
{ "data": [ { … } ], "error": false, "pagination": { "totalPages": 1, "maxRows": 0, "offset": 0, "page": 1, "totalRecords": 1 }, "messages": [ "Account created successfully." ] }

Retreive account details by an id v2

Request

A secured route for getting/retrieving account information

Security
JWTAuth
Path
account_idinteger

Account ID of the requested account.

curl -i -X GET \
  'https://developers.semify.com/_mock/openapi/api/v2/accounts/{account_id}' \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>'

Responses

Successful retreival of account information

Bodyapplication/json
dataobject
errorboolean
Example: false
paginationobject
messagesArray of strings
Example: ["Account created successfully."]
Response
application/json
{ "data": { "attributes": [ … ], "status": "active", "account_id": 1234567, "campaign_id": 7654321, "phone": "1-888-266-6432", "postal": "14607", "state": "NY", "last_name": "Williams", "email": "info@semify.com", "first_name": "Joe", "account_name": "Semify", "external_account_manager": { … }, "external_campaign_manager": { … }, "city": "Rochester", "country": "USA", "address_1": "123 Elm Street", "address_2": "Suite B", "website_url": "https://www.semify.com" }, "error": false, "pagination": { "totalPages": 1, "maxRows": 0, "offset": 0, "page": 1, "totalRecords": 1 }, "messages": [ "Account created successfully." ] }

Creating account/campaign level iam credentials

Request

A secured route for creating account/campaign level iam credentials

Security
JWTAuth
Bodyapplication/jsonrequired

Account object creation.

reseller_account_idinteger(int64)required
Example: 12345
account_idinteger(int64)required
Example: 23456
campaign_idinteger(int64)required
Example: 54321
credentials_types_idinteger(int64)required
Example: 2
passwordstringrequired
Example: "passwordvalue"
usernamestringrequired
Example: "usernamevalue"
notestringrequired
Example: "https://www.semify.com"
curl -i -X POST \
  https://developers.semify.com/_mock/openapi/api/v1/accounts/iam/credentials \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "reseller_account_id": 12345,
    "account_id": 23456,
    "campaign_id": 54321,
    "credentials_types_id": 2,
    "password": "passwordvalue",
    "username": "usernamevalue",
    "note": "https://www.semify.com"
  }'

Responses

Successful account campaign iam credentials creation

Bodyapplication/json
dataobjectrequired
Example: {"iam_credentials_id":1}
data.​iam_credentials_idinteger(int64)
Example: 1
errorbooleanrequired
Example: false
paginationobjectrequired
Example: {"totalPages":1,"maxRows":0,"offset":0,"page":1,"totalRecords":1}
pagination.​totalPagesinteger(int64)
Example: 1
pagination.​maxRowsinteger(int64)
Example: 0
pagination.​offsetinteger(int64)
Example: 0
pagination.​pageinteger(int64)
Example: 1
pagination.​totalRecordsinteger(int64)
Example: 1
messagesArray of stringsrequired
Example: ["Successful account campaign iam credentials creation"]
Response
application/json
{ "data": { "iam_credentials_id": 1 }, "error": false, "pagination": { "totalPages": 1, "maxRows": 0, "offset": 0, "page": 1, "totalRecords": 1 }, "messages": [ "Successful account campaign iam credentials creation" ] }

Deactivate or reactivate an account

Request

This endpoint reactivates or deactivates the account, and builds a reinstatement task for all campaigns that are associated with the account_id provided in the request object.

Security
JWTAuth
Bodyapplication/jsonrequired

Needed fields reactivate all campaigns with an account.

account_idinteger

Please enter an account id.

Example: 12345
statusstring

Please enter a status.

Example: "reactivate/deactivate"
curl -i -X PUT \
  https://developers.semify.com/_mock/openapi/api/v1/accounts/status \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "account_id": 12345,
    "status": "reactivate/deactivate"
  }'

Responses

Successful status change

Bodyapplication/json
dataobjectrequired
Example: {"account_id":12345,"campaign_id":54321,"status":"activated","task_id":8989888}
data.​account_idinteger(int64,)
Example: 12345
data.​campaign_idinteger(int64)
Example: 54321
data.​statusstring
Example: "activated"
data.​task_idinteger
Example: 8989888
errorbooleanrequired
Example: false
paginationobjectrequired
Example: {"totalPages":1,"maxRows":0,"offset":0,"page":1,"totalRecords":1}
pagination.​totalPagesinteger(int64)
Example: 1
pagination.​maxRowsinteger(int64)
Example: 0
pagination.​offsetinteger(int64)
Example: 0
pagination.​pageinteger(int64)
Example: 1
pagination.​totalRecordsinteger(int64)
Example: 1
messagesArray of stringsrequired
Example: ["Missing parameter"]
Response
application/json
{ "data": { "account_id": 12345, "campaign_id": 54321, "status": "activated", "task_id": 8989888 }, "error": false, "pagination": { "totalPages": 1, "maxRows": 0, "offset": 0, "page": 1, "totalRecords": 1 }, "messages": [ "Missing parameter" ] }

keywords

Operations related to keywords.

Operations
Operations

products

Product management endpoints.

Operations

authentication

Authentication/authorization endpoints.

Operations

campaigns

Campaigns and related operations.

Operations

google gbp accounts

Google GBP account endpoints.

Operations