API Version 2
You're seeing the documentation for the older version of System of Record API. Please consider using the most recent version of this API.
Endpoint and Authentication
Please refer to the API overview section to get the API endpoint, query format and authentication process
Customer Profiles
List
GET /api/customer_profiles?sor_identifiers=sor_identifiers&customer_id_type=customer_id_type&attribute_keys=attribute_keys&page=page&num_per_page=num&updated_since=updated_since
Export endpoint (see how to use it here):
GET /api/customer_profiles/export?sor_identifiers=sor_identifiers&customer_id_type=customer_id_type&attribute_keys=attribute_keys&updated_since=updated_since
This API retrieves a batch of customer profiles along with the associated attributes values.
Pagination and filters are used to limit the amount of profiles for each request.
Query parameters
Property | Type | Description | Default |
---|---|---|---|
customer_id_type | string | Filter by the type of customer id, options: user_id , device_id |
- |
customer_ids | string | List of customer IDs, separated by commas, used to filter the customer profiles returned in the API output | - |
sor_identifiers | string | List of SOR identifiers separated by commas, used to define the Systems of Records to return for each profile in the output | - |
attribute_keys | string | List of attribute keys separated by commas, used to filter the SOR keys to return for each profile in the API output: only SORs containing a key matching this parameter will be returned, and only this key will be listed | - |
page | integer | The page number to fetch. This number must be a positive integer greater then or equal to 1 | 1 |
num_per_page | integer | The maximal number of profiles per page. This number must be a positive integer greater than or equal to 1 and lower than or equal to 10000 | 2000 |
updated_since | datetime | If provided, returns only the list of profiles for which there were attribute changes since this date. Attributes that were removed before this date are not returned. If the attribute was removed after the date and there has been other changes to this attribute after the date, the property removed is marked as true. For set attributes, returns the current state of the set if the set suffered any modifications since the date. |
- |
Response
Status: 200 OK without updated_since
param
{
"success": true,
"result": {
"total_pages": 2,
"total_profiles": 20,
"profiles": [
{
"customer_id": "maximillian_weber@ritchiehyatt.name",
"customer_id_type": "user_id",
"attributes": {
"global": {
"first_name": "maximillian",
"last_name": "weber",
"email": null,
"date_of_birth": null,
"gender": null,
"country": null,
"city": null,
"region": null,
"profile_picture_url": null
},
"SOR-SDK_2a116e0767a7dc76e85d566": {
"favorite_team": "PSG",
"other_team": null
}
},
"applications": [
{
"app_id": "FAAPPLI_Eg1dK5g",
"sor_id": "SOR-SDK_2a116e0767a7dc76e85d566",
"installations": [{
"device_id": "01FF1D5F-41B0-4444-B145-E608BC45FFD1"
}]
}
]
},
{
"customer_id": "robert.hill@mymail.org",
"customer_id_type": "user_id",
"attributes": {
"global": {
"first_name": "robert",
"last_name": "hill",
"email": "robert.hill@mymail.org",
"date_of_birth": null,
"gender": null,
"country": null,
"city": null,
"region": null,
"profile_picture_url": null
},
"SOR-SDK_2a116e0767a7dc76e85d566": {
"favorite_team": "Real Madrid",
"other_team": null
}
},
"applications": [
{
"app_id": "FAAPPLI_Eg1dK5g",
"sor_id": "SOR-SDK_2a116e0767a7dc76e85d566",
"installations": [{
"device_id": "FA3A11ED-200E-31DD-C409-430CBAE3204C"
}]
}
]
}
]
}
}
Status: 200 OK with updated_since
param
{
"success": true,
"result": {
"profiles": [
{
"customer_id": "maximillian_weber@ritchiehyatt.name",
"customer_id_type": "user_id",
"attributes": {
"global": {},
"SOR-SDK_2a116e0767a7dc76e85d566": {
"favorite_team": {"value": "PSG", "removed": false},
"other_team": {"value": null, "removed": true}
}
},
"applications": [
{
"app_id": "FAAPPLI_Eg1dK5g",
"sor_id": "SOR-SDK_2a116e0767a7dc76e85d566",
"installations": [{
"device_id": "01FF1D5F-41B0-4444-B145-E608BC45FFD1"
}]
}
]
}
],
"next": "https://api.follow-apps.com/api/customer_profiles?page=2"
}
}
Status: 400
{
"status": "400",
"success": false,
"error_message": "Param xxxxx is not valid"
}
View
GET /api/customer_profiles/customer_id?customer_id_type=type&sor_identifiers=sor_identifiers&attribute_keys=_attribute_keys&customer_id_type=customer_id_type
This API retrieves the profile for a specific customer according the customer_id passed.
Query parameters
Property | Type | Description | Default |
---|---|---|---|
customer_id | string | Customer id taken from the SOR. If your customer id is an e-mail, for instance, don't forget to encode both the @ and . signs in the URL to ensure the APIs receive the full parameter, e.g. me@gmail.com becomes me%40gmail%2Ecom . |
required |
customer_id_type | string | Filter by the type of customer_id, user_id or device_id |
- |
sor_identifiers | string | List of SOR identifiers separated by commas, used to define the Systems of Records to return for each profile in the output | - |
attribute_keys | string | List of attribute keys separated by commas, used to filter the SOR keys to return for each profile in the API output: only SORs containing a key matching this parameter will be returned, and only this key will be listed | - |
Response
Status: 200 OK
{
"success": true,
"result": [
{
"customer_id": "maximillian_weber@ritchiehyatt.name",
"customer_id_type": "user_id",
"attributes": {
"global": {
"first_name": "maximillian",
"last_name": "weber",
"email": null,
"date_of_birth": null,
"gender": null,
"country": null,
"city": null,
"region": null,
"profile_picture_url": null
},
"SOR-SDK_2a116e0767a7dc76e85d566": {
"favorite_team": "PSG",
"other_team": null
}
},
"applications": [
{
"app_id": "FAAPPLI_Eg1dK5g",
"sor_id": "SOR-SDK_2a116e0767a7dc76e85d566",
"installations": [{
"device_id": "01FF1D5F-41B0-4444-B145-E608BC45FFD1"
}]
}
]
}
]
}
Feeding Customer Profiles with values
FollowAnalytics Ruby gem
We provide a ruby gem to help you modify values for profiles stored in FollowAnalytics.
Specific end-point
Feeding a Customer Profile with values can be done either from the SDK or from other external systems. This chapter does not cover the SDK functionality, but focuses on external systems.
Please use the end-point https://sor.follow-apps.com for this feature:
https://sor.follow-apps.com/api/attribute_values
Feeding a profile
Use CSV files for recurrent large data sets
If you intend to send large data sets on a regular basis, please use the batch CSV imports documented below.
POST /api/attribute_values
Body parameters
It takes a JSON object containing the following keys:
Property | Type | Description | Default |
---|---|---|---|
sor | string | The System of Record identifier | required |
api_key | string | The API Key associated to this SOR | required |
customer_attribute_values | array of objects | An array of customer_attribute_value object (called CAV below to simplify reading) |
required |
CAV[attribute_key] | string | The Attribute key. | required |
CAV[attribute_value] | string | The value of this attribute for this Customer. Possible values are listed below. | required |
CAV[customer_id] | string | The customer identifier | required |
CAV[action_type] | string | Used to ADD or REMOVE a specific value in an attribute of type Set . You can also use DEL to empty the set or UPSERT to replace all set values at once. |
required for Set attributes |
Possible attribute values:
Value | Type | Description |
---|---|---|
Test |
string | Limit of 256 Unicode characters |
10 |
number | Limit: 2**63 - 1 |
-1420.2 |
number | Limit: -(2**63 - 1) |
true |
boolean | |
false |
boolean | |
2016-12-22 |
date | |
2016-12-22T13:02:53Z |
datetime | |
null |
any | Removes the value |
The only possible action for scalar (non Set
) attributes is upsert, that is update value of an existing attribute or create a new one with the given value if it does't exist yet. It is not possible to perform a different action for scalar attributes.
If the attribute is of type Set
, then action_type
parameter is required. It may be one of the following
"action_type" : "ADD"
adds the provided element to the set."action_type" : "REMOVE"
removes the provided element from the set."action_type" : "DEL"
deletes ALL the elements ot the set."action_type" : "UPSERT"
replaces the whole content of the set with new values. The new values should be provided in the parameter value, separated by;
:"value":"one;2;three;etc..."
. It is not possible to escape the;
separator, so it the values already contain it, it is advised to use 2 separate requests: first with actionDEL
then withADD
.
Example
{
"sor": "SOR_XXXX",
"api_key": "XXXXXXXX",
"customer_attribute_values": [
{
"customer_id" : "098713490",
"attribute_key" : "contract_type",
"attribute_value" : "Premium"
},
{
"customer_id" : "098713490",
"attribute_key" : "client_type",
"attribute_value" : null
},
{
"customer_id" : "098713490",
"attribute_key" : "hobbies",
"attribute_value" : "Sport",
"action_type" : "ADD"
},
{
"customer_id" : "098713490",
"attribute_key" : "hobbies",
"attribute_value" : "Reading",
"action_type" : "REMOVE"
},
{
"customer_id" : "098713490",
"attribute_key" : "hobbies",
"attribute_value" : "Reading;Hiking;Singing",
"action_type" : "UPSERT"
},
{
"customer_id" : "098713491",
"attribute_key" : "fav_team",
"attribute_value" : "France"
},
{
"customer_id" : "098713492",
"attribute_key" : "fav_team",
"attribute_value" : "Italy"
}
]
}
Response
The response will return the request_id that will allow to track the progress of the request.
Status: 200 OK
{
"success" : true,
"result": {
"requestId": "1522771731812-vl9cUtxfZtMl"
},
"errorMessage": null,
"errorCode": 0
}
Retrieving Customer Attribute Values
GET /api/attribute_values?sor_id=sor_id&customer_id=c_id&customer_type=type&with_validity_dates
Returns all the Customer Attribute values of the given Customer Profile, for a specific System of Record.
Query parameter
Property | Type | Description | Default |
---|---|---|---|
sor_id | string | The identifier of the System of Record to fetch the results from. | required |
customer_id | string | Customer id to retrieve the profile. If your customer id is an e-mail, for instance, don't forget to encode both the @ and . signs in the URL to ensure the APIs receive the full parameter, e.g. me@gmail.com becomes me%40gmail%2Ecom . |
required |
customer_type | string | Filter by the type of customer_id, user_id or device_id . If the sor_id param does not correspond to a Custom SOR, and the customer_type is device_id , the API returns instead the attributes for the last user that used the device provided. |
required |
with_validity_dates | boolean | Request the values with the latest dates they became valid, or without these. If this value is true , the format of the response will be adapted. |
false |
Response
Without requesting dates ( with_validity_dates=false
):
Status: 200 OK
{
"success": true,
"result":
{
"customer_id": "maximillian",
"customer_id_type": "user_id",
"attribute_values": {
"first_name": "maximillian",
"last_name": "weber",
"contract_type": "Premium",
"client_type": null,
"hobbies": [],
"favorite_team": "France",
"languages": ["French", "English"],
"city": null,
"region": null,
}
}
}
With the validity dates ( with_validity_dates=true
):
Status: 200 OK
{
"success": true,
"result":
{
"customer_id": "maximillian",
"customer_id_type": "user_id",
"attribute_values": {
"first_name": {
"value": "maximillian",
"since": "2017-10-25T23:48:46:299Z"
},
"last_name": {
"value": "weber",
"since": "2017-10-25T23:48:46:299Z"
},
"contract_type": {
"value": "Premium",
"since": "2017-11-13T06:55:21:437Z"
},
"client_type": {
"value": null,
"since": null
},
"hobbies": {
"value": [],
"since": null,
"elements": []
},
"favorite_team": "France",
"languages": {
"value": ["French", "English"],
"since": "2017-12-05T11:34:51:701Z",
"elements": [
{
"value": "French",
"since": "2017-10-29T21:47:30:630Z"
},
{
"value": "English",
"since": "2017-12-05T11:34:51:701Z"
}
]
},
"city": {
"value": null,
"since": null
},
"region": {
"value": null,
"since": null
},
}
}
}
Batch CSV import of attribute values
You can send CSV files to FollowAnalytics to import large attribute data sets. This is the recommended way for recurrent batch syncs, instead of the regular JSON API described above. All CSV files must use UTF-8 encoding.
Use the common end-point
This uses the regular, common end-point given in the API overview page, contrary to the JSON upload of attributes which is done through a specific one.
POST /api/attribute_values/batch_import
Query parameter
Property | Type | Description | Default |
---|---|---|---|
file_url | string | URL to the CSV file, gzipped or not | required unless uploaded as part of request |
sor_id | string | The System of Record identifier | required |
api_key | string | The API Key associated to this SOR | required |
request_headers | map | Key-values to use as headers in the call to the file URL, if necessary. Useful for Authentication, e.g. { "Authorization": "abcd", "x-ms-blob-type": "def", ...} |
- |
You can also upload the file directly as if part of a web form. The key for the file must be file
.
File contents
The file can be gzipped. The CSV file itself must be encoded with UTF-8 and have the following header:
user_id,attribute_key,value
The key must match an existing attribute of the right type
This API will ignore values for keys not found for the provided SOR identifier.
Set values
Each line for a Set attribute is considered as the new full state of the Set. In other words, for a given user and given Set attribute, any list of values provided replaces all current values.
Values for a given user and set are put on the same line, separated by semi-colons. For instance, a CSV line where we set value1
and value2
as the two new and only values of the Set identified by the key my_set
is as follows:
abcd,my_set,value1;value2
Example
The following CSV file:
user_id,attribute_key,value
abcd,my_set,value1;value2
efgh,my_set,value2;value3;value4
efgh,my_number,1234
- sets value
1234
for Number attribute of keymy_number
, for userefgh
- sets values
value1
andvalue2
for Set of keymy_set
, for userabcd
- sets values
value2
,value3
andvalue4
for Set of keymy_set
, for userefgh
Hosted at https://path.to/my/file.csv
, you would send it as follows:
{
"file_url": "https://path.to/my/file.csv",
"sor_id": "SOR_767yUpsMJoTWi0mz",
"api_key": "XXXXXXXX"
}
Response
Processing is done asynchronously, including the download of your file. When you call the API, a job ID is returned if all parameters are valid.
Use this job ID in communicating with us if you have an issue with your jobs.
Status: 200 OK
{
"success": true,
"result": {
"jid": "c98de272c6e42d93e7d2b969",
"import_id": "import_id_1"
}
}
Monitoring of CSV imports
You can verify the status of your recent imports. The import job ids and the details of import errors are available for one week.
GET /api/attribute_values/import_jobs
Query parameter
There are no parameters for this query.
Response
The query returns the list of import jobs for the currently logged in user.
Status: 200 OK
{
"success": true,
"result": {
"import_id_1": "2019-01-02 11:12:13",
"import_id_2": "2019-02-03 11:12:13",
"import_id_3": "2019-03-03 11:12:13"
}
}
GET /api/attribute_values/import_errors?job_id=job_id&customer_id=customer_id
Query parameter
Property | Type | Description | Default |
---|---|---|---|
job_id | string | The identifier of the import | required |
customer_id | string | The identifier of a customer id | - |
Response
The query returns the list of import jobs for the currently logged in user or, in alternative, for a specific customer.
Status: 200 OK
{
"success": true,
"result": {
"attribute_errors": [
{
"job_id": "import_id_1",
"customer_id": "Bob",
"key": "age",
"sor": "SOR_XXX",
"date": "2019-01-02T11:12:13",
"source": "AttributeCleaner",
"message": "attributeKey is empty",
"raw": "{\n\"sor\":\"SOR_XXXX\",\n\"api_key\":\"XXXXXXXX\",\n\"customer_attribute_values\": [\n{\n\"customer_id\" :\"098713490\",\n\"attribute_key\" :\"contract_type\",\n\"attribute_value\" :\"Premium\"\n}\n]\n}"
}
]
}
}
key
: attribute keysource
: technical field identifying the part of the processing pipeline where the error has occuredmessage
: the description of the errorraw
: raw json of the original attribute value request
Systems of Records
List
GET /api/system_of_records?type=type
This call lists all the Systems Of Records available for your entity.
There are three types of systems of records (key type
):
global
: SoR available all other your entity, in all your appsapp
: SDK-based SoR, related to an appcustom
: a custom SoR, defined by a user of your entity
If the param type
is invalid, no system of records are returned.
Query parameter
Property | Type | Description | Default |
---|---|---|---|
type | string | Filter results by type. Can be app , custom , or global . |
- |
Response
Status: 200 OK
{
"success": true,
"result": [
{
"name": "Global SoR for Your Entity",
"identifier": "SOR_id3nt1f13r",
"type": "global",
"api_keys": [
"ebi97ujupC_tHQ"
],
"attributes_count": 2,
"disabled": false,
"customer_attributes": [
{
"disabled": false,
"identifier": "FACA_1518ddb56f2234933400dd0af9",
"key": "profit-focused-client-driven-standardization",
"label": "Smith and Sons",
"sources": [
"DEFAULT"
],
"value_type": "String"
},
{
"disabled": false,
"identifier": "FACA_da6e51e7e4d8eb305f236a8977e6ab7c",
"key": "devolved-executive-matrices",
"label": "Schuppe, Zboncak and Mertz",
"sources": [
"DEFAULT"
],
"value_type": "String"
}
]
},
{
"name": "SOR for app XYZ",
"identifier": "SOR-SDK_your.package.name",
"type": "app",
"api_keys": [
"FH7nIacl4f"
],
"attributes_count": 0,
"disabled": false,
"updated_date": "2020-01-21 14:47:19 UTC",
"customer_attributes": []
}
]
}
View
GET /api/system_of_records/sor_identifier
Gets information about a single System of Records. This is more detailed than the list because it contains information about the attributes as well.
Query parameter
Property | Type | Description | Default |
---|---|---|---|
sor_identifier | string | The System of Records identifier to view | required |
Response
Status: 200 OK
{
"success": true,
"result": {
"name": "Global SoR for Your Entity",
"identifier": "SOR_id3nt1f13r",
"type": "global",
"api_keys": [
"ebi97ujupC_tHQ"
],
"attributes_count": 2,
"disabled": false,
"updated_date": "2020-01-21 14:47:19 UTC",
"customer_attributes": [
{
"disabled": false,
"identifier": "FACA_1518ddb56f2234933400dd0af9",
"key": "profit-focused-client-driven-standardization",
"label": "Smith and Sons",
"sources": [
"DEFAULT"
],
"value_type": "String"
},
{
"disabled": false,
"identifier": "FACA_da6e51e7e4d8eb305f236a8977e6ab7c",
"key": "devolved-executive-matrices",
"label": "Schuppe, Zboncak and Mertz",
"sources": [
"DEFAULT"
],
"value_type": "String"
}
]
}
}
Create
POST /api/system_of_records
Creates a custom SoR, with a name.
Please note that SDK-based Systems of Records are created automatically, so there is no need to create on manually. Also, the global System of Record is always present, no need to create that either.
Body parameter
Property | Type | Description | Default |
---|---|---|---|
name | string | Name of the new SOR | required |
Example
{
"name": "My Custom SoR"
}
Response
Status: 200 OK
{
"success": true,
"result": {
"name": "My Custom SoR",
"identifier": "SOR_767yUpsMJoTWi0mz",
"type": "custom",
"api_keys": [
"tBqL8qvvAhfyAQ"
],
"attributes_count": 0,
"disabled": false
}
}
Update
PUT /api/system_of_records/sor_identifier
Modifies a System of Records.
Only custom system of records can be modified.
Query parameter
Property | Type | Description | Default |
---|---|---|---|
sor_identifier | string | The System of Records identifier | required |
Body parameter
Property | Type | Description | Default |
---|---|---|---|
name | string | New name for the SOR | required |
Example
{
"name": "My Custom SoR"
}
Response
Status: 200 OK
{
"success": true,
"result": {
"name": "My Custom SoR",
"identifier": "SOR_767yUpsMJoTWi0mz",
"type": "custom",
"api_keys": [
"tBqL8qvvAhfyAQ"
],
"attributes_count": 0,
"disabled": false
}
}
Delete
DELETE /api/system_of_records/sor_identifier
Deletes a System of Records.
Please note that this is not very useful for live SDK-based Systems of Records, as the entry will automatically be regenereted upon next call. In that case, disabling the System of Records is advised.
Also, please note that only custom system of records can be deleted.
Query parameter
Property | Type | Description | Default |
---|---|---|---|
sor_identifier | string | Identifier for the SOR to delete | required |
Response
Status: 200 OK
{
"success": true
}
Disable
PUT /api/system_of_records/sor_identifier/disable
Disables a System of Records. A global system of record cannot be disabled. Trying to disable an already disabled system of record will result in an API error.
Query parameter
Property | Type | Description | Default |
---|---|---|---|
sor_identifier | string | Identifier of the SOR to disable | required |
Response
Status: 200 OK
{
"success": true
}
Enable
PUT /api/system_of_records/sor_identifier/enable
Enables a System of Records. A global system of record cannot be enabled, since its enabled by default. Trying to enable an already enabled system of record will result in an API error.
Query parameter
Property | Type | Description | Default |
---|---|---|---|
sor_identifier | string | Identifier of the SOR to enable | required |
Response
Status: 200 OK
{
"success": true
}
Customer Attributes
This section covers the definition of the attributes onto SORs: key, type, and so on.
View
GET /api/customer_attributes/ca_identifier
Gets information about a single customer attribute.
Query parameter
Property | Type | Description | Default |
---|---|---|---|
ca_identifier | string | The Customer Attribute identifier | required |
Response
Status: 200 OK
{
"success": true,
"result": {
"identifier": "FACA_eVYy7KP9PZqP_B8w",
"key": "is_valid",
"label": "Is valid",
"value_type": "Boolean",
"disabled": false,
"system_of_record_identifier": "SOR-SDK_2a116e0767a7dc76e85a5ef85434d92b"
}
}
Create
POST /api/customer_attributes
Creates a customer attribute, with a custom label and a type.
Body parameter
Property | Type | Description | Default |
---|---|---|---|
system_of_record_identifier | String | The Customer Attribute related SOR | required |
key | String | The Customer Attribute key | required |
label | String | The Customer Attribute displayed name | required |
type | String | The Customer Attribute value type: String , Number , Boolean , Date , DateTime or Set |
required |
Example
{
"system_of_record_identifier": "SOR-SDK_c7a5a35762fd9e50006fd77215599dfb",
"key": "My Attr",
"label": "my_attr",
"type": "String"
}
Response
Status: 200 OK
{
"success": true,
"result": {
"identifier": "FACA_0OkzOc8",
"key": "My Attr",
"label": "my_attr",
"value_type": "String",
"disabled": false
}
}
Modify
PUT /api/customer_attributes/ca_identifier
Modifies a customer attribute. Only the label
of a customer attribute can be changed.
Query parameter
Property | Type | Description | Default |
---|---|---|---|
ca_identifier | string | The Customer Attribute identifier | required |
Body parameter
Property | Type | Description | Default |
---|---|---|---|
label | String | The new label of the customer attribute. Leave it empty if you don't wish to change it | required |
Example
{
"label": "Test"
}
Response
Status: 200 OK
{
"success": true,
"result": {
"identifier": "FACA_eVYy7KP9PZqP_B8w",
"key": "is_valid",
"label": "Test",
"value_type": "Boolean",
"disabled": false,
"system_of_record_identifier": "SOR-SDK_2a116e0767a7dc76e85a5ef85434d92b"
}
}
Delete
DELETE /api/customer_attributes/ca_identifier
Deletes a customer attribute along with all the values associated to it.
It is not advised to delete attributes from a live System of Records. Because of auto-declaration, the attribute is going to be recreated upon the next receival of a value. If you don't want to receive these values, but you cannot modify the external system, you can disable the attribute instead.
An attribute that is currently being used in the filters of a campaign or segment cannot be deleted.
Query parameter
Property | Type | Description | Default |
---|---|---|---|
ca_identifier | string | The Customer Attribute identifier | required |
Response
Status: 200 OK
{
"success": true
}
Disable
PUT /api/customer_attributes/ca_identifier/disable
By default, all attributes are enabled, but it is possible to disable one. By doing so, all future values sent for this attribute will be refused, until the attribute is enabled again.
Attributes in the global SOR can be disabled or enabled as well. Disabling an attribute in the global SOR does not disable any attribute with the same key in custom or SDK SORs of the same entity.
Query parameter
Property | Type | Description | Default |
---|---|---|---|
ca_identifier | string | The Customer Attribute identifier | required |
Response
Status: 200 OK
{
"success": true
}
Enable
PUT /api/customer_attributes/ca_identifier/enable
Enables a previously disabled attribute. Enabling an already enabled attribute is a no-op.
Query parameter
Property | Type | Description | Default |
---|---|---|---|
ca_identifier | string | The Customer Attribute identifier | required |
Response
Status: 200 OK
{
"success": true
}
Attributes removed since a praticular date
GET /api/removed_attributes?since=since?system_of_record_identifier=system_of_record_identifier
Returns all the attributes removed for the given system of record.
Query parameter
Property | Type | Description | Default |
---|---|---|---|
system_of_record_identifier | string | The identifier of a system of record | required |
since | timestamp | If provided, only the attributes removed since this date will returned. Must be a valid date string (eg: '2020-01-01'), a timestamp string (eg: '2020-01-01 20:30') or a unix timestamp integer (eg: 1577910000) | - |
Response
Status: 200 OK
{
"success":true,
"result":[
{
"id":32500,
"system_of_record_id":1,
"key":"attr1",
"value_type":"Number",
"label":"attributeTest1",
"created_at":"2019-09-03T16:01:55.852Z",
"updated_at":"2020-01-06T11:00:26.082Z",
"identifier":"FACA_FgzfBvu",
"removed":true,
"disabled":false
},
{
"id":33050,
"system_of_record_id":1,
"key":"attr2",
"value_type":"String",
"label":"attributeTest2",
"created_at":"2019-09-25T14:52:04.261Z",
"updated_at":"2019-12-26T16:54:33.275Z",
"identifier":"FACA_2BmN8T0",
"removed":true,
"disabled":false
}
]
}