Fork me on GitHub

{"GSA Index"}

My GSA API Index

This is an APIs.json index for the APIs I'm tracking on at the General Services Administration (GSA). It is meant to provide a single collection of disparate GSA APIs, while also providing individual APIs.json files defining each API's operations, and surface area.

The entire API index is available under the _data folder for the project's Github repository, providing a machine-readable index of the GSA APIs for use across my systems. It provides a single forkable repository that acts as a machine-readable discovery index of APIs operated across the GSA, that anyone else can also put to use.

Ok, so why do I do this. It helps me keep track of what types of APIs are avaialable across government, providing me with a machine-readable index of each API, and it's supporting operations, gathered into a meaningful collection--in this scenario, grouped by organization (GSA). APIs.json can be used to describe any single API operations, as well as a collection of APIs--each APIs.json has one or many OpenAPI Specs for the APIs, providing further detail about the surface area of each API.

There are many benefits to publishing my API indexes this way. First, its machine readable, and available on Github--meaning anyone can download, fork, or reference it directly. I get all the benefits of Github when managing it--version control, API, free public hosting. Plus, I get to make all these Liquid and JavaScript goodies that help me make sense of APIs. If you aren't familiar with Jekyll, and what you can do with it on Github, I recommend you get up to speed as quickly as you can--it is world altering stuff.

To help me make sense of the APIs in this GSA index, I got to work creating a basic Liquid-driven listing of all the APIs I have indexed in the _data/api-commons/ folder of this API index. Each API has it's own folder, APIs.json index, and OpenAPI Spec--this is the result of those machine readable index, with a little HTML polish to make it easier on the eyes, and for human consumption.

System Award Management (view APIs.json)

The SAM API is a RESTful method of retrieving public information about the businesses or individuals (referred to as u0026ldquo;entitiesu0026rdquo;) within the SAM data set. The entities publicly available data set can currently be retrieved on an entity-by-entity basis.

System Award Management API Paths Available (OpenAPI Spec)
  • /registrations/{registrationId} -- Find a registration by its DUN+4 number [GET] - If the entity only has a 9-digit DUNS number, pad the end to include 4 zeros

Data.Gov (view APIs.json)

data.gov is a U.S. government website launched in late May 2009 by the then Federal Chief Information Officer (CIO) of the United States, Vivek Kundra. According to its website, The purpose of data.gov is to increase public access to high value, machine readable datasets generated by the Executive Branch of the Federal Government. The site seeks to become a repository for all the information the government collects. The site would publish to the public any data that is not private or restricted for national security reasons.

Data.gov API Paths Available (OpenAPI Spec)
  • /activity -- Fetch site activity, optionally filterd by user of org [GET]
  • /datasets/ -- List or search all datasets [GET]
  • /datasets/ -- Create a new dataset [POST]
  • /datasets/badges/ -- List all available dataset badges and their labels [GET]
  • /datasets/checkurl/ -- Checks that a URL exists and returns metadata [GET]
  • /datasets/community_resources/ -- List all community resources [GET]
  • /datasets/community_resources/ -- Create a new community resource [POST]
  • /datasets/community_resources/{community}/ -- Delete a given community resource [DELETE]
  • /datasets/community_resources/{community}/ -- Retrieve a community resource given its identifier [GET]
  • /datasets/community_resources/{community}/ -- Update a given community resource [PUT]
  • /datasets/community_resources/{community}/upload/ -- Update the file related to a given community resource [POST]
  • /datasets/frequencies/ -- List all available frequencies [GET]
  • /datasets/licenses/ -- List all available licenses [GET]
  • /datasets/suggest/ -- Suggest datasets [GET]
  • /datasets/suggest/formats/ -- Suggest file formats [GET]
  • /datasets/{dataset}/ -- Delete a dataset given its identifier [DELETE]
  • /datasets/{dataset}/ -- Get a dataset given its identifier [GET]
  • /datasets/{dataset}/ -- Update a dataset given its identifier [PUT]
  • /datasets/{dataset}/badges/ -- Create a new badge for a given dataset [POST]
  • /datasets/{dataset}/badges/{badge_kind}/ -- Delete a badge for a given dataset [DELETE]
  • /datasets/{dataset}/featured/ -- Unmark the dataset as featured [DELETE]
  • /datasets/{dataset}/featured/ -- Mark the dataset as featured [POST]
  • /datasets/{dataset}/full/ -- Get a dataset given its identifier [GET]
  • /datasets/{dataset}/resources/ -- Create a new resource for a given dataset [POST]
  • /datasets/{dataset}/resources/ -- Reorder resources [PUT]
  • /datasets/{dataset}/resources/{rid}/ -- Delete a given resource on a given dataset [DELETE]
  • /datasets/{dataset}/resources/{rid}/ -- Update a given resource on a given dataset [PUT]
  • /datasets/{dataset}/resources/{rid}/upload/ -- Upload a file related to a given resource on a given dataset [POST]
  • /datasets/{dataset}/upload/ -- Upload a new dataset resource [POST]
  • /datasets/{dataset}/upload/community/ -- Upload a new community resource [POST]
  • /datasets/{id}/followers/ -- Unfollow an object given its ID [DELETE] - Returns the number of followers left after the operation
  • /datasets/{id}/followers/ -- List all followers for a given object [GET]
  • /datasets/{id}/followers/ -- Follow an object given its ID [POST] - Returns the number of followers left after the operation
  • /discussions/ -- List all Discussions [GET]
  • /discussions/ -- Create a new Discussion [POST]
  • /discussions/{id}/ -- Delete a discussion given its ID [DELETE]
  • /discussions/{id}/ -- Get a discussion given its ID [GET]
  • /discussions/{id}/ -- Add comment and optionnaly close a discussion given its ID [POST]
  • /harvest/backends -- List all available harvest backends [GET]
  • /harvest/job/{ident}/ -- List all jobs for a given source [GET]
  • /harvest/job_status -- List all available harvesters [GET]
  • /harvest/source/{ident} -- Get a single source given an ID or a slug [GET]
  • /harvest/source/{ident}/jobs/ -- List all jobs for a given source [GET]
  • /harvest/source/{ident}/preview -- Preview a single harvest source given an ID or a slug [GET]
  • /harvest/source/{ident}/validate -- Validate or reject an harvest source [POST]
  • /harvest/sources/ -- List all harvest sources [GET]
  • /harvest/sources/ -- Create a new harvests source [POST]
  • /issues/ -- List all Issues [GET]
  • /issues/ -- Create a new Issue [POST]
  • /issues/{id}/ -- Get an issue given its ID [GET]
  • /issues/{id}/ -- Add comment and optionnaly close an issue given its ID [POST]
  • /me/ -- Fetch the current user (me) identity [GET]
  • /me/ -- Update my profile [PUT]
  • /me/apikey -- Clear/destroy an apikey [DELETE]
  • /me/apikey -- (Re)Generate my API Key [POST]
  • /me/avatar -- Upload a new avatar [POST]
  • /me/datasets/ -- List all my datasets (including private ones) [GET]
  • /me/metrics/ -- Fetch the current user (me) metrics [GET]
  • /me/org_community_resources/ -- List all community resources related to me and my organizations [GET]
  • /me/org_datasets/ -- List all datasets related to me and my organizations [GET]
  • /me/org_discussions/ -- List all discussions related to my organizations [GET]
  • /me/org_issues/ -- List all issues related to my organizations [GET]
  • /me/org_reuses/ -- List all reuses related to me and my organizations [GET]
  • /me/reuses/ -- List all my reuses (including private ones) [GET]
  • /metrics/{id} -- Fetch metrics for an object given its ID [GET] - If day is set, start and end will be ignored
  • /notifications/ -- List all current user pending notifications [GET]
  • /oembeds/ -- The returned payload is a list of OEmbed formatted responses [GET] - See: http://oembed
  • /organizations/ -- List or search all organizations [GET]
  • /organizations/ -- Create a new organization [POST]
  • /organizations/badges/ -- List all available organization badges and their labels [GET]
  • /organizations/suggest/ -- Suggest organizations [GET]
  • /organizations/{id}/followers/ -- Unfollow an object given its ID [DELETE] - Returns the number of followers left after the operation
  • /organizations/{id}/followers/ -- List all followers for a given object [GET]
  • /organizations/{id}/followers/ -- Follow an object given its ID [POST] - Returns the number of followers left after the operation
  • /organizations/{org}/ -- Delete a organization given its identifier [DELETE]
  • /organizations/{org}/ -- Get a organization given its identifier [GET]
  • /organizations/{org}/ -- Update a organization given its identifier [PUT]
  • /organizations/{org}/badges/ -- Create a new badge for a given organization [POST]
  • /organizations/{org}/badges/{badge_kind}/ -- Delete a badge for a given organization [DELETE]
  • /organizations/{org}/datasets/ -- List organization datasets (including private ones when member) [GET]
  • /organizations/{org}/discussions/ -- List organization discussions [GET]
  • /organizations/{org}/issues/ -- List organization issues [GET]
  • /organizations/{org}/logo -- Upload a new logo [POST]
  • /organizations/{org}/logo -- Set the logo BBox [PUT]
  • /organizations/{org}/member/{user} -- Delete member from an organization [DELETE]
  • /organizations/{org}/member/{user} -- Add a member into a given organization [POST]
  • /organizations/{org}/member/{user} -- Update member status into a given organization [PUT]
  • /organizations/{org}/membership/ -- List membership requests for a given organization [GET]
  • /organizations/{org}/membership/ -- Apply for membership to a given organization [POST]
  • /organizations/{org}/membership/{id}/accept/ -- Accept user membership to a given organization [POST]
  • /organizations/{org}/membership/{id}/refuse/ -- Refuse user membership to a given organization [POST]
  • /organizations/{org}/reuses/ -- List organization reuses (including private ones when member) [GET]
  • /posts/ -- List all posts [GET]
  • /posts/ -- Create a post [POST]
  • /posts/{post}/ -- Delete a given post [DELETE]
  • /posts/{post}/ -- Get a given post [GET]
  • /posts/{post}/ -- Update a given post [PUT]
  • /posts/{post}/image -- Upload a new image [POST]
  • /posts/{post}/image -- Set the image BBox [PUT]
  • /reuses/ -- Create a new object [POST]
  • /reuses/badges/ -- List all available reuse badges and their labels [GET]
  • /reuses/suggest/ -- Suggest reuses [GET]
  • /reuses/types/ -- List all reuse types [GET]
  • /reuses/{id}/followers/ -- Unfollow an object given its ID [DELETE] - Returns the number of followers left after the operation
  • /reuses/{id}/followers/ -- List all followers for a given object [GET]
  • /reuses/{id}/followers/ -- Follow an object given its ID [POST] - Returns the number of followers left after the operation
  • /reuses/{reuse}/ -- Delete a given reuse [DELETE]
  • /reuses/{reuse}/ -- Fetch a given reuse [GET]
  • /reuses/{reuse}/ -- Update a given reuse [PUT]
  • /reuses/{reuse}/badges/ -- Create a new badge for a given reuse [POST]
  • /reuses/{reuse}/badges/{badge_kind}/ -- Delete a badge for a given reuse [DELETE]
  • /reuses/{reuse}/datasets/ -- Add a dataset to a given reuse [POST]
  • /reuses/{reuse}/featured/ -- Unmark a reuse as featured [DELETE]
  • /reuses/{reuse}/featured/ -- Mark a reuse as featured [POST]
  • /reuses/{reuse}/image -- Upload a new reuse image [POST]
  • /site/ -- Site-wide variables [GET]
  • /site/home/datasets/ -- List homepage datasets [GET]
  • /site/home/datasets/ -- Set the homepage datasets editorial selection [PUT]
  • /site/home/reuses/ -- List homepage featured reuses [GET]
  • /site/home/reuses/ -- Set the homepage reuses editorial selection [PUT]
  • /spatial/coverage/{level} -- List each zone for a given level with their datasets count [GET]
  • /spatial/granularities -- List all known spatial granularities [GET]
  • /spatial/levels -- List all known levels [GET]
  • /spatial/zone/{id} -- Fetch a zone [GET]
  • /spatial/zones/suggest -- Suggest geospatial zones [GET]
  • /spatial/zones/{ids} -- Fetch a zone list as GeoJSON [GET]
  • /tags/suggest/ -- Suggest tags [GET]
  • /topics/ -- List all topics [GET]
  • /topics/ -- Create a topic [POST]
  • /topics/{topic}/ -- Delete a given topic [DELETE]
  • /topics/{topic}/ -- Get a given topic [GET]
  • /topics/{topic}/ -- Update a given topic [PUT]
  • /transfer/ -- List all transfer requests [GET]
  • /transfer/ -- Initiate transfer request [POST]
  • /transfer/{id}/ -- Fetch a transfer request given its identifier [GET]
  • /transfer/{id}/ -- Respond to a transfer request [POST]
  • /users/ -- List all objects [GET]
  • /users/ -- Create a new object [POST]
  • /users/suggest/ -- Suggest users [GET]
  • /users/{id}/followers/ -- Unfollow an object given its ID [DELETE] - Returns the number of followers left after the operation
  • /users/{id}/followers/ -- List all followers for a given object [GET]
  • /users/{id}/followers/ -- Follow an user given its ID [POST]
  • /users/{user}/ -- Delete a given object [DELETE]
  • /users/{user}/ -- Get a given object [GET]
  • /users/{user}/ -- Update a given object [PUT]
  • /workers/jobs/ -- List all scheduled jobs [GET]
  • /workers/jobs/ -- Create a new scheduled job [POST]
  • /workers/jobs/schedulables -- List all schedulable jobs [GET]
  • /workers/jobs/{id} -- Delete a single scheduled job [DELETE]
  • /workers/jobs/{id} -- Fetch a single scheduled job [GET]
  • /workers/jobs/{id} -- Update a single scheduled job [PUT]
  • /workers/tasks/{id} -- Get a tasks status given its ID [GET]

USA.Gov Corporate Consumer Contact Information (view APIs.json)

We make the Corporate Consumer Contact listing found in the Consumer Action Handbook (PDF) available via a REST API. The API programmatically returns all of the information contained in the directory, or you can query the API to return just a subset of the available information.

USA.Gov Corporate Consumer Contact API Paths Available (OpenAPI Spec)
  • /contacts.{format}/contacts -- Get Contacts [GET] - Contacts is a general purpose call that, by default, will return all of the corporate directory records
  • /contacts.{format}/contacts/{id} -- Get Contact [GET] - The Contact call will let you access an individual corporation's information by including its unique identifier in the call

GSA Per Diem API (view APIs.json)

Per Diem Rates are the allowed reimbursement rates for hotel stays and meals for federal travelers. Rates are set for each of the federal governments fiscal years (FY 2014 is October 1, 2013 to September 30, 2014.) GSA is responsible for setting the rates in the continental United States. u0026nbsp;Many businesses and other organizations adopt these rates as well. GSA is making the rates available using the CKANs Action API via Data.gov to allow software developers programmatic access the data and create innovative uses for it.

GSA Per Diem API Paths Available (OpenAPI Spec)
  • /datastore_search?resource_id=8ea44bc4-22ba-4386-b84c-1494ab28964b -- Per Diem Rates [GET] - GSA sets rates for geographic areas it determines called primary destinations

USAJobs API (view APIs.json)

Federal, state, and local government agencies are hiring and have thousands of job openings across the country, posted on USAJobs.gov and local government jobs sites. This Jobs API allows you to tap into a list of current jobs openings with the government. Jobs are searchable by keyword, location, agency, schedule, or any combination of these.

USAJobs API Paths Available (OpenAPI Spec)
  • /jobs/search.json -- Search Jobs [GET] - his Jobs API allows you to tap into a list of current jobs openings with the government

Sustainable Facilities Tool API (view APIs.json)

Our core API allows developers to interact with the Sustainable Facilities Tool programmatically. Its designed for public use and to be easily integrated into other applications.

Sustainable Facilities Tool API Paths Available (OpenAPI Spec)
  • /building-systems -- Returns all building systems. [GET] - Returns all building systems
  • /building-systems/case-studies -- Building System Case Studies [GET] - Returns all building systems case studies
  • /building-systems/integrative-teams -- Building System Integrative Teams [GET] - Returns all building system integrative teams
  • /building-systems/mandates -- Building System Mandates [GET] - Returns all building systems mandates
  • /building-systems/rating-systems -- Building System Rating Systems [GET] - Returns all building system rating systems
  • /building-systems/system-bundles -- Building System Bundles [GET] - Returns all building system bundles
  • /building-systems/{parameter} -- Returns a building system by parameter. [GET] - Returns a building system by parameter
  • /building-systems/{parameter}/case-studies -- Building System Case Study [GET] - Returns a building system case study by parameter
  • /building-systems/{parameter}/integrative-teams -- Building System Integrative Team [GET] - Returns a building system integrative team by parameter
  • /building-systems/{parameter}/mandates -- Building System Mandate [GET] - Returns a building system mandate by parameter
  • /building-systems/{parameter}/rating-systems -- Building System Rating System [GET] - Returns a building system rating system by parameter
  • /building-systems/{parameter}/resources -- Returns Building System Resources [GET] - Returns informational resources for the building system selected by parameter
  • /building-systems/{parameter}/system-bundles -- Building System Bundle [GET] - Returns a building system bundle by parameter
  • /contentpages -- Content Pages [GET] - Returns all content pages
  • /contentpages/{parameter} -- Content Page [GET] - Returns a content page by parameter
  • /materials -- Return Materials [GET] - Returns all materials
  • /materials/{parameter} -- Return Material [GET] - Returns a material by parameter
  • /materials/{parameter}/alternatives -- Alternative Materials [GET] - Returns alternatives for the material selected by parameter
  • /materials/{parameter}/comparisons -- Compairson Materials [GET] - Returns comparisons for the material selected by parameter
  • /procurementclauses -- Federal Acquisition Regulation (FAR) Clause [GET] - Returns Federal Acquisition Regulation (FAR) clause numbers and environmental programs for all NAICS and PSC codes with federal sustainable procurement requirements in GPC
  • /procurementclauses/allcontractlanguage -- Contract Language [GET] - Returns all sample contract language for environmental programs
  • /procurementclauses/naics/{parameter} -- Federal Acquisition Regulation (FAR) Clause [GET] - Returns any FAR clause number(s) and sample procurement language associated with the given NAICS parameter
  • /procurementclauses/psc/{parameter} -- Procurement Clause [GET] - Returns any FAR clause number(s) and sample procurement language associated with the given PSC parameter
  • /products -- Products [GET] - Returns all products
  • /products/{parameter}/details -- Product Details [GET] - Returns details for the product selected by parameter
  • /services -- Services [GET] - Returns all services
  • /services/{parameter} -- Services [GET] - Returns a service by parameter
  • /services/{parameter}/related-products -- Related Products [GET] - Returns products related to a service by parameter
  • /tags -- Tags [GET] - Returns all search tags
  • /tags/{parameter} -- Tag [GET] - Returns a tag by parameter
  • /workspaces -- Workspaces [GET] - Returns all workspaces
  • /workspaces/{parameter} -- Workspace [GET] - Returns a workspace by parameter
  • /workspaces/{parameter}/material-groups -- Workspaces [GET] - Returns material groups for the workspace selected by parameter
  • /workspaces/{parameter}/materials -- Workspace Materials [GET] - Returns materials for the workspace selected by parameter

eMuseum API docs (view APIs.json)

Developed in partnership with museums, The Museum System makes capturing, managing and accessing collection information quick and easy. eMuseum is a web-based software program that integrates seamlessly with TMS and other collection management systems to dynamically publish information to your website, Intranet, and kiosks. This API delivers search information and images from TMS u0026amp; eMuseum to GSA.gov.

eMuseum API Paths Available (OpenAPI Spec)
  • /collections/all -- Collections [GET] - Get Collections
  • /collections/{id} -- Collections [GET] - Get Collection
  • /id/buildings/{id} -- Building [GET] - Get Art By Building
  • /id/objects/{id} -- Art [GET] - Get Art
  • /id/people/{id} -- Artist [GET] - Request an artist
  • /search/buildings -- Buildings [GET] - Search for art by building
  • /search/objects -- Art [GET] - Seart for art by object
  • /search/people -- Artists [GET] - Search for an artist

Go.USA.Gov (view APIs.json)

The Go.USA.gov API can Shorten a URL. Preview the destination of a short URL. Get the number of clicks on a short URL. Export short URLs from an account.

Go.USA.gov API Paths Available (OpenAPI Spec)
  • clicks.json -- URL Clicks [GET] - Get the Number of Clicks on a Short URL
  • expand.json -- Expand URL [GET] - Expand URL
  • export.json -- Export URLs [GET] - Get a List of All Short URLs
  • shorten.json -- Shortening a URL [GET] - Shortening a URL

U.S. Digital Registry (view APIs.json)

Whether for access to emergency, financial or education public services, users need to trust they are engaging with official U.S. government digital accounts. The U.S. Digital Registry serves as the authoritative resource for agencies, citizens and developers to confirm the official status of social media and public-facing collaboration accounts, mobile apps and mobile websites, and help prevent exploitation from unofficial sources, phishing scams or malicious entities.

U.S. Digital Registry Agency API Paths Available (OpenAPI Spec)
  • /agencies.json -- Agencies [GET] - This lists all active agencies in the system
  • /agencies/{id}.json -- Agency [GET] - This returns an agency based on an ID
U.S. Digital Registry Mobile App API Paths Available (OpenAPI Spec)
  • /mobile_apps.json -- Mobile Apps [GET] - This lists all active mobile apps
  • /mobile_apps/tokeninput.json -- Mobile App Token [GET] - This returns tokens representing agencies, tags, and a basic text search token for the purpose of building search dialogs
  • /mobile_apps/{id}.json -- Mobile App [GET] - This returns an mobile app based on an ID
U.S. Digital Registry Social Media API Paths Available (OpenAPI Spec)
  • /social_media.json -- Social Media [GET] - This lists all active accounts
  • /social_media/services.json -- Social Media Services [GET] - This returns a list of services along with the number of accounts registered with them
  • /social_media/tokeninput.json -- Social Media Token [GET] - This returns tokens representing services, agencies, tags, and a basic text search token for the purpose of building search dialogs
  • /social_media/verify.json -- Social Media Verify [GET] - This returns an agency based on an URL
  • /social_media/{id}.json -- Social Media [GET] - This returns an agency based on an ID
U.S. Digital Registry Tag API Paths Available (OpenAPI Spec)
  • /tags.json -- Tags [GET] - This lists all tags
  • /tags/types.json -- Tag Types [GET] - This returns a tag based on an ID
  • /tags/{id}.json -- Tag [GET] - This returns a tag based on an ID

FedBizOpps (FBOpen) (view APIs.json)

This is the API documentation for the FBOpen API, a search API of opportunities to work with the U.S. government.u0026nbsp;You can learn more about FBOpen and its data by returning to the main documentation page.

FBOpen API Paths Available (OpenAPI Spec)
  • /gsa/fbopen/v0/opp -- Search Opportunities [POST] - Individual opportunities can be modified if POST functionality is enabled in the API
  • /gsa/fbopen/v0/opps -- Post Oopportunity [GETTING STARTED] - Search for opportunities matching the query string (q)

Liquid makes it easy to work with any JSON or YAML in the _data folder, treating this as a data source. Using Liquid I can do almost anything I can do with PHP, Python, Ruby, Node.js, and other server-side languages--the big difference here, is there is no hosting necessary, it all runs on Github. You don't need database backend, or a server to host website--it is all on Github. If your repo and data is public, it doesn't cost you anything to operate--offloading hosting and bandwidth costs to Github for all your open data, and API projects. This is big deal if you are managing a lot of public data. You can find a gist of this liquid script here.

Currently, the biggest benefit of have APIs indexed in this way is when it comes to documentation. I can use Liquid to create my own HTML documentation, or I can also put to work other API documentation solutions like Swagger UI or Redoc. Additionally, APIs.json allows you to also include other relevant information like where to sign up for an API key, and the terms of service for using an API. OpenAPISpec describes the APIs, APIs.json defines the supporting operations around those APIs, and provides us with a nice machine-readable index of everything.

Eventually, having our APIs defined in this way helps each index become an engine for every stop along the API and application lifecycle. The APIs.json can act as entry point for integration with any single, or multiple APIs, allowing us to then generate SDKs, testing scripts, monitoring, discovery, and any number of critical needs we have throughout the life cycle of our APIs and applications. This will all take time, but we have to start somewhere.

APIs.json Autocomplete

I want to be able to create autocomplete tooling that is driven from this projects APIs.json, providing access to the paths, verbs, and tags contained within the APIs.json collection.

Path:

Verb:

Tags:

This tool allows me to aggregate and provide access to a list of paths available across all the APIs indexed within this collection--something that can be used across the API design process. You can find this tool as a Github Gist, or available within the Github repository for the project.

APIs.json Tag Cloud

Using the APIs.json for this project, I wanted to get a visual summary of what resources are available to me across all the APIs indexed here. Tagging is an important part of defining an API, so I wrote a little tool to aggregate all the tags, across all APIs indexed, and show as a tag cloud visualization.

The more APIs indexed, the more tags that show, and the bigger some tags will get. Showing a quick snapshot of all the resources available, in a single, easy to digest visual. You can find this tool as a Github Gist, or available within the Github repository for the project.

APIs.json List Paths by Tag

Next I wanted to think differently about how I list APIs indexed in the APIs.json for this project. At the beginning of this story I was showing all the available paths grouped by API. I wanted to look at things a little differently and just mix all the available paths together, and group by tag--giving me a much different look at the resources available in this API index.

This gives me a new way to look at the resources across providers, or different groups. I always find it useful to hide the information about the company, agency, or group behind an API--I find the APIs, their available paths, parameters, and other details to be a more truthful look at what is going on. You can find this tool as a Github Gist, or available within the Github repository for the project.

This is just a sampling of what is possible when API definitions are available. When you have machine-readable OpenAPI Specs available, indexed using APIs.json, a whole new world of tooling and services emerge. This landscape is already picking up momentum with the growith in adoption of OpenAPI Spec, but with each new resulting definition available in the format, and tooling or service provider that emerges, things are picking up speed monthly in 2017.

With the API definitions in this collection you could now generate SDKs using APIMATIC, monitor your APIs with API Science, and test them using Runscope. This is just small taste of wat you can do once you have API definitions. Now we just need to keep doing the hard work to make sure our APIs are as defined as they possibly can using OpenAPI Spec, and indexed individually, and in collections using APIs.json.

You are welcome to make any changes to the JSON files for this project, or leave any feedback via the Github issues.