NAV Navigation
Python Shell NodeJS

Vainu API v1.0.0

Scroll down for code samples, example requests and responses. Select a language for code samples from the tabs above or the mobile navigation menu.

Vainu API enables users to integrate Vainu’s prospect information and leads to their CRM or other services!

Integration partnership

If you happen to be a software provider yourself and you're interested in providing your customers with new kind of value, you may want to read more about our integration partnersip.

URLs

The base URL for the vainu apis is https://api.vainu.io/api/v1/

Datetime format

All datetime values are in ISO8601 format.

Status codes

List of status and error codes and their definitions.

Authentication

All parts of our API require authentication. We offer traditional HTTP basic access authentication and API key authentication.

Additionally, API Permissions must be enabled on the user account that is used to authenticate API requests.

Successful authentication allows access to corresponding resources as the used user credentials include.

Basic Access authentication

Basic access authentication – commonly referred to as "basic auth" or HTTP authentication – uses the same login credentials as the web interface.

Simply add Authorization header to your request with a base64 encoded username and password. Example header: Authorization: Basic .

API Key authentication

API-Key: c031d56b97320ab3c0690850d52d8059d998f4d7851b3c15e2586b5594745aee

API keys are obtained through the web interface. In order to generate an API key in the first place, user must have API permissions enabled. Currently three simultaneously active keys per user are allowed.

To generate new API keys and list existing ones, go to Settings and open API Keys -tab. This page lists all active API keys generated by the user and allows fetching their corresponding API tokens.

Deleting keys (and thus preventing their further use) is also possible through this page. API keys also track some information about their use that is displayed on this page.

customer_data

The customer_data API allows you to store data about customers (prospects) in the Vainu database, so that it can be used in the Vainu website to aid in various tasks. It also serves as a link between the prospects in your own database, and the ones in Vainu's database.

Configuring Customer API integration

An example request body that is sent when exporting from Vainu:

    {
      "email": "pietari@vainu.io",
      "visiting_municipality": "HELSINKI",
      "turnover_estimate": null,
      "turn_over_local": "2069292.78",
      "twitter_link": "https://twitter.com/vainuio?ref_src=twsrc%5Egoogle%7Ctwcamp%5Eserp%7Ctwgr%5Eauthor",
      "visiting_postal": "00100",
      "id": "5b92523ac080c66a45f61e3f",
      "vainu_link": "https://app.vainu.io/vainu/prospect/708216/",
      "industry_code": "6201",
      "development_of_turnover": "-4.3",
      "postal": "00100",
      "company_name": "Vainu. io Software Oy",
      "facts": [
        {
          "value": "Startup",
          "type": "theme"
        },
        {
          "value": "SaaS",
          "type": "domain"
        }
      ],
      "profit": "-15.2",
      "visiting_address": "Arkadiankatu 6 D",
      "mother_foreign": null,
      "industry_code_5": 62010,
      "industry_code_2": 62,
      "turn_over": "2069292.78",
      "staff_number": "39",
      "visiting_city": "HELSINKI",
      "registration_date": "2013-8-7",
      "city": "HELSINKI",
      "alexa_rank_global": 352941,
      "industry_codes": [
        "62010"
      ],
      "marketility": 0.8,
      "nstatus": "active",
      "facebook_link": "https://www.facebook.com/vainuio/?hc_ref=SEARCH&fref=nf",
      "region": "FI-18",
      "link": "https://product.vainu.io",
      "phone": "040 834 1005",
      "country": "FI",
      "business_id": "25578642",
      "sociality": 0.6,
      "technologies": [
        "Cloudflare",
        "Google analytics",
        "Twitter Ads",
        "No",
        "Hubspot.net"
      ],
      "visiting_region": "FI-18",
      "staff_number_is_estimate": false,
      "address": "Arkadiankatu 6 D",
      "status": "active",
      "linkedin_id": "3803996",
      "mother": null,
      "municipality": "HELSINKI",
      "digitality": 0.63333333333333,
      "vid": 708216
    }

To allow more comprehensive integration features on our end – such as exporting prospect data directly from the Vainu UI and displaying customizable Customer Data – some configurable functionality is offered on Vainu. These configurations can be accessed via Settings and the Integrations -tab. If the user has the correct permissions enabled, a section named Customer API Configuration is visible at the top of the page.

The configurable values are:

Exporting data

Exporting data is possible through Vainu's UI when the endpoint is defined by clicking on the corresponding export button on prospect cards. The data contains prospect information in a similar format as the Prospect Basic Information API. In addition to the prospect data, the request body also contains the id of the customer_data object, which can be used to access the objects with the customer_data api.

Activity Feed

An example of a valid activity feed response that is used to render information about the prospect on the prospect's page in Vainu (the example shows different kinds of valid objects):

    [
        {
            "timestamp": "2018-05-04T07:11:26.000Z",
            "id": "39acd9dc9a9db",
            "header": "Email",
            "text": "Description of the email",
            "type": "email",
            "hide_time": false,
            "user_email": "example@vainu.io",
            "icon": "email"
        },
        {
            "timestamp": "2018-05-04",
            "value": 2000,
            "probability_percent": 20,
            "currency": "EUR",
            "text": "description of opportunity",
            "type": "open",
            "id": "28acd9dc9a9dc",
            "user_email": "example@vainu.io"
        },
        {
            "timestamp": "2019-05-04",
            "hide_time": true,
            "text": "This is a note for prospect with unique_id: lk2lk23",
            "type": "note",
            "id": "11acd9dc9a911",
            "user_email": "example@vainu.io"
        },
        {
            "timestamp": 1497945068,
            "value": 2000,
            "header": "Victory",
            "text": "description of won deal",
            "type": "won",
            "id": "bbacd9dc9a9aa",
            "user_email": "example@vainu.io"
        },
        {
            "timestamp": 1497945061000,
            "value": 2000,
            "text": "description of lost deal",
            "type": "lost",
            "id": "ccacd9dc9a999",
            "user_email": "example@vainu.io"
        },
        {
            "timestamp": 1497945061000,
            "location": "Helsinki",
            "text": "description of meeting",
            "type": "meeting",
            "id": "ccacd9dc9a999",
            "user_email": "example@vainu.io"
        }
    ]

Activity Feed allows displaying custom data on Vainu's UI regarding the latest activity with a customer. This includes events like phone calls, meetings, e-mails, notes, lost/won deals, etc... Activity Feed is fetched real time for always displaying up-to-date information and to eliminate the need for saving this possibly delicate data on our end. In order to fetch and display activity data, the configurations should be correctly defined and your endpoint needs to return a json array of objects describing recent events relating to the prospect.

The Activity Feed URL is defined as follows:

Activity feed URL in your Vainu settings:

https://your.external.service/Entity/{}/details

When user opens a prospect card with associated Customer Data that has unique_id value of 123-abc, a request is sent to the parsed address

https://your.external.service/Entity/123-abc/details

A description of the properties of the event objects:

Modifying queries

Query parameters

The GET, PATCH and DELETE methods of the /customer_data/ endpoint support various query parameters that allow you to filter the results of the operations. In addition to the parameters that are listed, it is possible to append the parameter names with one of the following to filter based on other than equality
(for example ?won_deals_count__gte=3):

Ordering

Use the query parameter ordering to sort based on a field. A minus sign reverses the order. For example:

?ordering=-open_deals_count

Pagination

By default 100 results are shown per page. This can be modified by using the page_size parameter, and the page number can be specified with the page parameter. A maximum of 500 results per page is supported. Results include links to the next and previous pages, and null if no more pages are available.

Create customer_data object by matching with a vainu prospect

Code samples

import requests

API_KEY = 'your_api_key'  # from Vainu settings
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'API-Key': API_KEY
} 
body = {
  "owner_email": "example@vainu.io",
  "unique_id": "f39a1a59",
  "won_deals_count": 2,
  "open_deals_count": 1,
  "lost_deals_count": 0,
  "notes": "string",
  "last_update": "2018-06-08",
  "vid": 463880794,
  "exact_name": "Vainu Finland Oy",
  "normalize_name": "vainu",
  "business_id": "2822996-6",
  "country": "FI"
}
r = requests.post('https://api.vainu.io/api/v1/customer_data/',
	params={},
	json=body,
	headers=headers
)

print(r.json())


curl -X POST https://api.vainu.io/api/v1/customer_data/ \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'API-Key: API_KEY' \
  --data '{"owner_email":"example@vainu.io","unique_id":"f39a1a59","won_deals_count":"2","open_deals_count":"1","lost_deals_count":"0","notes":"string","last_update":"2018-06-08","vid":"463880794","exact_name":"Vainu Finland Oy","normalize_name":"vainu","business_id":"2822996-6","country":"FI"}'

const fetch = require('node-fetch');  // install node-fetch if not installed (npm install node-fetch).
const inputBody = {
  "owner_email": "example@vainu.io",
  "unique_id": "f39a1a59",
  "won_deals_count": 2,
  "open_deals_count": 1,
  "lost_deals_count": 0,
  "notes": "string",
  "last_update": "2018-06-08",
  "vid": 463880794,
  "exact_name": "Vainu Finland Oy",
  "normalize_name": "vainu",
  "business_id": "2822996-6",
  "country": "FI"
};
const headers = {
  'Content-Type':'application/json',  
  'Accept':'application/json',  
  'API-Key':'API_KEY'    // replace API_KEY with your api key from Vainu settings 

};

fetch('https://api.vainu.io/api/v1/customer_data/',
{
  method: 'POST',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

POST /customer_data/

Save data into the object and match with a prospect in the vainu database.

The customer_data object will be linked to a prospect based on the matching parameters that are included in the request body. Only one customer_data object is allowed for each prospect. A request body must include a matching parameter.

The possible matching parameters, ordered by matching priority:

  1. vid (the Vainu id of the prospect)
  2. business_id
  3. exact_name
  4. normalize_name

Only one of these matching parameters is used to find the correct prospect. If more than one is given, only the one with the highest priority is taken into account. Additional parameters can be given to narrow down the number of possible matches:

Descriptions of the matching parameters:

vid:

The vainu id is the unique integer identifier of every prospect. It can be found, for example in the url when viewing the prospect on Vainu's website. Matching with a vainu id will always match one or zero prospects, so any additional matching parameters will be ignored.

business_id:

It is highly recommended to include the country of the business to avoid matching businesses with the same id in other countries. The format of this parameter varies depending on the country.

exact_name:

The exact name of the business as found on Vainu's website. Case insensitive.

normalize_name:

The value given is converted to a normalized form, where common endings and prefixes are stripped. The conversion depends on the given country, so for accurate results, a country should be given. A name without endings is kept as is.

The converted value is then matched with normalized names in Vainu's database. Using this parameter often fails to find a unique match, but this may be desired behaviour if a prospect in a CRM should be matched with multiple prospects in Vainu, or if the user should manually select the best match. Case insensitive.

country:

A two-letter country code (ISO 3166-1 alpha-2) of the prospect. Case insensitive.

Multiple possible matches:

If the given parameters return multiple matches, an error is returned that includes a list of possible matches. If matching with one or more of the returned prospects is desired, it is recommended to use the given vid s to send more requests.

Create multiple customer_data object with one asynchronous request:

Initiating the creation of multiple customer_data object is done in the same way as for single customer_data object, but instead of a single object, the request body should include an array of the same objects as when creating a single customer_data object. The response does not include the results, but an object with a link, and sending a GET request to the given address returns the results that have been completed so far and the state of the process. See GET /async_result/batch-import/{job_id}/ Only one process is allowed at a time. If you need to stop a previous process, see DELETE /async_result/batch-import/{job_id}/

Body parameter

{
  "owner_email": "example@vainu.io",
  "unique_id": "f39a1a59",
  "won_deals_count": 2,
  "open_deals_count": 1,
  "lost_deals_count": 0,
  "notes": "string",
  "last_update": "2018-06-08",
  "vid": 463880794,
  "exact_name": "Vainu Finland Oy",
  "normalize_name": "vainu",
  "business_id": "2822996-6",
  "country": "FI"
}

Parameters

Name In Type Required Description
body body #/components/schemas_hide/CustomerDataPost false none

Example responses

200 Response

{
  "owner_email": "example@vainu.io",
  "unique_id": "f39a1a59",
  "won_deals_count": 2,
  "open_deals_count": 1,
  "lost_deals_count": 0,
  "notes": "string",
  "last_update": "2018-06-08",
  "won": true,
  "origin": "PublicApi",
  "modified": "2018-06-09T12:30:39.923Z",
  "created": "2018-06-09T12:20:21.341Z",
  "prospect_info": {
    "vid": 463880794,
    "company_name": "Vainu Finland Oy",
    "business_id": "2822996-6",
    "country": "FI",
    "domain": "vainu.io"
  },
  "id": "2b1961522a6e7f19c3e5ac08",
  "prospect": 463880794
}

Responses

Status Meaning Description Schema
200 OK OK CustomerData
200 Unknown OK, response to async post Inline
400 Unknown Match parameter missing Inline
400 Unknown Invalid business id or insufficient country permissions Inline
400 Unknown Match not found Inline
400 Unknown Multiple possible matches Inline
400 Unknown Match parameter missing Inline
400 Unknown Multiple possible matches for business id Inline
409 Unknown Link already exists Inline
409 Unknown Async process already exists. Inline

Response Schema

Get multiple customer_data objects

Code samples

import requests

API_KEY = 'your_api_key'  # from Vainu settings
headers = {
  'Accept': 'application/json',
  'API-Key': API_KEY
} 

r = requests.get('https://api.vainu.io/api/v1/customer_data/',
	params={},
	headers=headers
)

print(r.json())


curl -X GET https://api.vainu.io/api/v1/customer_data/ \
  -H 'Accept: application/json' \
  -H 'API-Key: API_KEY'

const fetch = require('node-fetch');  // install node-fetch if not installed (npm install node-fetch).

const headers = {
  'Accept':'application/json',  
  'API-Key':'API_KEY'    // replace API_KEY with your api key from Vainu settings 

};

fetch('https://api.vainu.io/api/v1/customer_data/',
{
  method: 'GET',
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /customer_data/

Parameters

Name In Type Required Description
won_deals_count query integer false Filter
lost_deals_count query integer false Filter
open_deals_count query integer false Filter
won query boolean false Filter
unique_id query string false Filter
owner_email query string false Filter
last_update query string false Filter
prospect query string false Filter by vid

Example responses

200 Response

{
  "total_results": 1,
  "next_page": "https://api.vainu.io/api/v1/customer_data/?page=2",
  "prev_page": null,
  "results": [
    {
      "owner_email": "example@vainu.io",
      "unique_id": "f39a1a59",
      "won_deals_count": 2,
      "open_deals_count": 1,
      "lost_deals_count": 0,
      "notes": "string",
      "last_update": "2018-06-08",
      "won": true,
      "origin": "PublicApi",
      "modified": "2018-06-09T12:30:39.923Z",
      "created": "2018-06-09T12:20:21.341Z",
      "prospect_info": {
        "vid": 463880794,
        "company_name": "Vainu Finland Oy",
        "business_id": "2822996-6",
        "country": "FI",
        "domain": "vainu.io"
      },
      "id": "2b1961522a6e7f19c3e5ac08",
      "prospect": 463880794
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK OK #/components/schemas_hide/Page
400 Bad Request Invalid query Inline

Response Schema

Modify multiple customer_data objects

Code samples

import requests

API_KEY = 'your_api_key'  # from Vainu settings
headers = {
  'Accept': 'application/json',
  'API-Key': API_KEY
} 

r = requests.patch('https://api.vainu.io/api/v1/customer_data/',
	params={},
	headers=headers
)

print(r.json())


curl -X PATCH https://api.vainu.io/api/v1/customer_data/ \
  -H 'Accept: application/json' \
  -H 'API-Key: API_KEY'

const fetch = require('node-fetch');  // install node-fetch if not installed (npm install node-fetch).

const headers = {
  'Accept':'application/json',  
  'API-Key':'API_KEY'    // replace API_KEY with your api key from Vainu settings 

};

fetch('https://api.vainu.io/api/v1/customer_data/',
{
  method: 'PATCH',
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

PATCH /customer_data/

Update all objects that match the query in the url. Returns objects that are found based on the query after modification. If the query includes fields that were modified, this will NOT return the modified objects, but what is found with a new query. This is equivalent to using PATCH on every object individually, except that changing the prospect is not possible.

Warning: Doing this without any query parameters will modify EVERY customer_data object you have access to!!

Parameters

Name In Type Required Description
won_deals_count query integer false Filter
lost_deals_count query integer false Filter
open_deals_count query integer false Filter
won query boolean false Filter
unique_id query string false Filter
owner_email query string false Filter
last_update query string false Filter
prospect query string false Filter by vid

Example responses

200 Response

{
  "total_results": 1,
  "next_page": "https://api.vainu.io/api/v1/customer_data/?page=2",
  "prev_page": null,
  "results": [
    {
      "owner_email": "example@vainu.io",
      "unique_id": "f39a1a59",
      "won_deals_count": 2,
      "open_deals_count": 1,
      "lost_deals_count": 0,
      "notes": "string",
      "last_update": "2018-06-08",
      "won": true,
      "origin": "PublicApi",
      "modified": "2018-06-09T12:30:39.923Z",
      "created": "2018-06-09T12:20:21.341Z",
      "prospect_info": {
        "vid": 463880794,
        "company_name": "Vainu Finland Oy",
        "business_id": "2822996-6",
        "country": "FI",
        "domain": "vainu.io"
      },
      "id": "2b1961522a6e7f19c3e5ac08",
      "prospect": 463880794
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK OK #/components/schemas_hide/Page
400 Bad Request Invalid query Inline

Response Schema

Delete multiple customer_data objects

Code samples

import requests

API_KEY = 'your_api_key'  # from Vainu settings
headers = {
  'Accept': 'application/json',
  'API-Key': API_KEY
} 

r = requests.delete('https://api.vainu.io/api/v1/customer_data/',
	params={},
	headers=headers
)

print(r.json())


curl -X DELETE https://api.vainu.io/api/v1/customer_data/ \
  -H 'Accept: application/json' \
  -H 'API-Key: API_KEY'

const fetch = require('node-fetch');  // install node-fetch if not installed (npm install node-fetch).

const headers = {
  'Accept':'application/json',  
  'API-Key':'API_KEY'    // replace API_KEY with your api key from Vainu settings 

};

fetch('https://api.vainu.io/api/v1/customer_data/',
{
  method: 'DELETE',
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

DELETE /customer_data/

Deletes all customer_data objects that match the query. You can use the GET method with the same query parameters to see what would be deleted

Warning: Doing this without any query parameters will delete EVERY customer_data object you have access to!!

Parameters

Name In Type Required Description
won_deals_count query integer false Filter
lost_deals_count query integer false Filter
open_deals_count query integer false Filter
won query boolean false Filter
unique_id query string false Filter
owner_email query string false Filter
last_update query string false Filter
prospect query string false Filter by vid

Example responses

200 Response

{
  "deleted": 2
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Invalid query Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
» deleted integer false none none

Get customer_data object by id

Code samples

import requests

API_KEY = 'your_api_key'  # from Vainu settings
headers = {
  'Accept': 'application/json',
  'API-Key': API_KEY
} 

r = requests.get('https://api.vainu.io/api/v1/customer_data/{id}/',
	params={},
	headers=headers
)

print(r.json())


curl -X GET https://api.vainu.io/api/v1/customer_data/{id}/ \
  -H 'Accept: application/json' \
  -H 'API-Key: API_KEY'

const fetch = require('node-fetch');  // install node-fetch if not installed (npm install node-fetch).

const headers = {
  'Accept':'application/json',  
  'API-Key':'API_KEY'    // replace API_KEY with your api key from Vainu settings 

};

fetch('https://api.vainu.io/api/v1/customer_data/{id}/',
{
  method: 'GET',
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /customer_data/{id}/

Get the customer_data object specified by the id.

Parameters

Name In Type Required Description
id path string true The id of the object to get

Example responses

200 Response

{
  "owner_email": "example@vainu.io",
  "unique_id": "f39a1a59",
  "won_deals_count": 2,
  "open_deals_count": 1,
  "lost_deals_count": 0,
  "notes": "string",
  "last_update": "2018-06-08",
  "won": true,
  "origin": "PublicApi",
  "modified": "2018-06-09T12:30:39.923Z",
  "created": "2018-06-09T12:20:21.341Z",
  "prospect_info": {
    "vid": 463880794,
    "company_name": "Vainu Finland Oy",
    "business_id": "2822996-6",
    "country": "FI",
    "domain": "vainu.io"
  },
  "id": "2b1961522a6e7f19c3e5ac08",
  "prospect": 463880794
}

Responses

Status Meaning Description Schema
200 OK OK CustomerData
404 Not Found Not found None

Modify customer_data object

Code samples

import requests

API_KEY = 'your_api_key'  # from Vainu settings
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'API-Key': API_KEY
} 
body = {
  "owner_email": "example@vainu.io",
  "unique_id": "f39a1a59",
  "won_deals_count": 2,
  "open_deals_count": 1,
  "lost_deals_count": 0,
  "notes": "string",
  "last_update": "2018-06-08",
  "vid": 463880794,
  "exact_name": "Vainu Finland Oy",
  "normalize_name": "vainu",
  "business_id": "2822996-6",
  "country": "FI"
}
r = requests.patch('https://api.vainu.io/api/v1/customer_data/{id}/',
	params={},
	json=body,
	headers=headers
)

print(r.json())


curl -X PATCH https://api.vainu.io/api/v1/customer_data/{id}/ \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'API-Key: API_KEY' \
  --data '{"owner_email":"example@vainu.io","unique_id":"f39a1a59","won_deals_count":"2","open_deals_count":"1","lost_deals_count":"0","notes":"string","last_update":"2018-06-08","vid":"463880794","exact_name":"Vainu Finland Oy","normalize_name":"vainu","business_id":"2822996-6","country":"FI"}'

const fetch = require('node-fetch');  // install node-fetch if not installed (npm install node-fetch).
const inputBody = {
  "owner_email": "example@vainu.io",
  "unique_id": "f39a1a59",
  "won_deals_count": 2,
  "open_deals_count": 1,
  "lost_deals_count": 0,
  "notes": "string",
  "last_update": "2018-06-08",
  "vid": 463880794,
  "exact_name": "Vainu Finland Oy",
  "normalize_name": "vainu",
  "business_id": "2822996-6",
  "country": "FI"
};
const headers = {
  'Content-Type':'application/json',  
  'Accept':'application/json',  
  'API-Key':'API_KEY'    // replace API_KEY with your api key from Vainu settings 

};

fetch('https://api.vainu.io/api/v1/customer_data/{id}/',
{
  method: 'PATCH',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

PATCH /customer_data/{id}/

Modify a customer_data object. If match parameters are included, will try to make a new match.

Body parameter

{
  "owner_email": "example@vainu.io",
  "unique_id": "f39a1a59",
  "won_deals_count": 2,
  "open_deals_count": 1,
  "lost_deals_count": 0,
  "notes": "string",
  "last_update": "2018-06-08",
  "vid": 463880794,
  "exact_name": "Vainu Finland Oy",
  "normalize_name": "vainu",
  "business_id": "2822996-6",
  "country": "FI"
}

Parameters

Name In Type Required Description
id path string true The id of the object that needs to be modified.
body body #/components/schemas_hide/CustomerDataPost false none

Example responses

404 Response

{
  "detail": "Not found"
}

Responses

Status Meaning Description Schema
200 OK OK None
404 Not Found Not found Inline
400 Unknown Invalid business id or insufficient country permissions Inline
400 Unknown Match not found Inline
400 Unknown Multiple possible matches Inline
400 Unknown Match parameter missing Inline
400 Unknown Multiple possible matches for business id Inline
409 Unknown Link already exists Inline

Response Schema

Delete customer_data object

Code samples

import requests

API_KEY = 'your_api_key'  # from Vainu settings
headers = {
  'API-Key': API_KEY
} 

r = requests.delete('https://api.vainu.io/api/v1/customer_data/{id}/',
	params={},
	headers=headers
)

print(r.json())


curl -X DELETE https://api.vainu.io/api/v1/customer_data/{id}/ \
  -H 'API-Key: API_KEY'

const fetch = require('node-fetch');  // install node-fetch if not installed (npm install node-fetch).

const headers = {
  'API-Key':'API_KEY'    // replace API_KEY with your api key from Vainu settings 

};

fetch('https://api.vainu.io/api/v1/customer_data/{id}/',
{
  method: 'DELETE',
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

DELETE /customer_data/{id}/

Delete the customer_data object specified by the id.

Parameters

Name In Type Required Description
id path string true The id of the object that needs to be deleted.

Responses

Status Meaning Description Schema
200 OK OK None
404 Not Found Not found None

async_result

View the status of creating multiple customer_data objects with POST /customer_data/, or stop a resulting process.

Poll the status of an asynchronous task

Code samples

import requests

API_KEY = 'your_api_key'  # from Vainu settings
headers = {
  'Accept': 'application/json',
  'API-Key': API_KEY
} 

r = requests.get('https://api.vainu.io/api/v1/async_result/batch-import/{job_id}/',
	params={},
	headers=headers
)

print(r.json())


curl -X GET https://api.vainu.io/api/v1/async_result/batch-import/{job_id}/ \
  -H 'Accept: application/json' \
  -H 'API-Key: API_KEY'

const fetch = require('node-fetch');  // install node-fetch if not installed (npm install node-fetch).

const headers = {
  'Accept':'application/json',  
  'API-Key':'API_KEY'    // replace API_KEY with your api key from Vainu settings 

};

fetch('https://api.vainu.io/api/v1/async_result/batch-import/{job_id}/',
{
  method: 'GET',
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /async_result/batch-import/{job_id}/

The response includes the results (with possible error codes) that have been completed so far and the state of the process.

Possible values for state are "process" (the process is running), "failure" (the process has failed), stopped" (the process has been stopped by the user) and "completed" (the process has completed).

Parameters

Name In Type Required Description
job_id path string true The id of the job

Example responses

200 Response

{
  "job_id": "2096be0a-817d-40b6-b743-cff45f777c21",
  "created": "2018-06-15T11:47:39.479000",
  "results": [
    {
      "match_parameters": {
        "exact_name": "Vainu Finland Oy"
      },
      "matched_prospect": {
        "country": "FI",
        "domain": "vainu.io",
        "company_name": "Vainu Finland Oy",
        "vid": 463880794,
        "business_id": "28229966"
      },
      "id": "5b237d31d3fee90010d1b1d4",
      "success": true,
      "error": null
    },
    {
      "success": false,
      "matched_prospect": null,
      "existing_id": "5b237d31d3fee90010d1b1d4",
      "match_parameters": {
        "exact_name": "Vainu Finland Oy"
      },
      "error": "MATCH_ALREADY_EXISTS",
      "id": null
    },
    {
      "match_parameters": {
        "business_id": "324-123"
      },
      "matched_prospect": null,
      "id": null,
      "success": false,
      "error": "INVALID_BUSINESSID"
    },
    {
      "max_number_of_matches_shown": 100,
      "success": false,
      "matched_prospect": null,
      "match_parameters": {
        "normalize_name": "vainu"
      },
      "possible_matches": [
        {
          "country": "US",
          "domain": null,
          "company_name": "VAINU INC.",
          "vid": 605731521,
          "business_id": "US_DE6240535"
        },
        {
          "country": "FI",
          "domain": "vainu.io",
          "company_name": "Vainu Finland Oy",
          "vid": 463880794,
          "business_id": "28229966"
        },
        {
          "country": "US",
          "domain": "vainu.io",
          "company_name": "VAINU INC.",
          "vid": 339608722,
          "business_id": "US_NY5058589"
        }
      ],
      "number_of_matches": 3,
      "error": "MULTIPLE_POSSIBLE_MATCHES",
      "id": null
    }
  ],
  "state": "completed",
  "link": "https://api.vainu.io/api/v1/async_result/batch-import/2096be0a-817d-40b6-b743-cff45f777c21/",
  "duration": "7.14",
  "progress": 100
}

Responses

Status Meaning Description Schema
200 OK OK Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
» job_id string false none none
» results [object] false none An array describing the results that have been completed. Includes the same error codes as when creating single objects.
»» error string false none none
»» id string false none none
»» success boolean false none none
» state string false none none
» link string false none none
» duration string false none none
» progress integer false none percent completed

Stop an asynchronous task

Code samples

import requests

API_KEY = 'your_api_key'  # from Vainu settings
headers = {
  'Accept': 'application/json',
  'API-Key': API_KEY
} 

r = requests.delete('https://api.vainu.io/api/v1/async_result/batch-import/{job_id}/',
	params={},
	headers=headers
)

print(r.json())


curl -X DELETE https://api.vainu.io/api/v1/async_result/batch-import/{job_id}/ \
  -H 'Accept: application/json' \
  -H 'API-Key: API_KEY'

const fetch = require('node-fetch');  // install node-fetch if not installed (npm install node-fetch).

const headers = {
  'Accept':'application/json',  
  'API-Key':'API_KEY'    // replace API_KEY with your api key from Vainu settings 

};

fetch('https://api.vainu.io/api/v1/async_result/batch-import/{job_id}/',
{
  method: 'DELETE',
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

DELETE /async_result/batch-import/{job_id}/

Stops the asynchronous task specified by job_id. Returns the state of the task like with GET, but state is now "stopped".

Parameters

Name In Type Required Description
job_id path string true The id of the job

Example responses

200 Response

{
  "job_id": "b1fd98ea-c575-4773-b995-74187facf042",
  "created": "2018-06-13T10:11:13.885000",
  "results": [
    {
      "match_parameters": {
        "exact_name": "Vainu Finland Oy"
      },
      "matched_prospect": {
        "country": "FI",
        "domain": "vainu.io",
        "company_name": "Vainu Finland Oy",
        "vid": 463880794,
        "business_id": "28229966"
      },
      "id": "5b237d31d3fee90010d1b1d4",
      "success": true,
      "error": null
    },
    {
      "success": false,
      "matched_prospect": null,
      "existing_id": "5b237d31d3fee90010d1b1d4",
      "match_parameters": {
        "exact_name": "Vainu Finland Oy"
      },
      "error": "MATCH_ALREADY_EXISTS",
      "id": null
    }
  ],
  "state": "stopped",
  "link": "https://api.vainu.io/api/v1/async_result/batch-import/b1fd98ea-c575-4773-b995-74187facf042/",
  "progress": 67
}

Responses

Status Meaning Description Schema
200 OK OK Inline

Response Schema

prospect

Prospect Basic Information

Code samples

import requests

API_KEY = 'your_api_key'  # from Vainu settings
headers = {
  'Accept': 'application/json',
  'API-Key': API_KEY
} 

r = requests.get('https://api.vainu.io/api/v1/prospect/{BUSINESS_ID_without_dash}/',
	params={},
	headers=headers
)

print(r.json())


curl -X GET https://api.vainu.io/api/v1/prospect/{BUSINESS_ID_without_dash}/ \
  -H 'Accept: application/json' \
  -H 'API-Key: API_KEY'

const fetch = require('node-fetch');  // install node-fetch if not installed (npm install node-fetch).

const headers = {
  'Accept':'application/json',  
  'API-Key':'API_KEY'    // replace API_KEY with your api key from Vainu settings 

};

fetch('https://api.vainu.io/api/v1/prospect/{BUSINESS_ID_without_dash}/',
{
  method: 'GET',
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /prospect/{BUSINESS_ID_without_dash}/

Get basic information about a prospect.

Parameters

Name In Type Required Description
BUSINESS_ID_without_dash path string true The business id. For example: FI09704098

Example responses

200 Response

{
  "business_id": "09704098",
  "status": "active",
  "registration_date": "1994-6-8",
  "company_name": "Oy Samlink Ab",
  "link": "www.samlink.fi",
  "phone": "09548050",
  "industry_code_2": 62,
  "industry_code_5": 62010,
  "industry_code": "62010",
  "address": "Linnoitustie 9",
  "postal": "02600",
  "city": "ESPOO",
  "visiting_address": "Linnoitustie 9",
  "visiting_postal": "02600",
  "visiting_city": "ESPOO",
  "country": "FI",
  "turn_over": "93116557.0",
  "turn_over_local": null,
  "turnover_estimate": null,
  "profit": "8.0",
  "development_of_turnover": "4.2",
  "staff_number": "399",
  "staff_number_is_estimate": false,
  "vainu_link": "https://app.vainu.io/vainu/prospect/253870/",
  "linkedin_id": "43072",
  "twitter_link": "http://twitter.com/khttps://twitter.com/Samlink_Oy?lang=firiesi",
  "facebook_link": "https://www.facebook.com/Samlinkoy/?fref=ts",
  "technologies": [
    "Apache",
    "Google analytics",
    "Wordpress",
    "Fi",
    "En",
    "Sv",
    "Wordpress 4",
    "Flash",
    "Nb",
    "Wordpress super cache",
    "Sonera.net",
    "Jquery 1.11.3",
    "Twitter",
    "Youtube",
    "_(\"BLOG\")",
    "Www",
    "Javascript",
    "Jquery",
    "Sonera.fi",
    "Vimeo",
    "_(\"RESPONSIVE\")",
    "Facebook",
    "Doubleclick",
    "Google maps",
    "Google font api",
    "Dropbox",
    "_(\"OWN_EMAIL_SERVER\")",
    "Php",
    "un",
    "Yammer"
  ],
  "digitality": 0.1,
  "sociality": 0.1,
  "marketility": 0.05,
  "alexa_rank_global": 940296,
  "mother": null,
  "mother_foreign": null
}

Responses

Status Meaning Description Schema
200 OK OK Inline
404 Not Found Not found None

Response Schema

Prospect All Information

Code samples

import requests

API_KEY = 'your_api_key'  # from Vainu settings
headers = {
  'Accept': 'application/json',
  'API-Key': API_KEY
} 

r = requests.get('https://api.vainu.io/api/v1/prospect/{BUSINESS_ID_without_dash}/all/',
	params={},
	headers=headers
)

print(r.json())


curl -X GET https://api.vainu.io/api/v1/prospect/{BUSINESS_ID_without_dash}/all/ \
  -H 'Accept: application/json' \
  -H 'API-Key: API_KEY'

const fetch = require('node-fetch');  // install node-fetch if not installed (npm install node-fetch).

const headers = {
  'Accept':'application/json',  
  'API-Key':'API_KEY'    // replace API_KEY with your api key from Vainu settings 

};

fetch('https://api.vainu.io/api/v1/prospect/{BUSINESS_ID_without_dash}/all/',
{
  method: 'GET',
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /prospect/{BUSINESS_ID_without_dash}/all/

Get prospect basic information, financial data and contacts with single API call.

Parameters

Name In Type Required Description
BUSINESS_ID_without_dash path string true The business id. For example: FI09704098

Example responses

200 Response

{
  "business_id": "09704098",
  "status": "active",
  "registration_date": "1994-6-8",
  "company_name": "Oy Samlink Ab",
  "link": "www.samlink.fi",
  "phone": "09548050",
  "industry_code_2": 62,
  "industry_code_5": 62010,
  "isic_industry_code": "62010",
  "address": "Linnoitustie 9",
  "postal": "02600",
  "city": "ESPOO",
  "visiting_address": "Linnoitustie 9",
  "visiting_postal": "02600",
  "visiting_city": "ESPOO",
  "country": "FI",
  "turn_over": "93116557.0",
  "turn_over_local": null,
  "turnover_estimate": null,
  "profit": "8.0",
  "development_of_turnover": "4.2",
  "staff_number": "399",
  "staff_number_is_estimate": false,
  "vainu_link": "https://app.vainu.io/vainu/prospect/253870/",
  "linkedin_id": "43072",
  "twitter_link": "http://twitter.com/khttps://twitter.com/Samlink_Oy?lang=firiesi",
  "facebook_link": "https://www.facebook.com/Samlinkoy/?fref=ts",
  "financial_statements": [
    {
      "year": 2014,
      "currency_code": "EUR",
      "turn_over_eur": "11111000.0",
      "turn_over_local": null,
      "turn_over_is_estimate": false,
      "development_of_turnover": "1.1",
      "staff_number": 111,
      "net_income_euro": "11110.0",
      "net_income_local": null,
      "equity_to_assets_ratio": "11.1",
      "account_period_start": null,
      "account_period_end": "2014-12-31"
    },
    {
      "year": 2012,
      "currency_code": "EUR",
      "turn_over_eur": "22222.0",
      "turn_over_local": null,
      "turn_over_is_estimate": false,
      "development_of_turnover": "2.2",
      "staff_number": 2222,
      "net_income_euro": "222200.0",
      "net_income_local": null,
      "equity_to_assets_ratio": "22.0",
      "account_period_start": null,
      "account_period_end": "2012-12-31"
    },
    "..."
  ],
  "contacts": [
    {
      "first_name": "John",
      "last_name": "Doe",
      "email": "john@example.com",
      "phone": null,
      "title": "CTO"
    },
    {
      "first_name": "Jane",
      "last_name": "Doe",
      "email": "jane@example.com",
      "phone": "+123123123123",
      "title": "CEO"
    }
  ],
  "prospect_addresses": [
    {
      "visiting_address": "Visiting street address",
      "visiting_postal": "12345",
      "visiting_city": "HELSINKI",
      "address": "Post address 3",
      "postal": "00180",
      "city": "HELSINKI",
      "office_number": null,
      "office_name": null,
      "business_id": null
    },
    ".."
  ],
  "description": "Companys description of them selves.",
  "digitality": 0.1,
  "sociality": 0.1,
  "marketility": 0.05,
  "alexa_rank_global": 940296,
  "mother": null,
  "mother_foreign": null
}

Responses

Status Meaning Description Schema
200 OK OK Inline
404 Not Found Not found None

Response Schema

Prospect Leads

Code samples

import requests

API_KEY = 'your_api_key'  # from Vainu settings
headers = {
  'Accept': 'application/json',
  'API-Key': API_KEY
} 

r = requests.get('https://api.vainu.io/api/v1/prospect/{BUSINESS_ID_without_dash}/leads/',
	params={},
	headers=headers
)

print(r.json())


curl -X GET https://api.vainu.io/api/v1/prospect/{BUSINESS_ID_without_dash}/leads/ \
  -H 'Accept: application/json' \
  -H 'API-Key: API_KEY'

const fetch = require('node-fetch');  // install node-fetch if not installed (npm install node-fetch).

const headers = {
  'Accept':'application/json',  
  'API-Key':'API_KEY'    // replace API_KEY with your api key from Vainu settings 

};

fetch('https://api.vainu.io/api/v1/prospect/{BUSINESS_ID_without_dash}/leads/',
{
  method: 'GET',
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /prospect/{BUSINESS_ID_without_dash}/leads/

Returns leads for prospect from the previous 90 days.

Parameters

Name In Type Required Description
BUSINESS_ID_without_dash path string true The business id. For example: FI09704098

Example responses

200 Response

[
  {
    "prospects": [
      {
        "business_id": "25578642",
        "company_name": "WithinSights Oy"
      },
      {
        "business_id": "01011385",
        "company_name": "Tieto Oyj"
      }
    ],
    "added": "2015-08-20T08:52:50",
    "title": "Tieto ja Sibelius-Seura yhteistyöhön ",
    "link": "http://www.marmai.fi/uutiset/tieto+ja+sibeliusseura+yhteistyohon/a2319760",
    "tags": [
      "Kumppanuudet ja yhteistyöprojektit"
    ],
    "vainu_link": "https://app.vainu.io/vainu/prospect/108324"
  },
  {
    "prospects": [
      {
        "business_id": "01011385",
        "company_name": "Tieto Oyj"
      }
    ],
    "added": "2015-08-18T06:00:00",
    "title": "Tieto and First Investment Bank launch in-house acquiring",
    "link": "http://news.cision.com/tieto-oyj/r/tieto-and-first-investment-bank-launch-in-house-acquiring,c9814811",
    "tags": [
      "Organisaatiomuutokset"
    ],
    "vainu_link": "https://app.vainu.io/vainu/prospect/108324"
  },
  {
    "prospects": [
      {
        "business_id": "01011385",
        "company_name": "Tieto Oyj"
      }
    ],
    "added": "2015-08-17T19:48:44",
    "title": "Amerikkalainen Epic voitti suomalaisen Apotti-kilvassa",
    "link": "http://www.talouselama.fi/uutiset/amerikkalainen+epic+voitti+suomalaisen+apottikilvassa/a2319298",
    "tags": [
      "Projektit"
    ],
    "vainu_link": "https://app.vainu.io/vainu/prospect/108324"
  },
  "..."
]

Responses

Status Meaning Description Schema
200 OK OK Inline
404 Not Found Not found None

Response Schema

Prospect Contacts

Code samples

import requests

API_KEY = 'your_api_key'  # from Vainu settings
headers = {
  'Accept': 'application/json',
  'API-Key': API_KEY
} 

r = requests.get('https://api.vainu.io/api/v1/prospect/{BUSINESS_ID_without_dash}/contacts/',
	params={},
	headers=headers
)

print(r.json())


curl -X GET https://api.vainu.io/api/v1/prospect/{BUSINESS_ID_without_dash}/contacts/ \
  -H 'Accept: application/json' \
  -H 'API-Key: API_KEY'

const fetch = require('node-fetch');  // install node-fetch if not installed (npm install node-fetch).

const headers = {
  'Accept':'application/json',  
  'API-Key':'API_KEY'    // replace API_KEY with your api key from Vainu settings 

};

fetch('https://api.vainu.io/api/v1/prospect/{BUSINESS_ID_without_dash}/contacts/',
{
  method: 'GET',
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /prospect/{BUSINESS_ID_without_dash}/contacts/

Returns the contacts of a prospect.

Parameters

Name In Type Required Description
BUSINESS_ID_without_dash path string true The business id. For example: FI09704098

Example responses

200 Response

[
  {
    "first_name": "Toivo",
    "last_name": "Toimitusjohtaja",
    "email": "toivo.toimitusjohtaja@samlink.fi",
    "phone": "",
    "title": "Toimitusjohtaja",
    "prospect": "Yritys Oy"
  },
  {
    "first_name": "Anni",
    "last_name": "Annisuku",
    "email": "anni.annisuku@example.com",
    "phone": "0501234123",
    "title": "Asiakkuusjohtaja",
    "prospect": "Yritys Oy"
  },
  "..."
]

Responses

Status Meaning Description Schema
200 OK OK Inline
404 Not Found Not found None

Response Schema

Prospect Financial Statements

Code samples

import requests

API_KEY = 'your_api_key'  # from Vainu settings
headers = {
  'Accept': 'application/json',
  'API-Key': API_KEY
} 

r = requests.get('https://api.vainu.io/api/v1/prospect/{BUSINESS_ID_without_dash}/financial_statements/',
	params={},
	headers=headers
)

print(r.json())


curl -X GET https://api.vainu.io/api/v1/prospect/{BUSINESS_ID_without_dash}/financial_statements/ \
  -H 'Accept: application/json' \
  -H 'API-Key: API_KEY'

const fetch = require('node-fetch');  // install node-fetch if not installed (npm install node-fetch).

const headers = {
  'Accept':'application/json',  
  'API-Key':'API_KEY'    // replace API_KEY with your api key from Vainu settings 

};

fetch('https://api.vainu.io/api/v1/prospect/{BUSINESS_ID_without_dash}/financial_statements/',
{
  method: 'GET',
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /prospect/{BUSINESS_ID_without_dash}/financial_statements/

Get yearly financial data of prospect.

Parameters

Name In Type Required Description
BUSINESS_ID_without_dash path string true The business id. For example: FI09704098

Example responses

200 Response

[
  {
    "year": 2014,
    "currency_code": "EUR",
    "turn_over_eur": "7035193000.0",
    "turn_over_local": null,
    "turn_over_is_estimate": false,
    "development_of_turnover": "14.3",
    "staff_number": 6198,
    "net_income_euro": "2077084000.0",
    "net_income_local": null,
    "equity_to_assets_ratio": "58.7",
    "account_period_start": null,
    "account_period_end": null
  },
  {
    "year": 2013,
    "currency_code": "EUR",
    "turn_over_eur": "6153660833.0",
    "turn_over_local": null,
    "turn_over_is_estimate": false,
    "development_of_turnover": "-12.2",
    "staff_number": 5998,
    "net_income_euro": "-42387687.0",
    "net_income_local": null,
    "equity_to_assets_ratio": "36.5",
    "account_period_start": null,
    "account_period_end": null
  },
  "..."
]

Responses

Status Meaning Description Schema
200 OK OK Inline
404 Not Found Not found None

Response Schema

prospects filter

Prospect Filter

Code samples

import requests

API_KEY = 'your_api_key'  # from Vainu settings
headers = {
  'Accept': 'application/json',
  'API-Key': API_KEY
} 

r = requests.get('https://api.vainu.io/api/v1/prospects/filter/',
	params={  'business_ids': '25578642,09704098'},
	headers=headers
)

print(r.json())


curl -X GET https://api.vainu.io/api/v1/prospects/filter/?business_ids=25578642%2C09704098 \
  -H 'Accept: application/json' \
  -H 'API-Key: API_KEY'

const fetch = require('node-fetch');  // install node-fetch if not installed (npm install node-fetch).

const headers = {
  'Accept':'application/json',  
  'API-Key':'API_KEY'    // replace API_KEY with your api key from Vainu settings 

};

fetch('https://api.vainu.io/api/v1/prospects/filter/?business_ids=25578642%2C09704098',
{
  method: 'GET',
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /prospects/filter/

Filter prospects using a simple API.

For best performance include the country filter in your filter query.

Returned content type

For historical reasons as default the API returns content type:
Content-Type: text/html; charset=utf-8

To return the right json content_type add GET param &content_type=json:
Content-Type: application/json

Supported filter types:

No filter type is an wildcard match *Test*

Supported fields for filtering:

business_id, registration_date, company_name, link, domain, phone, industry_codes, address, postal, city, country, municipality, visiting_address, visiting_city, visiting_postal, visiting_municipality, turn_over, profit, development_of_turnover, staff_number, nstatus

Sorting

Sorting is specified with ‘order’ GET parameter. Sorting is possible with all the fields that support for filtering. Ascending order can be specified with a leading ‘-‘ character.

Fast sorting (ascending or descending) is supported with fields: business_id, company_name, visiting_postal, visiting_city , business_id, vainu_score, turn_over, alexa_rank_global.

Sorting and filtering with turn_over and staff_number

The parent company of group structure will be sorted and filter based on the total turn_over and staff_number of the entire group structure.

The rest of the companies in the company group structure are filtered and sorted based on their own staff_number and turn_over.

Null value sort behaviour

Null values are sorted to the beginning of ascending sort order and to the end of descending sort order. Null values can be excluded with value__ne=null filter.

Examples:

Count

Get the total number of results with parameter ?count=true or include the count in the results with count=include. Including the count in the results will cause the query to be 1.5-2 times slower.

Limit and offset

Limit / offset can be specified with GET parameters limit / offset.

Region filtering

FIlter regions with ISO 3166-2 standard. Example ISO 3166-2 areas for Nordics:

Example query:

Company status queries

Filtering out inactive companies can be done by using the nstatus (Normalized status) filtering parameter.

As default only active companies are returned.

Definitions:

Address and postal code queries

For best results we recommend filtering companies with address is using the visiting_ fields ( visiting_address, visiting_city, visiting_postal). If our data has no visiting address but we have a regular address, the regular address is copied to visting address data.

Industry codes queries

Use industry_codes field to filter with industry_code. Field uses the local value of the industry code spesific to the country. The first value of the list represents the primary industry code.

Fields industry_code_2, industry_code_5 and industry_code will be depricated in the next version of the API.

Local formats for countries:

Examples

Filtering examples:

Parameters can be GET parameters or POST payload.

Additional fields:

To get additional fields in the response, use the fields parameter to specify a list of field names: ?fields=e_invoice_addresses,identity

Available additional fields are:

Parameters

Name In Type Required Description
business_ids query string true Filter

Example responses

200 Response

[
  {
    "business_id": "25578642",
    "status": "active",
    "registration_date": "2013-8-7",
    "company_name": "Vainu. io Software Oy",
    "link": "vainu.io",
    "phone": "+358 40 8341005",
    "industry_code_2": 62,
    "industry_code_5": 62010,
    "industry_code": "62010",
    "address": "Arkadiankatu 6 D",
    "postal": "00100",
    "city": "HELSINKI",
    "municipality": "HELSINKI",
    "visiting_address": "Arkadiankatu 6 D",
    "visiting_postal": "00100",
    "visiting_city": "HELSINKI",
    "visiting_municipality": "HELSINKI",
    "country": "FI",
    "currency_code": "SEK",
    "turn_over": "604000.0",
    "turn_over_local": null,
    "turn_over_is_estimate": false,
    "profit": "3.2",
    "development_of_turnover": "2007.0",
    "staff_number": "12",
    "staff_number_is_estimate": false,
    "vainu_link": "https://app.vainu.io/vainu/prospect/708216/",
    "linkedin_id": "3803996",
    "twitter_link": "https://twitter.com/vainuio",
    "facebook_link": "https://www.facebook.com/vainuio/"
  },
  {
    "business_id": "1231234",
    "status": "active",
    "registration_date": "2013-12-10",
    "company_name": "Examply Oy",
    "link": "www.example.com",
    "phone": null,
    "industry_code_2": 96,
    "industry_code_5": 96090,
    "industry_code": "96090",
    "address": "Street 3",
    "postal": "12345",
    "city": "HELSINKI",
    "municipality": "HELSINKI",
    "visiting_address": "Street 3",
    "visiting_postal": "12345",
    "visiting_city": "HELSINKI",
    "visiting_municipality": "HELSINKI",
    "country": "FI",
    "currency_code": "SEK",
    "turn_over": null,
    "turn_over_local": null,
    "turn_over_is_estimate": false,
    "profit": null,
    "development_of_turnover": null,
    "staff_number": null,
    "staff_number_is_estimate": false,
    "vainu_link": "https://app.vainu.io/vainu/prospect/702931/",
    "linkedin_id": null,
    "twitter_link": null,
    "facebook_link": "https://www.facebook.com/..."
  },
  "...."
]

Responses

Status Meaning Description Schema
200 OK OK Inline
404 Not Found Not found None

Response Schema

target_groups

List Target Groups

Code samples

import requests

API_KEY = 'your_api_key'  # from Vainu settings
headers = {
  'Accept': 'application/json',
  'API-Key': API_KEY
} 

r = requests.get('https://api.vainu.io/api/v1/target_groups/',
	params={},
	headers=headers
)

print(r.json())


curl -X GET https://api.vainu.io/api/v1/target_groups/ \
  -H 'Accept: application/json' \
  -H 'API-Key: API_KEY'

const fetch = require('node-fetch');  // install node-fetch if not installed (npm install node-fetch).

const headers = {
  'Accept':'application/json',  
  'API-Key':'API_KEY'    // replace API_KEY with your api key from Vainu settings 

};

fetch('https://api.vainu.io/api/v1/target_groups/',
{
  method: 'GET',
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /target_groups/

Returns user's target groups as a list with name and id.

Example responses

200 Response

[
  {
    "id": "12341234ab70b42bffd6a713",
    "name": "Target Group 1",
    "is_named_target_group": false,
    "default": false
  },
  {
    "id": "12341234ab70b40e0875f685",
    "name": "Portfolio",
    "is_named_target_group": true,
    "default": false
  }
]

Responses

Status Meaning Description Schema
200 OK OK Inline
404 Not Found Not found None

Response Schema

Create Target Group

Code samples

import requests

API_KEY = 'your_api_key'  # from Vainu settings
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'API-Key': API_KEY
} 
body = {
  "name": "New Portfolio",
  "is_named_target_group": true
}
r = requests.post('https://api.vainu.io/api/v1/target_groups/',
	params={},
	json=body,
	headers=headers
)

print(r.json())


curl -X POST https://api.vainu.io/api/v1/target_groups/ \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'API-Key: API_KEY' \
  --data '{"name":"New Portfolio","is_named_target_group":"true"}'

const fetch = require('node-fetch');  // install node-fetch if not installed (npm install node-fetch).
const inputBody = {
  "name": "New Portfolio",
  "is_named_target_group": true
};
const headers = {
  'Content-Type':'application/json',  
  'Accept':'application/json',  
  'API-Key':'API_KEY'    // replace API_KEY with your api key from Vainu settings 

};

fetch('https://api.vainu.io/api/v1/target_groups/',
{
  method: 'POST',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

POST /target_groups/

Create target group. Optional parameter: is_named_target_group, default: true

Body parameter

{
  "name": "New Portfolio",
  "is_named_target_group": true
}

Parameters

Name In Type Required Description
body body any false none

Example responses

200 Response

{
  "id": "“12341234ab70b40e0875f685\"",
  "name": "New Portfolio",
  "is_named_target_group": true,
  "default": false
}

Responses

Status Meaning Description Schema
200 OK OK Inline
404 Not Found Not found None

Response Schema

Get Single Target Group

Code samples

import requests

API_KEY = 'your_api_key'  # from Vainu settings
headers = {
  'Accept': 'application/json',
  'API-Key': API_KEY
} 

r = requests.get('https://api.vainu.io/api/v1/target_groups/{target_group_id}',
	params={},
	headers=headers
)

print(r.json())


curl -X GET https://api.vainu.io/api/v1/target_groups/{target_group_id} \
  -H 'Accept: application/json' \
  -H 'API-Key: API_KEY'

const fetch = require('node-fetch');  // install node-fetch if not installed (npm install node-fetch).

const headers = {
  'Accept':'application/json',  
  'API-Key':'API_KEY'    // replace API_KEY with your api key from Vainu settings 

};

fetch('https://api.vainu.io/api/v1/target_groups/{target_group_id}',
{
  method: 'GET',
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /target_groups/{target_group_id}

Parameters

Name In Type Required Description
target_group_id path string true The id of the object to get.

Example responses

200 Response

{
  "id": "12341234ab70b40e0875f685",
  "name": "New Portfolio",
  "is_named_target_group": true,
  "default": false
}

Responses

Status Meaning Description Schema
200 OK OK Inline
404 Not Found Not found None

Response Schema

Update Target Group

Code samples

import requests

API_KEY = 'your_api_key'  # from Vainu settings
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'API-Key': API_KEY
} 
body = {
  "name": "New Portfolio Updated",
  "business_ids": [
    "25578642",
    "01141622"
  ],
  "company_names": [
    "Nokia Solutions and Networks Oy",
    "UPM-Kymmene Oyj"
  ]
}
r = requests.put('https://api.vainu.io/api/v1/target_groups/{target_group_id}',
	params={},
	json=body,
	headers=headers
)

print(r.json())


curl -X PUT https://api.vainu.io/api/v1/target_groups/{target_group_id} \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'API-Key: API_KEY' \
  --data '{"name":"New Portfolio Updated","business_ids":"25578642,01141622","company_names":"Nokia Solutions and Networks Oy,UPM-Kymmene Oyj"}'

const fetch = require('node-fetch');  // install node-fetch if not installed (npm install node-fetch).
const inputBody = {
  "name": "New Portfolio Updated",
  "business_ids": [
    "25578642",
    "01141622"
  ],
  "company_names": [
    "Nokia Solutions and Networks Oy",
    "UPM-Kymmene Oyj"
  ]
};
const headers = {
  'Content-Type':'application/json',  
  'Accept':'application/json',  
  'API-Key':'API_KEY'    // replace API_KEY with your api key from Vainu settings 

};

fetch('https://api.vainu.io/api/v1/target_groups/{target_group_id}',
{
  method: 'PUT',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

PUT /target_groups/{target_group_id}

Special Parameters:

Body parameter

{
  "name": "New Portfolio Updated",
  "business_ids": [
    "25578642",
    "01141622"
  ],
  "company_names": [
    "Nokia Solutions and Networks Oy",
    "UPM-Kymmene Oyj"
  ]
}

Parameters

Name In Type Required Description
body body any false none
target_group_id path string true The id of the object to get.

Example responses

200 Response

{
  "id": "12341234ab70b40e0875f685",
  "name": "New Portfolio Updated",
  "is_named_target_group": true,
  "default": false
}

Responses

Status Meaning Description Schema
200 OK OK Inline
404 Not Found Not found None

Response Schema

target_group

Target Group Prospects

Code samples

import requests

API_KEY = 'your_api_key'  # from Vainu settings
headers = {
  'Accept': 'application/json',
  'API-Key': API_KEY
} 

r = requests.get('https://api.vainu.io/api/v1/target_group/{target_group_id}/',
	params={},
	headers=headers
)

print(r.json())


curl -X GET https://api.vainu.io/api/v1/target_group/{target_group_id}/ \
  -H 'Accept: application/json' \
  -H 'API-Key: API_KEY'

const fetch = require('node-fetch');  // install node-fetch if not installed (npm install node-fetch).

const headers = {
  'Accept':'application/json',  
  'API-Key':'API_KEY'    // replace API_KEY with your api key from Vainu settings 

};

fetch('https://api.vainu.io/api/v1/target_group/{target_group_id}/',
{
  method: 'GET',
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /target_group/{target_group_id}/

Get the prospects in the target group.

Parameters

Name In Type Required Description
count query boolean false When not included, returns the count and results. When included and true, returns only the count, and when included and false, returns only the results. Returning only the results is faster than returning the results and count.
limit query integer false The maximum number of prospects to return. Default is 20. Can be disabled with limit=none .
offset query integer false Offset for pagination.
target_group_id path string true The id of the object to get.

Example responses

200 Response

{
  "count": 68520,
  "results": [
    {
      "business_id": "01032880",
      "company_name": "AAC Global Oy",
      "link": "http://www.aacglobal.com",
      "isic_industry_code": "85593",
      "address": "Porkkalankatu 20 C",
      "postal": "00180",
      "city": "HELSINKI",
      "country": "FI",
      "turn_over": "13026000.0",
      "staff_number": "112",
      "development_of_turnover": "-6.7",
      "profit": "5.9"
    },
    {
      "business_id": "21619427",
      "company_name": "3Step IT Oy",
      "link": "http://www.3stepit.com/fi",
      "isic_industry_code": "62010",
      "address": "Mechelininkatu 1 A",
      "postal": "00180",
      "city": "HELSINKI",
      "country": "FI",
      "turn_over": "276148973.0",
      "staff_number": "74",
      "development_of_turnover": "20.8",
      "profit": "6.4"
    },
    "..."
  ]
}

Responses

Status Meaning Description Schema
200 OK OK Inline
404 Not Found Not found None

Response Schema

Target Group Leads

Code samples

import requests

API_KEY = 'your_api_key'  # from Vainu settings
headers = {
  'Accept': 'application/json',
  'API-Key': API_KEY
} 

r = requests.get('https://api.vainu.io/api/v1/target_group/{target_group_id}/leads/',
	params={},
	headers=headers
)

print(r.json())


curl -X GET https://api.vainu.io/api/v1/target_group/{target_group_id}/leads/ \
  -H 'Accept: application/json' \
  -H 'API-Key: API_KEY'

const fetch = require('node-fetch');  // install node-fetch if not installed (npm install node-fetch).

const headers = {
  'Accept':'application/json',  
  'API-Key':'API_KEY'    // replace API_KEY with your api key from Vainu settings 

};

fetch('https://api.vainu.io/api/v1/target_group/{target_group_id}/leads/',
{
  method: 'GET',
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /target_group/{target_group_id}/leads/

Example URLs:

Latest feeds for Target Group.

Get the Target Group ID with Target Groups API.

Without from_datetime argument, Leads from the previous day (00:00) to this moment will be returned for Target Group.

Parameters

Name In Type Required Description
target_group_id path string true The id of the object to get.
from_datetime query string false Return all leads from a datetime (ISO_8601 formatted) to now. Valid values are ISO_8601 datetimes between now and (now - 60 days)

Example responses

200 Response

[
  {
    "id": 1231234,
    "prospects": [
      {
        "business_id": "01080233",
        "company_name": "Finnair Oyj"
      }
    ],
    "datetime": "2015-12-04T13:18:43.611",
    "title": "Positiivinen tulosjulkistus Finnairilta",
    "link": "http://www.linkki.fi/liidi/",
    "tags": [
      "Tulosjulkistus - positiivinen"
    ],
    "vainu_link": "https://app.vainu.io/vainu/prospect/1214074"
  },
  {
    "id": 1231235,
    "prospects": [
      {
        "business_id": "01080233",
        "company_name": "Finnair Oyj"
      }
    ],
    "datetime": "2015-12-04T13:18:43.611",
    "title": " Fuusio Finnair ja Testi yrityksen välillä",
    "link": "http://www.toinenlinkki.fi/liidi/",
    "tags": [
      "Fuusiot, jakautumiset, yrityskaupat"
    ],
    "vainu_link": "https://app.vainu.io/vainu/prospect/1214074"
  },
  "..."
]

Responses

Status Meaning Description Schema
200 OK OK Inline
404 Not Found Not found None

Response Schema

enrich_data

Match and retrieve company data

Code samples

import requests

API_KEY = 'your_api_key'  # from Vainu settings
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'API-Key': API_KEY
} 
body = {
  "company_name": "Netflix",
  "business_id": "US_WY2001000419120",
  "country": "US",
  "state": "WY",
  "street_address": "100 Winchester Circle",
  "postal_code": "95032",
  "city": "LOS GATOS"
}
r = requests.post('https://api.vainu.io/api/v1/enrich_data/',
	params={},
	json=body,
	headers=headers
)

print(r.json())


curl -X POST https://api.vainu.io/api/v1/enrich_data/ \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'API-Key: API_KEY' \
  --data '{"company_name":"Netflix","business_id":"US_WY2001000419120","country":"US","state":"WY","street_address":"100 Winchester Circle","postal_code":"95032","city":"LOS GATOS"}'

const fetch = require('node-fetch');  // install node-fetch if not installed (npm install node-fetch).
const inputBody = {
  "company_name": "Netflix",
  "business_id": "US_WY2001000419120",
  "country": "US",
  "state": "WY",
  "street_address": "100 Winchester Circle",
  "postal_code": "95032",
  "city": "LOS GATOS"
};
const headers = {
  'Content-Type':'application/json',  
  'Accept':'application/json',  
  'API-Key':'API_KEY'    // replace API_KEY with your api key from Vainu settings 

};

fetch('https://api.vainu.io/api/v1/enrich_data/',
{
  method: 'POST',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

POST /enrich_data/

This endpoint allows you to enrich your company data with data from Vainu.

The endpoint takes in data about a company in the post body, and attempts to find a matching company in the Vainu database.

If a match is found, all related information about the company is returned.

Often the data can be matched with multiple companies. To retrieve a list of possible matches, use the query parameter multi in the url, for example /enrich_data/?multi=true. In this case, the results will be returned in order, starting with the best match.

To include only certain fields in the response, use the query parameter include, for example /enrich_data/?include=company_name,business_id

To exclude some fields and include all others, use the query parameter exclude.

By default, a maximum of 20 leads are returned, but to include more or less, you can use the leads query parameter to limit their number, for example /enrich_data/?leads=50

If you have access to multiple countries, including the country of the business also has a big impact on performance.

Matching parameters:

Include matching parameters in the request body. At least one field marked with an asterisk* is required. Available parameters are:

The matching parameter company_name does not have to be exactly the same as the one in Vainu database, but some rules apply:

Asynchronous results for lists of data:

A sample response to an asynchronous request:

  {
      "job_id": "18176755-4c2f-4686-b743-7bcaac0768b1",
      "created": "2018-10-08T15:27:11.201556",
      "results": [],
      "state": "accepted",
      "link": "https://api.vainu.io/api/v1/async_result/batch-match/18176755-4c2f-4686-b743-7bcaac0768b1/",
      "progress": 0
  }

Sending a GET request to the url in the link, https://api.vainu.io/api/v1/async_result/batch-match/18176755-4c2f-4686-b743-7bcaac0768b1/ returns the following response:

  {
    "total_rows":1,
    "job_id":"18176755-4c2f-4686-b743-7bcaac0768b1",
    "created":"2018-10-08T15:27:11.201000",
    "finished":"2018-10-08T15:27:13.274000",
    "results":[
      {
        {
          "company_name":"Vainu.io"
          "more data":"..."
        }
      }
    ],
    "elapsed_time":"0:00:02.073000",
    "state":"completed",
    "progress":1
  }

For large amounts of data, it may be prefereable to do this operation on a list of data instead of individual requests.

This method allows for much faster matching of lists of data without the need for simultaneous requests.

To do this, instead of a json object, include a list of these objects. The response will not include the results, but a link to the status of the process, where the results will be shown when they are ready.

The results are returned as a list where the companies are in the same order as they were given.

The state of the process will be completed when it is done.

A maximum of 50000 companies can be matched in one request if multi is not true, and 2000 otherwise.

The same parameters can be used as when matching one company at a time.

The country code MUST be included in the url, for example: ?country=US

Matching multiple companies is therefore only possible for one country at a time.

It is possible to only have one running process at a time.

Body parameter

{
  "company_name": "Netflix",
  "business_id": "US_WY2001000419120",
  "country": "US",
  "state": "WY",
  "street_address": "100 Winchester Circle",
  "postal_code": "95032",
  "city": "LOS GATOS"
}

Parameters

Name In Type Required Description
body body object false none
» company_name body string false none
» business_id body string false none
» vid body integer false none
» country body string false none
» domain body string false none

Example responses

200 Response

{
  "accounting_firm": "PricewaterhouseCoopers Oy",
  "address": "Pohjoinen Makasiinikatu 3",
  "address_country": "FI",
  "alexa_country_code": null,
  "alexa_rank_country": null,
  "alexa_rank_delta": null,
  "alexa_rank_global": null,
  "alexa_rank_reach": null,
  "area": 37,
  "avg_num_videos_per_month": null,
  "bookkeeping_firm": null,
  "bookkeeping_firm_normalized": null,
  "branch_number": null,
  "branch_status": null,
  "bs_provisions": null,
  "bs_provisions_local": null,
  "bs_total_assets": null,
  "bs_total_assets_local": null,
  "bs_total_current_liabilities": null,
  "bs_total_current_liabilities_local": null,
  "bs_total_equity": null,
  "bs_total_equity_and_liab": null,
  "bs_total_equity_and_liab_local": null,
  "bs_total_equity_local": null,
  "bs_total_fix_assets": null,
  "bs_total_fix_assets_local": null,
  "bs_total_long_term_debts": null,
  "bs_total_long_term_debts_local": null,
  "bs_total_turnover_assets": null,
  "bs_total_turnover_assets_local": null,
  "bs_untaxed_reserves": null,
  "bs_untaxed_reserves_local": null,
  "business_id": "28229966",
  "business_ids": null,
  "career_page_job_count": null,
  "cash_flow_from_op_percent": null,
  "charges": null,
  "city": "HELSINKI",
  "company_hiring_links": null,
  "company_level": null,
  "company_name": "Vainu Finland Oy",
  "company_name_l": [
    "vainu finland oy",
    "finland oy"
  ],
  "company_name_s": "vainu finland oy",
  "company_name_s_short": "vainu",
  "company_name_unofficial": "Vainu.io",
  "company_names": null,
  "company_rss_links": [
    "http://blog.vainu.io/rss.xml",
    "http://blog.vainu.io/rss.xml?hsLang=fi"
  ],
  "companynews_links": [
    "blog.vainu.io/fi/topic/press-release",
    "blog.vainu.io/topic/press-release"
  ],
  "contact_page_urls": [
    "https://company.vainu.io/"
  ],
  "contacts": [
    {
      "first_name": "Mikko Petteri",
      "last_name": "Honkanen",
      "email": "mikko@vainu.io",
      "phone": "+358408330181",
      "title": "Toimitusjohtaja"
    },
    {
      "first_name": "Tuomas Henrik",
      "last_name": "Rasila",
      "email": null,
      "phone": null,
      "title": "Hallitus: varsinainen jäsen"
    }
  ],
  "content_career_page": null,
  "coordinates": {
    "type": "Point",
    "coordinates": [
      24.9508958,
      60.16577460000001
    ]
  },
  "countries": [],
  "country": "FI",
  "county": null,
  "crawled_datetime": "2018-10-08T08:15:52.941",
  "currency_code": "EUR",
  "deregistration_date": null,
  "description": "With our database of 108+ million companies, unique data points, and AI expertise, we’ll solve any problem related to company data by injecting AI-driven data into your decision-making.",
  "development_of_turnover": null,
  "development_of_turnover_class": null,
  "digitality": 0.7333333333333333,
  "dissolution_mode": null,
  "dissolution_registration_date": null,
  "dissolution_successors": null,
  "dividend": null,
  "dividend_local": null,
  "domain": "vainu.io",
  "domain_filled_date": null,
  "domains": [],
  "e_invoice_addresses": [
    [
      "e_invoice_address",
      "invoice_address_name",
      "operator_name",
      "operator_id",
      "operator_business_id",
      "receive",
      "send"
    ]
  ],
  "email": null,
  "employee_salary": null,
  "employee_salary_local": null,
  "employer_register_date": "2017-04-01T12:00:00",
  "equity_to_assets_ratio": 4.4,
  "expiration_date": null,
  "facebook_engagement_rate": null,
  "facebook_likes": null,
  "facebook_link": "https://www.facebook.com/798090590252922",
  "facebook_posts_per_day": null,
  "facebook_ptat": null,
  "facts": [
    {
      "type": "theme",
      "value": "Investments in customer service"
    },
    {
      "type": "theme",
      "value": "Cloud service enthusiasts"
    }
  ],
  "fax": null,
  "financial_statement_keywords": [
    "vastaavan allekirjoitus",
    "päätettiin",
    "vainu",
    "ajoitu",
    "perustuen. tilinpäätös",
    "tilinpäätöksen,jossaei"
  ],
  "financial_statements": [
    {
      "year": 2017,
      "currency_code": "EUR",
      "turn_over_eur": "3267000.0",
      "turn_over_local": "3267000.0",
      "turn_over_is_estimate": false,
      "development_of_turnover": null,
      "staff_number": null,
      "net_income_euro": null,
      "net_income_local": null,
      "equity_to_assets_ratio": "4.4",
      "account_period_start": null,
      "account_period_end": "2017-12-31",
      "profit": -0.7
    }
  ],
  "financial_statements_consolidated": null,
  "form_of_company": "Osakeyhtiö",
  "form_of_company_n": [
    0,
    2,
    5,
    9
  ],
  "form_of_company_vainu": 1,
  "form_of_registration": null,
  "foundation_date": "2013-01-01T12:00:00",
  "funding_rounds": null,
  "http_status_code": 200,
  "id": "59050c321793e620db467e6c",
  "industry_code_2": 62,
  "industry_code_5": 62010,
  "industry_code_crawled_date": null,
  "industry_code_sbi": null,
  "industry_code_tol_2002": "620",
  "industry_codes": null,
  "industry_codes_all": [
    "fi_tol_2008-62010",
    "eu_nace_2-6201",
    "isic_4-6201"
  ],
  "industry_codes_local": [
    "62010"
  ],
  "industry_codes_main": null,
  "industry_codes_main_local": [
    "62010"
  ],
  "industry_codes_other": null,
  "industry_codes_other_local": null,
  "industry_description": null,
  "industry_estimated_date": null,
  "instagram_link_count": null,
  "is_concern": null,
  "isic_industry_code": "62010",
  "isic_industry_code_1": "J",
  "isic_industry_codes": null,
  "jurisdiction": null,
  "keyword_crawled_date": "2018-06-08T22:01:10.269",
  "kr_gross_profit_margin_percent": null,
  "kr_net_margin_percent": null,
  "kr_quick_ratio_percent": null,
  "kr_turnover_per_employee": null,
  "kr_turnover_per_employee_local": null,
  "lat": 60.16577460000001,
  "leads": [
    {
      "id": 146229493,
      "prospects": [
        {
          "business_id": "NO918443525",
          "company_name": "VAINU NORWAY AS"
        },
        {
          "business_id": "28229966",
          "company_name": "Vainu Finland Oy"
        },
        {
          "business_id": "NL65550773",
          "company_name": "Vainu Netherlands B.V."
        },
        {
          "business_id": "US_NY5058589",
          "company_name": "VAINU INC."
        }
      ],
      "datetime": "2018-09-20T17:10:05.611",
      "title": "Vainu.io Opens Another New Office - Expands to Copenhagen, Denmark",
      "link": "https://blog.vainu.io/vainu-expands-to-denmark/",
      "tags": null,
      "vainu_link": ""
    },
    {
      "id": 142636791,
      "prospects": [
        {
          "business_id": "28229966",
          "company_name": "Vainu Finland Oy"
        }
      ],
      "datetime": "2018-09-07T16:04:26.484",
      "title": "New address",
      "link": null,
      "tags": [
        "Uusi osoite"
      ],
      "vainu_link": ""
    }
  ],
  "link": "vainu.io",
  "linkedin_id": "3803996",
  "linkedin_industry": null,
  "linkedin_link": "https://www.linkedin.com/company/3803996",
  "lng": 24.9508958,
  "logo": "58dcfa3c1793e678eb9e26d7_logo.jpeg",
  "marketility": 0.8,
  "modified": "2018-10-22T14:53:30.394",
  "mother": null,
  "mother_business_id_generic": null,
  "mother_foreign": null,
  "municipality": "HELSINKI",
  "nstatus": 0,
  "num_subscribers_per_1000_views": null,
  "orginal_image": "583d81f81793e62647f50ca4.png",
  "owned_percent": null,
  "paye_register_date": "2017-04-01T12:00:00",
  "payroll_overhead": null,
  "payroll_overhead_local": null,
  "permalink": null,
  "phone": null,
  "postal": "00130",
  "postal_int": 130,
  "prh_crawled_date": "2018-10-01T12:29:53.884",
  "products": null,
  "profit": -0.7,
  "profit_estimate": null,
  "prospect_address_count": 1,
  "prospect_addresses": [
    {
      "visiting_address": null,
      "visiting_postal": null,
      "visiting_city": null,
      "address": "Pohjoinen Makasiinikatu 3",
      "postal": "00130",
      "city": "HELSINKI",
      "office_number": null,
      "office_name": null,
      "business_id": null
    }
  ],
  "region": "FI-18",
  "registers": [
    {
      "register": 4,
      "register_name": "Verohallinto",
      "registration_date": "2017-04-21T12:00:00",
      "end_date": null,
      "status": 1,
      "status_description": "Rekisterissä",
      "authority": "Verohallinto",
      "country": "FI"
    }
  ],
  "registration_date": "2017-03-28T12:00:00",
  "registry_url": null,
  "restricted_for_marketing": null,
  "result_before_taxes": 2557.68,
  "right_of_sign": null,
  "rss_feeds": null,
  "salary_board": null,
  "salary_board_local": null,
  "se_industry_code_5": null,
  "semantic_keywords": [
    "peptid",
    "product",
    "thermoform",
    "custom",
    "molder",
    "greenguard",
    "transfect",
    "tailer",
    "ppai",
    "dunnag",
    "reagent",
    "kydex",
    "labwar",
    "paperboard",
    "weldment",
    "enenglish",
    "foodservic",
    "cytokin",
    "distributor",
    "upsel"
  ],
  "social_profiles": [
    {
      "username": "vainuio",
      "userid": "91479389043104622",
      "type_id": "klout"
    },
    {
      "type_id": "instagram"
    },
    {
      "username": "vainu-io",
      "type_id": "linkedincompany"
    },
    {
      "username": "vainuio",
      "type_id": "facebook"
    },
    {
      "username": "vainuio",
      "type_id": "twitter"
    }
  ],
  "sociality": 0.6,
  "staff_cls": null,
  "staff_number": 74,
  "staff_number_estimate": 74,
  "staff_number_lowerlimit": 50,
  "staff_number_upperlimit": 99,
  "state_registration": null,
  "status": null,
  "status_registration_date": null,
  "stock_exchange": null,
  "stock_exchange_date": null,
  "stock_symbol": null,
  "structure": {},
  "themes": null,
  "total_funding_usd": null,
  "trademarks": null,
  "turn_over": 3267000,
  "turn_over_local": 3267000,
  "turn_over_lowerlimit": null,
  "turn_over_upperlimit": null,
  "turnover_cls": 5,
  "turnover_estimate": null,
  "turnover_estimated_date": null,
  "twitter_followers_count": 2034,
  "twitter_link": "https://twitter.com/vainuio",
  "vainu_score": 78.55331262939958,
  "vainu_social_score": null,
  "vat_property_register_date": null,
  "vat_register_date": "2017-04-01T12:00:00",
  "verified_by_users": null,
  "verified_domains": null,
  "vid": 463880794,
  "vids": null,
  "visiting_address": "Pohjoinen Makasiinikatu 3",
  "visiting_address_country": "FI",
  "visiting_address_s": "pohjoinen makasiinikatu 3",
  "visiting_city": "HELSINKI",
  "visiting_coordinates": null,
  "visiting_country": null,
  "visiting_county": null,
  "visiting_lat": 60.16577460000001,
  "visiting_lng": 24.9508958,
  "visiting_municipality": "HELSINKI",
  "visiting_postal": "00130",
  "visiting_postal_int": 130,
  "visiting_region": "FI-18",
  "website_page_count": null,
  "www_index_ip": "128.199.62.154",
  "xbrl_current": null,
  "xbrl_financial_statements": null,
  "youtube_comment_count": null,
  "youtube_link": "https://www.youtube.com/channel/UCRM5l_TYNA8jOvz9gD5zXEg",
  "youtube_subscriber_num": null,
  "youtube_video_count": null,
  "youtube_view_count": null
}

Responses

Status Meaning Description Schema
200 OK OK Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
» form_of_company string false none Company's official form of business (limited liability company, corporation etc.).
» bs_total_current_liabilities float false none Sum of total current liabilities, as seen on the balance sheet.
» linkedin_id string false none Company's Linkedin identifier in numeric format (e.g. linkedin.com/12345 = 12345).
» jurisdiction string false none State under whose laws the company operates.
» leads array false none News articles that are matched to the company.
» registers array false none Public registers that the company is listed on (e.g. export registry)
» form_of_registration string false none none
» foundation_date date-time false none Date the company was founded.
» company_hiring_links array false none Link to the company's career page (can be multiple).
» kr_turnover_per_employee_local float false none Company's revenue divided by their employee count, as found on the balance sheet. In local currency.
» xbrl_financial_statements array false none none
» visiting_address_country string false none Country where the company's visiting address is located.
» fax string false none Fax number of the company.
» industry_estimated_date date-time false none Date the industry was estimated using Vainu's industry estimator.
» total_funding_usd float false none Total sum of funding the company has received (USD).
» business_id string false none Company's local business identification number (state registration number in the U.S.).
» right_of_sign string false none Who has the right to sign for the company (e.g. board members), as found on the balance sheet.
» visiting_postal_int integer false none Company's zip code for the visiting address.
» alexa_rank_global integer false none Global Alexa rank for the company.
» themes array false none Labels given by Vainu to characterize the company (actively hiring, cloud service enthusiast etc.)
» alexa_country_code string false none Country that the company website is registered in for Alexa ranking.
» countries array false none Countries the company has operations in.
» website_page_count integer false none Total number of pages found on the company's website.
» verified_by_users array false none none
» industry_code_2 integer false none Two-digit version of the local industry classification code (e.g. NAICS, SIC).
» industry_code_5 integer false none Five-digit version of the local industry classification code (e.g. NAICS, SIC).
» kr_turnover_per_employee float false none Company's revenue divided by their employee count, as found on the balance sheet.
» visiting_region string false none State the company's visiting address is located in.
» visiting_country string false none Country the company's visiting address is located in.
» facebook_posts_per_day float false none Average number of posts on the company's Facebook page per day.
» facts array false none Facts we have linked to the company (e.g. uses Microsoft products, attended the event Dreamforce in 2018).
» lng float false none Longitude of the company's registered address.
» salary_board float false none Compensation the board of the company receives, as seen in the financial statement.
» bs_provisions_local float false none none
» se_industry_code_5 integer false none 5-digit version of the Swedish industry classification code.
» email string false none General email address for the company (e.g. info@vainu.io)
» visiting_lng float false none Longitude of the company's visiting address.
» accounting_firm string false none Auditor of the company, as seen in the financial statement.
» avg_num_videos_per_month float false none Average number of videos posted per month on the company's Youtube channel.
» bs_total_equity_and_liab float false none Total equity and liabilities, as seen on the balance sheet.
» address string false none Company's registered address.
» dividend float false none Paid dividends, as seen on the balance sheet.
» stock_exchange_date date-time false none Date the company was listed on the stock exchange.
» bs_total_current_liabilities_local float false none Total sum of current liabilities, as seen on the balance sheet.
» company_name_s string false none none
» country string false none Country the company's registered address is in.
» region string false none State the company's registered address is in.
» payroll_overhead_local float false none Total costs of payroll, as found in the balance sheet. In local currency.
» products array false none none
» visiting_lat float false none Latitude of the company's visiting address.
» domains array false none Additional website URLs identified for the company.
» financial_statements_consolidated array false none none
» company_name_l array false none none
» visiting_coordinates array false none Coordinates for the company's visiting address
» industry_code_sbi string false none none
» vid integer false none Company's unique Vainu identifier.
» county string false none County the company's registered address is in.
» employer_register_date date-time false none Date the company joined the employer registry (Europe only).
» company_names array false none All variations of company names identified for the company.
» staff_number_upperlimit integer false none Upper limit of the company's employee count range, when applicable.
» vat_property_register_date date-time false none Date the company joined the local property registry (Europe only).
» branch_number string false none Number of local branches identified for the company.
» staff_number_estimate integer false none Estimated employee count for the company.
» vat_register_date date-time false none Date the company joined the VAT registry (Europe only).
» state_registration string false none none
» restricted_for_marketing boolean false none none
» bookkeeping_firm string false none Accounting firm for the company, as seen in the financial statement.
» bs_total_turnover_assets float false none none
» phone string false none Main phone number for the company.
» is_concern boolean false none none
» bs_total_turnover_assets_local float false none none
» modified date-time false none none
» bs_total_long_term_debts float false none Sum of total long term debts, as seen on the balance sheet.
» mother_foreign string false none Foreign parent company of the organization.
» visiting_address string false none Visiting address of the company.
» currency_code string false none Main currency used by the company as seen in the financial statement (USD, EUR).
» cash_flow_from_op_percent float false none none
» funding_rounds array false none Funding rounds raised by the company.
» turnover_estimated_date date-time false none Date the revenue was estimated using Vainu's revenue estimator.
» industry_codes_main_local array false none none
» dissolution_registration_date date-time false none Date the company was dissolved.
» bs_untaxed_reserves_local float false none none
» career_page_job_count integer false none Numer of open jobs counted on the company's career page.
» id string false none none
» financial_statement_keywords array false none Full text from the financial statement.
» isic_industry_code string false none Company's ISIC industry classification code.
» visiting_address_s string false none none
» visiting_county string false none County of the company's visiting address.
» company_name string false none Official name of the company.
» visiting_postal string false none Zip code of the company's visiting address.
» status string false none Current registration status of the company (active, inactive etc.)
» isic_industry_code_1 string false none One-letter category of the company's ISIC industry.
» description string false none Text description of the company, extracted from public profiles.
» dissolution_mode string false none none
» bs_total_equity float false none Sum of total equity in the company, as seen in the balance sheet.
» result_before_taxes float false none Company's earnings before interest and taxes (EBIT).
» facebook_engagement_rate float false none Engagement rate of the company's Facebook page.
» lat float false none Latitude of the company's registered address.
» permalink string false none Permalink of the company's website.
» company_level integer false none none
» charges array false none none
» kr_net_margin_percent float false none Percentage of revenue remaining after all operating expenses, interest and tax.
» staff_cls integer false none none
» mother string false none Official company name of the parent company.
» youtube_view_count integer false none Number of views on the company's Youtube page.
» twitter_followers_count integer false none Number of Twitter followers.
» bs_total_assets float false none Sum of total assets as found on the balance sheet.
» development_of_turnover float false none Change in revenue from the previous year, as found on the balance sheet.
» company_name_s_short string false none Shortened version of the company's name.
» employee_salary_local float false none Total cost of employee salaries as found on the balance sheet.
» industry_code_tol_2002 string false none Finnish industry classification code.
» www_index_ip string false none Company's website IP address.
» industry_codes_all array false none All identified industry codes for the company.
» business_ids array false none All linked business ids of the company.
» coordinates array false none Coordinates for the registered address of the company.
» company_rss_links array false none Links to all identified rss feeds on the company's website.
» form_of_company_vainu integer false none none
» prospect_addresses array false none All identified addresses for the company.
» vids array false none All linked unique identifiers for the company.
» stock_symbol string false none Stock symbol (Ticker) for the company.
» sociality float false none A score (between 0-1, 1 being maximum) that characterizes how advanced the company is with social media technologies.
» youtube_subscriber_num integer false none Number of subscribers on the company's Youtube page.
» municipality string false none County of the company's registered address.
» registration_date date-time false none Date the business was registered with the local business authority (e.g. State).
» marketility float false none A score (between 0-1, 1 being maximum) that characterizes how advanced the company is with marketing technologies.
» postal string false none Zip code for the company's registered address.
» bs_total_fix_assets float false none Sum of total fixed assets as found on the balance sheet.
» bs_total_fix_assets_local float false none Sum of total fixed assets as found on the balance sheet. In local currency.
» financial_statements array false none Full data from the financial statement per year.
» semantic_keywords array false none Descriptive keywords that have been tagged to the company.
» num_subscribers_per_1000_views float false none Average number of subscribers per 1000 views on a company's Youtube page.
» branch_status string false none none
» domain string false none Website URL of the company.
» visiting_city string false none City of the company's visiting address.
» vainu_score float false none Score (0-100) describing completeness of the company profile in Vainu's database.
» status_registration_date date-time false none none
» rss_feeds object false none Links to RSS feeds found on the company website.
» profit_estimate float false none Estimate of the generated profit for the year.
» logo string false none Logo of the company.
» bs_untaxed_reserves float false none Sum of the untaxed reserves of the company, as found in the balance sheet.
» digitality float false none A score (between 0-1, 1 being maximum) that characterizes how digitally advanced the company is.
» address_country string false none Country of where the registered address is located.
» isic_industry_codes array false none All identified ISIC industry classification codes.
» companynews_links array false none Links to the pages with company news articles on the company's website.
» prh_crawled_date date-time false none Date that the Finnish patent registry was last crawled.
» salary_board_local float false none Compensation the board of the company receives, as seen in the financial statement. In local currency.
» contacts array false none All the contact details identified for the company.
» profit float false none Profit for the company, as found in the financial statement.
» industry_codes_local array false none All industry codes identified for the company that are predominantly used in the local market.
» bookkeeping_firm_normalized string false none Normalized name for the company's accounting firm.
» staff_number integer false none Company's employee count.
» social_profiles array false none Company's social media handles in different social media channels.
» owned_percent float false none none
» mother_business_id_generic object false none Business id for the linked parent company of the organization.
» city string false none City where the registered address is located.
» bs_total_equity_local float false none Sum of total equity, as seen on the balance sheet. In local currency.
» bs_total_equity_and_liab_local float false none Sum of total equity and liabilities, as seen on the balance sheet. In local currency.
» prospect_address_count integer false none Total number of addresses found for the company.
» trademarks array false none List of all trademarks registered to the company.
» industry_codes_main array false none none
» dividend_local float false none Dividends paid out as seen on the balance sheet. In local currenty.
» expiration_date date-time false none none
» http_status_code integer false none Status code for the website.
» paye_register_date date-time false none none
» deregistration_date date-time false none none
» dissolution_successors array false none none
» employee_salary float false none none
» youtube_video_count integer false none Number of videos posted on the company's Youtube channel.
» company_name_unofficial string false none Unofficial business names linked to the company.
» visiting_municipality string false none County that the company's visiting address is located in.
» domain_filled_date date-time false none Date that the website was added to the company profile.
» facebook_likes integer false none Number of likes on the company's Facebook page.
» turnover_estimate float false none Estimated revenue for the company.
» industry_codes_other array false none none
» bs_provisions float false none none
» facebook_ptat integer false none People talking about this metric for the company's Facebook page.
» area integer false none none
» xbrl_current array false none none
» turn_over_upperlimit float false none Upper limit of the company's revenue range, when applicable.
» contact_page_urls array false none Links to the pages on company's website with contact information.
» industry_codes_other_local array false none none
» postal_int integer false none none
» staff_number_lowerlimit integer false none Lower limit of the company's employee count range, when applicable.
» development_of_turnover_class integer false none none
» link string false none Website URL of the company.
» linkedin_industry string false none Linkedin Industry of the company.
» orginal_image string false none none
» form_of_company_n array false none none
» twitter_link string false none Link to the company's Twitter profile.
» alexa_rank_reach integer false none none
» instagram_link_count integer false none Number of links on the website to Instagram.
» industry_description array false none Description of the industry code.
» vainu_social_score float false none none
» nstatus integer false none Whether the company is considered active or not (0 = active).
» youtube_link string false none Link to the company's Youtube page.
» payroll_overhead float false none Total costs of payroll, as found in the balance sheet.
» industry_codes array false none All industry codes identified for the company.
» keyword_crawled_date date-time false none Date the website text was last crawled.
» linkedin_link string false none Link to the company's Linkedin profile.
» kr_gross_profit_margin_percent float false none Percentage of gross profit out of total revenue.
» alexa_rank_delta integer false none Change in the company's Alexa rank since the previous measuring date.
» turnover_cls integer false none none
» turn_over_local float false none Revenue of the company in local currency.
» alexa_rank_country integer false none Country where the company's website is ranked according to Alexa.
» youtube_comment_count integer false none Number of comments on videos posted on the company's Youtube page.
» turn_over_lowerlimit float false none Lower limit of the company's revenue range, when applicable.
» bs_total_assets_local float false none Sum of total assets as found on the balance sheet. In local currency.
» crawled_datetime date-time false none Date that the original entity was crawled into the database.
» stock_exchange string false none Location of the stock exchange the company is listed in.
» e_invoice_addresses array false none The electronic invoice address of the company (Europe only).
» turn_over float false none Exact revenue of the company.
» equity_to_assets_ratio float false none The equity to assets ratio, as found on the balance sheet.
» structure array false none none
» bs_total_long_term_debts_local float false none The sum of total long term debts in the past year, as found on the balance sheet. In local currency.
» facebook_link string false none Link to the facebook page of the company.
» kr_quick_ratio_percent float false none Company's quick ratio as found on the balance sheet.
» verified_domains array false none All verified website URLs for the company.
» industry_code_crawled_date date-time false none Date the company industry codes were crawled.
» content_career_page string false none Full text of the company's career page.
» registry_url string false none Source for the original entity information from the business registry.