Navigation Toggle Menu

API 2 Documentation

Getting Started

The Startup Genome API is a RESTful webservice setup to enable the development community to access, update, and contribute new data to the ecosystem via their own applications; mobile, web, or otherwise. The base URL is located at http://www.startupgenome.com/api/2/ . Unauthenticated requests are limited to 500 per hour. Authenticated and AJAX requests are limited to 10000 per hour. All API responses are formatted as JSON.

Changes From V1

  • Cross-origin requests (with a valid API key)
  • POST updates to the API
  • Curators can now generate their own API keys
  • Major speed improvements

Authentication

Authentication is recommended to access Startup Genome API resources. Currently, only curators have access to an API key.

API key management can be found by visiting your profile and then clicking on the API Keys navigation item.

To send an authenticated request, you must include your API Key either through a URL query parameter or an HTTP header field. The field name must be "AUTH-CODE".

Slugs

Slugs are human readable identifiers of entities available from the Startup Genome API. Examples include people, organizations, and locations. Most API resources requires a slug as the third path item in the URL. The resources available for a request depend upon the type of entity a slug identifies.

Types with Example Data Objects

Location

slug: http://startupgenome.co/api/2/nebraska-usa

{
  "name": "Nebraska",
  "url": "http:\/\/startupgenome.co\/nebraska-usa",
  "slug": "nebraska-usa",
  "abbreviation": "NE",
  "full_name": "Nebraska, USA",
  "type": "region",
  "parent": "unitedstates",
  "latitude": "41.49253845",
  "longitude": "-99.90180969"
}
            

Organization

slug: http://startupgenome.co/api/2/startup-genome

{
  "type": "organization",
  "url": "http:\/\/33.33.33.2\/startup-genome",
  "slug": "startup-genome",
  "image": "https:\/\/s3.amazonaws.com\/startupgenome-avatars-development\/organizations\/startup-genome.png",
  "investments_made": [

  ],
  "addresses": [
    {
      "line1": "Dundee Ridge Ct.",
      "line2": null,
      "postal_code": null,
      "location": {
        "name": "Omaha",
        "url": "http:\/\/33.33.33.2\/omaha-ne-usa",
        "slug": "omaha-ne-usa",
        "abbreviation": null,
        "full_name": "Omaha, NE",
        "type": "city",
        "parent": "nebraska-usa",
        "latitude": "41.25236130",
        "longitude": "-95.99799347"
      },
      "latitude": "41.25917816",
      "longitude": "-95.98645020",
      "formatted": "Dundee Ridge Ct., Omaha, NE",
      "primary": true
    },
    ...
  ],
  "categories": [
    {
      "plural_name": "Non-Profits",
      "singular_name": "Non-Profit",
      "slug": "non-profits",
      "parent": {
        "plural_name": "Community Enablers",
        "singular_name": "Community Enabler",
        "slug": "community-enablers"
      }
    }
  ],
  "industries": [
    {
      "name": "Internet",
      "slug": "internet"
    }
  ],
  "name": "Startup Genome",
  "employees": "8",
  "description": "Explore your startup community.",
  "joinUrl": "http:\/\/33.33.33.2\/organizations\/join\/startup-genome",
  "hiringUrl": "",
  "founded": "January 2011",
  "founded_timestamp": "1293840000",
  "investments_received": [

  ]
}
            

Person

slug: http://startupgenome.co/api/2/shane

{
  "type": "person",
  "url": "http:\/\/startupgenome.co\/shane",
  "slug": "shane",
  "image": "https:\/\/s3.amazonaws.com\/startupgenome-avatars\/people\/shane.png",
  "investments_made": [

  ],
  "addresses": [
    {
      "line1": null,
      "line2": null,
      "postal_code": null,
      "location": {
        "name": "Omaha",
        "url": "http:\/\/startupgenome.co\/omaha-ne-usa",
        "slug": "omaha-ne-usa",
        "abbreviation": null,
        "full_name": "Omaha, NE",
        "type": "city",
        "parent": "nebraska-usa",
        "latitude": "41.25236130",
        "longitude": "-95.99799347"
      },
      "latitude": "41.25236130",
      "longitude": "-95.99799347",
      "formatted": "Omaha, NE",
      "primary": false
    }
  ],
  "categories": [

  ],
  "industries": [

  ],
  "name": "Shane Reiser",
  "gender": "MALE",
  "given_name": "Shane",
  "family_name": "Reiser",
  "nickname": "",
  "biography": "Cofounder @StartupGenome, Facilitator @StartupWeekend",
  "date_of_birth": "490147200",
  "social_media_sites": {
    "twitter": "http:\/\/twitter.com\/shanereiser",
    "facebook": "http:\/\/facebook.com\/shanereiser",
    "website": "http:\/\/shanereiser.com",
    "blog": "http:\/\/shanereiser.com",
    "crunchbase_person": "http:\/\/crunchbase.com\/person\/shane-reiser",
    "linkedin_person": "http:\/\/linkedin.com\/in\/shanereiser",
    "angellist": "http:\/\/angel.co\/shanereiser",
    "github": "http:\/\/github.com\/shanereiser"
  },
  "curates": [
    {
      "name": "Omaha",
      "url": "http:\/\/startupgenome.co\/omaha-ne-usa",
      "slug": "omaha-ne-usa",
      "abbreviation": null,
      "full_name": "Omaha, NE",
      "type": "city",
      "parent": "nebraska-usa",
      "latitude": "41.25236130",
      "longitude": "-95.99799347"
    }
  ]
}
            

Location Resources

GET /api/2/<location>

Returns a location data object.

GET /api/2/<location>/descendants

Returns an array of location data objects. The first object is the location representing the slug. The remaining objects are descendant locations.

GET /api/2/<location>/organizations

Returns an array of organization data objects located in the geographical area of the location.

GET /api/2/<location>/people

Returns an array of person data objects located in the geographical area of the location.

Organization Resources

GET /api/2/<organization>

Returns an organization data object.

GET /api/2/<organization>/people

Returns an array of person data objects associated with the organization. This resource also includes additional membership data for each person object.

example membership info
{
  // Normal Person Object
  ...
  "membership": {
    "title": "Cofounder",
    "start_date": "1317427200",
    "end_date": null,
    "current": true,
    "founder": true
  }
  ...
}
            

GET /api/2/<organization>/chapters

Returns an array of organization data objects that are chapters of the organization.

POST /api/2/<organization>

Creates a new organization.

Fields

  • name required (string)
  • slug required (string) lowercase letters, numbers, and hyphens
  • description (string)
  • founded (date)
  • hiringUrl (string)

PUT /api/2/<organization>

Updates an existing organization. To reference an organization make sure to send the slug value in the request data.

Person Resources

GET /api/2/<person>

Returns a person data object.

GET /api/2/<person>/organizations

Returns a person data object. This resource also includes an array of additional organization data objects that the person is associated with.

POST /api/2/<person>

Creates a new person.

Fields

  • given_name required (string)
  • family_name required (string)
  • slug required (string)
  • nickname (string)
  • biography (string)
  • date_of_birth (timestamp)
  • social_media_sites (object) The key the is site name, and the value is the url. Known sites include Twitter, Facebook, personal website, person blog, Crunchbase, LinkedIn, AngelList, and Github.

PUT /api/2/<person>

Updates an existing person. To reference a person make sure to send the slug value in the request data.

Other Resources

GET /api/2/curators

Returns an array of person data objects of people who are curators for Startup Genome.

GET /api/2/categories

Returns an array of category objects that label organizations.

example
[
  {
    "plural_name": "Startups",
    "singular_name": "Startup",
    "slug": "startups"
  },
  {
    "plural_name": "Investors",
    "singular_name": "Investor",
    "slug": "investors"
  },
  {
    "plural_name": "Accelerators",
    "singular_name": "Accelerator",
    "slug": "accelerators"
  },
  ...
]
            

GET /api/2/industries

Returns an array of industry objects that label organizations.

example
[
  {
    "name": "Advertising",
    "slug": "advertising"
  },
  {
    "name": "Biotechnology",
    "slug": "biotechnology"
  },
  {
    "name": "Clean Technology",
    "slug": "cleantechnology"
  },
  ...
]
            

Example PHP Code

<?php
// auth code
$auth_code = '[your-auth-code-here]';
$headers = array("AUTH-CODE: {$auth_code}");

// Get cURL resource
$curl = curl_init();

// Set some options
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLINFO_HEADER_OUT, true);
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
curl_setopt($curl, CURLOPT_URL, 'http://startupgenome.com/api/2/boulder-co');

// Send the request & save response to $resp
$resp = curl_exec($curl);

// Close request to clear up some resources
curl_close($curl);

// output $resp (response from API)
echo "<pre>";
echo print_r(json_decode($resp,1));
exit();
?>