Delivery Options

MarketCheck Data Feeds can be delivered via FTP, SFTP, or on cloud storage platforms like AWS S3, Azure Blob Storage, and Google Cloud Storage.

Overview

MarketCheck Data Feeds can be delivered through various platforms and protocols to accommodate different infrastructure setups and security requirements. Delivery options fall into two main categories: MarketCheck-owned infrastructure where clients pull data, and client-owned infrastructure where MarketCheck pushes data.

Platform Preference: MarketCheck prefers pushing data to client-owned infrastructure when possible, followed by client pull from MarketCheck infrastructure.

Delivery Frequency

  • Daily Feeds: Most data feeds are delivered daily, typically on or before 8 AM UTC for UK markets and 1 PM UTC for North American markets
  • Custom Frequencies: Supporting data feeds can be configured for weekly or monthly delivery based on specific requirements

Infrastructure Categories

MarketCheck-Owned Infrastructure

Clients pull data from MarketCheck-managed locations. MarketCheck provides credentials and handles infrastructure maintenance.

Client responsibilities: Use provided credentials and download files within the retention window - no cleanup required.

PlatformWebhook SupportFile Size Limit
FTP5 TB per file
SFTP5 TB per file
Google Cloud Storage5 TB per file

Client-Owned Infrastructure

MarketCheck pushes data directly to client-managed locations based on delivery frequency.

Client responsibilities: Provide access credentials and permissions, manage storage costs and retention policies, handle cleanup of old files.

PlatformWebhook SupportFile Size Limit
AWS S35 TB per file
Azure Blob Storage4.75 TB per file
Google Cloud Storage5 TB per file
SFTPServer dependent
FTPServer dependent
Dropbox350 GB per file
Google Drive15 GB per file
Testing Only Platforms: Dropbox and Google Drive are available for quick testing and validation only. They do not support webhook notifications and have stricter file size limits, so they are not suitable for production use.

Platform Specifications

Google Cloud Storage (GCS)

Credentials Setup:

  • Create a Service Account in your GCP project and provide the service account key JSON file
  • OR Grant access to MarketCheck's service account: airflow-auth@marketcheck-gcp.iam.gserviceaccount.com

Required Permissions:

PermissionDescription
roles/storage.objectUserBasic object access role
storage.objects.createUpload files to bucket
storage.objects.getRead file content
storage.objects.deleteDelete files when needed

AWS S3

Required Credentials:

  • AWS Access Key ID
  • AWS Secret Access Key
  • Region name
  • ACL (optional, e.g., bucket-owner-full-control)

Required Permissions:

PermissionDescription
s3:PutObjectUpload files to bucket
s3:GetObjectRead file content
s3:HeadObjectRetrieve file metadata (required to verify complete successful upload)
s3:DeleteObjectDelete files when needed
s3:ListBucketList files in the bucket
s3:AbortMultipartUploadAbort incomplete multipart uploads
s3:ListMultipartUploadPartsList parts of a multipart upload
s3:ListBucketMultipartUploadsList all multipart uploads in the bucket

Documentation References:

Azure Blob Storage

Required Credentials:

  • SAS token (Shared Access Signature) OR RBAC user with Storage Blob Data Contributor role

SAS Token Permissions:

PermissionDescription
cCreate (upload) blobs
rRead blobs
wWrite blobs
lList blobs
dDelete blobs

RBAC Alternative:

  • Assign Storage Blob Data Contributor role instead of SAS token

Documentation Reference:

SFTP

Required Credentials:

CredentialDescription
HostSFTP server domain/IP
UsernameSFTP username
AuthenticationPassword OR Private Key file (with optional passphrase)

Filesystem Permissions:

PermissionDescription
ReadCheck file size and properties
WriteUpload files
DeleteRemove files when needed
ExecuteTraverse and list directories

FTP

Required Credentials:

CredentialDescription
HostFTP server domain/IP
UsernameFTP username
PasswordFTP password

Required Permissions:

PermissionDescription
Write/UploadStore files on server
ReadCheck file properties and size
DeleteRemove files when needed

Dropbox (Testing Only)

Setup Process:

  1. Create a Dropbox App in your account
  2. Navigate to Permissions tab and enable required scopes
  3. Submit permission changes
  4. Generate Access Token from Settings tab

Required Credentials:

  • Access Token (from Dropbox App)
  • Target Directory path

Required App Permissions:

  • files.content.write - Upload and delete files
  • files.metadata.read - Read file metadata
  • account_info.read - Validate account access

Google Drive (Testing Only)

Setup Process:

  1. Create or configure a Shared Google Drive
  2. Create a dedicated folder for MarketCheck uploads
  3. Grant Content Manager (or Manager) role to the service account
  4. Copy the Folder ID from the Drive URL
  5. Provide folder ID and target directory path

Required Permissions:

  • drive.file or drive.content permissions via folder sharing
  • Upload, read metadata, and delete capabilities within the designated folder

File Delivery Details

File Naming Convention

Files follow a standardized naming pattern with feed prefix and date suffix:

  • Standard Format: feedname_YYYYMMDD.csv.gz
  • Custom Formats: Available based on specific requirements or client conventions

Delivery Locations

  • Files can be delivered to different directory paths within the same system
  • Multiple storage accounts or containers supported for organizational needs
  • Delivery locations require create permissions for MarketCheck

File Retention and Cleanup

MarketCheck-Owned Infrastructure:

  • MarketCheck handles cleanup automatically
  • Standard retention period: 3 days
  • Older files (if needed) need to be generated again and as such require formal request via sales@marketcheck.com

Client-Owned Infrastructure:

  • Client responsible for managing file retention
  • Client handles cleanup of old files
  • No automatic deletion by MarketCheck

Delivery Notifications

MarketCheck provides two notification methods to confirm successful file delivery, that can be used independently or in combination based on your integration requirements to trigger downstream processes.

Webhook Notifications

Webhooks are HTTP callbacks that MarketCheck sends to your specified endpoint immediately after successful file delivery. You need to implement a webhook endpoint on your server to receive these real-time notifications, which can then trigger your downstream data processing workflows.

Basic Webhook Structure:

{
  "status": "SUCCESS",
  "file_name": "mc_us_used_20250721.csv.gz",
  "file_size": "12345678",
  "directory": "[platform-specific-path]"
}

Platform-Specific Directory Fields:

PlatformDirectory Field FormatExample
FTP/SFTP"directory": "/path/to/files""/marketcheck/daily"
Azure Blob"directory": "container-name""/marketcheck/daily"
GCS"directory": "/path""directory": "/daily"
AWS S3"directory": "s3://bucket/path""s3://marketcheck/daily"

GCS

  • In case of Google Cloud Storage (GCS), an additional bucket field is included in payload
  • The bucket field specifies the GCS bucket name where the file is stored and directory is the path within that bucket
  • Example GCS Payload:
{
  "status": "SUCCESS",
  "file_name": "mc_us_used_20250721.csv.gz",
  "file_size": "12345678",
  "directory": "/daily",
  "bucket": "marketcheck"
}

Authentication:

  • Optional X-API-Key header for webhook endpoint security
  • HTTPS recommended for secure transmission

Example Webhook Request:

curl -X POST https://mc-hooks.awesomecars.com/ack \
  -H "Content-Type: application/json" \
  -H "X-API-Key: your-secret-key" \
  -d '{
    "status": "SUCCESS",
    "file_name": "mc_us_used_20250721.csv.gz",
    "directory": "s3://marketcheck/daily",
    "file_size": "12345678"
  }'

Metafile Notifications

Optional file-based notifications delivered alongside or instead of webhooks:

Success Notification:

  • File: mc_us_used_20250721.success.txt
  • Contains: Original file size information

Failure Notification:

  • File: mc_us_used_20250721.failure.txt
  • Contains: Error details and troubleshooting information
Metafile notifications can be used independently or in combination with webhook notifications based on your integration requirements.

See Also