Piloterr Weibo API
The Weibo API from Piloterr — 2 operation(s) for weibo.
The Weibo API from Piloterr — 2 operation(s) for weibo.
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/piloterr-com:piloterr-com-weibo-api"
curl "https://apis.io/api/v1/apis?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
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: Piloterr API Reference Weibo API
description: Complete API reference documentation.
version: 1.0.0
servers:
- url: https://api.piloterr.com
description: API Server
tags:
- name: Weibo
paths:
/v2/weibo/search:
get:
summary: Weibo Search
description: 'Search public Weibo posts by keywords. Each post includes the author, text, publish time, engagement counts, image, and video link.
**Credit cost:** 2 credits per call'
operationId: get-weibo-search
security:
- ApiKeyAuth: []
parameters:
- name: query
in: query
required: true
description: "Keywords to search, such as AI.\n\nA Weibo mobile search URL that already contains a containerid is also accepted and keeps that container.\n\nExample:\n\n AI"
schema:
type: string
description: "Keywords to search, such as AI.\n\nA Weibo mobile search URL that already contains a containerid is also accepted and keeps that container.\n\nExample:\n\n AI"
- name: page
in: query
required: false
description: Page number, starting at 1. Default 1. Page 2 is the next slice of the same keywords.
schema:
type: number
default: '1'
description: Page number, starting at 1. Default 1. Page 2 is the next slice of the same keywords.
- $ref: '#/components/parameters/fields'
- $ref: '#/components/parameters/is_async'
- $ref: '#/components/parameters/soft_fail'
responses:
'200':
description: Successful response
content:
application/json:
schema:
type: object
properties:
results:
type: array
items:
type: object
properties:
id:
type: string
url:
type: string
text:
type: string
source:
type: string
user_id:
type: integer
image_url:
type: string
user_name:
type: string
video_url:
type: string
avatar_url:
type: string
created_at:
type: string
reposts_count:
type: integer
comments_count:
type: integer
attitudes_count:
type: integer
pagination:
type: object
properties:
next:
type: string
page:
type: integer
per_page:
type: integer
total_pages:
type: integer
total_results:
type: integer
examples:
Search Weibo for AI:
value:
results:
- id: '5359719204259182'
url: https://m.weibo.cn/detail/5359719204259182
text: 看看人家《潜伏》天津站的年会!无言以对!吴站长&梅姐《Trouble Maker》(现在的AI进化太快了!一日千里,真假难辨。)
source: 历史博主
user_id: 7660126398
image_url: https://wx3.sinaimg.cn/orj480/008mp6NMgy1iikcckwn2xj31hc0u0tbt.jpg
user_name: 收集老照片
video_url: https://video.weibo.com/show?fid=1034:5359718869172258
avatar_url: https://tvax3.sinaimg.cn/crop.0.0.1080.1080.180/008mp6NMly8i65clv146uj30u00u0n04.jpg
created_at: Fri Oct 30 14:01:40 +0800 2026
reposts_count: 1132
comments_count: 399
attitudes_count: 4491
pagination:
next: https://m.weibo.cn/api/container/getIndex?containerid=100103type%3D1%26q%3DAI&page_type=searchall&page=2
page: 1
per_page: 1
total_pages: 100
total_results: 1000
'400':
description: Bad Request — missing or invalid parameters.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
example:
error: Bad Request
'401':
description: Unauthorized — the API key is missing, invalid, inactive, or expired, or a rate limit was exceeded (`Rate limit exceeded…` message).
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
invalidKey:
value:
error: Invalid API Key
planRateLimit:
value:
error: 'Rate limit exceeded: You''ve exceeded the per second rate limit on your subscription'
keyQuota:
value:
error: 'Rate limit exceeded for the API key: quota monthly'
'402':
description: Payment Required — your subscription or credit balance is insufficient.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
example:
error: Payment required
'500':
description: Internal Server Error — something went wrong on our side.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
example:
error: Internal Error
tags:
- Weibo
post:
summary: Weibo Search
description: 'Search public Weibo posts by keywords. Each post includes the author, text, publish time, engagement counts, image, and video link.
**Credit cost:** 2 credits per call'
operationId: post-weibo-search
security:
- ApiKeyAuth: []
parameters:
- $ref: '#/components/parameters/fields'
- $ref: '#/components/parameters/is_async'
- $ref: '#/components/parameters/soft_fail'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
query:
type: string
description: "Keywords to search, such as AI.\n\nA Weibo mobile search URL that already contains a containerid is also accepted and keeps that container.\n\nExample:\n\n AI"
page:
type: number
default: '1'
description: Page number, starting at 1. Default 1. Page 2 is the next slice of the same keywords.
required:
- query
responses:
'200':
description: Successful response
content:
application/json:
schema:
type: object
properties:
results:
type: array
items:
type: object
properties:
id:
type: string
url:
type: string
text:
type: string
source:
type: string
user_id:
type: integer
image_url:
type: string
user_name:
type: string
video_url:
type: string
avatar_url:
type: string
created_at:
type: string
reposts_count:
type: integer
comments_count:
type: integer
attitudes_count:
type: integer
pagination:
type: object
properties:
next:
type: string
page:
type: integer
per_page:
type: integer
total_pages:
type: integer
total_results:
type: integer
examples:
Search Weibo for AI:
value:
results:
- id: '5359719204259182'
url: https://m.weibo.cn/detail/5359719204259182
text: 看看人家《潜伏》天津站的年会!无言以对!吴站长&梅姐《Trouble Maker》(现在的AI进化太快了!一日千里,真假难辨。)
source: 历史博主
user_id: 7660126398
image_url: https://wx3.sinaimg.cn/orj480/008mp6NMgy1iikcckwn2xj31hc0u0tbt.jpg
user_name: 收集老照片
video_url: https://video.weibo.com/show?fid=1034:5359718869172258
avatar_url: https://tvax3.sinaimg.cn/crop.0.0.1080.1080.180/008mp6NMly8i65clv146uj30u00u0n04.jpg
created_at: Fri Oct 30 14:01:40 +0800 2026
reposts_count: 1132
comments_count: 399
attitudes_count: 4491
pagination:
next: https://m.weibo.cn/api/container/getIndex?containerid=100103type%3D1%26q%3DAI&page_type=searchall&page=2
page: 1
per_page: 1
total_pages: 100
total_results: 1000
'400':
description: Bad Request — missing or invalid parameters.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
example:
error: Bad Request
'401':
description: Unauthorized — the API key is missing, invalid, inactive, or expired, or a rate limit was exceeded (`Rate limit exceeded…` message).
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
invalidKey:
value:
error: Invalid API Key
planRateLimit:
value:
error: 'Rate limit exceeded: You''ve exceeded the per second rate limit on your subscription'
keyQuota:
value:
error: 'Rate limit exceeded for the API key: quota monthly'
'402':
description: Payment Required — your subscription or credit balance is insufficient.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
example:
error: Payment required
'500':
description: Internal Server Error — something went wrong on our side.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
example:
error: Internal Error
tags:
- Weibo
/v2/weibo/post/info:
get:
summary: Weibo Post Info
description: 'Retrieve one public Weibo post by post id, including text, images, publish time, engagement counts, and author profile.
**Credit cost:** 2 credits per call'
operationId: get-weibo-post-info
security:
- ApiKeyAuth: []
parameters:
- name: query
in: query
required: true
description: "Weibo post id.\n\nExample:\n\n 5062595839264600\n\nA mobile detail URL is also accepted. The id is the last path segment."
schema:
type: string
description: "Weibo post id.\n\nExample:\n\n 5062595839264600\n\nA mobile detail URL is also accepted. The id is the last path segment."
- $ref: '#/components/parameters/fields'
- $ref: '#/components/parameters/is_async'
- $ref: '#/components/parameters/soft_fail'
responses:
'200':
description: Successful response
content:
application/json:
schema:
type: object
properties:
post:
type: object
properties:
id:
type: string
url:
type: string
pics:
type: array
items:
type: object
properties:
pid:
type: string
url:
type: string
large:
type: object
properties:
url:
type: string
text:
type: string
user:
type: object
properties:
id:
type: integer
verified:
type: boolean
avatar_url:
type: string
screen_name:
type: string
followers_count:
type: string
source:
type: string
video_url:
nullable: true
created_at:
type: string
reposts_count:
type: integer
comments_count:
type: integer
attitudes_count:
type: integer
examples:
Xinhua post 5062595839264600:
value:
post:
id: '5062595839264600'
url: https://m.weibo.cn/detail/5062595839264600
pics:
- pid: 001R0E0aly1hs8gb8rfhoj647k2yg4qt02
url: https://wx4.sinaimg.cn/orj360/001R0E0aly1hs8gb8rfhoj647k2yg4qt02.jpg
large:
url: https://wx4.sinaimg.cn/mw2000/001R0E0aly1hs8gb8rfhoj647k2yg4qt02.jpg
text: 【祝贺!#刘宇坤50米步枪三姿金牌#】当地时间1日,中国选手刘宇坤在巴黎奥运会射击男子50米步枪三姿项目上夺得金牌。
user:
id: 1699432410
verified: true
avatar_url: https://tvax2.sinaimg.cn/crop.58.61.875.875.180/001R0E0aly8h8vg6xx3srj60rs0rsdko02.jpg
screen_name: 新华社
followers_count: 1.14亿
source: 微博网页版
video_url: null
created_at: Thu Aug 01 16:19:29 +0800 2024
reposts_count: 4064
comments_count: 5283
attitudes_count: 195163
'400':
description: Bad Request — missing or invalid parameters.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
example:
error: Bad Request
'401':
description: Unauthorized — the API key is missing, invalid, inactive, or expired, or a rate limit was exceeded (`Rate limit exceeded…` message).
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
invalidKey:
value:
error: Invalid API Key
planRateLimit:
value:
error: 'Rate limit exceeded: You''ve exceeded the per second rate limit on your subscription'
keyQuota:
value:
error: 'Rate limit exceeded for the API key: quota monthly'
'402':
description: Payment Required — your subscription or credit balance is insufficient.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
example:
error: Payment required
'500':
description: Internal Server Error — something went wrong on our side.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
example:
error: Internal Error
tags:
- Weibo
post:
summary: Weibo Post Info
description: 'Retrieve one public Weibo post by post id, including text, images, publish time, engagement counts, and author profile.
**Credit cost:** 2 credits per call'
operationId: post-weibo-post-info
security:
- ApiKeyAuth: []
parameters:
- $ref: '#/components/parameters/fields'
- $ref: '#/components/parameters/is_async'
- $ref: '#/components/parameters/soft_fail'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
query:
type: string
description: "Weibo post id.\n\nExample:\n\n 5062595839264600\n\nA mobile detail URL is also accepted. The id is the last path segment."
required:
- query
responses:
'200':
description: Successful response
content:
application/json:
schema:
type: object
properties:
post:
type: object
properties:
id:
type: string
url:
type: string
pics:
type: array
items:
type: object
properties:
pid:
type: string
url:
type: string
large:
type: object
properties:
url:
type: string
text:
type: string
user:
type: object
properties:
id:
type: integer
verified:
type: boolean
avatar_url:
type: string
screen_name:
type: string
followers_count:
type: string
source:
type: string
video_url:
nullable: true
created_at:
type: string
reposts_count:
type: integer
comments_count:
type: integer
attitudes_count:
type: integer
examples:
Xinhua post 5062595839264600:
value:
post:
id: '5062595839264600'
url: https://m.weibo.cn/detail/5062595839264600
pics:
- pid: 001R0E0aly1hs8gb8rfhoj647k2yg4qt02
url: https://wx4.sinaimg.cn/orj360/001R0E0aly1hs8gb8rfhoj647k2yg4qt02.jpg
large:
url: https://wx4.sinaimg.cn/mw2000/001R0E0aly1hs8gb8rfhoj647k2yg4qt02.jpg
text: 【祝贺!#刘宇坤50米步枪三姿金牌#】当地时间1日,中国选手刘宇坤在巴黎奥运会射击男子50米步枪三姿项目上夺得金牌。
user:
id: 1699432410
verified: true
avatar_url: https://tvax2.sinaimg.cn/crop.58.61.875.875.180/001R0E0aly8h8vg6xx3srj60rs0rsdko02.jpg
screen_name: 新华社
followers_count: 1.14亿
source: 微博网页版
video_url: null
created_at: Thu Aug 01 16:19:29 +0800 2024
reposts_count: 4064
comments_count: 5283
attitudes_count: 195163
'400':
description: Bad Request — missing or invalid parameters.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
example:
error: Bad Request
'401':
description: Unauthorized — the API key is missing, invalid, inactive, or expired, or a rate limit was exceeded (`Rate limit exceeded…` message).
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
invalidKey:
value:
error: Invalid API Key
planRateLimit:
value:
error: 'Rate limit exceeded: You''ve exceeded the per second rate limit on your subscription'
keyQuota:
value:
error: 'Rate limit exceeded for the API key: quota monthly'
'402':
description: Payment Required — your subscription or credit balance is insufficient.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
example:
error: Payment required
'500':
description: Internal Server Error — something went wrong on our side.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
example:
error: Internal Error
tags:
- Weibo
components:
parameters:
fields:
name: fields
in: query
required: false
description: Comma-separated list of response fields to return, with dot notation for nested fields (e.g. `name,location.city`).
schema:
type: string
is_async:
name: is_async
in: query
required: false
description: 'Run the request as a background job: the API answers `202` with a `job_id` to poll on `GET /v1/jobs/{id}`.'
schema:
type: boolean
default: false
soft_fail:
name: soft_fail
in: query
required: false
description: Return HTTP 200 even when the request fails; the error is in the `error` field of the body.
schema:
type: boolean
default: false
schemas:
ErrorResponse:
type: object
required:
- error
properties:
error:
type: string
description: Human-readable error message.
securitySchemes:
ApiKeyAuth:
type: apiKey
in: header
name: x-api-key
description: Your API key. Include it in the x-api-key header for every request.