Nick Antonaccio wrote a great guide about it: http://re-bol.com/etsy_api_tutorial.html

Don't miss it!
This is a blog about Rebol, it's a fantastic free programming language, it permits easily to create complete software with few lines of code. It's cross-platform, so if you write it on Windows, it will work on Linux and Mac, and vice-versa. You can produce also wonderful GUI with just 3 lines of code!
REBOL [
Title: "HTML calendar"
Date: 3-Dec-2003
Author: "Bohdan Lechnowsky"
File: %html-calendar.r
Purpose: {
Creates an HTML file containing the current calendar month and displays it in
the browser
}
]
date: now/date
colwidth: 100
dayrowcol: "806080"
daytextcol: "FFFFFF"
wkendcol: "FFCCCC"
wkdaycol: "FFFFFF"
notthismonthcol: "808080"
outfilename: %month.html
html: copy rejoin [{<HTML><TABLE border=1><TR><TD colspan=7 align=center><FONT size="+2">} pick system/locale/months date/month { } date/year {</FONT></TD></TR><TR>}]
days: head remove back tail insert head copy system/locale/days last system/locale/days
foreach day days [
append html rejoin [{<TD bgcolor="#} dayrowcol {" align=center width=} colwidth {><FONT face="courier new,courier" color="} daytextcol {" size="+1">} copy/part day 3 {</FONT></TD>}]
]
append html {</TR><TR>}
sdate: date
sdate/day: 0
loop sdate/weekday // 7 + 1 [append html {<TD bgcolor=gray></TD>}]
while [sdate/day: sdate/day + 1 sdate/month = date/month][
append html rejoin [
{<TD bgcolor="#}
either find [6 7] sdate/weekday [wkendcol][wkdaycol]
{">} sdate/day {</TD>}
]
if sdate/weekday = 6 [append html {</TR><TR>}]
]
loop 7 - sdate/weekday [append html rejoin [{<TD bgcolor="#} notthismonthcol {"></TD>}]]
append html {</TR></TABLE></HTML>}
write outfilename html
browse outfilename
>> system/version
== 2.7.8.3.1
>> system/build
== 1-Jan-2011/16:39:07-8:00
>> system/product
== View
>> system/core
== 2.7.8
>> for i 1 60 3 [ print system/components/:i ]
mezz
registry
getprefs
Install
protocols
ODBC
Library
shell
graphics
draw
view
viewtop
sound
crypt
bignum
dhdsa
rsa
sysport
crypt2
ssl
>> print system/components/mezz
make object! [
Title: "REBOL Mezzanine Extensions"
Date: 1-Aug-2004/21:34:12
Name: 'mezz
Version: 1.2.0
File: none
Home: none
Author: none
Owner: none
Rights: none
Needs: none
Tabs: none
Usage: none
Purpose: none
Comment: none
History: none
Language: none
Type: none
Content: none
]
[
home: %/c/programmi/rebol/view/
script: none
path: %/c/programmi/rebol/view/
boot: %/C/Programmi/rebol/view/rebol.exe
args: none
do-arg: none
link-url: none
server: none
quiet: true
trace: false
help: false
install: none
boot-flags: 16
boot-version: none
binary-base: 16
cgi: make object! [
server-software: none
server-name: none
gateway-interface: none
server-protocol: none
server-port: none
request-method: none
path-info: none
path-translated: none
script-name: none
query-string: none
remote-host: none
remote-addr: none
auth-type: none
remote-user: none
remote-ident: none
Content-Type: none
content-length: none
other-headers: []
]
browser-type: 0
]
name: "MaxV"
email: maxint@tiscali.it
home: none
words: none
title: none
header: none
parent: none
path: %/c/programmi/rebol/view/
args: none
words: none
>> probe system/console
make object! [
history: ["probe system/console"]
keys: none
prompt: ">> "
result: "== "
escape: "(escape)"
busy: "|/-\"
tab-size: 4
break: true
lookup: func [
"Console filename completion lookup."
file /value
][
if #"/" <> last file [file: first split-path file]
attempt [read file]
]
]
>> system/console/prompt: "Command> "
== "Command> "
Command> system/console/result: "Result-> "
Result-> "Result-> "
Command> print "Hello"
Hello
Command> 2 - 2
Result-> 0
<html>
<form action="testpost.r" method="POST">
<input maxlength="20" name="name" size="20" type="text" />
<input type="submit" value="OK" />
</form>
</html>
#!/path/to/rebol -c
REBOL [Title: "Print POST Data"]
;- Always print this line first
print ["Content-type: text/html" newline newline]
post-data: copy system/ports/input
print [<HTML><PRE> post-data </PRE></HTML>]
quit
>> help system/network
SYSTEM/NETWORK is an object of value:
host string! "PC19"
host-address tuple! 192.1.1.1
>> system/schemes/ftp/user: 741856@aruba.it
>> system/schemes/ftp/pass: "secretxxxyyyy"
>> foreach item ( read ftp://ftp.rebol2.it/main/) [ print item]
1-9stylesheet.css
16-11-07stylesheet.css
16-2stylesheet.css
30-1stylesheet.css
Policarpa.jpg
Technip3.zip
_index.html
c4i/
cgi-bin/
chat-test.html
english/
gpEasy/
gpEasy_en/
htaccess.txt
immagini/
index.html
indirizzo.gif
info.php
infophp.php
it/
italiano/
postinfo.html
prototype.js
recaptchalib.php
robots.txt
sessioni.php
sfondo.jpg
stile.css
stylesheet.css
temp/
uploads/
>> help system/schemes/http
SYSTEM/SCHEMES/HTTP is an object of value:
scheme word! HTTP
host none! none
port-id integer! 80
user none! none
pass none! none
target none! none
path none! none
proxy object! [host port-id user pass type bypass]
access none! none
allow none! none
buffer-size none! none
limit none! none
handler object! [port-flags open-check close-check write-check ini...
status none! none
size none! none
date none! none
url none! none
sub-port none! none
locals none! none
state none! none
timeout none! none
local-ip none! none
local-service none! none
remote-service none! none
last-remote-service none! none
direction none! none
key none! none
strength none! none
algorithm none! none
block-chaining none! none
init-vector none! none
padding none! none
async-modes none! none
remote-ip none! none
local-port none! none
remote-port none! none
backlog none! none
device none! none
speed none! none
data-bits none! none
parity none! none
stop-bits none! none
rts-cts logic! true
user-data none! none
awake none! none
passive none! none
cache-size integer! 5
user-agent string! "REBOL View 2.7.8.3.1"
>> system/error/syntax/type
== "Syntax Error"
>> system/error/syntax/invalid
== ["Invalid" :arg1 "--" :arg2]
>> temp: make system/standard/email []
>> ? temp
TEMP is an object of value:
To none! none
CC none! none
BCC none! none
From none! none
Reply-To none! none
Date none! none
Subject none! none
Return-Path none! none
Organization none! none
Message-Id none! none
Comment none! none
X-REBOL string! "View 2.7.8.3.1 http://WWW.REBOL.COM"
MIME-Version none! none
Content-Type none! none
Content none! none
>> system/stats
== 545527840
>> probe system/locale
make object! [
months: [
"January" "February" "March" "April" "May" "June"
"July" "August" "September" "October" "November" "December"
]
days: [
"Monday" "Tuesday" "Wednesday" "Thursday" "Friday" "Saturday" "Sunday"
]
]
>> help system/user-license
SYSTEM/USER-LICENSE is an object of value:
name none! none
email none! none
id none! none
message none! none
#! /usr /bin /rebol-core -cs
Rebol [ title: "My first example" ]
print "Content-type: text/html^/"
print [ "REBOL CGI works!" "Time is: " now/time]