Skip to content

Civitai support for inline queries #131

Description

@jacklul

They have pretty straightforward API.
Can be used without an API key, though any kind of NSFW content won't be returned.

I have no idea about Rust, completely different language to what I've been working with so far so I won't even attempt at PRing or vibecoding it.

These are what I'm using in my bot:

Regex: civitai\.(?:com|red)/(?P<type>posts|images)/(?P<id>\d+)
Endpoint: GET https://civitai.com/api/v1/images (handles both civitai.com and civitai.red)
Auth header: Authorization: Bearer <API KEY>

Query parameters:

  • limit - default is 50, I've set it to 200 but I doubt you will ever see that many results
  • page if you decide to fetch more than 200
  • browsingLevel - filtering bitmask, use 31 to be able to view everything
  • postId if requesting images of a post (type=posts)
  • imageId if requesting single image (type=images)

Results will be at json.items[] array.
Each result has url, type (image, video), username fields, no thumbnails.
Linking to author - probably a good idea to link https://civitai.red/user/<username> for NSFW images and https://civitai.com/user/<username> for non-NSFW images as they are a different gallery listings.

Video results - I guess they must be skipped because Civitai does not provide any thumbnail for them.

Full endpoint docs: https://developer.civitai.com/site/reference/images

Potential issues:

Regex might conflict with e621/e926/e6ai as they both have /posts/ in URL path.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions