Skip to content

Integration Patterns

EMMI offers three integration patterns. Bulk analysis via SFTP, on demand analysis via direct API integration, and in-account analysis via the Snowflake Native App.


Which Integration is Right for You?

SFTP Integration

Best for: Scheduled batch processing with minimal development effort.

SFTP is the simpler option. You upload CSV files, we process them and deliver results to your server. Formats are agreed during onboarding and remain fixed. This is ideal if you:

  • Run periodic batch jobs (monthly, quarterly)
  • Want a standard analysis without needing to tune parameters
  • Have limited development resources
  • Prefer file-based workflows

Results typically include emissions estimates, climate risk metrics, and temperature alignment in a single output file.

Direct API Integration

Best for: Frequent processing with full control over analysis parameters.

The API gives you complete flexibility. You control which endpoints to call, what parameters to use, and how to structure your requests. This is ideal if you:

  • Need on-demand analysis
  • Want to customize scenarios, analysis years, and other parameters per request
  • Are building a custom integration or application
  • Need access to all available endpoints and options

See the API Developer Docs for the full range of capabilities.

Snowflake Native App

Best for: Snowflake customers who want to run the analysis without data leaving their account.

Climate Risk and Emissions by Emmi is a Snowflake Native App that calculates emissions, climate risk, and geospatial risk entirely within your own Snowflake environment. This is ideal if you:

  • Already hold your portfolio data in Snowflake
  • Have data governance requirements that prevent sending data to external services
  • Want to run the analysis via SQL or a built-in user interface
  • Need geospatial risk analysis (currently available in the app only)

See the Snowflake Native App documentation for installation and usage.


Pattern Comparison

Feature SFTP Integration Direct API Integration Snowflake Native App
Interface File-based RESTful HTTP API SQL + built-in user interface
Processing Batch (scheduled) Real-time On demand, inside your Snowflake account
Flexibility Fixed formats, agreed during onboarding Full control over all parameters Full control over all parameters
Output Combined results (emissions + risk + alignment) Per-endpoint responses Result tables in your Snowflake account
Authentication SSH key + credentials API key Your Snowflake account
Development effort Minimal Moderate Minimal

SFTP Integration

SFTP integration provides a file-based approach for submitting portfolio data to EMMI.

Getting Started

Contact support@emmi.io to request SFTP access.

You provide:

  • SSH public key (Ed25519 recommended)
  • Contact email for notifications

You receive:

  • Username
  • Connection details

Connection Details

Setting Value
Host sftp.emmi.io
Port 22
Authentication SSH key

Uploading Files

Connect using your SSH private key:

sftp -i ~/.ssh/your_private_key username@sftp.emmi.io

Once connected, upload files:

sftp> put portfolio_2024Q1.csv
sftp> put manifest_2024Q1.json
sftp> ls
sftp> bye

Or upload directly from the command line:

# Upload a single file
sftp -i ~/.ssh/your_private_key username@sftp.emmi.io <<< 'put portfolio_2024Q1.csv'

# Upload multiple files
sftp -i ~/.ssh/your_private_key username@sftp.emmi.io << EOF
put portfolio_2024Q1.csv
put manifest_2024Q1.json
EOF

CSV Format

One row per entity-year. Provide the columns you have available.

Example (equity/debt):

guid,name,country,industry_classification_system,industry,year,scope1,scope2,scope3,currency,revenue,total_assets,ebitda,total_debt
TECH-001,Tech Corp,United States,rbics,Technology,2023,25000,20000,60000,USD,5000000,5000000,500000,500000
TECH-001,Tech Corp,United States,rbics,Technology,2022,23000,18000,55000,USD,4800000,4700000,480000,500000

Custom File Formats

Custom file formats and processing workflows are agreed during onboarding based on your requirements. Contact support@emmi.io to discuss your data format and delivery preferences.

Manifest Specifications

The manifest lists files by asset type to process and also the parameters to be used for risk and temperature alignment.

{
  "files": {
    "equity": "equity_2024Q1.csv",
    "debt": "debt_2024Q1.csv"
  },
  "scenarios": ["ipcc_net_zero", "ngfs_below_two_degree"],
  "analysis_years": [2030, 2050]
}

Direct API Integration

Direct API integration provides programmatic access to EMMI's full analysis capabilities with real-time responses and complete control over parameters.

Workflow

┌─────────────────┐                              ┌─────────────────┐
│   Your System   │                              │   EMMI API      │
│                 │                              │                 │
│  1. Build       │         HTTPS POST           │  2. Process     │
│     request     │─────────────────────────────►│     request     │
│                 │                              │                 │
│  4. Handle      │         JSON Response        │  3. Return      │
│     response    │◄─────────────────────────────│     results     │
└─────────────────┘                              └─────────────────┘

Capabilities

With the API you can:

  • Call any endpoint independently or in combination
  • Customize all parameters per request (scenarios, analysis years, etc.)
  • Process single entities or portfolios
  • Integrate results directly into your applications

Getting Started

See the API Developer Docs for complete endpoint documentation, request/response schemas, and examples.

See Usage Limits for entity, scenario, and rate limits.


Snowflake Native App

The Snowflake Native App brings the analysis to your data. You install Climate Risk and Emissions by Emmi from the Snowflake Marketplace and run emissions, climate risk, and geospatial risk calculations inside your own Snowflake account. Your portfolio data never leaves your environment.

Getting Started

Install the app from the Snowflake Marketplace, then follow the Snowflake Native App documentation for setup, input and output formats, and how to run the analysis via the user interface or SQL.


Need Help?

Contact support@emmi.io to discuss your specific requirements.