NAV

Language Selector:

shell ruby

Mattermark API

Introduction

The Mattermark REST API allows you to query our expansive dataset of companies. You can access all data available in the Mattermark website interface, as well as the time series data that is used to construct the histograms found on company profile pages. Easily access companies, investors, funding events, and much more.

Since the API is based on REST principles, it’s very easy to write and test applications. You can use your browser to access URLs, and you can use pretty much any HTTP client in any programming language to interact with the API.

Because we love you, we’ve provided you with some easy to get started example code in the dark area along the right hand side of the page. Examples are displayed for use with Curl and Ruby! (You can switch the programming language of the examples with the tabs in the top right.)

Sign Up Here For API Access

Base URL

All URLs referenced in the documentation have the following base:

https://api.mattermark.com/

SSL/HTTPS

The Mattermark API is served over HTTPS. To ensure data privacy, unencrypted HTTP is not supported.

Examples

Throughtout this document we provide you with inline examples of how to perform the requests to our api. Feel free to copy and paste these examples and use them in your own application. You can switch which language you’d like to see the examples in by using the “language selector” located at the top right of the page.

The shell examples should work on most modern operating systems. Mac and Linux users typically have cURL pre-installed for them. Windows users will likely need to follow the cURL install instructions.

The ruby examples make use of the “HTTParty” ruby gem.

Trial Access

When you are trying out the Mattermark API, you will have access to a test version which will provide you with up to 50 results, please note you will not be able to page through the results. Once your account has been upgraded to full API access you will have the ability to page through all results. Mattermark has data on more than one million companies, but before you have decided to become a paying customer we limit your access.

Sign Up Here For API Access

Getting Started

Authentication

In order to make calls to our API you simply need to include your API key along with the request. We look for your API key in the key query parameter (example below).

To obtain your API key, contact sales@mattermark.com.

It is very important to store your API key in a private and secure location. Sharing your API key is strictly prohibited.

Example Request

If you want to make a call to our companies listing endpoint: https://api.mattermark.com/companies you simply adjust the URL to include your API key like so:

$ curl "https://api.mattermark.com/companies?key=[YOUR KEY]"
require 'httparty'
response = HTTParty.get("https://api.mattermark.com/companies?key=[YOUR KEY]")

Limits and Paging

Requests that return more than a single result will often times be “paged” such that we return a limited number of records for each request. Endpoints that support paging will be noted in their respective documentation sections.

How many pages or results are there for my request?

Endpoints that support paging will have a special section in the response body. The section to pay attention to for paging information is in the “meta” portion of the response body. Below is an example meta section:

{
  "meta": {
    "total_record_count": 605,
    "total_pages": 13,
    "current_page": 1,
    "per_page": 50
  }
}

How do I page through my results?

The following table shows you the two url query parameters that you can tweak to page through results.

Parameter Default Value Description
per_page 10 You can adjust this value to receive more or less records per request.
page 1 If the response says there are more results than the number returned. You change this value to read more records from result set.

Example Request

The best example of where paging can be useful is when using the Companies List endpoint. It is quite common that you will issue a query and it will match a significant number of records. For example, when you ask for Series A companies in the Bay Area, there are more than 850 results. To keep things speedy, we will only return 50 results at a time. The following example will show you how to read subsequent pages of results.

$ curl "https://api.mattermark.com/companies?key=[YOUR KEY]&stage=a&location=bay%20area&page=2&per_page=50"
require 'httparty'
query_params = { key: '[YOUR KEY]', location: 'bay area', stage: 'a', page: 2, per_page: 50 }
response = HTTParty.get("https://api.mattermark.com/companies", { query: query_params })

Rate Limiting

In order to assure high quality of service to all our customers our API enforces rate limiting rules. If you have exceeded your account’s rate limit we will return a 429 status code.

Search

Our search endpoint provides autocomplete search capabilities. You can currently use this endpoint to return results for Companies and Investors. It is expected that this endpoint will get used frequently, i.e. as a user types into a text field, so it is quite fast.

GET https://api.mattermark.com/search?key=[YOUR KEY]

Query Parameters

Term: the term that you want to search for.

$ curl "https://api.mattermark.com/search?key=[YOUR KEY]&term=<search term>"

Object Types: this is only needed if you want to limit the types of objects that get returned. As of now, we index both companies and investors in this searchable endpoint. The mobile app for instance only shows results for companies, this parameter allows us to accomplish this.

$ curl https://api.mattermark.com/search?key=[YOUR KEY]&object_types=company
$ curl https://api.mattermark.com/search?key=[YOUR KEY]&object_types[]=company&object_types[]=investor

Example response

[
    {
        "object_type": "company",
        "object_name": "Lyft",
        "object_slug": "117766/lyft",
        "company_domain": "lyft.com",
        "company_funding": 1392500000,
        "company_keywords": nil,
        "company_mattermark_score": 947,
        "investor_funding": 0,
        "object_id": 117766
     }
]


Also note that if you are looking to get more detailed information about the results that are returned, you can use the “object_id” field to make subsequent requests to our other endpoints for more details. For companies you can make requests to the GET /companies/:id endpoint, substituting the :id part with the value from the object_id field. You can do the same with the GET /investors/:id endpoint as well.

Companies List

The companies endpoint allows you to retrieve a list of companies.

Below is a descriptive list of all the different ways in which you can query this endpoint to segment our growing database of companies. At the very bottom of this section you’ll find an example response along with a full table of all the query parameters outlined below.

HTTP Request

GET https://api.mattermark.com/companies

Example Response

{
    "meta": {
        "total_record_count": 149,
        "total_pages": 3,
        "current_page": 1,
        "per_page": 50
    },
    "companies": [
        {
            "company_name": "Blue Smoke LLC",
            "domain": "bluesmokellc.net",
            "id": "10808576",
            "url": "https://api.mattermark.com/companies/10808576"
        }
    ]
}

Business Name

Business Name

$ curl "https://api.mattermark.com/companies/?key=[YOUR KEY]&company_name=facebook"
require 'httparty'
response = HTTParty.get('https://api.mattermark.com/companies/?key=[YOUR KEY]&company_name=facebook')

Website URL

$ curl "https://api.mattermark.com/companies/?key=[YOUR KEY]&domain=facebook.com"
require 'httparty'
response = HTTParty.get('https://api.mattermark.com/companies/?key=[YOUR KEY]&domain=facebook.com')

Industry & Business Model

Business Model Tags

$ curl "https://api.mattermark.com/companies/?key=[YOUR KEY]&business_models=B2B"
require 'httparty'
response = HTTParty.get('https://api.mattermark.com/companies/?key=[YOUR KEY]&business_models=B2B')

Industry Tags

$ curl "https://api.mattermark.com/companies/?key=[YOUR KEY]&industries=Analytics|Finance"
require 'httparty'
response = HTTParty.get('https://api.mattermark.com/companies/?key=[YOUR KEY]&industries=Analytics|Finance')

Keywords

$ curl "https://api.mattermark.com/companies/?key=[YOUR KEY]&keywords=Advertising|Analytics"
require 'httparty'
response = HTTParty.get('https://api.mattermark.com/companies/?key=[YOUR KEY]&keywords=Advertising|Analytics')

Geographical Location

Metro Region

State

Country

Investment Stage

Funding History

All Investors

The value you use to search by in this request is the mm_slug value for the investor. You can get the mm_slug value for any investor in our index by using the Investors endpoint.

$ curl "https://api.mattermark.com/companies/?key=[YOUR KEY]&investors=406-ventures"
require 'httparty'
response = HTTParty.get('https://api.mattermark.com/companies/?key=[YOUR KEY]&investors=406-ventures')

Lifetime Total Funding

$ curl "https://api.mattermark.com/companies/?key=[YOUR KEY]&total_funding=1000000~10000000"
require 'httparty'
response = HTTParty.get('https://api.mattermark.com/companies/?key=[YOUR KEY]&total_funding=1000000~10000000')

Last Funding Round Date

$ curl "https://api.mattermark.com/companies/?key=[YOUR KEY]&last_funding_date=raised in past 9 months"
require 'httparty'
response = HTTParty.get('https://api.mattermark.com/companies/?key=[YOUR KEY]&last_funding_date=raised in past 9 months')

Last Funding Round Amount

$ curl "https://api.mattermark.com/companies/?key=[YOUR KEY]&last_funding_amount=100000~"
require 'httparty'
response = HTTParty.get('https://api.mattermark.com/companies/?key=[YOUR KEY]&last_funding_amount=100000~')

Employee Count

Employee Count 1 Month Ago

$ curl "https://api.mattermark.com/companies/?key=[YOUR KEY]&employees_month_ago=500~"
require 'httparty'
response = HTTParty.get('https://api.mattermark.com/companies/?key=[YOUR KEY]&employees_month_ago=500~')

Employees Added in Past Month

$ curl "https://api.mattermark.com/companies/?key=[YOUR KEY]&employees_added_in_month=40~50"
require 'httparty'
response = HTTParty.get('https://api.mattermark.com/companies/?key=[YOUR KEY]&employees_added_in_month=40~50')

Employee Count Month-Over-Month Growth Rate

$ curl "https://api.mattermark.com/companies/?key=[YOUR KEY]&employees_mom=10~"
require 'httparty'
response = HTTParty.get('https://api.mattermark.com/companies/?key=[YOUR KEY]&employees_mom=10~')

Unique Website Visitors

Unique Website Visitors Last Week

$ curl "https://api.mattermark.com/companies/?key=[YOUR KEY]&cached_uniques_week_ago=1000~"
require 'httparty'
response = HTTParty.get('https://api.mattermark.com/companies/?key=[YOUR KEY]&cached_uniques_week_ago=1000~')

Unique Website Visitors Week-Over-Week Growth Rate

$ curl "https://api.mattermark.com/companies/?key=[YOUR KEY]&uniques_wow=1000~"
require 'httparty'
response = HTTParty.get('https://api.mattermark.com/companies/?key=[YOUR KEY]&uniques_wow=1000~')

Unique Website Visitors One Month Ago

$ curl "https://api.mattermark.com/companies/?key=[YOUR KEY]&cached_uniques_month_ago=6000~"
require 'httparty'
response = HTTParty.get('https://api.mattermark.com/companies/?key=[YOUR KEY]&cached_uniques_month_ago=6000~')

Unique Website Visitors Month-Over-Month Growth Rate

$ curl "https://api.mattermark.com/companies/?key=[YOUR KEY]&uniques_mom=1000~"
require 'httparty'
response = HTTParty.get('https://api.mattermark.com/companies/?key=[YOUR KEY]&uniques_mom=1000~')

Mobile Downloads

Has Mobile App

$ curl "https://api.mattermark.com/companies/?key=[YOUR KEY]&has_mobile=1"
require 'httparty'
response = HTTParty.get('https://api.mattermark.com/companies/?key=[YOUR KEY]&has_mobile=1')

Mobile Downloads Last Week

$ curl "https://api.mattermark.com/companies/?key=[YOUR KEY]&cached_mobile_downloads_week_ago=10000~"
require 'httparty'
response = HTTParty.get('https://api.mattermark.com/companies/?key=[YOUR KEY]&cached_mobile_downloads_week_ago=10000~')

Mobile Downloads Week-Over-Week Growth Rate

$ curl "https://api.mattermark.com/companies/?key=[YOUR KEY]&mobile_downloads_wow=5000~"
require 'httparty'
response = HTTParty.get('https://api.mattermark.com/companies/?key=[YOUR KEY]&mobile_downloads_wow=5000~')

Mobile Downloads One Month Ago

$ curl "https://api.mattermark.com/companies/?key=[YOUR KEY]&cached_mobile_downloads_month_ago=500000~"
require 'httparty'
response = HTTParty.get('https://api.mattermark.com/companies/?key=[YOUR KEY]]&cached_mobile_downloads_month_ago=500000~')

Mobile Downloads Month-Over-Month Growth Rate

$ curl "https://api.mattermark.com/companies/?key=[YOUR KEY]&mobile_downloads_mom=500~"
require 'httparty'
response = HTTParty.get('https://api.mattermark.com/companies/?key=[YOUR KEY]&mobile_downloads_mom=500~')

Traction Scores

Mindshare Score

$ curl "https://api.mattermark.com/companies/?key=[YOUR KEY]&mattermark_score=10000~50000"
require 'httparty'
response = HTTParty.get('https://api.mattermark.com/companies/?key=[YOUR KEY]&mattermark_score=10000~50000')

All Query Parameters

For parameters with the “list” format, you can “OR” together different options with the pipe (|) operator.

A query to search for companies in either Series A or Series would be GET https://api.mattermark.com/companies?key=[YOUR KEY]&stage=a|b

Parameter Format Example Description
domain string facebook.com The domain of the company’s website.
company_name string Facebook The company’s name.
mattermark_score numeric_range 1000~ The current Mattermark score of the company.
momentum_score numeric_range ~­-1000 The latest weekly momentum score of the company.
employees numeric range 5~25 The number of employees currently at the company.
employees_month_ago numeric range 5~20 Count of employees one month ago
employees_added_in_month numeric range 5~ Count of employees added this month.
employees_mom numeric range 1~20 The percent employee growth during that month.
cached_uniques numeric range 100000~ The estimated monthly unique visitors to the company’s website.
cached_uniques_week_ago numeric range 100000~ The estimated monthly unique visitors to the company’s website during the past 7 days.
uniques_wow numeric range 5~25 The percent change in the estimated monthly unique visitors to the company’s website in the past 7 days.
cached_uniques_month_ago numeric range 100000~ The estimated monthly unique visitors to the company’s website during the past month.
uniques_mom numeric range 5~25 The percent change in the estimated monthly unique visitors to the company’s website in the past month.
cached_mobile_downloads numeric range 1~ The estimated monthly mobile downloads from the U.S. iTunes app store.
cached_mobile_downloads_week_ago numeric range 10000~ The estimated monthly mobile downloads one week ago from the U.S. iTunes app store.
mobile_downloads_wow numeric range 5~25 The change in the estimated monthly mobile downloads from the U.S. iTunes app store during the past week.
cached_mobile_downloads_month_ago numeric range 10000~ The count of the estimated monthly mobile downloads from the U.S. iTunes app store during the past month.
mobile_downloads_mom string numeric range 5~25
est_founding_date string One of the following:
within 3 months
within 6 months
within 9 months
within 1 year
within 2 years
within 3 years
within 5 years
within 10 years
The estimated founding date of the company.
stage list One or several of the following:
Unknown
No Known Funding
Pre Series A
a
b
c

i
Late
Exited
The most recent funding round for the company.
investors string (mm_slug) See Investors to get a list of all investors. The names of the investors that have invested in the company.
total_funding numeric range 1000000~ The total publicly reported money raised by the company. Only includes money raised in U.S. Dollars. Other currencies are returned in detail response, but not included in this total.
last_funding_date string One of the following:
not in past 3 months
not in past 6 months
not in past 9 months
not in past year
not in past 13 months
not in past 16 months
not in past 18 months
not in past 2 years
never raised
raised in past 3 months
raised in past 6 months
raised in past 9 months
raised in past year
raised in past 2 years
has ever raised
Date of last funding event.
last_funding_amount numeric range 10000000~ The amount of funding investment in the the most recent funding event
location list Bay Area New York
state list CA State (location in the US) of the company’s headquarters. For a complete list of locations contact support@mattermark.com)
has_mobile 0 or 1 1 Only include (1) or exclude (0) companies that have a mobile application.
has_google_play 0 or 1 1 Only include (1) or exclude (0) companies that have a Google Play application.
has_itunes 0 or 1 1 Only include (1) or exclude (0) companies that have an iTunes application.
play_category list media_and_video The Google Play store categories of applications associated with the company
itunes_category list food_and_drink The iTunes store categories of applications associated with the company
business_models list B2B The business models employed by the company to generate revenue.
industries list Analytics The industries the company operates within.
keywords list Advertising Keywords associated with the company.
country list USA GBR

Company Details

This endpoint allows you to retrieve the full details for a specific company in our database.

HTTP Request

GET https://api.mattermark.com/companies/:id

Sample Code

$ curl "https://api.mattermark.com/companies/143115?key=[YOUR KEY]"
require 'httparty'
response = HTTParty.get('https://api.mattermark.com/companies/143115?key=[YOUR KEY]')

Example Response:

{
    "name": "Glide",
    "website": "glide.me",
    "mattermark_score": "241",
    "employees": "71",
    "website_uniques": "13578",
    "mobile_downloads": "5281",
    "mobile_score": "5",
    "stage": "b",
    "total_funding": 20000000,
        "last_funding_amount": 20000000,
    "last_funding_date": "2013­03­21",
    "location": "jerusalem",
    "twitter_handle": "GlideApp",
    "facebook_handle": "glideme",
    "linkedin_id": 3020582,
    "itunes_apps": [{
        "developer_url": "http:\/\/www.glide.me\/",
        "itunes_id": "588199307",
        "itunes_url": "https:\/\/itunes.apple.com\/us\/app\/glide­video­texting\/id588199307?mt=8&uo=2",
        "app_name": "Glide ­ Video Texting"
    }],
        "google_play_apps": [{
                "id": 319510,
        "app_name": "Glide - Video Chat Messenger",
        "package_id": "com.glidetalk.glideapp",
        "company_id": 113022,
        "company_name": "Glide",
        "company_domain": "glide.me",
        "play_url": "http://play.google.com/store/apps/details?id=com.glidetalk.glideapp"
    }],
    "funding": [{
        "amount": 0,
        "currency": "USD",
        "series": "seed",
        "funding_date": "2013-03-21",
        "news_url": "http:\/\/www.finsmes.com\/2013\/03\/glide­raises­seven­figure­sum.html",
        "source": "derived",
        "investor_ids": [11722,11732],
        "investors": "Orey Gilliam,Philippe Schwartz"
    }],
    "mattermark_weekly_momentum": [
        {
            "recorded_at": "2014-08-09 00:00:00 UTC",
            "score": "210"
        },
        {
            "recorded_at": "2014-08-01 00:00:00 UTC",
            "score": "­87"
        }
    ],
    "employee_count": [
        {
            "recorded_at": "2014-08-09 00:00:00 UTC",
            "score": "16"
        },
        {
            "recorded_at": "2014-07-02 00:00:00 UTC",
            "score": "17"
        }
    ],
    "growth_scores": [
        {
            "recorded_at": "2014-08-09 00:00:00 UTC",
            "score": 116
        },
        {
            "recorded_at": "2014-08-02 00:00:00 UTC",
            "score": 120
        },
    ],
    "mindshare_scores": [
        {
            "recorded_at": "2014-11-27 04:35:10 UTC",
            "score": 530
        },
        {
            "recorded_at": "2014-11-10 04:35:10 UTC",
            "score": 510
        }
    ],
    "alexa_rank": [
        {
            "recorded_at": "2014-08-09 00:00:00 UTC",
            "score": "126653"
        },
        {
            "recorded_at": "2014-07-20 00:00:00 UTC",
            "score": "125531"
        }
    ],
    "facebook_talking_count": [
        {
            "recorded_at": "2014-08-09 00:00:00 UTC",
            "score": "3894"
        },
        {
            "recorded_at": "2014-07-09 00:00:00 UTC",
            "score": "3816"
        }
    ],
    "facebook_like_count": [
        {
            "recorded_at": "2014-08-09 00:00:00 UTC",
            "score": "168940"
        },
        {
            "recorded_at": "2014-07-09 00:00:00 UTC",
            "score": "166410"
        }
    ],
    "twitter_follower_count": [
        {
            "recorded_at": "2014-08-09 00:00:00 UTC",
            "score": "10388"
        },
        {
            "recorded_at": "2014-07-19 00:00:00 UTC",
            "score": "10172"
        }
    ],
    "twitter_mentions": [
        {
            "recorded_at": "2014-08-09 00:00:00 UTC",
            "score": "6"
        },
        {
            "recorded_at": "2014-07-09 00:00:00 UTC",
            "score": "9"
        }
    ],
    "linkedin_follower_count": [
        {
            "recorded_at": "2014-08-09 00:00:00 UTC",
            "score": "46"
        },
        {
            "recorded_at": "2014-07-25 00:00:00 UTC",
            "score": "46"
        }
    ],
    "itunes_usa_weekly_downloads": [
        {
            "recorded_at": "2014-08-09 00:00:00 UTC",
            "score": "49745"
        },
        {
            "recorded_at": "2014-08-01 00:00:00 UTC",
            "score": "56202"
        }
    ],
    "inbound_links": [
        {
            "recorded_at": "2014-08-09 00:00:00 UTC",
            "score": "123"
        },
        {
            "recorded_at": "2014-07-29 00:00:00 UTC",
            "score": "1025"
        }
    ],
    "est_monthly_uniques": [
        {
            "recorded_at": "2015-10-17 04:31:27 +0000",
            "score": "21543"
        },
        {
            "recorded_at": "2015-10-12 10:26:18 +0000",
            "score": "23477"
        }
    ]
}

Company News

The company news endpoint returns the fifty latest news articles about the specified company.

HTTP REQUEST

GET https://api.mattermark.com/companies/:id/stories

Example Request

$ curl "https://api.mattermark.com/companies/74910/stories?key=[YOUR KEY]"
require 'httparty'
response = HTTParty.get("https://api.mattermark.com/companies/74910/stories?key=[YOUR KEY]")

Example Response

[
  {
      "id": 1426837,
      "title": "E-commerce roundup: Amazon India, Bata, FoodPanda & Snapdeal",
      "url": "http://feedproxy.google.com/~r/medianama/~3/pScV966Eya8/",
      "published_at": "2014-12-18 01:16:25 UTC",
      "source_title": "MediaNama"
  },
  {
      "id": 1426725,
      "title": "Snapdeal.com partners with Hero MotoCorp to sell two-wheelers through its platform",
      "url": "http://techcircle.vccircle.com/2014/12/18/snapdeal-com-partners-with-hero-motocorp-to-sell-two-wheelers-through-its-platform/",
      "published_at": "2014-12-18 00:33:16 UTC",
      "source_title": "Tech Circle VC Circle"
  }
]

Similar Companies

The similar companies endpoint returns up to 20 of the most similar companies ordered related to the specified company.

HTTP REQUEST

GET https://api.mattermark.com/companies/:id/similar

Example Request

To find companies that are similar to SnapDeal you could issue the following example request:

$ curl "https://api.mattermark.com/companies/74910/similar?key=[YOUR KEY]"
require 'httparty'
response = HTTParty.get("https://api.mattermark.com/companies/74910/similar?key=[YOUR KEY]")

Example Response

[
    {
        "company_name": "Flipkart",
        "description": "Flipkart is an online shopping destination for electronics, books, music and movies.",
        "description_plain_text": "Flipkart is an online shopping destination for electronics, books, music and movies.",
        "domain": "flipkart.com",
        "id": 39279,
        "probability": 1.0,
        "stage": "h",
        "total_funding": 3051140000
    },
    {
        "company_name": "Junglee",
        "description": "Product Comparison Shopping",
        "description_plain_text": "Product Comparison Shopping",
        "domain": "junglee.com",
        "id": 30974,
        "probability": 0.6617908477783203,
        "stage": "exited (acquired)",
        "total_funding": null
    },
    {
        "company_name": "Gadgets ",
        "description": "No description available.",
        "description_plain_text": "No description available.",
        "domain": "gadgets.in",
        "id": 205107,
        "probability": 0.6479290723800659,
        "stage": "no known funding",
        "total_funding": null
    },
    {
        "company_name": "Grabmore",
        "description": "India Online Shopping Store",
        "description_plain_text": "India Online Shopping Store",
        "domain": "grabmore.in",
        "id": 96259,
        "probability": 0.6385279297828674,
        "stage": "no known funding",
        "total_funding": null
    },
    {
        "company_name": "Govasool",
        "description": "Online shopping website",
        "description_plain_text": "Online shopping website",
        "domain": "govasool.com",
        "id": 91388,
        "probability": 0.628568708896637,
        "stage": "no known funding",
        "total_funding": null
    }
]

Company Personnel

This endpoint allows you to retrieve key personnel for a specific company in our database.

HTTP Request

GET https://api.mattermark.com/companies/:id/people

Sample Code

$ curl "https://api.mattermark.com/companies/143115/people?key=[YOUR KEY]"
require 'httparty'
response = HTTParty.get('https://api.mattermark.com/companies/143115/people?key=[YOUR KEY]')

Example Response:

[
    {
        "name": "Ari Roisman",
        "title": "Co-Founder / CEO",
        "path": "https://il.linkedin.com/in/aroisman"
    },
    {
        "name": "Jonathan Caras",
        "title": "Co-Founder / CTO",
        "path": "https://il.linkedin.com/in/jonathancaras"
    }
]

Funding Events

The funding events endpoint allows you to retrieve a list of funding events.

Below is a descriptive list of all the different ways in which you can query this endpoint to segment our growing database of funding events. At the very bottom of this section you’ll find an example response along with a full table of all the query parameters outlined below.

HTTP Request

GET https://api.mattermark.com/fundings

Additional Features:

Example Response

{
  "meta": {
    "total_record_count": 45000,
    "total_pages": 900,
    "current_page": 1,
    "per_page": 50
  },
  "fundings": [
    {
      "id":"2082133",
      "company_id":"20872",
      "company_name":"Netsmart Technologies",
      "investors":"Genstar Capital",
      "investor_slugs":"genstar-capital",
      "series":"debt_financing",
      "rounds_funding_date":"2015-03-02",
      "amount":250000000,
      "currency":"USD",
      "news_url":"http://www.abladvisor.com/news/6534/golub-capital-provides-250mm-facility-to-support-netsmart-recap",
      "industry":"Enterprise Software,Health IT,Healthcare",
      "region":null,
      "city":"Great River",
      "state":"NY",
      "country":"USA",
      "funding_id":"2082133",
      "created_on":"2015-03-02 19:59:35"},
    {
      "id":"2082163",
      "company_id":"118302",
      "company_name":"Rockyou",
      "investors":"Columbia Capital",
      "investor_slugs":"ColumbiaCapital",
      "series":"venture",
      "rounds_funding_date":"2015-03-02",
      "amount":23000000,
      "currency":"USD",
      "news_url":"http://www.finsmes.com/2015/03/rockyou-raises-23m-in-funding.html",
      "industry":"Advertising,Gaming,Internet,Mobile,Software Development",
      "region":"Bay Area",
      "city":"San Francisco",
      "state":"CA",
      "country":"USA",
      "funding_id":"2082163",
      "created_on":"2015-03-02 23:43:17"
    },
    {
      "id":"2082255",
      "company_id":"107037",
      "company_name":"Xeneta",
      "investors":"Creandum, Point Nine Capital, Alden AS, Alliance Venture",
      "investor_slugs":"Creandum, Point Nine Capital, aiden-as, alliance-venture",
      "series":"a",
      "rounds_funding_date":"2015-03-02",
      "amount":5300000,
      "currency":"USD",
      "news_url":"http://www.finsmes.com/2015/02/xeneta-raises-5-3m-series-a-funding.html",
      "industry":"Transportation",
      "region":null,
      "city":"Oslo",
      "state":null,
      "country":"NOR",
      "funding_id":"2082255",
      "created_on":"2015-03-03 02:20:28"
    }
  ]
}

All Query Parameters

Parameter Format Example Description
rounds_funding_date date 2015-01-25 The date of the funding event.

Investors List

Looking to find which investors have done the most deals in a specific geographic region? Which investors have raised more than $20M in the past three years? This is the endpoint you’ll want to dig into. Before you start making requests to this endpoint its recommended to read up on our MSFL filtering language. For an exhaustive list of the fields you can query, scroll down past the example response below.

HTTP Request

POST https://api.mattermark.com/queries

Example Request

Question: “Which investors are located in California?”

{
    "dataset": "investor",
    "filter": {
        "state": "CA"
    }
}

Question: “Which investors have invested in the "big data” and “cloud computing” industries?“

{
    "dataset": "investor",
    "filter": {
        "foreign": {
            "dataset": "company",
            "filter": {
                "industries": {
                    "in": ["Cloud Computing","Crowdfunding"]
                }
            }
        }
    }
}

Example Response

{
    "meta": {
        "total_record_count":10682,
        "total_pages":214,
        "current_page":1,
        "per_page":50
    },
    "query_id":"ndrJ1lUaoabdAb8XBN7Fbg00Eyz4g9TnitQ60ulwAS532EXajCjTcHk6d6PuCMwmLdELYBVWZhZ0rwIM3FdA",
    "query": {
        "urlsafe_query_hash":"ndrJ1lUaoabdAb8XBN7Fbg00Eyz4g9TnitQ60ulwAS532EXajCjTcHk6d6PuCMwmLdELYBVWZhZ0rwIM3FdA",
        "dataset":"investor",
        "filter": {
            "type": {
                "in": ["vc", "angel", "accelerator"]
            }
        },
        "sort": [{"portfolio_size": "desc"}]
    },
    "results":[
        {
            "investor_id": 859,
            "name": "Tiger Global Management",
            "investor_domain": null,
            "location": "New York",
            "three_year_funds_offered": 4038097180,
            "three_year_funds_sold": 3031096150,
            "est_most_recent_fund_date": "2014-11-26",
            "type": "vc",
            "most_recent_deal": "2015-04-20",
            "number_of_deals": 128,
            "portfolio_size": 80,
            "avg_growth_score": 4255.6375,
            "city": "New York",
            "state": "NY",
            "country": "USA",
            "website": null,
            "mm_slug": "tiger-global-management",
            "industries":["advertising","banking","big data","career / job search","classifieds","cloud computing","consulting","consumer services","crowdfunding","customer support","data storage","deals","e-commerce","education","enterprise software","entertainment","fashion","finance","food & beverages","gaming","hardware","hospitality","household & personal products","human resources","human resources hr","insurance","internet","lending","market research","marketing","media","mobile","music","payments","personal products","publishing","real estate","retail","search","security","social networking","software","software development","storage","transportation","travel"],
            "deals_per_company": 1.6,
            "resource_type": "investor"
        },{
            "investor_id": 74,
            "name": "New Enterprise Associates",
            "investor_domain": "nea.com",
            "location": "Bay Area",
            "three_year_funds_offered": 4038097180,
            "three_year_funds_sold": 3031096150,
            "est_most_recent_fund_date": "2015-04-15",
            "type": "vc",
            "most_recent_deal": "2015-04-21",
            "number_of_deals": 703,
            "portfolio_size": 449,
            "avg_growth_score": 464.19599109131406,
            "city": "Menlo Park",
            "state": "CA",
            "country": "USA",
            "website": "nea.com",
            "mm_slug": "NEA",
            "industries":["advertising","agriculture","analytics","automotive","banking","big data","biotechnology","biotechnology ","career / job search","classifieds","cleantech","cloud computing","communications equipment","computer hardware","consumer electronics","consumer services","crowdfunding","customer support","dating","deals","drones","e-commerce","education","energy","enterprise software","entertainment","event","fashion","finance","food & beverages","gaming","government","hardware","hardware ","health insurance","health it","healthcare","healthcare ","hospitality","human resources","human resources hr","information security","insurance","internet","internet of things","legal","lending","machine learning","market research","marketing","marketing analytics","media","medical devices","medical diagnostics","mobile","music","network / hosting / infrastructure","payments","pharmaceuticals","pharmaceuticals ","professional services","publishing","real estate","retail","search","security","semiconductors","semiconductors ","social networking","software","software development","solar power","storage","telecommunications","telecommunications ","transportation","travel","virtual reality","wearables","wind power"],
            "deals_per_company":1.2,
            "resource_type":"investor"
        }]}

Query Fields

The following fields can be used in the MSFL filter portion of the query to limit the result set.

Investor Fields

These fields are properties about the investor. With these fields you can answer simple questions such as "What investors are located in London?” or “What angel investors are located in Argentina?”.

Aggregate Fields

These field are aggregates about other objects related to investors. Using these query fields you can answer questions such as “What investors have more than 50 portfolio companies?” or “What investors have done a deal in the last 3 months?”.

Investor Details

This endpoint will give you details for a specific investor. Information includes the size of their portfolio and some stats around their portfolio and funding deals.

HTTP Endpoint:

GET /investors/[:id]

Supports:

Example Request

$ curl "https://api.mattermark.com/investors/30?key=[YOUR KEY]
require 'httparty'
response = HTTParty.get('https://api.mattermark.com/investors/30?key=[YOUR KEY]')

Example response

{
  "id": 51,
  "name": "Greycroft Partners",
  "mm_slug": "Greycroft",
  "website": "greycroft.com",
  "type": "vc",
  "location": "New York",
  "portfolio_path": "/app/data?investors=Greycroft",
  "portfolio_size": 172,
  "number_of_deals": 244,
  "three_year_funds_sold": 381160001,
  "funding_rounds_path": "/app/rounds?investors=Greycroft",
  "est_most_recent_fund_date": "2015-11-30",
  "most_recent_funding": {
    "funding_date": "2016-02-04",
    "amount": 2250000,
    "series": "seed",
    "company": { "id": 10579847, "company_name": "Hobnob" },
    "investors": [
      { "mm_slug": "Greycroft", "display_name": "Greycroft Partners" },
      { "mm_slug": "Bessemer", "display_name": "Bessemer Venture Partners" },
      { "mm_slug": "aspect-ventures", "display_name": "Aspect Ventures" },
      { "mm_slug": "norwest", "display_name": "Norwest Venture Partners" }
    ]
  },
  "portfolio_aggregates": {
    "stages": [
      { "name": "a", "count": 42 },
      { "name": "Exited (Acquired)", "count": 41 },
      { "name": "Pre Series A", "count": 36 },
      { "name": "b", "count": 24 },
      { "name": "Late", "count": 15 },
      { "name": "c", "count": 8 },
      { "name": "Exited (Other)", "count": 2 },
      { "name": "Unknown", "count": 2 },
      { "name": "Exited (IPO)", "count": 1 },
      { "name": "No Known Funding", "count": 1 }
    ],
    "locations": [
      { "name": "new york", "count": 44 },
      { "name": "los angeles", "count": 37 },
      { "name": "bay area", "count": 31 },
      { "name": "london", "count": 6 },
      { "name": "chicago", "count": 4 },
      { "name": "salt lake city", "count": 4 },
      { "name": "austin", "count": 3 },
      { "name": "seattle", "count": 3 },
      { "name": "boston", "count": 2 },
      { "name": "raleigh", "count": 2 }
    ],
    "business_models": [
      { "name": "B2C", "count": 102 },
      { "name": "B2B", "count": 99 },
      { "name": "SaaS", "count": 15 },
      { "name": "Advertising", "count": 10 },
      { "name": "Marketplace", "count": 5 },
      { "name": "Consulting", "count": 2 },
      { "name": "Direct Sales", "count": 1 },
      { "name": "Events", "count": 1 },
      { "name": "Lead Generation", "count": 1 },
      { "name": "Metamediary", "count": 1 }
    ],
    "industries": [
      { "name": "E-Commerce", "count": 37 },
      { "name": "Mobile", "count": 36 },
      { "name": "Marketing", "count": 30 },
      { "name": "Advertising", "count": 28 },
      { "name": "Media", "count": 25 },
      { "name": "Gaming", "count": 20 },
      { "name": "Social Networking", "count": 17 },
      { "name": "Enterprise Software", "count": 16 },
      { "name": "Analytics", "count": 14 },
      { "name": "Finance", "count": 14 }
    ]
  },
  "deal_aggregates": {
    "series": [
      { "name": "a", "count": 86 },
      { "name": "", "count": 45 },
      { "name": "b", "count": 43 },
      { "name": "seed", "count": 27 },
      { "name": "c", "count": 17 },
      { "name": "venture", "count": 10 },
      { "name": "d", "count": 8 },
      { "name": "undisclosed", "count": 3 },
      { "name": "angel", "count": 1 },
      { "name": "convertible_note", "count": 1 }
    ],
    "quarterly": [
      {
        "2015-07-01": {
          "locations": [
            { "name": "minneapolis", "count": 1 },
            { "name": "new york", "count": 1 }
          ],
          "industries": [
            { "name": "Hospitality", "count": 2 },
            { "name": "E-Commerce", "count": 1 },
            { "name": "Enterprise Software", "count": 1 },
            { "name": "Food & Beverages", "count": 1 },
            { "name": "Healthcare", "count": 1 },
            { "name": "Human Resources", "count": 1 },
            { "name": "Human Resources (HR)", "count": 1 },
            { "name": "Mobile", "count": 1 },
            { "name": "Software Development", "count": 1 }
          ],
          "stages": [
            { "name": "a", "count": 2 },
            { "name": "b", "count": 1 }
          ],
          "business_models": [
            { "name": "B2C", "count": 2 },
            { "name": "B2B", "count": 1 },
            { "name": "Consulting", "count": 1 },
            { "name": "SaaS", "count": 1 }
          ]
        }
      },
      {
        "2015-04-01": {
          "locations": [
            { "name": "los angeles", "count": 4 },
            { "name": "new york", "count": 4 },
            { "name": "bay area", "count": 2 },
            { "name": "london", "count": 2 },
            { "name": "austin", "count": 1 },
            { "name": "chicago", "count": 1 },
            { "name": "seattle", "count": 1 }
          ],
          "industries": [
            { "name": "E-Commerce", "count": 4 },
            { "name": "Mobile", "count": 3 },
            { "name": "Analytics", "count": 2 },
            { "name": "Consumer Services", "count": 2 },
            { "name": "Finance", "count": 2 },
            { "name": "Gaming", "count": 2 },
            { "name": "Marketing", "count": 2 },
            { "name": "Retail", "count": 2 },
            { "name": "Banking", "count": 1 },
            { "name": "CleanTech", "count": 1 }
          ],
          "stages": [
            { "name": "a", "count": 9 },
            { "name": "Pre Series A", "count": 3 },
            { "name": "c", "count": 2 },
            { "name": "Late", "count": 1 },
            { "name": "b", "count": 1 }
          ],
          "business_models": [
            { "name": "B2C", "count": 8 },
            { "name": "B2B", "count": 7 },
            { "name": "Marketplace", "count": 1 },
            { "name": "SaaS", "count": 1 }
          ]
        }
      }
    ]
  },
  "top_industries": [
    {
      "industry_name": "e-commerce",
      "investments": 55
    },
    {
      "industry_name": "mobile",
      "investments": 53
    },
    {
      "industry_name": "marketing",
      "investments": 49
    },
    {
      "industry_name": "advertising",
      "investments": 44
    },
    {
      "industry_name": "media",
      "investments": 37
    }
  ],
  "most_recent_filings": [
    {
      "entity_name": "Greycroft Growth, L.P.",
      "total_offering": 200000000,
      "total_sold": 200000000,
      "filing_date": "2014-06-19",
      "form": "D"
    },
    {
      "entity_name": "GREYCROFT CO-INVEST EXTREME REACH, L.P.",
      "total_offering": 6160001,
      "total_sold": 6160001,
      "filing_date": "2014-02-12",
      "form": "D"
    },
    {
      "entity_name": "Greycroft Partners III, L.P.",
      "total_offering": 175000000,
      "total_sold": 175000000,
      "filing_date": "2012-11-27",
      "form": "D"
    },
    {
      "entity_name": "Greycroft Partners Annex Fund, L.P.",
      "total_offering": 12650000,
      "total_sold": 12650000,
      "filing_date": "2012-03-06",
      "form": "D"
    },
    {
      "entity_name": "Greycroft Partners II, L.P.",
      "total_offering": 128000000,
      "total_sold": 115075000,
      "filing_date": "2010-02-18",
      "form": "D"
    }
  ]
}

Investor Portfolio

Now that you found an investor your interested in you can use this endpoint to get a full run down of all the companies in their portfolio.

HTTP Request

GET https://api.mattermark.com/investors/:id/portfolio

Example Request

$ curl "https://api.mattermark.com/investors/30/portfolio?key=[YOUR KEY]
require 'httparty'
response = HTTParty.get('https://api.mattermark.com/investors/30/portfolio?key=[YOUR KEY]')

Example Response

{
  "companies": [
    {
      "id": 285643,
      "company_name": "Medgenome Labs",
      "domain": "medgenome.com",
      "stage": "b",
      "location": "bangalore",
      "last_funding_date": "2015-07-22",
      "total_funding": 24000000,
      "investor_first_invested_on": "2015-07-22"
    },
    {
      "id": 10965875,
      "company_name": "KFit",
      "domain": "kfit.com",
      "stage": "Pre Series A",
      "location": "singapore",
      "last_funding_date": "2015-07-20",
      "total_funding": 3250000,
      "investor_first_invested_on": "2015-07-20"
    },
    {
      "id": 216637,
      "company_name": "Flipagram",
      "domain": "flipagram.com",
      "stage": "b",
      "location": "los angeles",
      "last_funding_date": "2015-07-15",
      "total_funding": 70000000,
      "investor_first_invested_on": "2015-07-15"
    },
    {
      "id": 10991757,
      "company_name": "Roadrunnr",
      "domain": "roadrunnr.in",
      "stage": "a",
      "location": "bangalore",
      "last_funding_date": "2015-07-15",
      "total_funding": 11000000,
      "investor_first_invested_on": "2015-07-15"
    }
  ],
  "meta": {
    "total_record_count": 605,
    "total_pages": 13,
    "current_page": 1,
    "per_page": 50
  }
}

Complex Queries (BETA)

We introduce a newly available endpoint that enables API users to generate queries that are not well suited to normal REST convention. This endpoint supports nested ANDs and ORs. You can create a POST request using a custom syntax to form queries.

Creating a query

To create a new query you issue a POST request to the HTTP ENDPOINT. You can specify the dataset you wish to query as a POST parameter. You should include the required parameters of a well formed query in your POST request. The API’s response body will be a JSON hash consisting of the query results, a unique identifier for the query, and the original query from the request POST parameter.

HTTP ENDPOINT

POST https://api.mattermark.com/queries

Parameters

Each parameter is a key value pair that is submitted to the server in separate POST parameters. The parameter names (keys) are all nouns (and in the case where the part of speech is ambiguous, should be read as nouns).

Parameter Format Example Description
dataset string investors The set of data your query should be run against. See below for a complete list of available datasets.
filter hash { ‘total_funding’: { 'gte’: 5000000 } } The criteria for which records from the data set to include in the results (more advanced examples below).
sort array of hashes [ { 'series’: 'desc’ }, { 'number_of_employees’: 'asc’ } ] The order in which results should be sorted. The sort clauses are applied in increasing index order (series desc is applied and then number_of_employees asc is applied).
per_page integer 25 The number of results to include in each page of the response.
page integer 5 The page number to returned (page 1 is the first page of results).

Required fields.

To page through results it is recommended to use the GET /quries/:query_id form of the request.

Datasets

The following is a list of the datasets available for querying. Each dataset links out to its respective documentation which will show you the available fields for filtering and sorting.

Filter

The filter POST parameter defines how to qualify if a record in the dataset should be included. For queries of any complexity this parameter will be the most sizable.

The filter is a hash. Top level keys in the hash can be boolean operators or entity properties. What constitutes an entity property can be a bit of a complex subject as, in reality it depends on the data storage implementation. The API server will attempt to parse this section and will reject invalid a query with an invalid filter - the rejection includes a message explaining what semantic errors were present in the filter.

There are two supported boolean operators: “and” and “or”. Each expects an array of hashes as its value.

A property expects either a scalar or a hash as its value. When a scalar is provided we assume that the user is implying that the 'eq’ operator should be used (only records for which the specified property exactly matches the scalar should be returned).

For types and operators, as well as additional examples you should checkout the section MSFL.

simple example

A simple query might be “show me all of the invstors with at least 100 companies in their portfolio”:

{
    "dataset": "investors",
    "filter": {
        "portfolio_size": {
            "gte": 100
        }
    }
}

hashes, arrays, and enumerables

We can try and perform semantic validation of your filter on the server side but the middleware between the client and the API application code has certain expectations and failure on your part to send hashes and arrays that conform may cause unexpected behavior.

using booleans to compose a complex filter

Currently we support the “or” and the “and” operators as a key in a filter.

boolean example

“Show me all of the investors in California with a portfolio of at least 100 companies”

{
    "dataset": "investors",
    "filter": {
        "and": [
            { "state": "CA" },
            { "portfolio_size": { "gte": 100 } }
        ]
    }
}

Response

Status codes

For information on the various status codes used and what they mean you should checkout the errors section of these documents

Response body

Generally speaking the response body will always be a json encoded hash similar to this

{
    "query": {
        "query_id": "3a3em215",
        "dataset": "investor",
        "filter": {
            "name": "Happy Days Funding"
        }
    },
    "results": [
        {
            "investor_id": 5,
            "name": "Leet Sauceage Capitel",
            "investor_domain": "leetsauceagecapital.ca",
            "angel_co_page": "/leetsauceagecaptial",
            "location": "Canada",
            "est_most_recent_fund_size": 500000000,
            "est_most_recent_fund_date": "2015-01-02",
            "three_year_funds_offered": 4038097180,
            "three_year_funds_sold": 3031096150,            
            "type": "vc",
            "most_recent_deal": 1234,
            "number_of_deals": 214,
            "avg_deal_size": 20000000,
            "portfolio_size": 154,
            "avg_growth_score": 92,
            "city": "Toronto",
            "state": "Ontario",
            "country": "CAN",
            "website": "leetsauceagecapital.ca",
            "deals_per_company": "1.4",
            "resource_type": "investor"
        }
    ],
    "meta": {
        "total_record_count": 1,
        "total_pages": 1,
        "current_page": 1,
        "per_page": 50
    },
    "query_id": "3a3em215"
}

You should review the response documentation for specific resources to see descriptions of all of the related response fields.

If the request fails for any reason you will receive a response with an appropriate status code and an error message in the body explaining the issue. The format for the error response is still an outstanding issue.

Paging The Results

Given a :query_id as returned from a create query request you can use this endpoint to page through the results.

HTTP Endpoint

GET https://api.mattermark.com/queries/:query_id

Supported Parameters

Parameter Format Example Description
per_page integer 25 The number of results to include in each page of the response
page integer 5 The page number to returned (like books page numbers start at 1)

Examples

curl "https://api.mattermark.com/queries/23432?per_page=50&page=3"

GET an existing query

This specifically requests the query having the hash 3aEf912

GET /queries/3a3em215 HTTP/1.1
Content-Type: application/json
HTTP/1.1 200 OK
Content-Type: application/json

{
    "query": {
        "query_id": "3a3em215",
        "dataset": "investor",
        "filter": {
            "name": "Happy Days Funding"
        },
        "query_version": 4
    },
    "results": [
        {
            "investor_id": 5,
            "name": "Leet Sauceage Capitel",
            "investor_domain": "leetsauceagecapital.ca",
            "angel_co_page": "/leetsauceagecaptial",
            "location": "Canada",
            "est_most_recent_fund_size": 500000000,
            "est_most_recent_fund_date": "2015-01-02",
            "three_year_funds_offered": 4038097180,
            "three_year_funds_sold": 3031096150,            
            "type": "vc",
            "most_recent_deal": 1234,
            "number_of_deals": 214,
            "avg_deal_size": 20000000,
            "portfolio_size": 154,
            "avg_growth_score": 92,
            "city": "Toronto",
            "state": "Ontario",
            "country": "CAN",
            "website": "leetsauceagecapital.ca",
            "deals_per_company": "1.4",
            "resource_type": "investor"
        }
    ],
    "meta": {
        "total_record_count": 1,
        "total_pages": 1,
        "current_page": 1,
        "per_page": 50
    },
    "query_id": "3a3em215"
}

Response Codes and Errors

The Mattermark API will send responses back to your requests using one of the following HTTP codes:

Response Code Meaning
200 Ok – Everything worked great!
400 Bad Request – Your request was not properly sent.
403 Unauthorized – Your API key is wrong, is no longer valid, or you do not have access to the given resource.
404 Not Found – The specified endpoint could not be found
429 Rate Limit Exceeded – You have temporarily exceeded your rate limit. Refer to Rate Limits for more details.
500 Internal Server Error – We had a problem with our server. Try again later.
503 Service Unavailable – We’re temporarily offline for maintenance. Please try again later.

Example Request/Response Handling

require 'httparty'
begin
  response = HTTParty.get("https://api.mattermark.com/companies/74910?key=[YOUR KEY]")
  if response.code == 200
    # hurray, request succeeded. Read a value from the response.
    company = {
      name: response['name'],
      website: response['website']
    }
    puts company.inspect
  else
    # oh no, the request failed, read the status code to determine why
    case request.code
      when 500, 503
        puts 'The Mattermark API is offline. Try again later.'
      when 403
        puts 'Access was denied to the Mattermark API'
      when 404
        puts 'Not Found. The resource you are accessing does not exist.'
      when 400
        puts 'Bad Request. Your request was improperly formatted or attempts to perform an unsupported operation.'
      end
  end
rescue SocketError => e
  # This catches cases when the network connection fails during the request.
  puts "Connection failed: #{e.message}"
end