# Gab User Posts API (https://www.socialcrawl.dev/platforms/gab/user-posts) > Returns a Gab account's timeline, newest first, up to 20 posts a page, in the unified Post shape under `data.items[]`. It includes every row Gab shows on the profile: original posts, replies and reposts. A reply carries `post.ext.in_reply_to_id` and `post.ext.in_reply_to_username`. A repost keeps its own `id`, `url` and `published_at` (when it was reposted) and carries the original post on `post.ext.retweeted_post` (`id`, `url`, `author`, `text`, `media_urls`, `engagement`, `published_at`); a quote post carries the quoted post on `post.ext.quoted_post` in the same shape. `engagement.likes`, `comments` and `shares` are Gab's like, reply and repost counts. Gab sometimes drops a few rows from a page, so a page can hold fewer than 20 while more remain: keep passing `next_cursor` back as `cursor` until it is absent. A handle that does not exist returns a 404 and is not billed. TL;DR: `GET /v1/gab/user/posts` costs 1 credit per call and returns SocialCrawl's unified JSON schema. Single x-api-key auth, 100 free credits on signup. ## Parameters | Parameter | Required | Description | | --- | --- | --- | | `handle` | yes | Gab username without the @ (letters, digits and underscores, up to 30 characters), as in gab.com/. | | `cursor` | no | The `next_cursor` value from the previous page, passed back unchanged to fetch the next older page. | | `since` | no | Only rows published on or after this date: YYYY-MM-DD (midnight UTC) or an ISO 8601 timestamp. Rows older than it are left off each page. This list is not in date order, so the walk does not stop at the date: keep following `next_cursor`, and each page costs what a page costs even when every row on it is filtered out. A row with no date is kept. `published_after`, `start_date`, `from_date`, `publish_time` (`yesterday`, `this-week`, `this-month`, `last-3-months`, `last-6-months`) and `max_age_days` are accepted and applied as `since`. | | `until` | no | Only rows published on or before this date: YYYY-MM-DD (that whole UTC day is included) or an ISO 8601 timestamp. Newer rows are left off each page and the walk does not stop, so older pages follow. A row with no date is kept. `published_before`, `end_date` and `to_date` are accepted and applied as `until`. | ## Code example ```bash curl -G "https://www.socialcrawl.dev/v1/gab/user/posts" \ --data-urlencode "handle=a" \ -H "x-api-key: sc_YOUR_API_KEY" ``` See the full Gab API: https://www.socialcrawl.dev/platforms/gab ## Pricing - Standard endpoints: 1 credit per call - Advanced endpoints: 5 credits per call - Premium endpoints: 10 credits per call - 100 free credits on signup, no credit card required. Cached responses cost 0 credits. Credit packs never expire. - Full pricing: https://www.socialcrawl.dev/pricing