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.
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
- Payload
{- "productId": 0,
- "providerConfigurationId": 0,
- "providerData": [
- {
- "key": "string",
- "value": "string"
}
], - "locationIds": [
- 0
]
}
Response samples
- 200
{- "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
- Payload
{- "productId": 0,
- "providerConfigurationId": 0,
- "providerData": [
- {
- "key": "string",
- "value": "string"
}
], - "locationIds": [
- 0
]
}
Response samples
- 200
{- "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
- Payload
{- "productId": 0,
- "amount": 0,
- "locationIds": [
- 0
], - "startDate": "2019-08-24",
- "endDate": "2019-08-24",
- "externalId": "string",
- "note": "string"
}
Response samples
- 200
{- "id": 0,
- "productId": 0,
- "locationId": 0,
- "instanceId": 0,
- "locationName": "string",
- "productName": "string",
- "startDate": "2019-08-24",
- "endDate": "2019-08-24",
- "status": "PROCESSING",
- "missingRequirements": [
- {
- "id": "string",
- "httpMethod": "GET",
- "endpoint": "string",
- "docuUrl": "string",
- "description": "string"
}
], - "possibleActions": [
- {
- "id": "string",
- "name": "string",
- "action": {
- "http": {
- "httpMethod": "GET",
- "endpoint": "string",
- "queryParameters": [
- "string"
], - "body": "string"
}, - "url": {
- "url": "string"
}, - "workflow": [
- {
- "step": 0,
- "description": "string",
- "apiDocumentation": "string",
- "knowledgeBase": "string"
}
]
}, - "actionType": "HTTP"
}
], - "trialPeriod": {
- "startDate": "2019-08-24",
- "endDate": "2019-08-24"
}
}
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
- Payload
{- "productId": 0,
- "providerConfigurationId": 0,
- "providerData": [
- {
- "key": "string",
- "value": "string"
}
], - "locationIds": [
- 0
]
}
Response samples
- 200
{- "numItems": 0,
- "cost": {
- "value": 0,
- "vat": 0,
- "total": 0
}, - "setup": {
- "value": 0,
- "vat": 0,
- "total": 0
}, - "maint": {
- "value": 0,
- "vat": 0,
- "total": 0
}, - "currency": "string",
- "prorationCost": {
- "value": 0,
- "vat": 0,
- "total": 0
}
}
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
- Payload
{- "startDate": "2019-08-24",
- "endDate": "2019-08-24",
- "externalId": "string",
- "note": "string"
}
Response samples
- 200
{- "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
- Payload
{- "action": "string"
}
Response samples
- 200
{- "id": 0,
- "productId": 0,
- "locationId": 0,
- "instanceId": 0,
- "locationName": "string",
- "productName": "string",
- "startDate": "2019-08-24",
- "endDate": "2019-08-24",
- "status": "PROCESSING",
- "missingRequirements": [
- {
- "id": "string",
- "httpMethod": "GET",
- "endpoint": "string",
- "docuUrl": "string",
- "description": "string"
}
], - "possibleActions": [
- {
- "id": "string",
- "name": "string",
- "action": {
- "http": {
- "httpMethod": "GET",
- "endpoint": "string",
- "queryParameters": [
- "string"
], - "body": "string"
}, - "url": {
- "url": "string"
}, - "workflow": [
- {
- "step": 0,
- "description": "string",
- "apiDocumentation": "string",
- "knowledgeBase": "string"
}
]
}, - "actionType": "HTTP"
}
], - "trialPeriod": {
- "startDate": "2019-08-24",
- "endDate": "2019-08-24"
}
}
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
- 200
{- "data": [
- {
- "id": 0,
- "productId": 0,
- "locationId": 0,
- "instanceId": 0,
- "locationName": "string",
- "productName": "string",
- "startDate": "2019-08-24",
- "endDate": "2019-08-24",
- "status": "PROCESSING",
- "missingRequirements": [
- {
- "id": "string",
- "httpMethod": "GET",
- "endpoint": "string",
- "docuUrl": "string",
- "description": "string"
}
], - "possibleActions": [
- {
- "id": "string",
- "name": "string",
- "action": {
- "http": {
- "httpMethod": "GET",
- "endpoint": "string",
- "queryParameters": [
- "string"
], - "body": "string"
}, - "url": {
- "url": "string"
}, - "workflow": [
- {
- "step": 0,
- "description": "string",
- "apiDocumentation": "string",
- "knowledgeBase": "string"
}
]
}, - "actionType": "HTTP"
}
], - "trialPeriod": {
- "startDate": "2019-08-24",
- "endDate": "2019-08-24"
}
}
], - "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
- 200
{- "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
- 200
{- "products": [
- {
- "id": 0,
- "name": "string",
- "description": "string",
- "icon": "string",
- "costs": {
- "numItems": 0,
- "cost": {
- "value": 0,
- "vat": 0,
- "total": 0
}, - "setup": {
- "value": 0,
- "vat": 0,
- "total": 0
}, - "maint": {
- "value": 0,
- "vat": 0,
- "total": 0
}, - "currency": "string",
- "prorationCost": {
- "value": 0,
- "vat": 0,
- "total": 0
}
}, - "catalogId": 0,
- "bookableLocations": [
- {
- "key": 0,
- "value": "string"
}
], - "containsProducts": [
- 0
], - "meta": [
- {
- "id": "string",
- "key": "string",
- "value": "string"
}
], - "connectedLocations": [
- {
- "id": 0,
- "productId": 0,
- "locationId": 0,
- "instanceId": 0,
- "locationName": "string",
- "productName": "string",
- "startDate": "2019-08-24",
- "endDate": "2019-08-24",
- "status": "PROCESSING",
- "missingRequirements": [
- {
- "id": "string",
- "httpMethod": "GET",
- "endpoint": "string",
- "docuUrl": "string",
- "description": "string"
}
], - "possibleActions": [
- {
- "id": "string",
- "name": "string",
- "action": {
- "http": {
- "httpMethod": "GET",
- "endpoint": "string",
- "queryParameters": [
- null
], - "body": "string"
}, - "url": {
- "url": "string"
}, - "workflow": [
- {
- "step": null,
- "description": null,
- "apiDocumentation": null,
- "knowledgeBase": null
}
]
}, - "actionType": "HTTP"
}
], - "trialPeriod": {
- "startDate": "2019-08-24",
- "endDate": "2019-08-24"
}
}
], - "purchaseStatus": "Successful",
- "maxCount": 0,
- "baseProductTypes": [
- {
- "id": 0,
- "type": "string"
}
], - "possibleSubscriptionActions": [
- {
- "id": "string",
- "name": "string",
- "action": {
- "http": {
- "httpMethod": "GET",
- "endpoint": "string",
- "queryParameters": [
- "string"
], - "body": "string"
}, - "url": {
- "url": "string"
}, - "workflow": [
- {
- "step": 0,
- "description": "string",
- "apiDocumentation": "string",
- "knowledgeBase": "string"
}
]
}, - "actionType": "HTTP"
}
], - "functionalities": [
- "ReviewMonitoring"
], - "trialDays": 0
}
], - "total": 0,
- "catalogs": [
- {
- "id": 0,
- "contract": 0,
- "name": "string",
- "description": "string"
}
]
}
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
- 200
{- "features": [
- {
- "name": "string",
- "info": "string",
- "content": "string",
- "order_by": 0,
- "catalog_id": 0,
- "publishers": [
- {
- "icon": "string",
- "name": "string",
- "priority": 0
}
], - "included_products": [
- 0
]
}
], - "products": [
- {
- "name": "string",
- "weight": 0,
- "catalog_id": 0,
- "product_id": 0,
- "highlighted": true,
- "cost_per_item": 0,
- "highlight_text": "string",
- "highlight_color": "string"
}
]
}
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
- 200
{- "products": [
- {
- "id": 0,
- "name": "string",
- "description": "string",
- "icon": "string",
- "costs": {
- "numItems": 0,
- "cost": {
- "value": 0,
- "vat": 0,
- "total": 0
}, - "setup": {
- "value": 0,
- "vat": 0,
- "total": 0
}, - "maint": {
- "value": 0,
- "vat": 0,
- "total": 0
}, - "currency": "string",
- "prorationCost": {
- "value": 0,
- "vat": 0,
- "total": 0
}
}, - "catalogId": 0,
- "bookableLocations": [
- {
- "key": 0,
- "value": "string"
}
], - "containsProducts": [
- 0
], - "meta": [
- {
- "id": "string",
- "key": "string",
- "value": "string"
}
], - "connectedLocations": [
- {
- "id": 0,
- "productId": 0,
- "locationId": 0,
- "instanceId": 0,
- "locationName": "string",
- "productName": "string",
- "startDate": "2019-08-24",
- "endDate": "2019-08-24",
- "status": "PROCESSING",
- "missingRequirements": [
- {
- "id": "string",
- "httpMethod": "GET",
- "endpoint": "string",
- "docuUrl": "string",
- "description": "string"
}
], - "possibleActions": [
- {
- "id": "string",
- "name": "string",
- "action": {
- "http": {
- "httpMethod": "GET",
- "endpoint": "string",
- "queryParameters": [
- null
], - "body": "string"
}, - "url": {
- "url": "string"
}, - "workflow": [
- {
- "step": null,
- "description": null,
- "apiDocumentation": null,
- "knowledgeBase": null
}
]
}, - "actionType": "HTTP"
}
], - "trialPeriod": {
- "startDate": "2019-08-24",
- "endDate": "2019-08-24"
}
}
], - "purchaseStatus": "Successful",
- "maxCount": 0,
- "baseProductTypes": [
- {
- "id": 0,
- "type": "string"
}
], - "possibleSubscriptionActions": [
- {
- "id": "string",
- "name": "string",
- "action": {
- "http": {
- "httpMethod": "GET",
- "endpoint": "string",
- "queryParameters": [
- "string"
], - "body": "string"
}, - "url": {
- "url": "string"
}, - "workflow": [
- {
- "step": 0,
- "description": "string",
- "apiDocumentation": "string",
- "knowledgeBase": "string"
}
]
}, - "actionType": "HTTP"
}
], - "functionalities": [
- "ReviewMonitoring"
], - "trialDays": 0
}
], - "total": 0,
- "catalogs": [
- {
- "id": 0,
- "contract": 0,
- "name": "string",
- "description": "string"
}
]
}
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
- 200
{- "data": [
- {
- "locationId": 0,
- "eligible": true,
- "trialDays": 0
}
], - "total": 0
}
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
- 200
{- "data": [
- {
- "id": 0,
- "parent": {
- "key": 0,
- "value": "string"
}, - "companyType": "string",
- "country": "string",
- "externalId": "string",
- "startDate": "2019-08-24",
- "endDate": "2019-08-24",
- "workspace": {
- "key": 0,
- "value": "string"
}, - "salesRep": 0,
- "shopProvider": [
- {
- "name": "string",
- "providerData": [
- {
- "key": "string",
- "value": "string"
}
], - "providerConfigId": 0
}
], - "paymentProvider": [
- {
- "name": "string",
- "providerData": [
- {
- "key": "string",
- "value": "string"
}
], - "providerConfigId": 0
}
], - "invoiceProvider": [
- {
- "providerId": 0,
- "name": "string"
}
], - "billingPeriod": "string",
- "name": "string",
- "contactAddress": 0,
- "billingUser": 0,
- "companyId": {
- "key": 0,
- "value": "string"
}, - "availableBaseProductTypes": [
- {
- "id": 0,
- "type": "string"
}
], - "billingAddress": {
- "id": 0,
- "postCode": "string",
- "city": "string",
- "state": "string",
- "street": "string",
- "house": "string",
- "additive": "string",
- "countryCode": "string",
- "subLocality": "string",
- "coordinate": {
- "lat": 0,
- "lon": 0
}
}, - "paymentMethod": {
- "card": {
- "last4": "string",
- "brand": "string",
- "country": "string",
- "expireMonth": 0,
- "expireYear": 0
}
}, - "nextInvoiceDate": "2019-08-24",
- "vatPercentage": 0
}
], - "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
|
Responses
Request samples
- Payload
{- "providerData": [
- {
- "key": "string",
- "value": "string"
}
]
}
Response samples
- 200
{- "value": 0
}
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
- 200
{- "data": [
- {
- "productId": [
- 0
], - "invoiceId": 0,
- "month": "string",
- "start": "2019-08-24",
- "end": "2019-08-24",
- "totalAmount": 0,
- "invoiceDate": "2019-08-24"
}
], - "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
- 200
{- "invoice": [
- {
- "product": {
- "key": 0,
- "value": "string"
}, - "location": {
- "key": 0,
- "value": "string"
}, - "amount": 0,
- "start": "2019-08-24",
- "end": "2019-08-24"
}
], - "subtotal": 0,
- "vat": 0,
- "total": 0,
- "vatPercentage": 0,
- "vatId": "string"
}
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
- 200
{- "name": "string",
- "providerData": [
- {
- "key": "string",
- "value": "string"
}
], - "providerConfigId": 0
}
Response samples
- 200
{- "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": [
- {
- "key": "string",
- "value": "string"
}
], - "tags": [
- "string"
], - "salutation": "string",
- "userType": "agency service",
- "profilePicture": {
- "id": 0,
- "fileName": "string",
- "url": "string"
}, - "phone": {
- "id": 0,
- "phoneType": "landLine",
- "phone": "string",
- "tracked": true
}, - "connectedPaymentProvider": [
- {
- "name": "string",
- "providerData": [
- {
- "key": "string",
- "value": "string"
}
], - "providerConfigId": 0
}
], - "ssoUser": true,
- "cookieConsent": {
- "technicalNecessaryCookies": true,
- "performanceCookies": true,
- "functionalCookies": true
}
}
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
- 200
{- "id": 0
}
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 |
string |
Responses
Request samples
- Payload
{- "name": "string",
- "categories": [
- {
- "key": 0,
- "value": "string",
- "aliasId": 0,
- "aliasName": "string"
}
], - "address": {
- "country": "string",
- "postCode": "string",
- "city": "string",
- "state": "string",
- "street": "string",
- "house": "string",
- "additive": "string",
- "subLocality": "string",
- "coordinate": {
- "lat": 0,
- "lon": 0
}, - "suppress": true
}, - "mainPhone": {
- "phone": "string",
- "tracked": true,
- "localPhone": "string"
}, - "claimId": "string",
- "pinVerification": "string",
- "email": "string"
}
Response samples
- 200
{- "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
- 200
{- "ids": [
- 0
], - "total": 0
}
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
- Payload
{- "phone": "string",
- "tracked": true,
- "localPhone": "string"
}
Response samples
- 200
{- "id": 0
}
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
- 200
{- "data": [
- {
- "kpi": "string",
- "unit": "string",
- "sum": 0,
- "periodicChange": 0,
- "periodicImprovement": true,
- "extendedKpiSums": [
- {
- "key": "string",
- "value": 0,
- "periodicChange": 0,
- "periodicImprovement": true
}
], - "meta": [
- {
- "key": "string",
- "value": 0,
- "type": "string"
}
]
}
], - "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
- 200
{- "data": [
- {
- "kpi": "string",
- "unit": "string",
- "sum": 0,
- "extendedKpiSums": [
- {
- "key": "string",
- "value": 0,
- "periodicChange": 0,
- "periodicImprovement": true
}
], - "data": [
- {
- "key": "string",
- "value": 0,
- "extendedKpiValues": [
- {
- "key": "string",
- "value": 0,
- "periodicChange": 0,
- "periodicImprovement": true
}
], - "meta": [
- {
- "key": "string",
- "value": 0,
- "type": "string"
}
]
}
], - "meta": [
- {
- "key": "string",
- "value": 0,
- "type": "string"
}
]
}
], - "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
- 200
{- "data": [
- {
- "kpi": "string",
- "extendedKpiList": [
- "string"
]
}
], - "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
- 200
{- "data": [
- {
- "start": "2019-08-24T14:15:22Z",
- "end": "2019-08-24T14:15:22Z",
- "caller": "string",
- "calledTracked": "string",
- "calledReal": "string",
- "duration": 0,
- "status": 0,
- "subscriberId": "string",
- "merchantName": "string",
- "spam": true,
- "valid": true
}
], - "total": 0
}
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
- 200
{- "data": [
- {
- "portalId": "string",
- "name": "string",
- "status": {
- "status": "WAITING_ON_PROVIDER",
- "errorCode": 0,
- "errorMessage": "string"
}, - "availableActions": [
- {
- "id": "string",
- "name": "string",
- "action": {
- "http": {
- "httpMethod": "GET",
- "endpoint": "string",
- "queryParameters": [
- "string"
], - "body": "string"
}, - "url": {
- "url": "string"
}, - "workflow": [
- {
- "step": 0,
- "description": "string",
- "apiDocumentation": "string",
- "knowledgeBase": "string"
}
]
}, - "actionType": "HTTP"
}
], - "parentPortalId": "string",
- "imageUrl": "string",
- "url": "string",
- "product": {
- "id": 0,
- "catalogId": 0
}, - "locationId": 0
}
], - "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
- 200
{- "data": [
- {
- "id": 0,
- "publisherId": "string",
- "locationId": "string",
- "url": "string",
- "name": "string",
- "address": "string",
- "phone": "string",
- "latitude": "string",
- "longitude": "string",
- "status": "string",
- "suppressionType": "string",
- "unavailableReasons": {
- "code": "string",
- "reason": "string"
}
}
], - "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
- Payload
{- "action": "IGNORE"
}
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
- 200
{- "data": [
- {
- "reviewId": 0,
- "location": {
- "key": "string",
- "value": "string",
- "address": {
- "id": 0,
- "postCode": "string",
- "city": "string",
- "state": "string",
- "street": "string",
- "house": "string",
- "additive": "string",
- "countryCode": "string",
- "subLocality": "string",
- "coordinate": {
- "lat": 0,
- "lon": 0
}
}, - "externalId": "string"
}, - "date": "string",
- "socialPortal": "string",
- "portalAnswerable": true,
- "addonAnswerable": true,
- "rating": 0,
- "facebookRecommended": true,
- "reviewContent": {
- "author": "string",
- "content": "string"
}, - "lastOwnerAnswer": {
- "answer": "string",
- "status": "string"
}, - "url": "string"
}
], - "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
- 200
{- "reviewId": 0,
- "location": {
- "key": "string",
- "value": "string",
- "address": {
- "id": 0,
- "postCode": "string",
- "city": "string",
- "state": "string",
- "street": "string",
- "house": "string",
- "additive": "string",
- "countryCode": "string",
- "subLocality": "string",
- "coordinate": {
- "lat": 0,
- "lon": 0
}
}, - "externalId": "string"
}, - "createdAt": "2019-08-24T14:15:22Z",
- "socialPortal": "string",
- "portalAnswerable": true,
- "addonAnswerable": true,
- "rating": 0,
- "facebookRecommended": true,
- "reviewContent": {
- "content": "string",
- "author": "string"
}, - "lastOwnerAnswer": {
- "answer": "string",
- "status": "string"
}, - "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
- 200
{- "data": [
- {
- "date": "string",
- "comment": "string",
- "status": "ACTIVE",
- "error": [
- "string"
], - "ownerCommented": true,
- "profile": {
- "profileName": "string",
- "profileUrl": "string",
- "profilePhotoUrl": "string"
}, - "id": 0
}
], - "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
- Payload
{- "comment": "string"
}
Response samples
- 200
{- "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
- Payload
{- "comment": "string"
}
Response samples
- 200
{- "id": 0
}
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
- 200
{- "data": [
- {
- "locations": [
- {
- "key": 0,
- "value": "string"
}
], - "postedLocations": [
- {
- "locationId": 0,
- "locationName": "string",
- "postStatus": "PROCESSING",
- "postedAt": "2019-08-24T14:15:22Z",
- "errors": [
- "string"
], - "address": {
- "id": 0,
- "postCode": "string",
- "city": "string",
- "state": "string",
- "street": "string",
- "house": "string",
- "additive": "string",
- "countryCode": "string",
- "subLocality": "string",
- "coordinate": {
- "lat": 0,
- "lon": 0
}
}
}
], - "postId": 0,
- "postImage": [
- {
- "id": 0,
- "fileName": "string",
- "url": "string",
- "imageType": "GoogleProfilImage"
}
], - "postContent": "string",
- "socialPortal": "string",
- "canDelete": true,
- "profile": {
- "profileName": "string",
- "profileUrl": "string",
- "profilePhotoUrl": "string"
}, - "totalLikes": 0,
- "totalComments": 0,
- "url": "string",
- "portalUrl": "string",
- "date": "2019-08-24",
- "time": "14:15:22Z",
- "status": "PROCESSING",
- "ctaUrl": "string",
- "ctaType": "BOOK",
- "postTopicType": "STANDARD",
- "alertType": "COVID_19",
- "eventInfo": {
- "title": "string",
- "startDate": "2019-08-24",
- "startTime": "string",
- "endDate": "2019-08-24",
- "endTime": "string"
}, - "offerInfo": {
- "couponCode": "string",
- "redeemOnlineUrl": "string",
- "termsConditions": "string"
}, - "postErrors": [
- {
- "locationId": 0,
- "errors": [
- "string"
]
}
]
}
], - "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!
- There must be a product purchased which has the functionalitiy "SocialPosts".
- 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
- Payload
Response samples
- 200
{- "ids": [
- 0
], - "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
- 200
{- "ids": [
- 0
], - "total": 0
}
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
- Payload
{- "destinationUrl": "string",
- "displayUrl": "string",
- "name": "string",
- "radius": 0,
- "categoryTaxonomyId": 0,
- "customSetting": {
- "keywordList": [
- {
- "value": "string",
- "matchType": "BROAD"
}
], - "segmentTextList": [
- {
- "suppressDefaultCampaign": true,
- "headlines": [
- "string"
], - "descriptions": [
- "string"
]
}
]
}, - "excludedLocations": [
- {
- "key": "string",
- "value": "string"
}
], - "includedLocations": [
- {
- "key": "string",
- "value": "string"
}
], - "budgetTarget": 0,
- "budgetTargetType": "Call"
}
Response samples
- 200
{- "subscription": {
- "id": 0,
- "productId": 0,
- "locationId": 0,
- "instanceId": 0,
- "locationName": "string",
- "productName": "string",
- "startDate": "2019-08-24",
- "endDate": "2019-08-24",
- "status": "PROCESSING",
- "missingRequirements": [
- {
- "id": "string",
- "httpMethod": "GET",
- "endpoint": "string",
- "docuUrl": "string",
- "description": "string"
}
], - "possibleActions": [
- {
- "id": "string",
- "name": "string",
- "action": {
- "http": {
- "httpMethod": "GET",
- "endpoint": "string",
- "queryParameters": [
- "string"
], - "body": "string"
}, - "url": {
- "url": "string"
}, - "workflow": [
- {
- "step": 0,
- "description": "string",
- "apiDocumentation": "string",
- "knowledgeBase": "string"
}
]
}, - "actionType": "HTTP"
}
], - "trialPeriod": {
- "startDate": "2019-08-24",
- "endDate": "2019-08-24"
}
}, - "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
- Payload
{- "budgetIncrease": 0,
- "subscriptionId": 0
}
Response samples
- 200
{- "id": 0,
- "productId": 0,
- "locationId": 0,
- "instanceId": 0,
- "locationName": "string",
- "productName": "string",
- "startDate": "2019-08-24",
- "endDate": "2019-08-24",
- "status": "PROCESSING",
- "missingRequirements": [
- {
- "id": "string",
- "httpMethod": "GET",
- "endpoint": "string",
- "docuUrl": "string",
- "description": "string"
}
], - "possibleActions": [
- {
- "id": "string",
- "name": "string",
- "action": {
- "http": {
- "httpMethod": "GET",
- "endpoint": "string",
- "queryParameters": [
- "string"
], - "body": "string"
}, - "url": {
- "url": "string"
}, - "workflow": [
- {
- "step": 0,
- "description": "string",
- "apiDocumentation": "string",
- "knowledgeBase": "string"
}
]
}, - "actionType": "HTTP"
}
], - "trialPeriod": {
- "startDate": "2019-08-24",
- "endDate": "2019-08-24"
}
}
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
- Payload
{- "templateId": 0,
- "domain": "string",
- "subDomain": "string"
}
Response samples
- 200
{- "id": 0,
- "productId": 0,
- "locationId": 0,
- "instanceId": 0,
- "locationName": "string",
- "productName": "string",
- "startDate": "2019-08-24",
- "endDate": "2019-08-24",
- "status": "PROCESSING",
- "missingRequirements": [
- {
- "id": "string",
- "httpMethod": "GET",
- "endpoint": "string",
- "docuUrl": "string",
- "description": "string"
}
], - "possibleActions": [
- {
- "id": "string",
- "name": "string",
- "action": {
- "http": {
- "httpMethod": "GET",
- "endpoint": "string",
- "queryParameters": [
- "string"
], - "body": "string"
}, - "url": {
- "url": "string"
}, - "workflow": [
- {
- "step": 0,
- "description": "string",
- "apiDocumentation": "string",
- "knowledgeBase": "string"
}
]
}, - "actionType": "HTTP"
}
], - "trialPeriod": {
- "startDate": "2019-08-24",
- "endDate": "2019-08-24"
}
}
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
- 200
{- "domainType": "string",
- "preConfiguredDomain": "string",
- "templates": [
- {
- "id": 0,
- "name": "string",
- "settings": [
- {
- "key": "string",
- "name": [
- {
- "lang": "de",
- "value": "string"
}
], - "type": "select",
- "allowedValues": [
- "string"
], - "required": "true",
- "value": "string",
- "url": "string",
- "httpAction": "string",
- "parentKey": "string"
}
]
}
]
}
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
- Payload
{- "registerPermission": true,
- "callTrackingPermission": true
}
Response samples
- 200
{- "id": 0,
- "productId": 0,
- "locationId": 0,
- "instanceId": 0,
- "locationName": "string",
- "productName": "string",
- "startDate": "2019-08-24",
- "endDate": "2019-08-24",
- "status": "PROCESSING",
- "missingRequirements": [
- {
- "id": "string",
- "httpMethod": "GET",
- "endpoint": "string",
- "docuUrl": "string",
- "description": "string"
}
], - "possibleActions": [
- {
- "id": "string",
- "name": "string",
- "action": {
- "http": {
- "httpMethod": "GET",
- "endpoint": "string",
- "queryParameters": [
- "string"
], - "body": "string"
}, - "url": {
- "url": "string"
}, - "workflow": [
- {
- "step": 0,
- "description": "string",
- "apiDocumentation": "string",
- "knowledgeBase": "string"
}
]
}, - "actionType": "HTTP"
}
], - "trialPeriod": {
- "startDate": "2019-08-24",
- "endDate": "2019-08-24"
}
}
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
- 200
{- "data": [
- {
- "advertisementType": "string",
- "textFields": [
- {
- "fieldType": "string",
- "name": "string",
- "minValue": 0,
- "maxValue": 0,
- "mandatory": true
}
], - "imageFields": [
- {
- "name": "string",
- "minWidth": 0,
- "minHeight": 0,
- "maxWidth": 0,
- "maxHeight": 0,
- "mandatory": true
}
], - "page": "string",
- "targetingTypes": [
- "string"
]
}
], - "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
- Payload
{- "advertisementType": "string",
- "destinationUrl": "string",
- "priority": "VeryLow",
- "textFields": [
- {
- "key": "string",
- "value": "string"
}
], - "imageFields": [
- {
- "key": "string",
- "value": {
- "fileType": "jpg",
- "data": "string"
}
}
], - "campaignType": "open",
- "page": "string",
- "keywordList": [
- {
- "value": "string",
- "matchType": "BROAD"
}
], - "buIdList": [
- "string"
], - "buAIdList": [
- "string"
], - "kgsList": [
- "string"
], - "tIdList": [
- "string"
], - "locationList": [
- {
- "name": "string",
- "radius": 0,
- "matchType": "BROAD"
}
], - "taoIdList": [
- "string"
], - "ignoreTargeting": true
}
Response samples
- 200
{- "id": 0,
- "productId": 0,
- "locationId": 0,
- "instanceId": 0,
- "locationName": "string",
- "productName": "string",
- "startDate": "2019-08-24",
- "endDate": "2019-08-24",
- "status": "PROCESSING",
- "missingRequirements": [
- {
- "id": "string",
- "httpMethod": "GET",
- "endpoint": "string",
- "docuUrl": "string",
- "description": "string"
}
], - "possibleActions": [
- {
- "id": "string",
- "name": "string",
- "action": {
- "http": {
- "httpMethod": "GET",
- "endpoint": "string",
- "queryParameters": [
- "string"
], - "body": "string"
}, - "url": {
- "url": "string"
}, - "workflow": [
- {
- "step": 0,
- "description": "string",
- "apiDocumentation": "string",
- "knowledgeBase": "string"
}
]
}, - "actionType": "HTTP"
}
], - "trialPeriod": {
- "startDate": "2019-08-24",
- "endDate": "2019-08-24"
}
}
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
- 200
{- "data": [
- {
- "key": "string",
- "value": "string"
}
], - "total": 0
}