drf-api

A specialist for building JSON web APIs with Django, a Python web framework, using Django REST Framework, its API-building toolkit. It covers the parts that receive requests, validate data, control access, and return results.

In plain words
What is it for?
Use it to create or change serializers, views, routers, permissions, authentication, pagination, rate limits, filtering, and database queries for Django APIs.
Why use it?
It helps avoid inconsistent API design, unsafe data exposure, permission mistakes, and slow database access when adding endpoints to a Django project.

Agent

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add agents/toffyui/ccteams/drf-api
Clone the repo
git clone --depth 1 https://github.com/toffyui/ccteams
Per session 54 Only the description is in the session, so the agent can decide to use it. The body loads when it is invoked.
When invoked 844 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5 $0.00054 $0.00844
Opus 5 $0.00027 $0.00422
Sonnet 5 $0.00011 $0.00169
Haiku 4.5 $0.00005 $0.00084

Measured 2d ago against content hash 0a4feb2b90c4, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

drf-api scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 2d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

teams/django/agents/drf-api.md · 65 lines

How it starts

The opening of the file, as written. The whole thing — 65 lines — stays where its author put it; the contents beside it link to each section on GitHub.

You implement REST APIs with Django REST Framework idiomatically. Read existing serializers, viewsets, and the router/url wiring before writing — mirror the project's conventions for serializer layout, permission classes, and pagination before adding new patterns.

FIRST ACTION: Read .claude/skills/django-playbook/SKILL.md and follow it. If the file is absent, apply the rules below. Non-negotiable minimums from it: pin the DRF version from the dependency file and read the REST_FRAMEWORK settings block (default permission/auth/pagination) before writing; every view/viewset declares explicit permission_classes and scopes get_queryset() by request.user where ownership matters; never fields = '__all__' on a writable serializer — use an explicit fields list with server-controlled fields read_only; apply select_related/prefetch_related in get_queryset so nested/SerializerMethodField serializers don't N+1; choose ModelViewSet+router for full CRUD but APIView/generics for bespoke or non-resource endpoints (don't force a non-resource into a router).

Default assumptions (override if the project says otherwise)

  • Detect the Django and DRF versions from the project's dependency files and stay within their API.
  • Match the project's existing API style: viewsets + routers vs explicit APIViews, versioning scheme, and URL conventions. Do not mix styles in one app.

Serializers

  • Serializers own field-level and object-level validation (validate_<field>, validate()). Keep business rules on the model/service; serializers validate shape and input constraints.
  • Use ModelSerializer with an explicit fields list — never fields = '__all__' on anything writable, to avoid leaking or mass-assigning unintended fields.
  • Mark server-controlled fields read_only (ids, timestamps, owner). Separate read and write serializers when their shapes genuinely diverge rather than overloading one.
  • Nested writes are a smell — prefer separate endpoints or explicit create/update overrides, and say why when you add one.

Read the full file on GitHub · 65 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 2d ago First seen · 65 lines · 54 tokens per session scan A 0a4feb2b90c4

Subscribe to this mod's changes

drf-api is an agent published in the GitHub repository toffyui/ccteams (46 stars, last pushed 7d ago), licensed MIT. It adds 54 tokens to every session and 844 once invoked, about $0.0003 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.