user47: A while ago there was a site made by NM Jonathan Hilton's father that did some analytics on player's USCF rating histories.
I thought it was a pretty good site, but it disappeared.  There are still some tools like that floating around.  I was wondering if there was some sort of USCF API, or how that sort of data might be grabbed.

user21825: There is an API for this now at following url: https://uschessapi.azurewebsites.net/api/player/{Id}
In this case {Id} = USCF Member Id
Following is an example request/response:
Request - https://uschessapi.azurewebsites.net/api/player/13197795
Response(JSON) 
{"memberId":"13197795","name":"JEREMY KRASIN","regularRating":"1828","quickRating":"1818","blitzRating":"1765","fideRating":"1749"}

Right now just returns Regular, Quick, Blitz, and Fide ratings as well as name. If anyone has any questions feel free to message me.

user142: I'm not aware of an API, but they way they have it set up it's pretty easy to gather data via a technique called screen/web scraping.
For example, a search on your name gives a link to a specific page with your member id in the URL. Then if you have a programming language/library that is DOM-aware, you can simply figure out where certain things will be, based on the design of the page. Using jquery selectors, and a couple of traversals, that page can be parsed to get the rating as such: 
> $("td td td:contains(Regular Rating)").next().find("nobr").text();
"2072  
2012-03(Current floor is 1800)"

Nice rating, by the way.
It's a bit painful, and even more painful if they ever decide to change the design of the pages, but eventually you'll be able to parse out all the data you want, and then build a way of collecting data for each member and storing it in your own database for analytics. It wouldn't be that hard to do, just iterate through member ids, and you can get their names, states, ratings, etc.--as much is available on their screens.
Hope that helps.

user12: I don't think that the USCF has a full API, but there are a few special url's that you can use for simplified screen scraping/data parsing:

http://msa.uschess.org/thin.php
http://msa.uschess.org/thin2.php
http://msa.uschess.org/thin3.php

In each of those "thin" pages, you can pass a member ID as a url parameter (for example thin3.php?11111111).
The server response is very very lightweight - no extraneous markup.
These pages were designed for cell phone browser use by TD's the day of the tournament if I remember correctly, but they're also useful for extracting data.

47: <p>A while ago there was a site made by NM Jonathan Hilton's father that did some analytics on player's USCF rating histories.</p>

<p>I thought it was a pretty good site, but it disappeared.  There are still some tools like that floating around.  I was wondering if there was some sort of USCF API, or how that sort of data might be grabbed.</p>
 21825: <p>There is an API for this now at following url: <a href="https://uschessapi.azurewebsites.net/api/player/" rel="nofollow noreferrer">https://uschessapi.azurewebsites.net/api/player/</a>{Id}</p>

<p>In this case {Id} = USCF Member Id</p>

<p>Following is an example request/response:</p>

<p>Request - <a href="https://uschessapi.azurewebsites.net/api/player/13197795" rel="nofollow noreferrer">https://uschessapi.azurewebsites.net/api/player/13197795</a></p>

<p>Response(JSON) </p>

<pre><code>{"memberId":"13197795","name":"JEREMY KRASIN","regularRating":"1828","quickRating":"1818","blitzRating":"1765","fideRating":"1749"}
</code></pre>

<p>Right now just returns Regular, Quick, Blitz, and Fide ratings as well as name. If anyone has any questions feel free to message me.</p>
 142: <p>I'm not aware of an API, but they way they have it set up it's pretty easy to gather data via a technique called <a href="http://en.wikipedia.org/wiki/Web_scraping" rel="nofollow" title="screen/web scraping">screen/web scraping</a>.</p>

<p>For example, a search on your name gives a link to a specific page with your member id in the URL. Then if you have a programming language/library that is DOM-aware, you can simply figure out where certain things will be, based on the design of the page. Using jquery selectors, and a couple of traversals, that page can be parsed to get the rating as such: </p>

<pre><code>&gt; $("td td td:contains(Regular Rating)").next().find("nobr").text();
"2072  
2012-03(Current floor is 1800)"
</code></pre>

<p>Nice rating, by the way.</p>

<p>It's a bit painful, and even more painful if they ever decide to change the design of the pages, but eventually you'll be able to parse out all the data you want, and then build a way of collecting data for each member and storing it in your own database for analytics. It wouldn't be that hard to do, just iterate through member ids, and you can get their names, states, ratings, etc.--as much is available on their screens.</p>

<p>Hope that helps.</p>
 12: <p>I don't think that the USCF has a full API, but there are a few special url's that you can use for simplified screen scraping/data parsing:</p>

<ul>
<li><a href="http://msa.uschess.org/thin.php" rel="nofollow">http://msa.uschess.org/thin.php</a></li>
<li><a href="http://msa.uschess.org/thin2.php" rel="nofollow">http://msa.uschess.org/thin2.php</a></li>
<li><a href="http://msa.uschess.org/thin3.php" rel="nofollow">http://msa.uschess.org/thin3.php</a></li>
</ul>

<p>In each of those "thin" pages, you can pass a member ID as a url parameter (for example <code>thin3.php?11111111</code>).</p>

<p>The server response is very very lightweight - no extraneous markup.</p>

<p>These pages were designed for cell phone browser use by TD's the day of the tournament if I remember correctly, but they're also useful for extracting data.</p>
