Syndesi
About
Syndesi allows our partners throughout the radio industry to programmatically collaborate across all supported products using a consistent cloud-enabled interface regardless of whether or not the software products are cloud-enabled.
In other words, the Syndesi strives to be the "universal" radio traffic and billing cloud-enabled API. This is an "near impossible task"; however, we love a challenge. There is much work to still be done; however, what is currently available not only saves our clients time... it also significantly reduces errors and delays associated with not using Syndesi.
API
The Syndesi API is based on the standard HTTP GET protocol and can return the data in several different formats (JSON, XML, XHTML, CSV and TAB) for easy consumption by the calling product. The most basic execution looks something like the following:
http://www.shinystone.com/syndesi/pull?c=UNIQUECOMPANYID&type=projection
Parameters
Company (REQUIRED)
company=UNIQUECOMPANYID
or c=UNIQUECOMPANYID
The companies globally unique code.
Type (REQUIRED)
The type of data to be returned.
-
type=advertiser
(sample)
Returns the full advertiser list.
-
type=projection
(sample)
Projections for the next 1 to 12 months
. The result generated will return the specified number of columns of numbered 1 through 12 where the first column represents the month of the pivot
date. Note: Uses the default of months=3
.
-
type=billing
(sample)
Billing details for "last month". Each record represents one billing entry that occurred during that last month (based on pivot
).
NOTE: There is a "special" version of this data type that facilitates the initial startup (history) to be retrieved. It is recommended that this only be used once to initialize the information in the calling software
.
This "special" mode will pull the billing "history" covering the active portion of the current year thus far plus all of the prior year. Each record returned will represent one billing entry that occurred on a specified recorded date.
To activate this "special" billing mode, add months=-1
.
Pivot
pivot=1/1/2018
Specifies the data "pivot" date; if not provided, the default is "today".
Net or Gross
net=true
or gross=false
Retrieves the monetary amounts using either net
or gross
numbers. If not provided, the default is gross=true
.
Months
months=3
Some results are formatted across one or more columns; for data types that are formatted in this manner this parameter can control how many columns are returned. The default is value depends on the specific data type
requested (see data type
).
Stations or Calls
station=WKRP-AM
or stations=KXYZ-AM,KXYZ-FM
A list of call letters to filter against when processing the returned data. This variable is optional; however, if included the resulting data will be limited to the list of call letters supplied. If not defined (the default), all available call letters will be included in the result.
Note: station
, stations
, call
, calls
are interchangeable and all mean the same thing (functionally identical); meaning it is not necessary to specify the singular or plural version regardless of how many call letters are in the list.
Format
format=json
(default) (sample)
JavaScript Object Notation - JSON is a syntax for storing and exchanging data.
The "success" variable represents whether or not the data was able to be retrieved; true represents success, false represents failure (see below).
The "type" variable represents what kind of data is returned; this will match the type
of data that was requested in the GET request.
The "data" array contains actual results.
If the request fails, the "success" variable will be set to false and the "message" contain the underlying reason.
JSON
{"success":true,
"type":"advertiser",
"data":[{"advertiserGuid":"...",
"advertiser":"TransAm Depot",
"contact":"",
"street":null,
"city":null,
"state":null,
"postal":null,
"phone":"...",
"email":null,
"accountRepGuid":"...",
"accountRep":"Sammy Hagar",
"revenueSource":"National Agency",
"revenueType":"Cash",
"creditPolicy":"Net 30",
"status":"Active",
"created":"1/21/2018 10:01:24 AM",
"updated":"10/20/2018 12:01:53 PM"}]
}
JSON
{"success":false,
"message":"Invalid request (ERROR: Invalid data format specified.)."
}
format=xml
(sample)
eXtensible Markup Language - Designed to store and transport data.
XML
<?xml version="1.0" encoding="UTF-8"?>
<response>
<success>true</success>
<report>advertiser</report>
<data>
<row>
<advertiser_guid>...</advertiser_guid>
<advertiser>TransAm Depot</advertiser>
<contact></contact>
<street></street>
<city></city>
<state></state>
<postal></postal>
<phone></phone>
<mobile></mobile>
<email></email>
<account_rep_guid>...</account_rep_guid>
<account_rep>Sammy Hagar</account_rep>
<revenue_source>National Agency</revenue_source>
<revenue_type>Cash</revenue_type>
<credit_policy>Net 30</credit_policy>
<status>Active</status>
<created>1/21/2018 10:01:24 AM</created>
<updated>10/20/2018 12:01:53 PM</updated>
</row>
</data>
</response>
format=html
(sample)
HTML - Hypertext Markup Language (technically, XHTML - Extensible Hypertext Markup Language).
HTML
format=csv
(sample)
Comma-Separated Values - stores tabular data (numbers and text) in plain text typically used with Excel.
CSV
"Advertiser Guid","Advertiser","Contact","Account Rep Guid","Account Rep","Street","City","State","Postal","Phone","Mobile","Email","Revenue Source","Revenue Type","Credit Policy","Status","Created","Updated"
"...","TransAm Depot",,"...","Sammy Hagar",,,,,,,,"National Agency","Cash","Net 30","Active","1/21/2018 10:01:24","10/20/2018 12:01:53"
format=tab
(sample)
Tab-delimited - stores tabular data text in plain text separated by the "tab" character.
TAB
This format isn't something that is able to be displayed in a web browser; however, it is very similar to CSV except subtracting the quotes / commas and adding the "tab" ASCII character between the values.
Software
software=EZ-NET
The name of the software product that is accessing the API. If provided, the results can be tailored to calling application(s). If not provided, the "standard" response will be provided.
Pretty
pretty=true
When provided, the generated result will be formatted so that it is more human-readable (aka "Pretty Print"). This is used mainly for debugging. The default is to compact the information so that it transfers faster.
All product names, logos, and brands are property of their respective owners. All company, product and service names used in this website are for identification purposes only. Use of these names, logos, and brands does not imply endorsement.
.