# Read the latest persisted Bluesky observation per publication metric



URL: /docs/reference/provider-analytics/getLatestBlueskyProviderAnalytics

```json
{"openapi":"3.0.3","info":{"title":"Postdot API","description":"The HTTP API for the lightweight, self-hosted Postdot publication orchestrator.","version":"0.1.0"},"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"Postdot API key","description":"A user-owned Postdot API key sent as `Authorization: Bearer <token>`. Its project scope is limited by the creator’s current access."},"sessionCookie":{"type":"apiKey","in":"cookie","name":"better-auth.session_token","description":"The Better Auth email/password session cookie used by the web application."}},"schemas":{}},"security":[{"bearerAuth":[]},{"sessionCookie":[]}],"tags":[{"name":"System","description":"Service health and runtime information."},{"name":"Access","description":"Instance membership and invitations."},{"name":"Projects","description":"Project lifecycle and access."},{"name":"Channels","description":"Project publication destinations."},{"name":"Posts","description":"Source posts and publication creation."},{"name":"Publications","description":"Publication workflow operations."},{"name":"Taxonomy","description":"Project categories and publication tags."},{"name":"Media","description":"Project media assets and uploads."},{"name":"Settings","description":"Instance-level runtime configuration."},{"name":"Audit","description":"Project audit history."},{"name":"Notifications","description":"Signed-in user notification inboxes with optional project context."},{"name":"Analytics","description":"Provider-neutral publication and execution analytics."},{"name":"Provider Analytics","description":"Persisted provider-owned metric observations."}],"paths":{"/api/projects/{projectId}/analytics/provider/bluesky/latest":{"get":{"operationId":"getLatestBlueskyProviderAnalytics","summary":"Read the latest persisted Bluesky observation per publication metric","tags":["Provider Analytics"],"parameters":[{"name":"projectId","in":"path","required":true,"schema":{"type":"string","minLength":1}},{"name":"publicationIds","in":"query","required":true,"schema":{"type":"array","items":{"type":"string","minLength":1,"pattern":"\\S"},"minItems":1,"maxItems":25,"uniqueItems":true}}],"responses":{"200":{"description":"Response for status 200","content":{"application/json":{"schema":{"type":"object","required":["contractVersion","projectId","provider","observations","limit","hasMore"],"properties":{"contractVersion":{"type":"integer","minimum":1},"projectId":{"type":"string","minLength":1},"provider":{"type":"string","minLength":1},"observations":{"type":"array","items":{"type":"object","required":["id","projectId","provider","subjectType","providerSubjectId","providerSubjectLabel","providerContentRevisionId","postbotEntityType","postbotEntityId","metricName","value","unit","aggregation","reportingPeriodStart","reportingPeriodEnd","observedAt","fetchedAt","availability","freshness","provenance"],"properties":{"id":{"type":"string","minLength":1},"projectId":{"type":"string","minLength":1},"provider":{"type":"string","minLength":1},"subjectType":{"type":"string","enum":["account","content"]},"providerSubjectId":{"type":"string","minLength":1},"providerSubjectLabel":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"providerContentRevisionId":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"postbotEntityType":{"anyOf":[{"anyOf":[{"type":"string","const":"channel"},{"type":"string","const":"publication"}]},{"type":"null"}]},"postbotEntityId":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"metricName":{"type":"string","minLength":1},"value":{"anyOf":[{"type":"number","minimum":0},{"type":"null"}]},"unit":{"type":"string","minLength":1},"aggregation":{"type":"string","minLength":1},"reportingPeriodStart":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}]},"reportingPeriodEnd":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}]},"observedAt":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}]},"fetchedAt":{"type":"integer","minimum":0},"availability":{"type":"string","enum":["measured","not_reported","not_found","blocked","disabled","temporarily_unavailable","rate_limited","invalid_response","partial_response","not_configured","not_authorized","not_supported"]},"freshness":{"type":"string","enum":["fresh","stale","unknown"]},"provenance":{"type":"string","minLength":1}}}},"limit":{"type":"integer","minimum":1,"maximum":500},"hasMore":{"type":"boolean"}}}}}},"400":{"description":"Response for status 400","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"}}}}}}}},"401":{"description":"Response for status 401","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"}}}}}}}},"403":{"description":"Response for status 403","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"}}}}}}}},"404":{"description":"Response for status 404","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"}}}}}}}},"422":{"description":"Response for status 422","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"}}}}}}}}}}}},"servers":[{"url":"https://postbot.example","description":"Replace with your Postdot instance origin."}]}
```
