Sylvia API Posts & Comments API
The Posts & Comments API from Sylvia API — 6 operation(s) for posts & comments.
The Posts & Comments API from Sylvia API — 6 operation(s) for posts & comments.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/sylvia-api-posts-comments-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Sylvia Posts & Comments API
version: 3.0.0
contact:
name: Sylvia API
url: https://sylvia-api.com
email: support@sylvia-api.com
license:
name: Proprietary
url: https://sylvia-api.com/terms
x-agentic-access:
intent: read-only
authenticated: true
idempotent: true
rateLimits:
headers:
- X-RateLimit-Limit
- X-RateLimit-Remaining
- X-RateLimit-Reset
- Retry-After
statusCode: 429
mcpServer: https://api.sylvia-api.com/mcp
llmsTxt: https://sylvia-api.com/llms.txt
description: 'Operations tagged Posts & Comments across 2 of this provider''s published API definitions: sylvia-api-openapi-2026-08-18.json, sylvia-api-openapi-2026-08-20.json. Each path carries the servers of the definition it was published in.'
servers:
- url: https://api.sylvia-api.com/v1
description: Production API server
security:
- ApiKeyAuth: []
tags:
- name: Posts & Comments
paths:
/reddit/submission:
get:
summary: Fetch post by URL
description: Returns a single post given its full Reddit URL.
operationId: getSubmissionByUrl
parameters:
- name: url
in: query
required: true
description: Full Reddit post URL
schema:
type: string
- name: format
in: query
description: Response format. 'reddit' (default) is raw JSON. 'markdown' is available on all tiers; 'minimal' and 'csv' require Strela; 'ndjson' requires Svetka; 'custom(name)' applies a saved template.
schema:
type: string
enum:
- reddit
- minimal
- ndjson
- csv
- markdown
default: reddit
responses:
'200':
description: Post object
content:
application/json:
schema:
$ref: '#/components/schemas/PostResponse'
example:
success: true
data:
posts:
- id: 1abc
title: Example post
after: t3_1abc
request_id: 00000000-0000-0000-0000-000000000000
headers:
X-RateLimit-Tier:
$ref: '#/components/headers/X-RateLimit-Tier'
X-RateLimit-Limit:
$ref: '#/components/headers/X-RateLimit-Limit'
X-RateLimit-Remaining:
$ref: '#/components/headers/X-RateLimit-Remaining'
X-RateLimit-Reset:
$ref: '#/components/headers/X-RateLimit-Reset'
Retry-After:
$ref: '#/components/headers/Retry-After'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'429':
$ref: '#/components/responses/RateLimited'
tags:
- Posts & Comments
servers:
- url: https://api.sylvia-api.com/v1
description: Production API server
/reddit/comment:
get:
summary: Fetch comment by URL
description: Returns a single comment given its full Reddit permalink URL.
operationId: getCommentByUrl
parameters:
- name: url
in: query
required: true
description: Full Reddit comment permalink URL
schema:
type: string
- name: format
in: query
description: Response format. 'reddit' (default) is raw JSON. 'markdown' is available on all tiers; 'minimal' and 'csv' require Strela; 'ndjson' requires Svetka; 'custom(name)' applies a saved template.
schema:
type: string
enum:
- reddit
- minimal
- ndjson
- csv
- markdown
default: reddit
responses:
'200':
description: Comment object
content:
application/json:
schema:
$ref: '#/components/schemas/CommentResponse'
example:
success: true
data:
posts:
- id: 1abc
title: Example post
after: t3_1abc
request_id: 00000000-0000-0000-0000-000000000000
headers:
X-RateLimit-Tier:
$ref: '#/components/headers/X-RateLimit-Tier'
X-RateLimit-Limit:
$ref: '#/components/headers/X-RateLimit-Limit'
X-RateLimit-Remaining:
$ref: '#/components/headers/X-RateLimit-Remaining'
X-RateLimit-Reset:
$ref: '#/components/headers/X-RateLimit-Reset'
Retry-After:
$ref: '#/components/headers/Retry-After'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'429':
$ref: '#/components/responses/RateLimited'
tags:
- Posts & Comments
servers:
- url: https://api.sylvia-api.com/v1
description: Production API server
/reddit/submission/{post_id}/full:
get:
summary: Fully resolved thread
description: Returns the post listing plus all comments with recursive expansion of 'more' stubs (depth-limited).
operationId: getFullThread
parameters:
- name: post_id
in: path
required: true
description: Reddit post ID (e.g. 'abc123' from t3_abc123)
schema:
type: string
- name: sort
in: query
description: Comment sort order
schema:
type: string
enum:
- confidence
- top
- new
- controversial
- old
- qa
default: confidence
- name: format
in: query
description: Response format. 'reddit' (default) is raw JSON. 'markdown' is available on all tiers; 'minimal' and 'csv' require Strela; 'ndjson' requires Svetka; 'custom(name)' applies a saved template.
schema:
type: string
enum:
- reddit
- minimal
- ndjson
- csv
- markdown
default: reddit
responses:
'200':
description: Resolved thread [post_listing, comment_listing]
content:
application/json:
schema:
$ref: '#/components/schemas/ThreadResponse'
example:
success: true
data:
posts:
- id: 1abc
title: Example post
after: t3_1abc
request_id: 00000000-0000-0000-0000-000000000000
headers:
X-RateLimit-Tier:
$ref: '#/components/headers/X-RateLimit-Tier'
X-RateLimit-Limit:
$ref: '#/components/headers/X-RateLimit-Limit'
X-RateLimit-Remaining:
$ref: '#/components/headers/X-RateLimit-Remaining'
X-RateLimit-Reset:
$ref: '#/components/headers/X-RateLimit-Reset'
Retry-After:
$ref: '#/components/headers/Retry-After'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'429':
$ref: '#/components/responses/RateLimited'
tags:
- Posts & Comments
servers:
- url: https://api.sylvia-api.com/v1
description: Production API server
/reddit/duplicates/{submission_id}:
get:
summary: Crosspost duplicates
description: Returns crosspost duplicates of a submission.
operationId: getDuplicates
parameters:
- name: submission_id
in: path
required: true
schema:
type: string
- name: limit
in: query
description: Items per page (1-100, default 25)
schema:
type: integer
minimum: 1
maximum: 100
default: 25
example: 25
- name: format
in: query
description: Response format. 'reddit' (default) is raw JSON. 'markdown' is available on all tiers; 'minimal' and 'csv' require Strela; 'ndjson' requires Svetka; 'custom(name)' applies a saved template.
schema:
type: string
enum:
- reddit
- minimal
- ndjson
- csv
- markdown
default: reddit
responses:
'200':
description: Duplicate submissions
content:
application/json:
schema:
$ref: '#/components/schemas/ListingResponse'
example:
success: true
data:
posts:
- id: 1abc
title: Example post
after: t3_1abc
request_id: 00000000-0000-0000-0000-000000000000
headers:
X-RateLimit-Tier:
$ref: '#/components/headers/X-RateLimit-Tier'
X-RateLimit-Limit:
$ref: '#/components/headers/X-RateLimit-Limit'
X-RateLimit-Remaining:
$ref: '#/components/headers/X-RateLimit-Remaining'
X-RateLimit-Reset:
$ref: '#/components/headers/X-RateLimit-Reset'
Retry-After:
$ref: '#/components/headers/Retry-After'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'429':
$ref: '#/components/responses/RateLimited'
tags:
- Posts & Comments
servers:
- url: https://api.sylvia-api.com/v1
description: Production API server
/reddit/morechildren:
get:
summary: Load more comments
description: Expands truncated 'more' comment stubs in a thread.
operationId: getMoreChildren
parameters:
- name: link_id
in: query
required: true
description: Thread fullname (e.g. t3_abc123)
schema:
type: string
- name: children
in: query
required: true
description: Comma-separated comment IDs to expand
schema:
type: string
- name: sort
in: query
description: Comment sort order
schema:
type: string
- name: format
in: query
description: Response format. 'reddit' (default) is raw JSON. 'markdown' is available on all tiers; 'minimal' and 'csv' require Strela; 'ndjson' requires Svetka; 'custom(name)' applies a saved template.
schema:
type: string
enum:
- reddit
- minimal
- ndjson
- csv
- markdown
default: reddit
responses:
'200':
description: Resolved comments
content:
application/json:
schema:
$ref: '#/components/schemas/GenericResponse'
example:
success: true
data:
posts:
- id: 1abc
title: Example post
after: t3_1abc
request_id: 00000000-0000-0000-0000-000000000000
headers:
X-RateLimit-Tier:
$ref: '#/components/headers/X-RateLimit-Tier'
X-RateLimit-Limit:
$ref: '#/components/headers/X-RateLimit-Limit'
X-RateLimit-Remaining:
$ref: '#/components/headers/X-RateLimit-Remaining'
X-RateLimit-Reset:
$ref: '#/components/headers/X-RateLimit-Reset'
Retry-After:
$ref: '#/components/headers/Retry-After'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'429':
$ref: '#/components/responses/RateLimited'
tags:
- Posts & Comments
servers:
- url: https://api.sylvia-api.com/v1
description: Production API server
/reddit/by_id:
get:
summary: Fetch by fullname IDs
description: Bulk fetch posts, comments, or subreddits by their fullnames.
operationId: getByIds
parameters:
- name: names
in: query
required: true
description: Comma-separated fullnames (e.g. t3_abc,t3_def), max 100
schema:
type: string
- name: format
in: query
description: Response format. 'reddit' (default) is raw JSON. 'markdown' is available on all tiers; 'minimal' and 'csv' require Strela; 'ndjson' requires Svetka; 'custom(name)' applies a saved template.
schema:
type: string
enum:
- reddit
- minimal
- ndjson
- csv
- markdown
default: reddit
responses:
'200':
description: Requested objects
content:
application/json:
schema:
$ref: '#/components/schemas/GenericResponse'
example:
success: true
data:
posts:
- id: 1abc
title: Example post
after: t3_1abc
request_id: 00000000-0000-0000-0000-000000000000
headers:
X-RateLimit-Tier:
$ref: '#/components/headers/X-RateLimit-Tier'
X-RateLimit-Limit:
$ref: '#/components/headers/X-RateLimit-Limit'
X-RateLimit-Remaining:
$ref: '#/components/headers/X-RateLimit-Remaining'
X-RateLimit-Reset:
$ref: '#/components/headers/X-RateLimit-Reset'
Retry-After:
$ref: '#/components/headers/Retry-After'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'429':
$ref: '#/components/responses/RateLimited'
tags:
- Posts & Comments
servers:
- url: https://api.sylvia-api.com/v1
description: Production API server
components:
responses:
Unauthorized:
description: Missing or invalid API key
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
RateLimited:
description: Rate limit exceeded
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
BadRequest:
description: Bad request — invalid parameters
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
NotFound:
description: Resource not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
schemas:
GenericResponse:
allOf:
- $ref: '#/components/schemas/Envelope'
- type: object
properties:
data:
type: object
ListingResponse:
allOf:
- $ref: '#/components/schemas/Envelope'
- type: object
properties:
data:
$ref: '#/components/schemas/ListingData'
ListingData:
type: object
properties:
posts:
type: array
items:
$ref: '#/components/schemas/Post'
after:
type:
- string
- 'null'
PostResponse:
allOf:
- $ref: '#/components/schemas/Envelope'
- type: object
properties:
data:
$ref: '#/components/schemas/Post'
ErrorResponse:
type: object
properties:
success:
type: boolean
error:
type: string
message:
type: string
status:
type: integer
code:
type: string
request_id:
type: string
Post:
type: object
properties:
id:
type: string
title:
type: string
selftext:
type: string
author:
type: string
subreddit:
type: string
score:
type: integer
upvote_ratio:
type: number
num_comments:
type: integer
created_utc:
type: integer
format: int64
permalink:
type: string
url:
type: string
is_self:
type: boolean
over_18:
type: boolean
stickied:
type: boolean
CommentResponse:
allOf:
- $ref: '#/components/schemas/Envelope'
- type: object
properties:
data:
$ref: '#/components/schemas/Comment'
ThreadResponse:
allOf:
- $ref: '#/components/schemas/Envelope'
- type: object
properties:
data:
type: array
description: Reddit thread format [post_listing, comment_listing]
items:
type: object
Envelope:
type: object
properties:
success:
type: boolean
message:
type:
- string
- 'null'
error:
type:
- string
- 'null'
request_id:
type: string
Comment:
type: object
properties:
id:
type: string
body:
type: string
author:
type: string
subreddit:
type: string
score:
type: integer
created_utc:
type: integer
format: int64
permalink:
type: string
parent_id:
type: string
link_id:
type: string
submission_id:
type: string
depth:
type: integer
ErrorResponse_2:
type: object
properties:
success:
type: boolean
error:
type: string
message:
type: string
status:
type: integer
code:
type: string
enum:
- BAD_REQUEST
- UNAUTHORIZED
- FORBIDDEN
- NOT_FOUND
- LOW_BALANCE
- RATE_LIMITED
- FEATURE_LOCKED
- TIER_EXPIRED
- REQUEST_FAILED
request_id:
type: string
headers:
X-RateLimit-Remaining:
description: Remaining requests in the current window.
schema:
type: integer
X-RateLimit-Tier:
description: 'Rate limit tier: free | strela | svetka | enterprise.'
schema:
type: string
X-RateLimit-Reset:
description: Epoch milliseconds when the window resets.
schema:
type: integer
Retry-After:
description: Seconds until retry is allowed, present on 429.
schema:
type: integer
X-RateLimit-Limit:
description: Requests per second for the tier.
schema:
type: integer
securitySchemes:
ApiKeyAuth:
type: apiKey
in: header
name: X-API-Key
description: API key for authentication. Get yours at https://sylvia-api.com
AccountTokenAuth:
type: apiKey
in: header
name: x-sylvia-auth
description: Account token (SV_...) for account management endpoints. Sign in at https://sylvia-api.com to get yours.
x-refined-from:
- sylvia-api-openapi-2026-08-18.json
- sylvia-api-openapi-2026-08-20.json