← APIs / glim.sh
Verified

glim.sh

Coinbase Bazaarby Coinbase Bazaar · marketplace

Pay-per-call x402 service at glim.sh, listed in the Coinbase Bazaar. Search tweets with advanced operators (recommended). Body param is `query` (not q), e.g. {"query":"from:elonmusk AI min_faves:100"}

datafederated
Price per request
$0.0026
Base URL
https://gateway.apiosk.com/cbz-glim-sh
Technical Specs
Auth MethodNone (x402 payment proof only)
Response FormatJSON
Endpoints5
Endpoints
MethodPathDescriptionCost
POST /api/v1/github/get Fetch GitHub data from a ref (repo + README, files, commits, PRs, issues, discussions)
$0.0023 default
View details
POST /api/v1/twitter/get Fetch a tweet (with thread context) by URL/id or a user (with recent tweets) from one URL
$0.0057 default
View details
POST /api/v1/twitter/search Search tweets with advanced operators (recommended). Body param is `query` (not q), e.g. {"query":"from:elonmusk AI min_faves:100"}
$0.0057 default
View details
POST /api/v1/twitter/tweets/search Search tweets, X-API-style raw shape. Body: {"q":"x402","sort":"Latest","limit":20} - the param is q, not query
$0.0057 default
View details
POST /api/v1/youtube/get Fetch a YouTube transcript from a video URL or 11-char id (video_id, also accepted as ref or url); returns a presigned download URL to the transcript
$0.01 default
View details
Endpoint documentation
POST/api/v1/github/get
$0.0023 default
Description

Fetch GitHub data from a ref (repo + README, files, commits, PRs, issues, discussions)

Pricing
$0.0023 default
Request schema
{
  "properties": {
    "page": {
      "default": 1,
      "description": "Page number for paginated results",
      "maximum": 100,
      "minimum": 1,
      "type": "integer"
    },
    "per_page": {
      "default": 30,
      "description": "Results per page",
      "maximum": 100,
      "minimum": 1,
      "type": "integer"
    },
    "ref": {
      "description": "GitHub URL or 'owner/repo' shorthand. A repo URL or owner/repo returns metadata + README; /pull/N -> PR (with comments + changed files), /issues/N -> issue, /discussions/N -> discussion (with threaded replies), /blob/<ref>/<path> -> file (raw.githubusercontent.com URLs work too), /tree/<ref>[/<path>] -> file tree (optionally scoped to a subdirectory), /commit/<sha> -> one commit with diff, /commits[/<ref>/<path>] -> history (optionally for one file), /branches, /releases (or /releases/tag/<tag> | /releases/latest -> one release), /topics/<name> -> top repos with that topic (by stars).",
      "maxLength": 2048,
      "minLength": 1,
      "type": "string"
    }
  },
  "required": [
    "ref"
  ],
  "type": "object"
}
Example response
{
  "data": {
    "description": "...",
    "full_name": "x402-foundation/x402"
  },
  "kind": "repo"
}
POST/api/v1/twitter/get
$0.0057 default
Description

Fetch a tweet (with thread context) by URL/id or a user (with recent tweets) from one URL

Pricing
$0.0057 default
Request schema
{
  "properties": {
    "cursor": {
      "description": "Profile refs only: pagination cursor",
      "maxLength": 500,
      "type": "string"
    },
    "expand_urls": {
      "default": false,
      "description": "When true, auto-crawl entity URLs and attach crawled_content to tweets. Off by default: responses can grow by up to 4KB per expanded URL. Use glim_web_crawl(url) for targeted crawls instead.",
      "type": "boolean"
    },
    "include": {
      "description": "Tweet refs only: extra sections to include (replies, quotes)",
      "items": {
        "enum": [
          "replies",
          "quotes"
        ],
        "type": "string"
      },
      "type": "array"
    },
    "include_mentions": {
      "default": false,
      "description": "Profile refs only: include the mentions timeline",
      "type": "boolean"
    },
    "include_replies": {
      "default": false,
      "description": "Profile refs only: include replies in the timeline",
      "type": "boolean"
    },
    "ref": {
      "description": "Tweet URL/id or profile URL. Tweet URLs including /i/status/<id> and bare numeric tweet ids return the tweet + thread; a profile URL (https://x.com/<handle>) returns the user + recent tweets.",
      "maxLength": 2048,
      "minLength": 1,
      "type": "string"
    }
  },
  "required": [
    "ref"
  ],
  "type": "object"
}
Example response
{
  "parent": null,
  "thread": [],
  "tweet": {
    "id": "123",
    "text": "Hello"
  }
}
POST/api/v1/twitter/search
$0.0057 default
Description

Search tweets with advanced operators (recommended). Body param is `query` (not q), e.g. {"query":"from:elonmusk AI min_faves:100"}

Pricing
$0.0057 default
Request schema
{
  "properties": {
    "cursor": {
      "description": "Pagination cursor",
      "maxLength": 500,
      "type": "string"
    },
    "end_date": {
      "description": "Only tweets before this time. YYYY-MM-DD (inclusive through end of day UTC) or ISO 8601 datetime with Z/offset (e.g. 2026-04-13T14:30:00Z)",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2}(\\.\\d+)?)?(Z|[+-]\\d{2}:?\\d{2}))?$",
      "type": "string"
    },
    "expand_urls": {
      "default": false,
      "description": "When true, auto-crawl entity URLs and attach crawled_content to tweets. Off by default: responses can grow by up to 4KB per expanded URL. Use glim_web_crawl(url) for targeted crawls instead.",
      "type": "boolean"
    },
    "query": {
      "description": "Search query with advanced operators",
      "maxLength": 1000,
      "minLength": 1,
      "type": "string"
    },
    "sort": {
      "description": "Sort order: \"top\" (most engaged matching tweets) or \"latest\" (newest first). Default: \"top\".",
      "enum": [
        "latest",
        "top"
      ],
      "type": "string"
    },
    "start_date": {
      "description": "Only tweets on or after this time. YYYY-MM-DD (UTC midnight) or ISO 8601 datetime with Z/offset (e.g. 2026-04-13T14:30:00Z)",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2}(\\.\\d+)?)?(Z|[+-]\\d{2}:?\\d{2}))?$",
      "type": "string"
    }
  },
  "required": [
    "query"
  ],
  "type": "object"
}
Example response
{
  "count": 1,
  "has_more": true,
  "next_cursor": "abc123",
  "tweets": [
    {
      "author": {
        "username": "elonmusk"
      },
      "id": "123",
      "text": "Hello"
    }
  ]
}
POST/api/v1/twitter/tweets/search
$0.0057 default
Description

Search tweets, X-API-style raw shape. Body: {"q":"x402","sort":"Latest","limit":20} - the param is q, not query

Pricing
$0.0057 default
Request schema
{
  "properties": {
    "cursor": {
      "description": "Pagination cursor. Ranking is strongest on page 1 - paged results under sort=Top trend toward recency (upstream behavior).",
      "type": "string"
    },
    "limit": {
      "default": 20,
      "description": "Maximum tweets to return",
      "maximum": 200,
      "minimum": 1,
      "type": "integer"
    },
    "q": {
      "description": "Twitter search query with operators",
      "minLength": 1,
      "type": "string"
    },
    "sort": {
      "default": "Top",
      "description": "Sort order",
      "enum": [
        "Latest",
        "Top"
      ],
      "type": "string"
    }
  },
  "required": [
    "q"
  ],
  "type": "object"
}
Example response
{
  "data": [
    {
      "id": "1234567890",
      "text": "Example tweet"
    }
  ],
  "meta": {
    "result_count": 1
  }
}
POST/api/v1/youtube/get
$0.01 default
Description

Fetch a YouTube transcript from a video URL or 11-char id (video_id, also accepted as ref or url); returns a presigned download URL to the transcript

Pricing
$0.01 default
Request schema
{
  "description": "Input for POST /youtube/get",
  "properties": {
    "format": {
      "default": "inline",
      "description": "'inline' (default): include the transcript in the response when it fits the inline cap; otherwise omit it and set transcript_omitted_reason. 'url': never include the transcript; caller fetches download_url. download_url is always present.",
      "enum": [
        "inline",
        "url"
      ],
      "type": "string"
    },
    "language_code": {
      "default": "en",
      "description": "ISO 639-1 language code (e.g. 'en', 'de', 'fr')",
      "maxLength": 10,
      "minLength": 2,
      "type": "string"
    },
    "origin": {
      "default": "uploader_provided",
      "description": "'uploader_provided' for human captions (default), 'auto_generated' for YouTube auto-captions.",
      "enum": [
        "uploader_provided",
        "auto_generated"
      ],
      "type": "string"
    },
    "video_id": {
      "description": "YouTube video URL or 11-char video id (e.g. https://youtu.be/dQw4w9WgXcQ, https://www.youtube.com/watch?v=dQw4w9WgXcQ, or dQw4w9WgXcQ). Also accepted as `ref` or `url`.",
      "minLength": 1,
      "type": "string"
    }
  },
  "required": [
    "video_id"
  ],
  "type": "object"
}
Example response
{
  "content_type": "text/vtt",
  "download_url": "https://...presigned...",
  "expires_at": "2026-04-21T13:00:00Z",
  "language_code": "en",
  "length_chars": 3500,
  "origin": "uploader_provided",
  "size_bytes": 4096,
  "video_id": "dQw4w9WgXcQ"
}