/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..3999series:searches an SCP series.series:1covers SCP-001 through SCP-999,series:2covers SCP-1000 through SCP-1999, and so on.series:0covers SCP-000.series:7 class:thaumieltitle:searches SCP titles from the Series pages.title_contains:searches for a title substring.title:avalon title_contains:wandererauthor: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:neutralizedtag:searches page tags with forgiving word matching. This can match whole tags and useful tag fragments.tag:horror tag:body-horrortag_exact:searches exact tags. This is best when a broad tag word matches too much.tag_exact:body-horrortag_contains:searches for a substring inside raw tag names.tag_contains:horrorcontains:searches a broad substring across designation, title, author display names, class, tags, and redacted-class markers.contains:neutralizedhas:andmissing:filter records by metadata presence. Supported fields areauthor,class,tags,title,redacted, andid.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.