CtrlK
BlogDocsLog inGet started
Tessl Logo

expo-api-routes

Guidelines for creating API routes in Expo Router with EAS Hosting

Install with Tessl CLI

npx tessl i github:expo/skills --skill expo-api-routes
What are skills?

68

1.07x

Does it follow best practices?

Evaluation100%

1.07x

Agent success when using this skill

Validation for skill structure

SKILL.md
Review
Evals

Evaluation results

100%

8%

Geocoding Proxy API for TravelMate

API proxy with CORS support

Criteria
Without context
With context

+api.ts suffix

100%

100%

app/api/ placement

0%

100%

Named GET export

100%

100%

Query param via searchParams

100%

100%

process.env for secret

100%

100%

CORS headers defined

100%

100%

OPTIONS handler exported

100%

100%

CORS applied to response

100%

100%

Input validation

100%

100%

Error handling try/catch

100%

100%

eas env:create documented

100%

100%

Without context: $0.2474 · 1m 13s · 13 turns · 13 in / 3,219 out tokens

With context: $0.3829 · 1m 12s · 16 turns · 128 in / 4,504 out tokens

100%

11%

Invite Code Generator API for EventHub

Cloudflare Workers runtime compatibility

Criteria
Without context
With context

No fs module

100%

100%

No better-sqlite3 or local DB

100%

100%

Web Crypto for hashing

100%

100%

Web Crypto for randomness

100%

100%

Cloud database used

100%

100%

@libsql/client/web import

62%

100%

process.env for DB credentials

100%

100%

+api.ts suffix

0%

100%

README explains limitations

100%

100%

Input validation retained

100%

100%

Without context: $0.4099 · 6m 46s · 16 turns · 65 in / 6,706 out tokens

With context: $0.4238 · 1m 31s · 18 turns · 65 in / 5,502 out tokens

100%

Personal Notes API for Notely

Dynamic routes and auth middleware

Criteria
Without context
With context

Dynamic route filename

100%

100%

app/api/ directory structure

100%

100%

Named HTTP method exports

100%

100%

Dynamic param as second arg

100%

100%

request.headers.get() for auth

100%

100%

await request.json() for body

100%

100%

Shared auth utility

100%

100%

401 on missing/invalid auth

100%

100%

201 for created resource

100%

100%

400 for missing fields

100%

100%

TypeScript used

100%

100%

Without context: $1.6502 · 6m 26s · 47 turns · 47 in / 24,578 out tokens

With context: $0.6303 · 2m 15s · 24 turns · 23 in / 8,209 out tokens

Evaluated
Agent
Claude Code
Model
Unknown

Table of Contents

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.