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.

Getting started