scp-foundation.org Query Syntax
Database SCP Wiki

/foundation/database/query-syntax

Query Syntax

The database search operates on local metadata only: SCP designation, SCP title, author display names, detected object class, public page tags, and redacted-class markers. It does not search article body text, ratings, images, or revision history.

Default Search

Plain terms are split on spaces and combined with AND. A record must match every term somewhere in its searchable metadata.

humanoid keter

This finds records that match both humanoid and keter, whether those words appear in tags or object-class metadata.

Quoted text searches for a phrase across the searchable metadata.

"body horror"

Quoted phrases are useful when a tag or class contains multiple visible words.

Negation

Prefix any term or selector with ! or - to exclude matching records.

class:keter -tag:humanoid

This finds Keter records that do not have a matching humanoid tag.

!class:safe tag:cognitohazard

This finds cognitohazard-tagged records whose detected object class is not exactly Safe.

Selectors

  • id: searches exact designations, exact numeric IDs, or numeric ranges. id:SCP-173 id:173 id:3000-3999 id:3000..3999
  • series: searches an SCP series. series:1 covers SCP-001 through SCP-999, series:2 covers SCP-1000 through SCP-1999, and so on. series:0 covers SCP-000. series:7 class:thaumiel
  • title: searches SCP titles from the Series pages. title_contains: searches for a title substring. title:avalon title_contains:wanderer
  • author: searches author display names. author_contains: searches for an author substring. author:rutherford author:"T Rutherford"
  • class: searches exact object-class metadata. Use commas for OR inside one class selector. class:safe,euclid class:"Neutralized (Safe)"
  • class_contains: searches for a substring inside object-class metadata. class_contains:neutralized
  • tag: searches page tags with forgiving word matching. This can match whole tags and useful tag fragments. tag:horror tag:body-horror
  • tag_exact: searches exact tags. This is best when a broad tag word matches too much. tag_exact:body-horror
  • tag_contains: searches for a substring inside raw tag names. tag_contains:horror
  • contains: searches a broad substring across designation, title, author display names, class, tags, and redacted-class markers. contains:neutralized
  • has: and missing: filter records by metadata presence. Supported fields are author, class, tags, title, redacted, and id. missing:class has:tags -missing:class

Combining Rules

Separate query tokens with spaces to require all of them. Use comma-separated values inside a selector when one of several values may match.

series:8 class:keter,apollyon tag:cognitohazard -tag_exact:licensebox

This requires Series VIII, requires either Keter or Apollyon, requires a matching cognitohazard tag, and excludes records tagged exactly as licensebox.

Class shortcut buttons in the main search page add or replace the active class: selector. The ALL button removes class selectors from the query.

Legal notice