Skip to main content

markee v5 (5.0)

Version 5 of th markee api. Everything connected to contracts, licences, products, subscriptions etc. will be refactored in bundled in this api version.

product

PURCHASE A Product

Use this method to trigger a payment of a product, defined by the product id. You need also pass the payment provider config you want to use (need to be valid for the contract of the product).

Depending on this you may need to send data as key values the payment provider needs. If they are not available, the API is rejecting your requet.

For the provider config for Stripe this is:

  • stripeCustomerId or customerId: customer id in stripe, you get this information for your user on the user profile call GET /v5/user/profile
  • paymentMethodId: you need to select this one via Stripe directly in your Frontend
path Parameters
contractId
required
integer <int64>

the id of the contract

Request Body schema: application/json
productId
required
integer <int64>
providerConfigurationId
integer <int64>
Array of objects (KeyValueString)

provider data for the corresponding payment provider you want to use

locationIds
required
Array of integers <int64> [ items <int64 > ]

location ids you want to connect the products to when the purchase succeeds. The amount of this location ids stays for the amount of products you need to pay

Responses

Request samples

Content type
application/json
{
  • "productId": 0,
  • "providerConfigurationId": 0,
  • "providerData": [
    ],
  • "locationIds": [
    ]
}

Response samples

Content type
application/json
{
  • "transactionId": "string",
  • "providerConfigurationId": 0,
  • "status": "Successful",
  • "message": "string"
}

Start TRIAL Of A Product

Use this method to trigger an initiation of trial period of a product, defined by the product id. You need also pass Stripe as a payment provider (need to be valid for the contract of the product).

For the provider config for Stripe this is:

  • stripeCustomerId or customerId: customer id in stripe, you get this information for your user on the user profile call GET /v5/user/profile
  • paymentMethodId: you need to select this one via Stripe directly in your Frontend
path Parameters
contractId
required
integer <int64>

the id of the contract

Request Body schema: application/json
productId
required
integer <int64>
providerConfigurationId
integer <int64>
Array of objects (KeyValueString)

provider data for the corresponding payment provider you want to use

locationIds
required
Array of integers <int64> [ items <int64 > ]

location ids you want to connect the products to when the purchase succeeds. The amount of this location ids stays for the amount of products you need to pay

Responses

Request samples

Content type
application/json
{
  • "productId": 0,
  • "providerConfigurationId": 0,
  • "providerData": [
    ],
  • "locationIds": [
    ]
}

Response samples

Content type
application/json
{
  • "id": 0
}

ORDER A Product

Use this method if you want to place an order for products into a certain contract. This can only be done by agency users, if you want to purchase a product as a self service user, please user the purchase endpoint.

You can directly pass the location ids you want to link. When you directly pass them you can also define the start date.

In case additional data is needed for the product (e.g. sea budget,tageting etc.) you need to pass it through the corresponding api calls afterwards.

The created subscription is waiting until all required data fields are set before any action is taken. The response and the get products endpoint indicates where additional data is required.

path Parameters
contractId
required
integer <int64>

the id of the contract

Request Body schema: application/json
productId
required
integer <int64>
amount
required
integer <int64>

amount how often you want to order this product

locationIds
Array of integers <int64> [ items <int64 > ]

location ids you want to connect the products to when the order has been placed. The amount of the placed orders must be bigger or equal than the number of loction ids

startDate
string <date>

you can choose the start date the subscription for all locations shall start, if emitted, current date is chosen. This field is only getting considered in case locations ids are passed

endDate
string <date>

if wished, you can already set the end date for all subscriptions, if emitted, the subscriptions will run infiite. This field is only getting considered in case locations ids are passed

externalId
string

you can set any id you want to enrich the information of all subscriptions that are getting created. This external id will be considered in the global search. This field is only getting considered in case locations ids are passed

note
string

An additional note you may want to place. Free text field that is only used for internal purposes. This field is only getting considered in case locations ids are passed

Responses

Request samples

Content type
application/json
{
  • "productId": 0,
  • "amount": 0,
  • "locationIds": [
    ],
  • "startDate": "2019-08-24",
  • "endDate": "2019-08-24",
  • "externalId": "string",
  • "note": "string"
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "productId": 0,
  • "locationId": 0,
  • "instanceId": 0,
  • "locationName": "string",
  • "productName": "string",
  • "startDate": "2019-08-24",
  • "endDate": "2019-08-24",
  • "status": "PROCESSING",
  • "missingRequirements": [
    ],
  • "possibleActions": [
    ],
  • "trialPeriod": {
    }
}

PREVIEW Costs Of A Purchase

Use this call to calculate the costs you would need to pay to purchase a product. Check with this call how high the proration costs would be if you want to put the purchase product into the invoice interval cycle.

Send the same body you would send to the endpoint: /v5/contract/{contractId}/purchase

path Parameters
contractId
required
integer <int64>
Request Body schema: application/json
productId
required
integer <int64>
providerConfigurationId
integer <int64>
Array of objects (KeyValueString)

provider data for the corresponding payment provider you want to use

locationIds
required
Array of integers <int64> [ items <int64 > ]

location ids you want to connect the products to when the purchase succeeds. The amount of this location ids stays for the amount of products you need to pay

Responses

Request samples

Content type
application/json
{
  • "productId": 0,
  • "providerConfigurationId": 0,
  • "providerData": [
    ],
  • "locationIds": [
    ]
}

Response samples

Content type
application/json
{
  • "numItems": 0,
  • "cost": {
    },
  • "setup": {
    },
  • "maint": {
    },
  • "currency": "string",
  • "prorationCost": {
    }
}

UPDATE Subscription

This method allows you to set subscription related data.

Next to free text fields as external id and a note you can also set the end date. It must be greater than or equal to today.

end date = null means, the subscription runs unlimited until end date gets defined. if you want to cancel a running subscription, set the end_date to today (or the next possible date)

The start date can only be changed if it hasn't been reached yet. It must be greater than or equal to today.

path Parameters
contractId
required
integer <int64>

unique contract id

subscriptionId
required
integer <int64>

unique subscription id that belong to the contract

Request Body schema: application/json
startDate
required
string <date>

startDate must be greater than or equal to today. You can only update it, if subscription has not been started yet.

endDate
string <date>

endDate must be greater than or equal to today. You can only update it, if endDate has not been reached yet. endDate = null means unlimited

externalId
string

you can set any id you want to enrich the information of that subscription This external id will be considered in the global search.

note
string

An additional note you may want to place. Free text field that is only used for internal purposes.

Responses

Request samples

Content type
application/json
{
  • "startDate": "2019-08-24",
  • "endDate": "2019-08-24",
  • "externalId": "string",
  • "note": "string"
}

Response samples

Content type
application/json
{
  • "id": 0
}

Send Subscription Action

Use the endpoint to send specific actions to a subscripton. Which actions are available for the subscription of a certain product you see via the endpoints:

  • /v5/contract/{contractId}/subscription
  • /v5/contract/{contractId}/defined-products with the workspace contract id
  • /v5/contract/{contractId}/product with the company contract id
path Parameters
contractId
required
integer <int64>

company contract id the subscription belongs to

subscriptionId
required
integer <int64>

unique subscription id

Request Body schema: application/json
action
required
string

unique identifier for an action you can execute against a subscription

Responses

Request samples

Content type
application/json
{
  • "action": "string"
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "productId": 0,
  • "locationId": 0,
  • "instanceId": 0,
  • "locationName": "string",
  • "productName": "string",
  • "startDate": "2019-08-24",
  • "endDate": "2019-08-24",
  • "status": "PROCESSING",
  • "missingRequirements": [
    ],
  • "possibleActions": [
    ],
  • "trialPeriod": {
    }
}

GET Subscriptions

Fetch all the subscription that do belong to a (company) contract.

path Parameters
contractId
required
integer <int64>

unique contract id

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "total": 0
}

CANCEL Product From Contract

cancel this product from the contract

this call shall only be called by a self service user

path Parameters
contractId
required
integer
productId
required
integer
query Parameters
locationIds
string

comma seperated location ids

Responses

Response samples

Content type
application/json
{
  • "id": 0
}

GET Available Products for Company Contract

Get all available products for your contract.

The response contains also all created and available connections to locations, their statuses and all available actions you may execute.

Right now this call shall only be used for self service company contracts.

path Parameters
contractId
required
integer <int64>

id of your contract

query Parameters
baseProductsTypes
string <int64>

filter the result by this comma seperated list of base product ids you get from the contract detail object

onlyAssignedProducts
boolean

returns only the product that are assigned directly to the company contract, default is false

Responses

Response samples

Content type
application/json
{
  • "products": [
    ],
  • "total": 0,
  • "catalogs": [
    ]
}

GET Price List for Company Contract

Get the price list data for your contract.

path Parameters
contractId
required
integer <int64>

id of your contract

query Parameters
lang
string

Language

Responses

Response samples

Content type
application/json
{
  • "features": [
    ],
  • "products": [
    ]
}

GET Defined Products of Workspace Contract

Get all products that are defined theoretically for all customers of a workspace.

Note: There could be restrictions that does not allow a company to order one of those products (e.g. country restriction). To get a more reliable list for a certain company, you may want to user the following endpoint: /v5/contract/{contractId}/product

path Parameters
contractId
required
integer <int64>

id of your contract

query Parameters
baseProductsTypes
string <int64>

filter the result by this comma seperated list of base product ids you get from the contract detail object

Responses

Response samples

Content type
application/json
{
  • "products": [
    ],
  • "total": 0,
  • "catalogs": [
    ]
}

GET Eligibility for a Free Trial of the specified locations

Check if location(s) can book a Free trial for the specified product.

path Parameters
productId
required
integer <int64>
query Parameters
locationIds
required
string

comma separated location ids to check their elegibility for a free trial

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "total": 0
}

contract

GET Contract List

get the list of all contracts the logged in user is allowed to see. Only the first level of contracts is returned. Use the query parameter to restrict the search, if you do so, you need to define contextType and contextId, both.

path Parameters
contextType
required
string
Enum: "company" "workspace"

context you want to get contracts for

contextId
required
integer <int64>

id of the context entity

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "total": 0
}

CHANGE Payment Provider Configuration

save new payment method id in stripe for now only Note: later will be used for all the payment providers

path Parameters
contractId
required
integer <int64>
paymentProviderConfigId
required
integer <int64>
Request Body schema: application/json
Array of objects (KeyValueString)

configuration of provider - e.g. payment method id

Array
key
required
string
value
required
string

Responses

Request samples

Content type
application/json
{
  • "providerData": [
    ]
}

Response samples

Content type
application/json
{
  • "value": 0
}

billing

GET Contract Billing History

Get the history of all Billing History of this contract Path Params: id: company contractId

//TODO Marjol put documentation of path parameter to description of path parameter ... //TODO Marjol rename the path to /v5/contract/{contractId}/invoices

path Parameters
contractId
required
integer
query Parameters
skip
integer

skip entries

take
integer

take a given number of entries

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "total": 0
}

GET A Single Invoice

get the biling invoice of your Contract invoice

path Parameters
contractId
required
integer

contractId of your company

invoiceId
required
integer

invoiceId of your contract

Responses

Response samples

Content type
application/json
{
  • "invoice": [
    ],
  • "subtotal": 0,
  • "vat": 0,
  • "total": 0,
  • "vatPercentage": 0,
  • "vatId": "string"
}

user

INITIATE Payment Provider

In case a payment provider is not yet initiated for your user, you can do it here. You need to have payment provider configured to pay products in any self service contract. The payment provider being available and configured you can see in your user profile GET /user/profile

path Parameters
providerConfigId
required
integer <int64>

the id of a certain provider config

Responses

Response samples

Content type
application/json
{
  • "name": "string",
  • "providerData": [
    ],
  • "providerConfigId": 0
}

GET Your User Profile

returns the profile of the logged in user

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "userName": "string",
  • "email": "string",
  • "contextId": 0,
  • "contextType": "Location",
  • "active": true,
  • "position": "string",
  • "firstName": "string",
  • "lastName": "string",
  • "languageCode": "de",
  • "url": "string",
  • "template": 0,
  • "settings": [
    ],
  • "tags": [
    ],
  • "salutation": "string",
  • "userType": "agency service",
  • "profilePicture": {
    },
  • "phone": {
    },
  • "connectedPaymentProvider": [
    ],
  • "ssoUser": true,
  • "cookieConsent": {
    }
}

company

Delete Company

A delete method to remove a company and all of it's locations, if there are no active paid producs.

Note: an exception are the free products that will be automatically terminated by deleting the company

path Parameters
id
required
integer <int64>

Company Id

Responses

Response samples

Content type
application/json
{
  • "id": 0
}

location

CREATE Location

Method to create a location by defining all mandatory fields. If you want to insert some additional, media or social media fields, use the corresponding update methods afterwards.

If a self service user wants to create a new location for her/his company, pinVerification and claimId need to be set. Those need to be triggerd by the /company/claim endpoint via the location main phone number.

path Parameters
companyId
required
integer <int64>

id of the parental company you want to create the location in

Request Body schema: application/json
name
required
string
Array of objects (LocationCategory)
object (AddressInsert)
object (MainPhoneInsert)
claimId
string
pinVerification
string
email
string

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "categories": [
    ],
  • "address": {
    },
  • "mainPhone": {
    },
  • "claimId": "string",
  • "pinVerification": "string",
  • "email": "string"
}

Response samples

Content type
application/json
{
  • "id": 0
}

Delete Locations

method to delete Locations

Note: In order to delete location's all paid products must be terminated , an exception are the free products that will be automatically terminated by deleting the location's

path Parameters
ids
required
string

location's id in a coma separate list

Responses

Response samples

Content type
application/json
{
  • "ids": [
    ],
  • "total": 0
}

phone

CREATE Main Phone

add main phone to location Path Params: id: id of the location

path Parameters
contentType
required
string
Value: "Location"

content you want to add the main phone number, for now only Location possible

contentId
required
integer

unique id of the content

Request Body schema: application/json
phone
required
string
tracked
required
boolean
localPhone
string

Responses

Request samples

Content type
application/json
{
  • "phone": "string",
  • "tracked": true,
  • "localPhone": "string"
}

Response samples

Content type
application/json
{
  • "id": 0
}

statistic

GET aggregated statistics

This function provides a list of aggregated statistics for different products. The statistics are aggregated based on the chosen time interval. If available, you will also see the periodic changes compared to the statistics of the previous period, which is determined by the same number of days you defined with "from" and "to."

If the statistics are displayed for a single product line (e.g., listing), you will see the extended KPIs listed as an additional detailed layer. Otherwise (e.g., listing and sea), you will see the product lines in this layer.

To check which KPIs are available, feel free to request them through the 'possible KPIs' call.

To access the statistics, you need to order a product that includes the 'Analytics' functionality for your locations. Locations without an active subscription for this feature will not be considered in the response, even if you try to retrieve statistics for the parent company.

path Parameters
contextType
required
string
Enum: "Company" "Location" "Subscription"

Define the context type which refers to the contextIds you're passing

contextIds
required
string

comma seperated list of ids

query Parameters
kpis
string

the kpis you want to get statistics for, see 'possible kpis' call to see the available kpis for your product/licence filter configuration

productIds
string

filter for products, comma seperated productids

from
string <date>

date of format 'yyyy-MM-dd' determining the including start date for filtering

to
string <date>

date of format 'yyyy-MM-dd' determining the including end date for filtering

includeMetaData
boolean

with this parameter you can control if more detailled meta data shall get included in thie response (if available). Be ware: this can slow down the response time. Default is false

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "total": 0
}

GET statistics chronological

This function returns a list of chronological statistics for different products. The statistics are aggregated based on the chosen time interval and aggregation type. You have the option to view statistics on a daily, monthly, or yearly basis.

If the statistics are displayed for a single product line (e.g., listing), you will see the extended KPIs listed as an additional detailed layer. Otherwise (e.g., listing and sea), you will see the product lines in that layer.

To check which KPIs are available, you can request them through the 'possible KPIs' call.

To access the statistics, you need to order a product that includes the 'Analytics' functionality for your locations. Locations without an active subscription for this feature will not be included in the response, even if you try to retrieve statistics for the parent company.

path Parameters
contextType
required
string
contextIds
required
string
query Parameters
kpis
string

the kpis you want to get statistics for, see 'possible kpis' call to see the available kpis for your product/licence filter configuration

products
string
Enum: "ReachEnhancement" "Listing" "Advertisement" "ListingPortal" "CallTracking"

filter for products, comma seperated productids

from
string <date>

date of format 'yyyy-MM-dd' determining the including start date for filtering

to
string <date>

date of format 'yyyy-MM-dd' determining the including end date for filtering

aggregationType
required
string
Enum: "Day" "Month" "Year"

determines the chronological aggregation type of the data representation

includeMetaData
boolean

with this parameter you can control if more detailled meta data shall get included in thie response (if available). Be ware: this can slow down the response time. Default is false

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "total": 0
}

GET statistic KPIs

Returns a list of possible kpis. You can filter for products to see what you could get by the statistics calls.

Remark: To get the detailed extended kpis for a products you need to set the filter correspondingly in the statistic aggregated or chronology call.

query Parameters
products
string

comma seperated list of product ids

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "total": 0
}

GET Call Tracking Statistics

This function returns a list made phone calls to a call tracking number. You can get the list either for single call tracking subscriptions or on company/location level for all call tracking subscriptions underneath.

To access the statistics, you need to order a product that includes the 'Analytics' functionality for your locations. Locations without an active subscription for this feature will not be included in the response, even if you try to retrieve statistics for the parent company.

path Parameters
contextType
required
string
contextIds
required
string
query Parameters
filtered
required
boolean <date>

using filtered date or raw ones

from
string <date>

date of format 'yyyy-MM-dd' determining the including start date for filtering

to
string <date>

date of format 'yyyy-MM-dd' determining the including end date for filtering

skip
integer

skip entries of list

take
integer

take a given number of entries

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "total": 0
}

listing

GET Listing Portals

This method provides an overview of listing portals for a company. You can restrict the data by setting location ids.

To be able to get data you first need to purchase/assign listing products to a contract of this company.

path Parameters
companyId
required
integer <int64>

company that is having listing products included

query Parameters
locationIds
string

comma seperated list of location ids

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "total": 0
}

Get Potential Listing Publisher Duplicates

Listing Publisher offer potential duplicates of your location on their platform.

Use the corresponding PUT /v5/listing/duplicate/{duplicateId} endpoint to execute a behaviour with these duplicate warnings.

Note! There must be a product purchased which has the functionalitiy "ListingDuplicateManagement".

path Parameters
contextType
required
string
Enum: "Company" "Location" "Subscription"

context of the ids you're passing

contextIds
required
string

comma seperated list of ids, related to their contextType

query Parameters
skip
integer

skip n entries

take
integer

take n entries

duplicateStatus
string
Enum: "POSSIBLE_DUPLICATE" "SUPPRESSION_REQUESTED" "SUPPRESSED" "UNAVAILABLE" "DELETED"

comma seperated list of the status of the duplices

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "total": 0
}

Execute Action on Duplicate

Execute a certain action against a potential duplicate of a listing publisher. You can use the api call GET /v5/listing/{contextType}/{contextIds}/duplicate to get a list of those.

Actions are:

  • SUPPRESS: We let the listing publisher know, the duplicate shall not get shown anymore on their platform
  • IGNORE: The duplicate warning will be ignored. Use this action if you are sure the shown potential duplicate is not related to the location of yours.

Note! There must be a product purchased which has the functionalitiy "ListingDuplicateManagement".

path Parameters
duplicateId
required
integer <int64>

unique duplicate id

Request Body schema: application/json
action
required
string
Enum: "IGNORE" "SUPPRESS"

action you want to executed agains a duplicate warning of a listing publisher

Responses

Request samples

Content type
application/json
{
  • "action": "IGNORE"
}

review

GET Reviews

This endpoint offers reviews for a certin context type (company or location).

You can use various query parameters to filter the result list.

Note! There musst be a product assigned which covers the functionalitiy for "Review Monitoring"

query Parameters
ids
required
string <int64>

the ids of the context

take
integer

Get only x elements. If it's not defined, the fallback is 500 elements. The maximum value you can request is 500; And if it exceeds this, the API will reject the request.

skip
integer

skip entries

sortColumn
string
Enum: "reviewId" "socialPortal" "dateTime" "rating"

name of the column which gets sorted, need to be one of the fields of the model schema of the response

sortDirection
string
Enum: "asc" "desc"

asc or desc for ascending or descending

contextType
required
string
Enum: "Location" "Company"

context of the ids you're passing

socialPortal
string

social portal names as a comma separated list

minRating
number <double>

a filter for minimum rating

maxRating
number <double>

a filter for maximum rating

answeredStatus
boolean

to filter reviews if they have answer from owner

tags
string

filter by tags, which should exist on company level

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "averageRating": 0,
  • "total": 0,
  • "unansweredReviews": 0,
  • "reviewsPerWeek": 0,
  • "totalReviews": 0
}

GET Single Review

This endpoint offers the data of a single review

Note! There musst be a product assigned which covers the functionalitiy for "Review Monitoring"

path Parameters
reviewId
required
integer <int64>

unique review id

Responses

Response samples

Content type
application/json
{
  • "reviewId": 0,
  • "location": {
    },
  • "createdAt": "2019-08-24T14:15:22Z",
  • "socialPortal": "string",
  • "portalAnswerable": true,
  • "addonAnswerable": true,
  • "rating": 0,
  • "facebookRecommended": true,
  • "reviewContent": {
    },
  • "lastOwnerAnswer": {
    },
  • "url": "string",
  • "repliable": true
}

GET Comments For A Review

This endpoint offers all comments for a specific review.

Note! There musst be a product assigned which covers the functionalitiy for "Review Monitoring"

path Parameters
reviewIds
required
string

unique review ids, comma seperated

query Parameters
take
integer

take a given number of entries

skip
integer

skip entries

sortColumn
string
Enum: "profileName" "dateTime" "ownerCommented"

name of the column which gets sorted, need to be one of the fields of the model schema of the response

sortDirection
string
Enum: "asc" "desc"

asc or desc for ascending or descending

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "total": 0
}

CREATE A Comment For A Review

With this endpoint you can send a comment to a defined review.

Note! There musst be a product assigned (to the location of the review) which covers the functionalitiy for "Review Management"

path Parameters
reviewIds
required
string

unique review ids, comma seperated

Request Body schema: application/json
comment
required
string

Responses

Request samples

Content type
application/json
{
  • "comment": "string"
}

Response samples

Content type
application/json
{
  • "id": 0
}

UPDATE A Comment Of A Review

With this endpoint you can update specific comment of a review by using the unique commentId.

Note! There must be a product assigned (to the location of the review) which covers the functionalitiy for "Review Management"

path Parameters
commentId
required
integer <int64>

unique comment id of a review

Request Body schema: application/json
comment
required
string

Responses

Request samples

Content type
application/json
{
  • "comment": "string"
}

Response samples

Content type
application/json
{
  • "id": 0
}

posts

GET Social Post List

Method to get a list of social posts depending on the context, if they are schedueled or on the social portal we want.

Note! There must be a product purchased which has the functionalitiy "SocialPosts".

query Parameters
contextIds
required
string <int64>

id of location or company

take
integer

take a given number of entries

skip
integer

skip entries

sortColumn
string
Enum: "postId" "socialPortal" "canDelete" "dateTime" "status"

name of the column which gets sorted, need to be one of the fields of the model schema of the response

sortDirection
string
Enum: "asc" "desc"

asc or desc for ascending or descending

contextType
required
string
Enum: "Location" "Company"

context type (location,company)

isPlanned
boolean

take the feature, past or all date of post

socialPortal
string

social portal names as a comma separated list

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "total": 0
}

POST Social Post

Method to Post in social portals depending on the context or on the social portal we want. Putting the date in the future will make it a scheduled post.

Note!

  1. There must be a product purchased which has the functionalitiy "SocialPosts".
  2. is possible to add up to 10 image's only for Facebook social portal, for the other social portal if more than 1 is provided we pick the first from the array
query Parameters
contextIds
required
string <int64>

id of the locations or the company

contextType
required
string
Enum: "Location" "Company"

context type (location,company)

socialPortal
required
string

context of source type

Request Body schema:
Array of objects (ImageInsert)
postContent
string
url
string
date
required
string <date>
time
string
ctaUrl
string

The call to action is only available for GoogleMyBusiness social portal, unset ctaUrl in case of "CALL"

ctaType
string
Enum: "BOOK" "ORDER" "SHOP" "LEARN_MORE" "SIGN_UP" "CALL"

The call to action is only available for GoogleMyBusiness social portal

postTopicType
string
Enum: "STANDARD" "EVENT" "OFFER" "ALERT"
alertType
string
Value: "COVID_19"

The type of alert the post is created for. This field is only applicable for posts of topicType Alert, and behaves as a sub-type of Alerts.

object (SocialPostEventInfo)
object (SocialPostOfferInfo)

Responses

Request samples

Content type
No sample

Response samples

Content type
application/json
{
  • "ids": [
    ],
  • "total": 0
}

RETRY Social Post

Method to retry posting failed social posts Providing a list of locations will only retry posting the post for the locations in that list (in case it failed in that location). If no list is provided, the retry will apply to all locations where the post failed.

path Parameters
id
required
integer <int64>

id of the post

query Parameters
locationIds
string <int64>

id of the locations, send this when only some of the failed post_locations should be retried

Responses

Response samples

Content type
application/json
{
  • "ids": [
    ],
  • "total": 0
}

CANCEL Social Post

Method to cancel posting failed social posts Providing a list of locations will only cancel the post for the locations in that list (in case it failed in that location). If no list is provided, the cancellation will apply to all locations where the post failed.

path Parameters
id
required
integer <int64>

id of the post

query Parameters
locationIds
string <int64>

id of the locations, send this when only some of the failed post_locations should be cancelled

Responses

Response samples

Content type
application/json
{
  • "ids": [
    ],
  • "total": 0
}

DELETE Social Post

Method to delete social posts.

Note! There must be a product purchased which has the functionalitiy "SocialPosts"

path Parameters
id
required
integer <int64>

id of the post

query Parameters
contextIds
string

comma seperated ids of location or company

contextType
string
Enum: "Location" "Company"

context type (location,company)

Responses

Response samples

Content type
application/json
{
  • "ids": [
    ],
  • "total": 0
}

PUT Social Post

Method to update Post before the post plan date

Note!

  1. is possible to add up to 10 image's only for Facebook social portal for the other social portal we pick the first from the
    array
path Parameters
id
required
integer <int64>

id of the post

Request Body schema: application/json
Array of objects (ImageInsert)
postContent
string
url
string
date
string <date>
time
string
contextType
required
string
Enum: "Location" "Company"
contextIds
required
Array of integers <int64> [ items <int64 > ]
ctaUrl
string

The call to action is only available for GoogleMyBusiness social portal, unset ctaUrl in case of "CALL"

ctaType
string
Enum: "BOOK" "ORDER" "SHOP" "LEARN_MORE" "SIGN_UP" "CALL"

The call to action is only available for GoogleMyBusiness social portal

postTopicType
string
Enum: "STANDARD" "EVENT" "OFFER" "ALERT"
alertType
string
Value: "COVID_19"

The type of alert the post is created for. This field is only applicable for posts of topicType Alert, and behaves as a sub-type of Alerts.

object (SocialPostEventInfo)
object (SocialPostOfferInfo)

Responses

Request samples

Content type
application/json
{
  • "postImage": [
    ],
  • "postContent": "string",
  • "url": "string",
  • "date": "2019-08-24",
  • "time": "string",
  • "contextType": "Location",
  • "contextIds": [
    ],
  • "ctaUrl": "string",
  • "ctaType": "BOOK",
  • "postTopicType": "STANDARD",
  • "alertType": "COVID_19",
  • "eventInfo": {
    },
  • "offerInfo": {
    }
}

Response samples

Content type
application/json
{
  • "ids": [
    ],
  • "total": 0
}

POST Social Post Comment

Create a new comment for a post

query Parameters
id
required
integer <int64>

id of post

locationIds
string

id of location

Request Body schema: application/json
message
required
string
commentId
integer <int64>

If the identifier "commentId" is set, then the action is considered a reply.

Responses

Request samples

Content type
application/json
{
  • "message": "string",
  • "commentId": 0
}

Response samples

Content type
application/json
{
  • "ids": [
    ],
  • "total": 0
}

GET Social Post Comment

Method to get Social comments

query Parameters
postId
required
integer <int64>

id of post

locationIds
string <int64>

id of location

take
integer

take a given number of entries

skip
integer

skip entries

sortColumn
string
Enum: "postId" "socialPortal" "canDelete" "dateTime" "status"

name of the column which gets sorted, need to be one of the fields of the model schema of the response

sortDirection
string

asc or desc for ascending or descending

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "total": 0
}

DELETE Social Post Comment

Method to delete Comment

path Parameters
id
required
integer <int64>

Responses

Response samples

Content type
application/json
{
  • "value": 0
}

GET Social Post Comment Replies

Method to get Social comment replies

query Parameters
commentId
required
integer <int64>

id of comment

take
integer

take a given number of entries

skip
integer

skip entries

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "total": 0
}

DELETE Social Post Reply

Method to delete Reply

path Parameters
id
required
integer <int64>

Responses

Response samples

Content type
application/json
{
  • "value": 0
}

sea

Set initial SEA data

Use that endpoint to define all initial data for a sea subscription. That action must be executed only once. As soon as all mandatory data fields are defined use the corresponding update methods to change them.

You define one segment (either via categoryTaxonomyId or customSettings), you can add/remove/modify multiple later.

In the response you get a seaId returned. That one you can use in the v4 api for segments management, update etc. for now.

path Parameters
subscriptionId
required
integer <int64>

subscription id of the ordered product sea is a part of

Request Body schema: application/json
destinationUrl
required
string

Url promoted by the campaign. Must be a valid url.

displayUrl
string

Url that is shown instead of the destination url, should be of the same domain though

name
required
string

customizable name

radius
integer <int32>

radius around locations address in which the initial segment of the campaign will be promoted

categoryTaxonomyId
integer <int32>

in case you want to use a predefined category taxonomy for your initial segment, pass the id

object (CustomSegmentSetting)

Customized segment setting for a sea subscription

Array of objects (KeyValueString)

Use excludedLocations to remove location targetings from the defined radius.

Array of objects (KeyValueString)

Use includedLocations to add location targetings in addition to the ones in the radius.

budgetTarget
integer <int32>

In case there is a fixed definition in the product settings this paramter is not used. Otherwise you have to define a budget

budgetTargetType
string
Enum: "Call" "Click" "Interactions" "Euro"

Choose "Euro" for sea budgets, in case it has not been defined on product level

Responses

Request samples

Content type
application/json
{
  • "destinationUrl": "string",
  • "displayUrl": "string",
  • "name": "string",
  • "radius": 0,
  • "categoryTaxonomyId": 0,
  • "customSetting": {
    },
  • "excludedLocations": [
    ],
  • "includedLocations": [
    ],
  • "budgetTarget": 0,
  • "budgetTargetType": "Call"
}

Response samples

Content type
application/json
{
  • "subscription": {
    },
  • "seaId": 0
}

Set initial SEA Local Ads extension

Setting Up Your Subscription:

Use the provided endpoint to establish the initial data for your subscription to a sea local ads extension. It's important tonote that this action should only be executed once during the setup process.

Updating Mandatory Data:

Once you've defined all the mandatory data fields, make use of the corresponding update methods to modify them as needed.

Integration with Sea Campaign:

Please be aware that this local ads extension is directly connected to an already established sea campaign. To ensure proper integration, include the corresponding subscriptionId in the request body.

Enhancing Campaign Performance:

Additionally, you have the option to allocate an extra budget to the campaign. This can help boost its performance when combined with the local ads.

Important Note:

There is a strong coupling between both subscriptions. Any updates made to one subscription regarding its runtime will be immediately reflected in the corresponding one.
path Parameters
subscriptionId
required
integer <int64>

subscription id of the ordered product sea local ads is a part of

Request Body schema: application/json
budgetIncrease
integer

If the budget increase has already been configured for your product, you won't need to make any additional adjustments.

However, if it is not predefined, you have the option to increase the budget using a specific value. The default value is 0.

subscriptionId
required
integer <int64>

subscriptionId of the sea campaign

Responses

Request samples

Content type
application/json
{
  • "budgetIncrease": 0,
  • "subscriptionId": 0
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "productId": 0,
  • "locationId": 0,
  • "instanceId": 0,
  • "locationName": "string",
  • "productName": "string",
  • "startDate": "2019-08-24",
  • "endDate": "2019-08-24",
  • "status": "PROCESSING",
  • "missingRequirements": [
    ],
  • "possibleActions": [
    ],
  • "trialPeriod": {
    }
}

website

Set initial website data

Use that endpoint to define all initial data for a website subscription. That action must be executed only once. As soon as all mandatory data fields are defined use the corresponding update methods to change them.

In the response you get a subscription object returned. The id of it you can use in the v4 api for website update calls.

path Parameters
subscriptionId
required
integer <int64>

subscription id of the ordered product sea is a part of

Request Body schema: application/json
templateId
required
integer <int32>

the template you want to use for this website. Which ones are available you can get via endpoint /api/v5/presence/{productId}/website/configuration

domain
string

in case you deliver data to a website product of type "domain", you need to define the domain the website shall get hosted under. Leave this field empty if your type is "sub-domain". The type you can identify with the endpoint: /v5/presence/{productId}/website/configuration

subDomain
string

in case you deliver data to a website product of type "sub-domain", you need to define the sub-domain the website shall get hosted under. Leave this field empty if your type is "domain". The type you can identify with the endpoint: /v5/presence/{productId}/website/configuration

You also see the pre-configured domain the website will be hosted with the sub-domain

Responses

Request samples

Content type
application/json
{
  • "templateId": 0,
  • "domain": "string",
  • "subDomain": "string"
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "productId": 0,
  • "locationId": 0,
  • "instanceId": 0,
  • "locationName": "string",
  • "productName": "string",
  • "startDate": "2019-08-24",
  • "endDate": "2019-08-24",
  • "status": "PROCESSING",
  • "missingRequirements": [
    ],
  • "possibleActions": [
    ],
  • "trialPeriod": {
    }
}

Get configuration for website products

Use that endpoint to gain insights to the configuration of your website product. With it you can see the pre configured domain type and the available templates with all of their generic settings you may need to define via the corresponding api calls.

path Parameters
productId
required
integer <int64>

product id of product that contains website

Responses

Response samples

Content type
application/json
{
  • "domainType": "string",
  • "preConfiguredDomain": "string",
  • "templates": [
    ]
}

calltracking

Set initial CALLTRACKING data

Use that endpoint to define all initial data for a calltracking subscription. That action must be executed only once. As soon as all mandatory data fields are defined use the corresponding update methods to change them.

In the response you get a subscription object returned. The id of it you can use in the v4 api for calltracing update calls.

path Parameters
subscriptionId
required
integer <int64>

subscription id of the ordered product calltracking is a part of

Request Body schema: application/json
registerPermission
required
boolean

allowance to use customer data of the company

callTrackingPermission
required
boolean

allowance to register call tracking numbers for the company

Responses

Request samples

Content type
application/json
{
  • "registerPermission": true,
  • "callTrackingPermission": true
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "productId": 0,
  • "locationId": 0,
  • "instanceId": 0,
  • "locationName": "string",
  • "productName": "string",
  • "startDate": "2019-08-24",
  • "endDate": "2019-08-24",
  • "status": "PROCESSING",
  • "missingRequirements": [
    ],
  • "possibleActions": [
    ],
  • "trialPeriod": {
    }
}

advertisement

Get configuration for advertisement products

Use this endpoint to gain insights to the configuration of your advertisement product. With it you can see the available adspace types that you can target, with all of their settings and constraints.

path Parameters
productId
required
integer <int64>

product id of product that contains advertisement banner

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "total": 0
}

Set initial advertisement data

Use that endpoint to define all initial data for an advertisement subscription. This action must be executed only once. As soon as all mandatory data fields are defined, use the corresponding update methods to change them.

In the response you get a subscription object returned. The id of it you can use in the v4 api for advertisement update calls.

path Parameters
subscriptionId
required
integer <int64>

subscription id of the ordered product advertisement banner is a part of

Request Body schema: application/json
advertisementType
required
string

Name of the adspace that you want to target with the advertisemenet product. This must be one of the available adspaces for your product (Use GET Advertisement Product Adspace Configuration API call to check which ones are available to you).

destinationUrl
required
string

Url that the advertisement banner will redirect to

priority
required
string
Enum: "VeryLow" "Low" "Normal" "High" "VeryHigh"

value used to set the priority of a specific advertisement banner

Array of objects (KeyValueString)

List of text fields that shall be used for this advertisement banner. Check which ones are mandatory to define and their restrictions if any for the selected advertisementType with GET Advertisement Product Adspace Configuration API call.

Array of objects (KeyValueImageInsert)

List of image fields that shall be used for this advertisement banner. Check which ones are mandatory to define and their restrictions if any for the selected advertisementType with GET Advertisement Product Adspace Configuration API call.

campaignType
required
string
Enum: "open" "closed"

value that sets a campaign as open or closed (once set it can"t be modified)

page
required
string

page you want the ad to be

Array of objects (KeywordTargeting)
buIdList
Array of strings
buAIdList
Array of strings
kgsList
Array of strings
tIdList
Array of strings
Array of objects (LocationTargeting)
taoIdList
Array of strings
ignoreTargeting
boolean

Responses

Request samples

Content type
application/json
{
  • "advertisementType": "string",
  • "destinationUrl": "string",
  • "priority": "VeryLow",
  • "textFields": [
    ],
  • "imageFields": [
    ],
  • "campaignType": "open",
  • "page": "string",
  • "keywordList": [
    ],
  • "buIdList": [
    ],
  • "buAIdList": [
    ],
  • "kgsList": [
    ],
  • "tIdList": [
    ],
  • "locationList": [
    ],
  • "taoIdList": [
    ],
  • "ignoreTargeting": true
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "productId": 0,
  • "locationId": 0,
  • "instanceId": 0,
  • "locationName": "string",
  • "productName": "string",
  • "startDate": "2019-08-24",
  • "endDate": "2019-08-24",
  • "status": "PROCESSING",
  • "missingRequirements": [
    ],
  • "possibleActions": [
    ],
  • "trialPeriod": {
    }
}

GET Advertisement Targeting Tids

get the categories defined by a tid (= etb no)

query Parameters
filter
string

name filter, can be used to filter for a specific tid

productId
required
integer <int64>

id of the advertisement product you want to get the informations for

adspace
required
string

Adspace or advertisement type you want to check the TIds for

skip
integer

skip entries

take
integer

take a given number of entries

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "total": 0
}