# Request provider insights

Canonical URL: https://sosoapi.ai/docs/mcp/request-provider-insights

`sosoapi_request_provider_insights`

Ask the provider for insights for an account or one post over an optional date range (up to 366 days). Returns a request_id and, when cached, the result; otherwise poll sosoapi_get_provider_insight_status.

## Profiles and transports

Profiles: core, full

Transports: stdio, http

Choose core or full to control which tools your client sees; this does not change its permissions. Local file upload requires stdio and is unavailable over HTTP. Set SOSOAPI_OUTPUT_SCHEMAS=1 to include output schemas in discovery. Tools return structured results with or without that setting.

## Permissions and side effects

Annotations help clients describe a tool. Each call still checks the user’s authentication, role, resource access and capability grants.

```json
{
  "readOnlyHint": false,
  "destructiveHint": false,
  "idempotentHint": false,
  "openWorldHint": true
}
```

`/analytics-api/provider-insights/request` — agent:operate; provider-native result or explicit unavailable reason

## Input fields

```json
{
  "type": "object",
  "properties": {
    "workspace_id": {
      "type": "string",
      "format": "uuid"
    },
    "social_account_id": {
      "type": "string",
      "format": "uuid"
    },
    "resource_kind": {
      "type": "string",
      "enum": [
        "account",
        "post"
      ]
    },
    "provider_resource_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 512
    },
    "start_date": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
    },
    "end_date": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
    },
    "include_audience": {
      "type": "boolean"
    },
    "refresh": {
      "type": "boolean"
    }
  },
  "required": [
    "workspace_id",
    "social_account_id",
    "resource_kind"
  ],
  "additionalProperties": false
}
```

## Structured output

This schema describes structuredContent in a successful tool result. The MCP response also includes content and may set isError when a call fails. For publishing, read the post’s final result rather than treating an accepted request or text response as confirmation. The linked API operation explains permissions and retry rules.

```json
{
  "type": "object",
  "properties": {
    "contract_version": {
      "type": "string",
      "const": "provider-insights/v1"
    },
    "request_id": {
      "type": "string",
      "format": "uuid"
    },
    "status": {
      "type": "string",
      "enum": [
        "queued",
        "completed"
      ]
    },
    "cache_status": {
      "type": "string",
      "enum": [
        "hit",
        "miss",
        "bypassed"
      ]
    },
    "poll_after_ms": {
      "type": "integer",
      "minimum": 0,
      "maximum": 60000
    },
    "result": {
      "type": "object",
      "properties": {
        "contract_version": {
          "type": "string",
          "const": "provider-insights/v1"
        },
        "request_id": {
          "type": "string",
          "format": "uuid"
        },
        "platform": {
          "type": "string",
          "enum": [
            "facebook",
            "instagram",
            "threads",
            "youtube"
          ]
        },
        "resource": {
          "type": "object",
          "properties": {
            "kind": {
              "type": "string",
              "enum": [
                "account",
                "post"
              ]
            },
            "social_account_id": {
              "type": "string",
              "format": "uuid"
            },
            "provider_resource_id": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ]
            }
          },
          "required": [
            "kind",
            "social_account_id",
            "provider_resource_id"
          ],
          "additionalProperties": false
        },
        "provider_api_version": {
          "type": "string",
          "minLength": 1,
          "maxLength": 100
        },
        "fetched_at": {
          "type": "string",
          "format": "date-time",
          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
        },
        "status": {
          "type": "string",
          "enum": [
            "available",
            "partial",
            "unavailable"
          ]
        },
        "availability": {
          "minItems": 1,
          "maxItems": 64,
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "scope": {
                "type": "string",
                "minLength": 1,
                "maxLength": 200
              },
              "status": {
                "type": "string",
                "enum": [
                  "available",
                  "partial",
                  "not_returned",
                  "unsupported",
                  "permission_required",
                  "threshold_not_met",
                  "no_data",
                  "failed"
                ]
              },
              "reason": {
                "type": "string",
                "minLength": 1,
                "maxLength": 2000
              }
            },
            "required": [
              "scope",
              "status"
            ],
            "additionalProperties": false
          }
        },
        "provider_data": {
          "anyOf": [
            {},
            {
              "type": "null"
            }
          ]
        },
        "requested_date_range": {
          "anyOf": [
            {
              "type": "object",
              "properties": {
                "start_date": {
                  "type": "string",
                  "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
                },
                "end_date": {
                  "type": "string",
                  "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
                }
              },
              "required": [
                "start_date",
                "end_date"
              ],
              "additionalProperties": false
            },
            {
              "type": "null"
            }
          ]
        },
        "cache": {
          "type": "object",
          "properties": {
            "authoritative": {
              "type": "boolean",
              "const": false
            },
            "status": {
              "type": "string",
              "enum": [
                "stored",
                "hit",
                "bypassed"
              ]
            },
            "expires_at": {
              "type": "string",
              "format": "date-time",
              "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
            }
          },
          "required": [
            "authoritative",
            "status",
            "expires_at"
          ],
          "additionalProperties": false
        }
      },
      "required": [
        "contract_version",
        "request_id",
        "platform",
        "resource",
        "provider_api_version",
        "fetched_at",
        "status",
        "availability",
        "provider_data",
        "requested_date_range",
        "cache"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "contract_version",
    "request_id",
    "status",
    "cache_status",
    "poll_after_ms"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}
```

## Example tool call

These examples use fictional values checked against the schemas. Replace the IDs with ones you are authorized to use, the media with ready assets and the dates with your confirmed publishing time. Check the account’s eligibility before submitting a write. This page sends no API requests.

```json
{
  "name": "sosoapi_request_provider_insights",
  "arguments": {
    "workspace_id": "11111111-1111-4111-8111-111111111111",
    "social_account_id": "11111111-1111-4111-8111-111111111111",
    "resource_kind": "account"
  }
}
```

structuredContent

```json
{
  "contract_version": "provider-insights/v1",
  "request_id": "11111111-1111-4111-8111-111111111111",
  "status": "queued",
  "cache_status": "hit",
  "poll_after_ms": 0
}
```

## Underlying API operations

- [/analytics-api/provider-insights/request](https://sosoapi.ai/docs/api/analytics-api-provider-insights-request)
