Code examples
Ready-to-use snippets in your language of choice.
curl
# Create a link
curl -X POST https://pico-ya5y.onrender.com/v1/links \
-H "Authorization: Bearer pk_pico_xxxxx" \
-H "Content-Type: application/json" \
-d '{"url": "https://example.com"}'# List links (with search)
curl "https://pico-ya5y.onrender.com/v1/links?search=blog&page=1" \
-H "Authorization: Bearer pk_pico_xxxxx"# Get analytics for a link
curl "https://pico-ya5y.onrender.com/v1/links/abc123/analytics" \
-H "Authorization: Bearer pk_pico_xxxxx"Python
import httpx
import os
API_KEY = os.environ["PICO_API_KEY"]
BASE = "https://pico-ya5y.onrender.com"
HEADERS = {"Authorization": f"Bearer {API_KEY}"}
# Create a link
resp = httpx.post(
f"{BASE}/v1/links",
headers=HEADERS,
json={"url": "https://example.com", "tags": ["blog"]},
)
resp.raise_for_status()
link = resp.json()
print(f"Short code: {link['short_code']}")
# Fetch analytics
analytics = httpx.get(
f"{BASE}/v1/links/{link['id']}/analytics",
headers=HEADERS,
).json()
print(f"Clicks: {analytics['total_clicks']}")JavaScript
const API_KEY = process.env.PICO_API_KEY;
const BASE = "https://pico-ya5y.onrender.com";
async function createLink(url, tags = []) {
const resp = await fetch(`${BASE}/v1/links`, {
method: "POST",
headers: {
Authorization: `Bearer ${API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({ url, tags }),
});
if (!resp.ok) throw new Error("API error");
return resp.json();
}
async function getAnalytics(linkId) {
const resp = await fetch(
`${BASE}/v1/links/${linkId}/analytics`,
{ headers: { Authorization: `Bearer ${API_KEY}` } },
);
return resp.json();
}
// Usage
const link = await createLink("https://example.com");
console.log(`Short link: https://picolink.vercel.app/${link.short_code}`);Go
package main
import (
"bytes"
"encoding/json"
"fmt"
"net/http"
"os"
)
func main() {
apiKey := os.Getenv("PICO_API_KEY")
body, _ := json.Marshal(map[string]string{
"url": "https://example.com",
})
req, _ := http.NewRequest("POST",
"https://pico-ya5y.onrender.com/v1/links",
bytes.NewReader(body),
)
req.Header.Set("Authorization", "Bearer "+apiKey)
req.Header.Set("Content-Type", "application/json")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
var result struct {
ShortCode string `json:"short_code"`
}
json.NewDecoder(resp.Body).Decode(&result)
fmt.Println("Short code:", result.ShortCode)
}Back to docs
Return to the getting started guide.