# Quora Profiles API (quora.profiles)

- Canonical page: https://everyinfra.com/en/quora-api/profiles
- Endpoint: POST https://api.everyinfra.com/api/v1/social with {"platform": "quora", "action": "profiles", "params": {...}}
- Price: $0.001389 per call ($1.39 per 1,000 requests); failed calls and empty results are not charged
- Returns: list, default 20, max 200 per call
- Mode: sync; add "mode": "async" for slow tasks

## Health

- Live health (24h percent, hourly and daily trends): https://api.everyinfra.com/api/v1/social/availability?platform=quora&action=profiles

## Parameters

| name | type | required | default | description |
|---|---|---|---|---|
| keyword | not declared | yes | not declared | Specifies search keywords across Quora search actions including questions, answers, posts, profiles, and topics. It performs keyword search across those entity types and does not fetch single objects by direct URL. |
| date_range | enum: all_time_broadest_discovery / past_day_last_24_hours / past_hour_very_recent_results / past_month_last_30_days / past_week_last_7_days / past_year_last_12_months | no | not declared | Filters results by publishing window across Quora actions. Supported values are all_time_broadest_discovery, past_hour_very_recent_results, past_day_last_24_hours, past_week_last_7_days, past_month_last_30_days, and past_year_last_12_months. Setting this parameter overrides any legacy time_filter values. |
| limit | integer (1–200) | no | 20 | The most rows to return in this call, an integer from 1 to 200. The default applies when you leave it out, and a call can return fewer rows. Larger values return 422 before any charge. |

## Response fields (items in `results`)

| field | meaning |
|---|---|
| type | Record type; values depend on the capability (for example video / image / text). |
| url | Link to the record on the platform. |
| platform | Source platform identifier, the same as platform in the request (for example xiaohongshu, tiktok). |
| title | Title. null when the platform has no titles (for example text-only posts). |
| posted_at | Publish time in ISO 8601, UTC (for example 2026-08-07T12:34:56+00:00). Non-standard strings from the platform are passed through as is, so parse defensively. null means the platform does not disclose it. |
| answer_count | platform-native meaning |
| comment_count | Comments. null means not disclosed, not 0. |
| follower_count | Followers. null means not disclosed, not 0. |
| is_locked | platform-native meaning |
| is_sensitive | platform-native meaning |
| text | Body text with HTML removed, returned in full and never cut short (on a few platforms the list results themselves carry only an excerpt; the platform's field notes say so). |
| author_name | Author's display name. |
| author_url | Link to the author's profile on the platform. |
| author_credential | platform-native meaning |
| upvote_count | platform-native meaning |
| share_count | Shares. null means not disclosed, not 0. |
| view_count | Views or plays. null means not disclosed, not 0. |
| question_id | platform-native meaning |
| question_url | platform-native meaning |
| space_name | platform-native meaning |
| name | Name of the object itself, for account, product and business capabilities. |
| user_id | User's unique ID on the platform. |
| credential | platform-native meaning |
| avatar_url | Avatar image link. Some platforms return sized CDN links that can expire. |
| topic_id | platform-native meaning |
| photo_url | platform-native meaning |

## Example

```bash
curl -X POST 'https://api.everyinfra.com/api/v1/social' \
  -H "Authorization: Bearer $EVERYINFRA_API_KEY" \
  -H 'Content-Type: application/json' \
  --data-raw '{
  "platform": "quora",
  "action": "profiles",
  "params": {
    "keyword": "programming"
  }
}'
```

```python
import os
import requests

response = requests.post(
    "https://api.everyinfra.com/api/v1/social",
    headers={"Authorization": f"Bearer {os.environ['EVERYINFRA_API_KEY']}"},
    json={
        "platform": "quora",
        "action": "profiles",
        "params": {
            "keyword": "programming",
        },
    },
    timeout=120,
)
print(response.status_code)
print(response.json())
```

## Response example

Real response to the example request above, captured 2026-09-26T08:56:04Z. `results` and `count` are real with personal information (names, handles, avatars, profile links, contact details) removed; the list keeps the first 2 of 20. `id`, `billing` and `quota` differ on every call, so only their shape is shown.

```text
{
  "id": "req_…",
  "platform": "quora",
  "action": "profiles",
  "results": [
    {
      "type": "profile",
      "url": "https://www.quora.com/•••",
      "platform": "quora",
      "name": "•••",
      "user_id": 0,
      "credential": "Manager at Unicity (2013-present)",
      "follower_count": 1068,
      "avatar_url": "https://qph.cf2.quoracdn.net/•••"
    },
    {
      "type": "profile",
      "url": "https://www.quora.com/•••",
      "platform": "quora",
      "name": "•••",
      "user_id": 0,
      "credential": "All IT programming and database DBA techanology qutiones",
      "follower_count": 224,
      "avatar_url": "https://qph.cf2.quoracdn.net/•••"
    }
  ],
  "count": 20,
  "billing": {
    "charged": …,
    "charged_usd": …,
    "balance_after_usd": …,
    …
  },
  "quota": { … }
}
```

## Also

- Capability catalog (no key): https://api.everyinfra.com/api/v1/social/catalog?platform=quora
- OpenAPI: https://everyinfra.com/openapi.json · Agents guide: https://everyinfra.com/agents.md
