Quickstart Guide
Releases Web Service allows users to securely and efficiently download data files, object binaries, and other collateral files from Melissa Data. This service enables users to automate the process of updating their data by allowing them to script the download of specific files rather than downloading the entire zip file. Additionally, file versioning is provided, making it easier to download historical data if necessary.
For example, users are able to download the data files specific for Address Object plus the correct Windows object library and any wrappers required, without needing to download the entire zip archive.
To ensure the security and integrity of the data being downloaded, Releases Web Service requires the user’s subscription license.
CLI Application
Melissa also offers an open-source command-line interface (CLI) for Windows and Ubuntu, available here: Melissa Updater Git. The CLI simplifies the update process by providing a simple interface to consume the Releases web service. Instead of scheduling a custom process, you can schedule simplified console commands
The CLI App, MelissaUpdater, offers simplicity and uses the Releases service to check for updates, download files, and verify the integrity of those files.
After testing, scheduling a batch file or PowerShell script to utilize the CLI tool could automate the process entirely.
To see requirements, source code, and documented usage with examples, see the README at https://github.com/MelissaData/MelissaUpdater.
You can also download the .exe or Linux executable via these links:
Option - Download via Manifests (recommended)
To download an entire manifest with the latest available reference data release, see these examples (using PowerShell syntax):
.\MelissaUpdater.exe manifest -l ‘YOUR_MELISSA_LICENSE' -p '*_data' -r 'latest' -t 'C:\PATH\TO\YOUR\DATA’ -d
.\MelissaUpdater.exe manifest -l ‘YOUR_MELISSA_LICENSE' -p ‘*_bins’ -r 'latest' -t 'C:\PATH\TO\YOUR\BINARIES’ -d
Option - Download Individual Files *see note below
Alternatively, you could download each file separately.
The simplest way to get an example of the download link structure is to use the Releases Browser.
For example:
https://releases.melissadata.net/Download/Data/2023.04/{{DATAFILE_NAME}}/?ID={{YOUR_LICENSE}}
2023.04
for latest
..\MelissaUpdater.exe file -l ‘YOUR_MELISSA_LICENSE' -n ‘DATAFILE_NAME’ -r 'latest' -t 'C:\PATH\TO\YOUR\DATA’ -d
*If you choose to download individual files, be wary that this could cause data conflicts – all data files and binaries should be from the same release.
Custom Application
All of the above CLI app operations consume the Releases Web Service; you could also write a custom application to consume this service.
However, the CLI simplifies use of the service greatly, handling file system operations, ensuring the integrity of the downloads, and automatically checking to ensure updates are actually available.
Read on to learn more about how Releases works.
Scripted File Download
Releases Web Service is recommended for scripted file downloads, an efficient method to ensure fresh data and file updates from Melissa.
To get started:
LATEST
for the release parameter.OR
Address Object
To fully update Address Object, we will need to download necessary data files as well any object wrappers/DLLS, if they have been updated. In this use case, we will download the address object binary as well as the address object data file.
To retrieve the latest data, here we will determine the latest release, utilizing the Retrieve Releases From Manifest endpoint. In this case, we are specifically looking at dq_addr_bins and dq_addr_data.
You may want to schedule a call to this endpoint on a regular basis (e.g. daily) to check for updates.
To access this endpoint, use the following GET requests [view template]
https://releases.melissadata.com/manifestReleases/dq_addr_bins?ID=[CustomerID]&FORMAT=json
https://releases.melissadata.com/manifestReleases/dq_addr_data?ID=[CustomerID]&FORMAT=json
Upon successful submission, you will receive a list of releases available for the manifest. The last date listed will be the latest release, and will be used to download the files needed.
Here is an example of the output, in JSON:
[ "2022.10", "2022.11", "2022.12" “2023.01” ]
After determining the latest release, use the Manifest List endpoint, to retrieve links to download files for the target manifest. Again, we specifically want to update the Address Object in this use case.
To access this endpoint, use the following GET requests [view template]
https://releases.melissadata.com/manifest/2022.12/dq_addr_bins?ID=[ProductLicense&FORMAT=json
https://releases.melissadata.com/manifest/2022.12/dq_addr_data?ID=[ProductLicense]&FORMAT=json
You may also use LATEST for the release parameter, to download entire manifests. However, it is not recommended for individual files; there may be conflicts.
Upon successful submission for both endpoints, you will receive a list of download links for Address Object files.
Here is an example of the output in JSON, for dq_addr_bins:
[ "https://releases.melissadata.net/Download/Library/LINUX/GCC48/64BIT/2022.12/libmdAddr.so/?ID=[ProductLicense]", "https://releases.melissadata.net/Download/Library/WINDOWS/DLL/32BIT/2022.12/mdAddr.dll/?ID=[ProductLicense]", "https://releases.melissadata.net/Download/Library/WINDOWS/DLL/64BIT/2022.12/mdAddr.dll/?ID=[ProductLicense] ]
The output will include all links to the mdAddr (the address object binary file) download, specified for the architecture, compiler and operating system. View the list of supported systems, architectures, and compilers at the os
REST parameter.
For this use case, we need a Address Object download for Windows, on a 64BIT system. The compiler DLL is used for Address Object DLL’s.
For our data file download, here is an example of the JSON response:
[ "https://releases.melissadata.net/Download/Data/2023.01/ews.txt/?ID=[ProductLicense]", "https://releases.melissadata.net/Download/Data/2023.01/lcd256/?ID=[ProductLicense]", "https://releases.melissadata.net/Download/Data/2023.01/mdAddr.dat/?ID=[ProductLicense]” ]
Here, we will choose to download mdAddr.dat as our desired data file. However, there are many other files we are able to download. This will depend on whether you need to update all address object data files or just a specific one.
After retrieving the download links, use the link URL to begin the downloads. Use an appropriate library for your script to handle the file download stream into the installation directory. Consider that this may require administrative privileges for the target directory.
After downloading the object, it is recommended to check the file hash to verify a successful download.
FOR WINDOWS
For scripted use on Windows, it is recommended to use a library to create and execute system commands.
After determining the library needed, use the following command:
certutil -hashfile filename.ext HASH
For our use case, the command would be:
Certutil -hashfile mdAddr.dll SHA256
For Python, on Windows, using os, this command would look like:
import os os.system("cd Desktop/FileLocation") # change directory to the file location os.system("certutil -hashfile filename.ext HASH")
The command should return the file hash, for example: c749b3e0bdfda00043cacb7a1821de79782f21d432ff0eef648f8239e47fa52d.
FOR LINUX
After determining the library needed, use the following command:
Hashtypesum <file_name>
file_name
should be replaced with the desired file name.For the address object example, this command would be:
Sha256sum libmdAddr.so
The command should return the file hash, for example: c429e37bdcfb8b49f4f61ca2ffa0fe747030f3cd683122eabaec67a31bc46724.
To verify the locally generated hashes, use the hash value endpoints for your file. Each endpoint is specified for either a data file, language interface file or a binary download. If these hash values match, your download was successful and the files were not corrupted.
For our use case, use the Retrieve Hash Value For Binary File endpoint to check the file hash for mdAddr.dll
. The hashType should match the one specified in the command.
https://releases.melissadata.net/SHA256/library/WINDOWS/COM/64BIT/2022.12/AddrObj.dll?ID=[ProductLicense]&Format=JSON
The same steps can be followed for the data file, using the Retrieve Hash Value For Data File endpoint.
The responses should be the same as the file hash returned in the command.
REST Parameters | Description |
---|---|
ID |
The License Key issued by Melissa (Encrypted) |
release |
Release Name. This can be specified in several ways:
|
fileName |
Name of File |
manifest |
Manifest Name |
os |
Describes the target OS. Used for object binaries and language interface binaries:
|
compiler |
Describes the target compiler.
|
language |
Describes the language interface.
|
architecture |
Describes the target architecture (ie, ‘bitness’). Used for object binaries and language interface binaries on certain OS platforms:
|
format |
Desired Format of Response:
|
hashType |
MD5, SHA1, SHA258 |
Releases Web Browser
Endpoint
https://releases.melissadata.net/browse?MFT=&RELEASE=&ID=
Output
After successful submission, you will be redirected to the online browser where you may select different releases and manifests from drop-down boxes. Be sure to include ID.
To access the site directly, use https://releases.melissadata.net/browse.
Direct Download
Download Data File
Endpoint
https://releases.melissadata.net/download/data/:release/:fileName?ID=
Output
After successful submission, you will be redirected to an automatic file download.
Download Binary File
Endpoint
https://releases.melissadata.net/download/library/:os/:compiler/:architecture/:release/:filename?ID=&Format=
Output
After successful submission, you will be redirected to an automatic file download.
Download Language Interface File
Endpoint
https://releases.melissadata.net/download/library/:os/:language/:architecture/:release/:filename?ID=
Output
After successful submission, you will be redirected to an automatic file download.
Retrieve Available Releases
Retrieve Available Releases for Data File
Endpoint
https://releases.melissadata.com/releases/data/:fileName?ID=&FORMAT=
Output
Example Output (JSON)
[ "2021.04", "2021.05", "2021.06", "2021.07", "2021.08", "2021.09", "2021.10", "2021.11", "2021.12", "2022.01", "2022.02", "2022.03", "2022.04", "2022.05", "2022.06", "2022.07", "2022.08", "2022.09", "2022.10", "2022.11", "2022.12" ]
Retrieve Available Releases for Binary File
Endpoint
https://releases.melissadata.com/releases/library/:os/:compiler/:architecture/:fileName?ID=&format=
Output
Example Output (JSON)
[ "2021.04", "2021.05", "2021.06", "2021.07", "2021.08", "2021.09", "2021.10", "2021.11", "2021.12", "2022.01", "2022.02", "2022.03", "2022.04", "2022.05", "2022.06", "2022.07", "2022.08", "2022.09", "2022.10", "2022.11", "2022.12" ]
Retrieve Available Releases for Language Interface File
Endpoint
https://releases.melissadata.com/releases/interface/:os/:language/:architecture/:fileName?ID=&format=
Output
Example Output (JSON)
[ "2021.04", "2021.05", "2021.06", "2021.07", "2021.08", "2021.09", "2021.10", "2021.11", "2021.12", "2022.01", "2022.02", "2022.03", "2022.04", "2022.05", "2022.06", "2022.07", "2022.08", "2022.09", "2022.10", "2022.11", "2022.12" ]
Retrieve Files From Manifest
Endpoint
https://releases.melissadata.com/manifest/:release/:manifest?ID=&format=
Output
Example Output (JSON)
[ "https://releases.melissadata.net/Download/Library/WINDOWS/COM/64BIT/2022.12/AddrObj.dll/?ID=exampleID1234", "https://releases.melissadata.net/Download/Library/HPUX_IT/ACC3/32BIT/2022.12/libmdAddr.sl/?ID=exampleID1234" ]
Retrieve Releases From Manifest
Endpoint
https://releases.melissadata.com/manifestReleases/:manifest?ID=&format=
Output
Example Output (JSON)
[ "2021.04", "2021.05", "2021.06", "2021.07", "2021.08", "2021.09", "2021.10", "2021.11", "2021.12", "2022.01", "2022.02", "2022.03", "2022.04", "2022.05", "2022.06", "2022.07", "2022.08", "2022.09", "2022.10", "2022.11", "2022.12" ]
Retrieve Manifests From Release
Endpoint
https://releases.melissadata.com/manifestList/:release?ID=&format=
Output
Example Output (JSON)
[{"manifestName":"cgd_dvd","description":"Canadian geodata files","url":"https://releases.melissadata.net/Manifest/2022.12/cgd_dvd/?ID=exampleID1234"}, {"manifestName":"dq_addr_bins","description":"DQT\u0027s Address Object binaries","url":"https://releases.melissadata.net/Manifest/2022.12/dq_addr_bins/?ID=exampleID1234"}
Retrieve Metadata
Retrieve Metadata for Data File
Endpoint
https://releases.melissadata.net/metadata/data/:release/:fileName?ID=
Output
Example Output (JSON)
{ "FileName": "Congress.csv", "Release": "2022.12", "BuildDate": "2022-12", "FileSize": "45994", "MD5": "7d1901fada065fd1b144d3badb5112ce", "SHA1": "188f383fe3b822a2225ac53bebe4490f86b097e0", "SHA256": "9a945a6148834b9a3792a704898a8627388f6706f7385b847921438d468f8e38" }
Retrieve Metadata for Binary File
Endpoint
https://releases.melissadata.net/metaData/library/:os/:compiler/:architecture/:release/:filename?ID=&Format=
Output
Example Output (JSON)
{ "FileName": "mdGeo.dll", "Release": "2022.12", "BuildNumber": "4.0.1.17333", "FileSize": "1640312", "OS": "WINDOWS", "Compiler": "DLL", "Architecture": "64BIT", "MD5": "d8c241620e4f8b6d304b4bb5f06a2808", "SHA1": "3c43dabca97b4f8bc800c8e76fe5c8f9fdb4012f", "SHA256": "95652aac77b8daabea60268782157188683f0e31cddbcdca36b954d6a87d0ab1" }
Retrieve Metadata for Language Interface File
Endpoint
https://releases.melissadata.net/metaData/interface/:os/:language/:architecture/:release/:filename?ID=
Output
Example Output (JSON)
{ "FileName": "mdAddr_cSharpCode.cs", "Release": "2022.12", "FileSize": "99079", "Language": "NET", "Architecture": "ANY", "MD5": "8dda5f69d5e749df45f003524e72607a", "SHA1": "a093e92414e6e308b991bfd96a2dab11eefc2bb8", "SHA256": "133f6656d1ee9433e8f09f1a948d764743169a1453eaa56fe473dc70daa77ef7" }
Using Hashes
Retrieve Hash Value for Data File
Endpoint
https://releases.melissadata.net/:hashType/data/:release/:fileName?ID=
Output
Example Output (JSON)
9a945a6148834b9a3792a704898a8627388f6706f7385b847921438d468f8e38
Retrieve Hash Value for Binary File
Endpoint
https://releases.melissadata.net/:hashType/library/:os/:compiler/:architecture/:release/:filename?ID=&Format=
Output
Example Output (JSON)
9a945a6148834b9a3792a704898a8627388f6706f7385b847921438d468f8e38
Retrieve Hash Value for Language Interface File
Endpoint
https://releases.melissadata.net/:hashType/interface/:os/:language/:architecture/:release/:filename?ID=
Output
Example Output (JSON)
9a945a6148834b9a3792a704898a8627388f6706f7385b847921438d468f8e38
To ensure fresh data, it is best to schedule automatic downloads to update application files, including checks for new releases and updates, on a regular basis (e.g. daily).
Use the File Hash Endpoint to ensure the integrity of file downloads.
Hash Verification
It is recommended to script these commands in your language of choice to automatically run these checks after a file download.
FOR WINDOWS
To determine file hash after download,
After pressing enter, the command will return the file hash. For example, c429e37bdcfb8b49f4f61ca2ffa0fe747030f3cd683122eabaec67a31bc46724.
To compare, use the hash value endpoints for your file. Each endpoint is specified for either a data file, language interface file or a binary download. If these hash values match, your download was successful and the files were not corrupted.
FOR LINUX
To determine file hash after download,
After pressing enter, the command will return the file hash. For example,c429e37bdcfb8b49f4f61ca2ffa0fe747030f3cd683122eabaec67a31bc46724.
To verify the hash, use the hash value endpoints for your file. Each endpoint is specified for either a data file, language interface file or a binary download. If these hash values match, your download was successful and the files were not corrupted.