Since I am the original author of TASVideos API, I could as well document it a bit.
Here we go. This is machine-parseable documentation of the API.
desc = "TASVideos query"
name = "TasvideosQuery"
ns = "urn:TasvideosQuery"
port = "http://tasvideos.org/api.exe"
action = "urn:TasvideosQueryAction"
# key
# your user passkey
# sql
# your sql query
# Note: The server reserves the right to edit your query
# or to reject it alltogether if it tries either
# to access sensitive data or if it would consume
# too much of the server's resources.
# If the query is not accepted, success will be
# indicated as false.
# perform
# set to true if you actually want the query to be performed
# false if just syntax checking and estimating cost
# maxRows
# maximum number of rows to return
# Note: the site might still limit the number of rows
# to a lower value, regardless of this value
# est_cost
# estimated cost of the given SQL query
# (in no specific units)
# pagename:
# name of page to load without .html, such
# as Rules, Bisqwit/Projects or 111M
# wtxt:
# wiki-formatted text contents of the page
# html:
# html-formatted content
# relative_links:
# set to true if you want the links returned in the html
# to be rendered relative to the page's address, false if
# you want them to be absolute
# relative_base:
# the prefix to add to all relative links in the response
# (empty string is fine, but "../" is sometimes necessary)
[operation doDbQuery]
{string key, string sql, bool perform, int maxRows} in
{{bool success, string errorMessage, int numRows, int est_cost,
string headers[], string columns[]} return} out
# Example:
# for a query that returns 10 rows, each having 2 fields,
# the "headers" array contains 2 entries and
# the "column" array contains 20 entries:
# r0c0, r0c1, r1c0, r1c1, r2c0, r2c1, ...
[operation doLoadPage]
{string key, string pagename} in
{{bool success, string errorMessage, string wtxt} return} out
[operation doRenderWtxt]
{string key,string wtxt,bool relative_links, bool relative_base} in
{{bool success, string errorMessage,
string html_header, string html_include,
string html, string html_footer} return} out
[operation doLoadMovieCategoryList]
{string key, int movieid} in
{{bool success, string errorMessage, string catlist[]} return} out
# Even entries: (p|n) id
# Odd entries: textual description
[operation doIrcAgentAnnounce]
{string key, string magic, string message} in
{{bool success, string errorMessage} return} out
doDbQuery allows one to issue arbitrary read-only requests to the database in SQL language. Extensive syntax checking and load estimation is performed before the query is passed to the actual MySQL server. The database structure is supposed to be documented here:
http://tasvideos.org/SiteTechnology/DataBase.html
doLoadPage returns the latest wiki source code of the given web page.
doRenderWtxt converts given wiki source code into HTML in the way TASVideos would do it if it was written on a page. Used for preview functions.
doLoadMovieCategoryList is self-explanatory.
doIrcAgentAnnounce is privileged. It is what TASVideos uses (or could use) internally to make TASVideoAgent say stuff.
EDIT: The API is also documented here:
http://tasvideos.org/SiteTechnology/API.html, along with example code in Ruby and in PHP.