NAV Navbar
cURL ruby python javascript php
  • Introduction
  • Authentication
  • Pagination
  • Companies
  • VAT numbers
  • Autocomplete
  • Resources
  • Errors
  • Introduction

    Companydata.co is a platform to get all the data you need about companies. Check it out.

    The following documentation shows how to use the API to enrich your system with company data.

    We have language bindings in Shell (with cURL), Ruby, Python3, Javascript (with Node.js) and PHP! You can view code examples in the dark area to the right, and you can switch the programming language of the examples with the tabs in the top right.

    Authentication

    To authorize, use this code:

    require "net/http"
    require "uri"
    require "json"
    
    uri = URI.parse("https://any_endpoint_here")
    http = Net::HTTP.new(uri.host, uri.port)
    request = Net::HTTP::Get.new(uri.request_uri)
    request.basic_auth("your_api_key", "")
    http.use_ssl = true
    response = http.request(request)
    
    import requests # with Python3
    
    response = requests.get('https://any_endpoint_here', auth=('your_api_key', ''))
    
    # With shell, you can just pass the correct header with each request
    curl -u your_api_key: "https://any_endpoint_here"
    
    const request = require("request"); // npm install request
    
    var url = 'https://your_api_key:@any_endpoint_here';
    
    <?php
    $ch = curl_init('https://any_endpoint_here');
    curl_setopt($ch, CURLOPT_USERPWD, "your_api_key:");
    ?>
    

    Make sure to replace your_api_key with your API key.

    Companydata.co API uses an API key to allow access to the API. You will find your API key on your account page, once registered.

    This is a basic authentication, so Companydata.co API expects for your API key to be included in all API requests to the server in a header that looks like the following:

    Authorization: Basic GdtYWlsLmNvbTo4SHA5dk44MWZrOXFuaURGWU=

    Where GdtYWlsLmNvbTo4SHA5dk44MWZrOXFuaURGWU= is the string "your_api_key:" encoded in base 64.

    Pagination

    For endpoints that use pagination, you can use the parameter page to get a given page (the first page is 1, not 0). Default is 1.

    You can also use the parameter per_page to tell how many items you want per page. Default is 10. Max is 25.

    Note that page and per_page are optional.

    Pagination infos are returned in the response headers:

    Companies

    Search for companies

    require "net/http"
    require "uri"
    require "json"
    
    uri = URI.parse("https://www.companydata.co/api/v1/companies?q=company")
    http = Net::HTTP.new(uri.host, uri.port)
    request = Net::HTTP::Get.new(uri.request_uri)
    request.basic_auth("your_api_key", "")
    http.use_ssl = true
    response = http.request(request)
    
    puts response.code # should be 200
    puts JSON.parse(response.body) # parsed results: array of hash
    
    # Pagination info:
    puts response["X-Pagination-Limit-Value"]
    puts response["X-Pagination-Total-Pages"]
    puts response["X-Pagination-Current-Page"]
    puts response["X-Pagination-Next-Page"]
    puts response["X-Pagination-Prev-Page"]
    puts response["X-Pagination-First-Page"]
    puts response["X-Pagination-Last-Page"]
    puts response["X-Pagination-Out-Of-Range"]
    
    import requests # with Python3
    
    response = requests.get('https://www.companydata.co/api/v1/companies?q=company&page=2&per_page=5', auth=('your_api_key', ''))
    print(response.status_code) # should be 200
    print(response.json()) # parsed results: array of hash
    
    # Pagination info:
    print(response.headers['X-Pagination-Limit-Value'])
    print(response.headers['X-Pagination-Total-Pages'])
    print(response.headers['X-Pagination-Current-Page'])
    print(response.headers['X-Pagination-Next-Page'])
    print(response.headers['X-Pagination-Prev-Page'])
    print(response.headers['X-Pagination-First-Page'])
    print(response.headers['X-Pagination-Last-Page'])
    print(response.headers['X-Pagination-Out-Of-Range'])
    
    curl -u your_api_key: "https://www.companydata.co/api/v1/companies?q=company"
    
    const request = require("request"); // npm install request
    
    var url = 'https://your_api_key:@www.companydata.co/api/v1/companies?q=company&page=2&per_page=5';
    
    request({url: url}, function (error, response, body) {
      console.log(response.statusCode); // should be 200
      console.log(JSON.parse(body)); // parsed results: array of hash
    
      // Pagination infos:
      console.log(response.headers['x-pagination-limit-value']);
      console.log(response.headers['x-pagination-total-pages']);
      console.log(response.headers['x-pagination-current-page']);
      console.log(response.headers['x-pagination-next-page']);
      console.log(response.headers['x-pagination-prev-page']);
      console.log(response.headers['x-pagination-first-page']);
      console.log(response.headers['x-pagination-last-page']);
      console.log(response.headers['x-pagination-out-of-range']);
    });
    
    <?php
    $ch = curl_init('https://www.companydata.co/api/v1/companies?q=company&page=2&per_page=5');
    curl_setopt($ch, CURLOPT_USERPWD, "your_api_key:");
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_HEADER, true);
    
    $response = curl_exec($ch);
    $header_size = curl_getinfo($ch, CURLINFO_HEADER_SIZE);
    curl_close($ch);
    
    $headers = substr($response, 0, $header_size);
    $body = substr($response, $header_size);
    $http_status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    
    print($http_status . "\n"); // should be 200
    print_r(json_decode($body)); // parsed results: array of hash
    
    // Pagination info:
    foreach (explode("\r\n", $headers) as $hdr) {
      print($hdr . "\n");
      /* Prints all the headers, including:
      * X-Pagination-Limit-Value
      * X-Pagination-Total-Pages
      * X-Pagination-Current-Page
      * X-Pagination-Next-Page
      * X-Pagination-Prev-Page
      * X-Pagination-First-Page
      * X-Pagination-Last-Page
      * X-Pagination-Out-Of-Range
      */
    }
    ?>
    

    Replace company by any company name or partial company name you would like to search for. You will receive an array of hash, each hash representing a Company.

    This endpoint retrieves companies, searching by a given query, filters or both.

    HTTP Request

    GET https://www.companydata.co/api/v1/companies?q=<COMPANY_NAME>

    This endpoint is paginated and requires authentication.

    Query Parameters

    Parameter Default Optional Description
    q none Yes The search term
    quality headquarter  Yes The quality of the searched companies ; it can be headquarter (default), branch or all
    activity_code none Yes The activity code to filter on
    city none Yes The city to filter on
    zipcode none Yes The zipcode to filter on
    country none Yes The country to filter on
    country_code none Yes The country code to filter on (ISO Alpha 2)
    page 1 Yes The wanted page
    per_page 10 Yes The items count per page

    Response

    A list of items of kind Company.

    Get a company

    require "net/http"
    require "uri"
    require "json"
    
    uri = URI.parse("https://www.companydata.co/api/v1/companies/identifier")
    http = Net::HTTP.new(uri.host, uri.port)
    request = Net::HTTP::Get.new(uri.request_uri)
    request.basic_auth("your_api_key", "")
    http.use_ssl = true
    response = http.request(request)
    
    puts response.code # should be 200
    puts JSON.parse(response.body) # parsed result: hash
    
    import requests # with Python3
    
    response = requests.get('https://www.companydata.co/api/v1/companies/identifier', auth=('your_api_key', ''))
    print(response.status_code) # should be 200
    print(response.json()) # parsed results: hash
    
    curl -u your_api_key: "https://www.companydata.co/api/v1/companies/identifier"
    
    
    var url = 'https://your_api_key:@www.companydata.co/api/v1/companies/identifier';
    
    request({url: url}, function (error, response, body) {
      console.log(response.statusCode); // should be 200
      console.log(JSON.parse(body)); // parsed results: hash
    });
    
    <?php
    $ch = curl_init('https://www.companydata.co/api/v1/companies/identifier');
    curl_setopt($ch, CURLOPT_USERPWD, "your_api_key:");
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    
    $response = curl_exec($ch);
    $http_status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    curl_close($ch);
    
    print($http_status . "\n"); // should be 200
    print_r(json_decode($response)); // parsed results: hash
    ?>
    

    Replace identifier with any known identifier. You will receive a hash representing a FullCompany.

    This endpoint retrieves a specific company.

    HTTP Request

    GET https://www.companydata.co/api/v1/companies/<IDENTIFIER>

    This endpoint requires authentication.

    URL Parameters

    Parameter Optional Description
    IDENTIFIER No The ID of the company to retreive. It can be an integer id, a slug, a registration number (like the SIREN in France) or a vat number.

    The id and the slug are unique, so there is no doubt on the company you receive in return.

    If you prefer to use a registration number (like the SIREN in France) or a VAT number, as this number can be shared between the headquarter and the branches of the company, you receive the headquarter in return. If the headquarter does not exist, you receive a random branch. If you want to get a company by registration numbers 1 and 2 (like SIREN and NIC in France), please see below.

    Response

    An item of kind FullCompany.

    Get a company by registration numbers

    require "net/http"
    require "uri"
    require "json"
    
    uri = URI.parse("https://www.companydata.co/api/v1/companies/registration_1/registration_2")
    http = Net::HTTP.new(uri.host, uri.port)
    request = Net::HTTP::Get.new(uri.request_uri)
    request.basic_auth("your_api_key", "")
    http.use_ssl = true
    response = http.request(request)
    
    puts response.code # should be 200
    puts JSON.parse(response.body) # parsed result: hash
    
    import requests # with Python3
    
    response = requests.get('https://www.companydata.co/api/v1/companies/registration_1/registration_2', auth=('your_api_key', ''))
    print(response.status_code) # should be 200
    print(response.json()) # parsed results: hash
    
    curl -u your_api_key: "https://www.companydata.co/api/v1/companies/registration_1/registration_2"
    
    
    var url = 'https://your_api_key:@www.companydata.co/api/v1/companies/registration_1/registration_2';
    
    request({url: url}, function (error, response, body) {
      console.log(response.statusCode); // should be 200
      console.log(JSON.parse(body)); // parsed results: hash
    });
    
    <?php
    $ch = curl_init('https://www.companydata.co/api/v1/companies/registration_1/registration_2');
    curl_setopt($ch, CURLOPT_USERPWD, "your_api_key:");
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    
    $response = curl_exec($ch);
    $http_status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    curl_close($ch);
    
    print($http_status . "\n"); // should be 200
    print_r(json_decode($response)); // parsed results: hash
    ?>
    

    Replace registration_1 and registration_2 with the known registration numbers of any company. In France, registration_1 is the SIREN and registration_2 is the NIC. You will receive a hash representing a FullCompany.

    This endpoint retrieves a specific company by it's registration numbers.

    HTTP Request

    GET https://www.companydata.co/api/v1/companies/<REGISRATION_1>/<REGISRATION_2>

    This endpoint requires authentication.

    URL Parameters

    Parameter Optional Description
    REGISTRATION_1 No The first registration number of the company (the SIREN in France)
    REGISTRATION_2 No The second registration number of the company (the NIC in France)

    Response

    An item of kind FullCompany.

    VAT numbers

    Validity check of a VAT number

    require "net/http"
    require "uri"
    require "json"
    
    uri = URI.parse("https://www.companydata.co/api/v1/vats/vat_number")
    http = Net::HTTP.new(uri.host, uri.port)
    request = Net::HTTP::Get.new(uri.request_uri)
    request.basic_auth("your_api_key", "")
    http.use_ssl = true
    response = http.request(request)
    
    puts response.code # should be 200
    puts JSON.parse(response.body) # parsed result: hash
    
    import requests # with Python3
    
    response = requests.get('https://www.companydata.co/api/v1/vats/vat_number', auth=('your_api_key', ''))
    print(response.status_code) # should be 200
    print(response.json()) # parsed results: hash
    
    curl -u your_api_key: "https://www.companydata.co/api/v1/vats/vat_number"
    
    
    var url = 'https://your_api_key:@www.companydata.co/api/v1/vats/vat_number';
    
    request({url: url}, function (error, response, body) {
      console.log(response.statusCode); // should be 200
      console.log(JSON.parse(body)); // parsed results: hash
    });
    
    <?php
    $ch = curl_init('https://www.companydata.co/api/v1/vats/vat_number');
    curl_setopt($ch, CURLOPT_USERPWD, "your_api_key:");
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    
    $response = curl_exec($ch);
    $http_status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    curl_close($ch);
    
    print($http_status . "\n"); // should be 200
    print_r(json_decode($response)); // parsed results: hash
    ?>
    

    Replace vat_number with the VAT number you want to check, for example "FR12345678". You will receive a hash representing a Vat.

    This endpoint checks the validity of a VAT number. The number is validated or invalidated by the European Commission.

    HTTP Request

    GET https://www.companydata.co/api/v1/vats/<VAT_NUMBER>

    This endpoint requires authentication.

    URL Parameters

    Parameter Optional Description
    VAT_NUMBER No The VAT number to check (for example "FR123456789")

    Response

    An item of kind Vat. A VAT number can be valid or invalid.

    Autocomplete

    require "net/http"
    require "uri"
    require "json"
    
    uri = URI.parse("https://www.companydata.co/api/v1/companies/autocomplete?q=company")
    http = Net::HTTP.new(uri.host, uri.port)
    request = Net::HTTP::Get.new(uri.request_uri)
    http.use_ssl = true
    response = http.request(request)
    
    puts response.code # should be 200
    puts JSON.parse(response.body) # parsed results: array of hash
    
    import requests # with Python3
    
    response = requests.get('https://www.companydata.co/api/v1/companies/autocomplete?q=company')
    print(response.status_code) # should be 200
    print(response.json()) # parsed results: array of hash
    
    curl "https://www.companydata.co/api/v1/companies/autocomplete?q=company"
    
    const request = require("request"); // npm install request
    
    request({url: 'https://www.companydata.co/api/v1/companies/autocomplete?q=company'}, function (error, response, body) {
      console.log(response.statusCode); // should be 200
      console.log(JSON.parse(body)); // parsed results: array of hash
    });
    
    <?php
    $ch = curl_init('https://www.companydata.co/api/v1/companies/autocomplete?q=company');
    curl_setopt($ch, CURLOPT_USERPWD, "your_api_key:");
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    
    $response = curl_exec($ch);
    $http_status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    curl_close($ch);
    
    print($http_status . "\n"); // should be 200
    print_r(json_decode($response)); // parsed results: array of hash
    ?>
    

    Replace company by any company name or partial company name you would like to search for. You will receive an array of hash, each hash representing a LightCompany.

    A subpart of the API can be used without authentication to autocomplete API names, for example to create an autocomplete input field:

    autocomplete

    For information, this endpoint only returns headquarters, not branches.

    HTTP Request

    GET https://www.companydata.co/api/v1/companies/autocomplete?q=<COMPANY_NAME>

    This endpoint is not paginated and returns 10 items. It does not require authentication.

    Query Parameters

    Parameter Default Optional Description
    q none No The search term

    Response

    A list of items of kind LightCompany.

    Resources

    A company has several representations, depending on the context:

    The FullCompany also comes with items of kind FinancialYear, giving more detailled data about the financial activity of the company.

    Company

    A company is serialized like this:

    {
        "id": 1689102,
        "name": "ANALYSE IMAGE INTELLI ARTIFIC",
        "slug": "analyse-image-intelli-artific",
        "legal_form": "SAS, société par actions simplifiée",
        "staff": "20 à 49 salariés",
        "presentation": "Recherche, developpement systeme reconnaissance image par moyens informatiques",
        "logo_url": "https://companydata.s3.eu-west-2.amazonaws.com/BkOJRrnBf.jpg%3Foh%3D25d02c0a7ebf0df13406460cd37683a3%26oe%3D5B247D36",
        "activity": "Activités de pré-presse",
        "address": "ANALYSE IMAGE INTELLI ARTIFIC, 37 AU 39, 37 RUE DE LA BIENFAISANCE, 75008 PARIS 8",
        "founded_at": "1991-08-01",
        "country": "France",
        "country_code": "FR",
        "quality": "headquarter",
        "smooth_name": "Analyse Image Intelli Artific",
        "headquarter_id": 1745669,
        "branch_ids": [123456789],
    }
    

    A Company has the following fields:

    Field Type Optional Description
    id integer No Unique ID
    name string No Legal name
    slug string No Unique name (generated)
    smooth_name string No Smooth name (generated)
    legal_form string Yes Legal form
    staff string Yes Estimation of the employees count range
    specialities string Yes Specialities
    presentation string Yes Presentation
    logo_url string Yes URL of the logo
    activity string Yes Activity
    address string Yes Address (address components joined with a coma)
    founded_at string Yes Date of creation
    country string Yes Country
    country_code string Yes Country code (ISO Alpha 2)
    quality string Yes "headquarter" or "branch"
    headquarter_id integer Yes Unique ID of the headquarter if the company is a branch, or null if it is already a headquarter
    branch_ids array No  Array containing the unique IDs of the branches if the company is a headquarter, or the other branches if the company is a branch

    FullCompany

    A full company is serialized like this:

    {
        "id": 1689102,
        "name": "ANALYSE IMAGE INTELLI ARTIFIC",
        "slug": "analyse-image-intelli-artific",
        "legal_form": "SAS, société par actions simplifiée",
        "staff": "20 à 49 salariés",
        "presentation": "Recherche, developpement systeme reconnaissance image par moyens informatiques",
        "logo_url": "https://companydata.s3.eu-west-2.amazonaws.com/BkOJRrnBf.jpg%3Foh%3D25d02c0a7ebf0df13406460cd37683a3%26oe%3D5B247D36",
        "activity": "Activités de pré-presse",
        "address": "ANALYSE IMAGE INTELLI ARTIFIC, 37 AU 39, 37 RUE DE LA BIENFAISANCE, 75008 PARIS 8",
        "founded_at": "1991-08-01",
        "country": "France",
        "country_code": "FR",
        "quality": "headquarter",
        "smooth_name": "Analyse Image Intelli Artific",
        "headquarter_id": 1745669,
        "branch_ids": [123456789],
        "source_url": "https://www.data.gouv.fr/fr/datasets/base-sirene-des-entreprises-et-de-leurs-etablissements-siren-siret",
        "registration_1": "382789154",
        "registration_2": "00053",
        "activity_code": "1813Z",
        "address_line_1": "ANALYSE IMAGE INTELLI ARTIFIC",
        "address_line_2": "",
        "address_line_3": "37 AU 39",
        "address_line_4": "37 RUE DE LA BIENFAISANCE",
        "address_line_5": "",
        "cedex": "",
        "zipcode": "75008",
        "city": "PARIS 8",
        "department_code": "75",
        "department": "Paris",
        "region": "Île-de-France",
        "geolocation": "48.876498,2.314889",
        "revenue": "8308219",
        "vat_number": "FR91382789154",
        "prefix": "Mr",
        "email": "marketing@a2ia.com",
        "phone": "+33 1 44 42 00 80",
        "website": "https://www.a2ia.com",
        "facebook": "https://facebook.com/A2iASoftware",
        "linkedin": "http://www.linkedin.com/company/a2ia",
        "twitter": "https://www.twitter.com/a2ia",
        "crunchbase": "https://crunchbase.com/organization/a2ia",
        "financial_years": [
            {
                "year": "2016",
                "currency": "€",
                "revenue": 8308219,
                "income": 2096451,
                "staff": 51,
                "duration": 12,
                "closing_date": "2016-12-31"
            },
            {
                "year": "2015",
                "currency": "€",
                "revenue": 8812526,
                "income": 3043311,
                "staff": 50,
                "duration": 12,
                "closing_date": "2015-12-31"
            },
            {
                "year": "2014",
                "currency": "€",
                "revenue": 6873829,
                "income": 1468080,
                "staff": null,
                "duration": 12,
                "closing_date": "2014-12-31"
            },
            {
                "year": "2013",
                "currency": "€",
                "revenue": 5848519,
                "income": 1525080,
                "staff": null,
                "duration": 12,
                "closing_date": "2013-12-31"
            }
        ]
    }
    
    

    A FullCompany has the following fields:

    Field Type Optional Description
    id integer No Unique ID
    name string No Legal name
    smooth_name string No Smooth name (generated)
    slug string No Unique name (generated)
    source_url string Yes Main data source
    legal_form string Yes Legal form
    staff string Yes Estimation of the employees count range
    specialities string Yes Specialities
    presentation string Yes Presentation
    logo_url string Yes URL of the logo
    registration_1 string Yes First registration number (in France: SIREN)
    registration_2 string Yes Second registration number (in France: NIC)
    vat_number string Yes VAT number (verified with https://ec.europa.eu)
    activity string Yes Activity
    activity_code string Yes Activity code (in France: APE)
    address string Yes Address (address components joined with a coma)
    address_line_1 string Yes Address first line
    address_line_2 string Yes Address second line
    address_line_3 string Yes Address third line
    address_line_4 string Yes Address fourth line
    address_line_5 string Yes Address fifth line
    cedex string Yes Special zipcode
    zipcode string Yes Zipcode
    city string Yes City
    department_code string Yes Department code
    department string Yes Department
    region string Yes Region
    founded_at string Yes Date of creation
    geolocation string Yes latitude, longitude
    country string Yes Country
    country_code string Yes Country code (ISO Alpha 2)
    quality string Yes "headquarter" or "branch"
    revenue string Yes Estimation of the revenue
    prefix string Yes Prefix of the contact
    phone string Yes Phone number of the contact
    email string Yes Email address of the contact
    headquarter_id integer Yes Unique ID of the headquarter if the company is a branch, or null if it is already a headquarter
    branch_ids array No  Array of the unique IDs of the branches if the company is a headquarter, or the other branches if the company is a branch
    website string Yes Main website URL
    facebook string Yes Facebook page
    twitter string Yes Twitter page
    linkedin string Yes LinkedIn page
    crunchbase string Yes Crunchbase page
    financial_years array Yes Items of kind Financial year

    A Financial year represents a year (more or less) of activity for a Company. It has the following fields:

    Field Type Optional Description
    year string Yes Year of reference
    currency string No Currency
    revenue integer No Revenue
    income integer No Income
    staff integer No Staff
    duration integer No Duration in months
    closing_date string No Closing date

    Vat

    A VAT number is serialized like this:

    {
        "value": "BE0404056765",
        "country_code": "BE",
        "status": "valid",
        "validated_at": "2018-05-08T12:45:31.158Z",
        "company": {
            "id": 12247335,
            "name": "Bouwmaterialen L. Van Den Broeck",
            "slug": "bouwmaterialen-l-van-den-broeck",
            "legal_form": "Société anonyme",
            "staff": null,
            "presentation": null,
            "logo_url": null,
            "activity": "Commerce de gros de matériaux de construction, assortiment général",
            "address": "128, Berlaarsesteenweg, 2500 Lier",
            "founded_at": "1955-02-23",
            "country": "Belgium",
            "country_code": "BE",
            "quality": "headquarter",
            "smooth_name": "Bouwmaterialen L. Van Den Broeck",
            "headquarter_id": null,
            "branch_ids": []
        }
    }
    

    A Vat has the following fields:

    Field Type Optional Description
    value string No Value of the VAT number
    country_code string No Country code
    status string No Actual status, can be valid or invalid
    validated_at string No Date of validation with the European Commission service
    company Item of type Company No The company that owns the VAT number

    LightCompany

    A light company is serialized like this:

    {
        "id": 3690840,
        "smooth_name": "Sarl Mollat",
        "name": "SARL MOLLAT",
        "city": "PLEAUX",
        "country": "France",
        "website_url": "https://www.companydata.co/companies/sarl-mollat",
        "api_url": "https://www.companydata.co/api/v1/companies/sarl-mollat"
    }
    

    A LightCompany has the following fields:

    Field Type Optional Description
    id integer No Unique ID
    smooth_name string No Smooth name (generated)
    name string No Legal name
    city string Yes City
    country string Yes Country
    website_url string Yes URL to see the company details on the website
    api_url string Yes URL to use to access company details through the API

    Errors

    Error Code Meaning
    400 Bad Request -- Your request is invalid.
    401 Unauthorized -- Your API key is wrong or not provided.
    403 Forbidden -- Your plan limit is reached.
    404 Not Found -- The specified company could not be found.
    500 Internal Server Error -- We had a problem with our server. Try again later.
    503 Service Unavailable -- We're temporarily offline for maintenance. Please try again later.