# social.grain.unspecced.getStoryAuthors

> Get authors who have active stories (posted within the last 24 hours).

- Kind: query
- Authority: unspecced.grain.social
- Lexicon: 1
- Published by [grain.social](https://lexicon.garden/identity/did:plc:e7rftrdyz5e2rw4y6ocszew2), the NSID's authority

## Links

- [Documentation](https://lexicon.garden/lexicon/did:plc:e7rftrdyz5e2rw4y6ocszew2/social.grain.unspecced.getStoryAuthors)
- [Schema JSON](https://lexicon.garden/lexicon/did:plc:e7rftrdyz5e2rw4y6ocszew2/social.grain.unspecced.getStoryAuthors/schema.json)
- [Analytics](https://lexicon.garden/lexicon/did:plc:e7rftrdyz5e2rw4y6ocszew2/social.grain.unspecced.getStoryAuthors/analytics)

## Query (`social.grain.unspecced.getStoryAuthors`)

Type: query · GET

### Output (application/json)

- `authors` (array, required)
  - `items` (ref)
    - Reference: `social.grain.unspecced.getStoryAuthors#storyAuthor`

## #storyAuthor (`social.grain.unspecced.getStoryAuthors#storyAuthor`)

Type: object

### Properties

- `lastViewedAt` (string · datetime): createdAt of the newest of this author's live stories the requesting account has watched. Compare against latestAt to tell whether the viewer is caught up. Only present for an authenticated viewer who has watched at least one.
- `latestAt` (string · datetime, required)
- `profile` (ref, required)
  - Reference: `social.grain.actor.defs#profileView`
- `storyCount` (integer, required)
- `unviewedCount` (integer): How many of this author's live stories the requesting account has not watched. Only present for an authenticated viewer.

## Schema

```json
{
  "$type": "com.atproto.lexicon.schema",
  "defs": {
    "main": {
      "description": "Get authors who have active stories (posted within the last 24 hours).",
      "output": {
        "encoding": "application/json",
        "schema": {
          "properties": {
            "authors": {
              "items": {
                "ref": "social.grain.unspecced.getStoryAuthors#storyAuthor",
                "type": "ref"
              },
              "type": "array"
            }
          },
          "required": [
            "authors"
          ],
          "type": "object"
        }
      },
      "type": "query"
    },
    "storyAuthor": {
      "properties": {
        "lastViewedAt": {
          "description": "createdAt of the newest of this author's live stories the requesting account has watched. Compare against latestAt to tell whether the viewer is caught up. Only present for an authenticated viewer who has watched at least one.",
          "format": "datetime",
          "type": "string"
        },
        "latestAt": {
          "format": "datetime",
          "type": "string"
        },
        "profile": {
          "ref": "social.grain.actor.defs#profileView",
          "type": "ref"
        },
        "storyCount": {
          "type": "integer"
        },
        "unviewedCount": {
          "description": "How many of this author's live stories the requesting account has not watched. Only present for an authenticated viewer.",
          "type": "integer"
        }
      },
      "required": [
        "profile",
        "storyCount",
        "latestAt"
      ],
      "type": "object"
    }
  },
  "id": "social.grain.unspecced.getStoryAuthors",
  "lexicon": 1
}
```
