Appwrite
appwrite · Developer Tools
Appwrite backend as a service cuts up to 70% of the time and costs required for building a modern application. We abstract and simplify common development tasks behind a REST APIs, to help you develop your app in a fast and secure way. For full API documentation and tutorials go to [https://appwrite.io/docs](https://appwrite.io/docs)
Authentication
Sample Requests
Get a list of all the current user teams. You can use the query params to filter your results. On admin mode, this endpoint will return a list of all of the project's teams. [Learn more about different API modes](/docs/admin).
Hover any highlighted part to learn what it does
curl -X GET "https://api.apis.guru/v2/specs/appwrite.io/client/0.9.3/teams?limit=25&offset=0&search=&orderType=ASC"
import requests
params = {
"limit": "25",
"offset": "0",
"search": "",
"orderType": "ASC"
}
response = requests.get(
"https://api.apis.guru/v2/specs/appwrite.io/client/0.9.3/teams",
params=params,
)
print(response.json())const url = new URL('https://api.apis.guru/v2/specs/appwrite.io/client/0.9.3/teams');
url.searchParams.set('limit', '25');
url.searchParams.set('offset', '0');
url.searchParams.set('search', '');
url.searchParams.set('orderType', 'ASC');
const response = await fetch(url);
const data = await response.json();
console.log(data);package main
import (
"fmt"
"io"
"net/http"
"net/url"
)
func main() {
baseURL, _ := url.Parse("https://api.apis.guru/v2/specs/appwrite.io/client/0.9.3/teams")
q := baseURL.Query()
q.Set("limit", "25")
q.Set("offset", "0")
q.Set("search", "")
q.Set("orderType", "ASC")
baseURL.RawQuery = q.Encode()
targetURL := baseURL.String()
req, _ := http.NewRequest("GET", targetURL, nil)
client := &http.Client{}
resp, _ := client.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}require "net/http"
require "json"
uri = URI("https://api.apis.guru/v2/specs/appwrite.io/client/0.9.3/teams")
uri.query = URI.encode_www_form({
"limit" => "25",
"offset" => "0",
"search" => "",
"orderType" => "ASC"
})
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = uri.scheme == "https"
req = Net::HTTP::Get.new(uri)
res = http.request(req)
puts JSON.parse(res.body)<?php
$url = "https://api.apis.guru/v2/specs/appwrite.io/client/0.9.3/teams?" . http_build_query([
"limit" => "25",
"offset" => "0",
"search" => "",
"orderType" => "ASC"
]);
$opts = ["http" => [
"method" => "GET",
]];
$ctx = stream_context_create($opts);
$res = file_get_contents($url, false, $ctx);
print_r(json_decode($res, true));Use this endpoint to fetch the favorite icon (AKA favicon) of any remote website URL.
Hover any highlighted part to learn what it does
curl -X GET "https://api.apis.guru/v2/specs/appwrite.io/client/0.9.3/avatars/favicon?url=https%3A%2F%2Fexample.com"
import requests
params = {
"url": "https://example.com"
}
response = requests.get(
"https://api.apis.guru/v2/specs/appwrite.io/client/0.9.3/avatars/favicon",
params=params,
)
print(response.json())const url = new URL('https://api.apis.guru/v2/specs/appwrite.io/client/0.9.3/avatars/favicon');
url.searchParams.set('url', 'https://example.com');
const response = await fetch(url);
const data = await response.json();
console.log(data);package main
import (
"fmt"
"io"
"net/http"
"net/url"
)
func main() {
baseURL, _ := url.Parse("https://api.apis.guru/v2/specs/appwrite.io/client/0.9.3/avatars/favicon")
q := baseURL.Query()
q.Set("url", "https://example.com")
baseURL.RawQuery = q.Encode()
targetURL := baseURL.String()
req, _ := http.NewRequest("GET", targetURL, nil)
client := &http.Client{}
resp, _ := client.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}require "net/http"
require "json"
uri = URI("https://api.apis.guru/v2/specs/appwrite.io/client/0.9.3/avatars/favicon")
uri.query = URI.encode_www_form({
"url" => "https://example.com"
})
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = uri.scheme == "https"
req = Net::HTTP::Get.new(uri)
res = http.request(req)
puts JSON.parse(res.body)<?php
$url = "https://api.apis.guru/v2/specs/appwrite.io/client/0.9.3/avatars/favicon?" . http_build_query([
"url" => "https://example.com"
]);
$opts = ["http" => [
"method" => "GET",
]];
$ctx = stream_context_create($opts);
$res = file_get_contents($url, false, $ctx);
print_r(json_decode($res, true));Use this endpoint to fetch a remote image URL and crop it to any image size you want. This endpoint is very useful if you need to crop and display remote images in your app or in case you want to make sure a 3rd party image is properly served using a TLS protocol.
Hover any highlighted part to learn what it does
curl -X GET "https://api.apis.guru/v2/specs/appwrite.io/client/0.9.3/avatars/image?url=https%3A%2F%2Fexample.com&width=400&height=400"
import requests
params = {
"url": "https://example.com",
"width": "400",
"height": "400"
}
response = requests.get(
"https://api.apis.guru/v2/specs/appwrite.io/client/0.9.3/avatars/image",
params=params,
)
print(response.json())const url = new URL('https://api.apis.guru/v2/specs/appwrite.io/client/0.9.3/avatars/image');
url.searchParams.set('url', 'https://example.com');
url.searchParams.set('width', '400');
url.searchParams.set('height', '400');
const response = await fetch(url);
const data = await response.json();
console.log(data);package main
import (
"fmt"
"io"
"net/http"
"net/url"
)
func main() {
baseURL, _ := url.Parse("https://api.apis.guru/v2/specs/appwrite.io/client/0.9.3/avatars/image")
q := baseURL.Query()
q.Set("url", "https://example.com")
q.Set("width", "400")
q.Set("height", "400")
baseURL.RawQuery = q.Encode()
targetURL := baseURL.String()
req, _ := http.NewRequest("GET", targetURL, nil)
client := &http.Client{}
resp, _ := client.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}require "net/http"
require "json"
uri = URI("https://api.apis.guru/v2/specs/appwrite.io/client/0.9.3/avatars/image")
uri.query = URI.encode_www_form({
"url" => "https://example.com",
"width" => "400",
"height" => "400"
})
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = uri.scheme == "https"
req = Net::HTTP::Get.new(uri)
res = http.request(req)
puts JSON.parse(res.body)<?php
$url = "https://api.apis.guru/v2/specs/appwrite.io/client/0.9.3/avatars/image?" . http_build_query([
"url" => "https://example.com",
"width" => "400",
"height" => "400"
]);
$opts = ["http" => [
"method" => "GET",
]];
$ctx = stream_context_create($opts);
$res = file_get_contents($url, false, $ctx);
print_r(json_decode($res, true));Postman Setup Guide
- See official documentation for authentication and setup.
What can you build with Appwrite?
Appwrite is a Developer Tools API. Developers commonly use developer tools APIs for:
- automating code review and quality checks
- integrating CI/CD pipelines and build systems
- managing feature flags and A/B tests
- monitoring errors and application performance
- generating and validating test data
No authentication required. This API is open — no signup or key needed. Ideal for quick prototypes and public-facing features. Appwrite is free to use, making it a low-risk choice to experiment with.
New to APIs? Read our beginner's guide · Learn about API keys · What is REST?