# API Overview

> Modern API category — gRPC, SOAP/WSDL, WebSocket, Server-Sent Events. Routing skill: identify the API protocol from the response Content-Type or wire format, then load the matching sub-skill.

- Skill: `purpleailab/api-overview` (Agent Skill)
- Install (CLI): `npx skillmds@latest add purpleailab/api-overview`
- Raw SKILL.md: https://api.skillmd.com/api/skills/purpleailab/api-overview/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Security
- Author: purpleailab (https://skillmd.com/u/purpleailab)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/purpleailab/api-overview

---


# Modern API Attack Category

This is a routing skill. Identify the API protocol then load the matching sub-skill.

## Sub-skills

| Protocol | Sub-skill | Wire signature |
|---|---|---|
| **gRPC** | `grpc` | HTTP/2 + `application/grpc[+proto|+json]`, port 50051/443 |
| **SOAP/WSDL** | `soap-wsdl` | XML body in `text/xml`/`application/soap+xml`, `?wsdl` discovery |
| **WebSocket** | `websocket` | HTTP `Upgrade: websocket` handshake, then framed binary/text |
| **Server-Sent Events** | `server-sent-events` | `Content-Type: text/event-stream`, one-way streaming |

## Quick fingerprint

```bash
# gRPC?
curl -sk -I --http2 https://target/svc | grep -i 'application/grpc'

# SOAP?
curl -sk "https://target/endpoint?wsdl" | head -1   # XML WSDL doc
curl -sk -X POST -H 'Content-Type: text/xml' https://target/endpoint   # 500 with SOAP fault

# WebSocket?
curl -sk -I -H "Connection: Upgrade" -H "Upgrade: websocket" https://target/ws | head -1
# 101 = WS upgrade

# SSE?
curl -sk -i https://target/stream -H "Accept: text/event-stream" | grep 'text/event-stream'
```

## Sibling skills

For REST + GraphQL go to:
- `load_skill("/skills/standard/exploit/web/SKILL.md")` — sub-skills `graphql`, `idor`, `mass-assignment`, etc.

