Back to list
SocketDev

api-client-template

by SocketDev

Claude Code configuration examples for the Customer Success team

0🍴 0📅 Jan 6, 2026

SKILL.md


name: api-client-template description: Template for creating API integration skills. Copy and customize for your specific API.

API Client Template

Authentication

  • Base URL: https://api.example.com/v1
  • Auth: [Basic Auth / Bearer Token / API Key]
  • Header: Authorization: [Basic/Bearer] {TOKEN}
  • Environment variable: EXAMPLE_API_TOKEN

Endpoints

EndpointMethodDescription
/resourcesGETList resources
/resources/{id}GETGet specific resource
/resourcesPOSTCreate resource
/resources/{id}PUTUpdate resource
/resources/{id}DELETEDelete resource

Pagination

  • limit - Max items per request (typically 100)
  • offset or cursor - Position in result set

Python Client

import os
import requests
from typing import Dict, Optional, List

class ExampleClient:
    def __init__(self):
        self.base_url = "https://api.example.com/v1"
        token = os.getenv("EXAMPLE_API_TOKEN")
        if not token:
            raise ValueError("EXAMPLE_API_TOKEN environment variable required")
        self.headers = {
            "Authorization": f"Bearer {token}",
            "Content-Type": "application/json"
        }

    def _request(
        self,
        method: str,
        endpoint: str,
        params: Optional[Dict] = None,
        json: Optional[Dict] = None
    ) -> Dict:
        url = f"{self.base_url}{endpoint}"
        response = requests.request(
            method, url,
            headers=self.headers,
            params=params,
            json=json,
            timeout=30
        )
        response.raise_for_status()
        if response.status_code == 204:
            return {}
        return response.json()

    def list_resources(self, limit: int = 100) -> List[Dict]:
        """Paginate through all resources."""
        resources = []
        cursor = None
        while True:
            params = {"limit": limit}
            if cursor:
                params["cursor"] = cursor
            data = self._request("GET", "/resources", params=params)
            resources.extend(data.get("results", []))
            cursor = data.get("next_cursor")
            if not cursor:
                break
        return resources

    def get_resource(self, resource_id: str) -> Dict:
        return self._request("GET", f"/resources/{resource_id}")

    def create_resource(self, payload: Dict) -> Dict:
        return self._request("POST", "/resources", json=payload)

Error Handling

  • 401 - Unauthorized (check token)
  • 403 - Forbidden (insufficient permissions)
  • 404 - Resource not found
  • 429 - Rate limited (check retry-after header)

Environment Variables

export EXAMPLE_API_TOKEN=your-token-here

Score

Total Score

45/100

Based on repository quality metrics

SKILL.md

SKILL.mdファイルが含まれている

+20
LICENSE

ライセンスが設定されている

0/10
説明文

100文字以上の説明がある

0/10
人気

GitHub Stars 100以上

0/15
最近の活動

3ヶ月以内に更新がある

0/10
フォーク

10回以上フォークされている

0/5
Issue管理

オープンIssueが50未満

+5
言語

プログラミング言語が設定されている

0/5
タグ

1つ以上のタグが設定されている

0/5

Reviews

💬

Reviews coming soon