code.repo-lookup

Look up a public GitHub repository by "owner/name" slug. Returns full name, owner, description, homepage, default branch, primary language, topics, license (SPDX key + name), counts (stars / forks / watchers / open issues / subscribers / network), size, timestamps (created/updated/pushed), visibility, has-issues/projects/wiki/discussions flags. Unauthenticated GitHub access is rate-limited to 60 req/hour per server IP — returns 429 UPSTREAM_RATE_LIMIT when the bucket is empty.

price
$0.0012 USDC per call
method
GET/api/code/repo-lookup
payment
x402 v2 · USDC on Base (EIP-3009) or Solana (SPL transfer)
auth
None. Sign the payment, retry with PAYMENT-SIGNATURE.
tier
Tier 0 — no paid upstream

Parameters

NameTypeDescription
reporequiredstring
match ^[A-Za-z0-9][\w.-]*\/[A-Za-z0-9._-]+$

Code samples

cURLbash
# 1. Probe with no auth → 402 envelope with PaymentRequirements
curl -sS 'https://2s.io/api/code/repo-lookup?repo=example'

# 2. Sign + retry with PAYMENT-SIGNATURE:
curl -sS 'https://2s.io/api/code/repo-lookup?repo=example' \
  -H 'PAYMENT-SIGNATURE: <base64-json-payload>'

# Or use the canonical runner (handles probe → sign → retry):
#   EVM_PRIVATE_KEY=0x... node --env-file=.env.local \
#     --experimental-strip-types scripts/x402-pay.ts \
#     'https://2s.io/api/code/repo-lookup?repo=example'
TypeScript / Node — @2sio/sdktypescript
import { TwoS } from '@2sio/sdk'

const client = new TwoS({
  privateKey: process.env.EVM_PRIVATE_KEY as `0x${string}`,
})

const result = await client.code.repoLookup({
  "repo": "example"
})

console.log('endpoint:', result.endpoint)
console.log('cost:', result.costUsd, 'USDC')
console.log('tx:', result.settlement?.txHash)
console.log('data:', result.data)
Python — 2siopython
import os
from twosio import TwoS

client = TwoS(private_key=os.environ["EVM_PRIVATE_KEY"])

result = client.code.repo_lookup(repo="example")

print("endpoint:", result.endpoint)
print("cost:", result.cost_usd, "USDC")
print("tx:", (result.settlement or {}).get("tx_hash"))
print("data:", result.data)
MCP — Claude Desktop / AgentKit / any MCP hostjson
// 1. Add @2sio/mcp to your MCP host config (Claude Desktop example below).
//    EVM_PRIVATE_KEY funds x402 payments per call.

// claude_desktop_config.json
{
  "mcpServers": {
    "2sio": {
      "command": "npx",
      "args": ["-y", "@2sio/mcp"],
      "env": { "EVM_PRIVATE_KEY": "0x..." }
    }
  }
}

// 2. Once the server is running, agents call this tool via standard MCP:

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "code.repo-lookup",
    "arguments": {
      "repo": "example"
    }
  }
}

Response

FieldTypeDescription
fullNamestring
ownerstring
repostring
descriptionstring
homepagestring
htmlUrlstring
uri
isForkboolean
isArchivedboolean
isDisabledboolean
isPrivateboolean
isTemplateboolean
defaultBranchstring
languagestring
topicsarray
licenseobject
starsCountinteger
forksCountinteger
watchersCountinteger
openIssuesCountinteger
subscribersCountinteger
networkCountinteger
sizeinteger
createdAtstring
updatedAtstring
pushedAtstring
visibilitystring
hasIssuesboolean
hasProjectsboolean
hasWikiboolean
hasDiscussionsboolean
sourceobject
Example response datajson
{
  "fullName": "example",
  "owner": "example",
  "repo": "example",
  "description": "example",
  "homepage": "example",
  "htmlUrl": "https://example.com",
  "isFork": false,
  "isArchived": false,
  "isDisabled": false,
  "isPrivate": false,
  "isTemplate": false,
  "defaultBranch": "example",
  "language": "example",
  "topics": [
    "example"
  ],
  "license": {
    "key": "example",
    "name": "example"
  },
  "starsCount": 1,
  "forksCount": 1,
  "watchersCount": 1,
  "openIssuesCount": 1,
  "subscribersCount": 1,
  "networkCount": 1,
  "size": 1,
  "createdAt": "example",
  "updatedAt": "example",
  "pushedAt": "example",
  "visibility": "example",
  "hasIssues": false,
  "hasProjects": false,
  "hasWiki": false,
  "hasDiscussions": false,
  "source": {
    "provider": "example",
    "url": "https://example.com",
    "license": "example"
  }
}

Discovery

2s.io is x402-native. Every call is paid per-request from a USDC-funded EVM wallet on Base — no signup, no API keys, no monthly fees. Source code: github.com/2s-io/sdk.