Skip to main content
POST
/
projects
/
{project_id}
/
search
Search project content
curl --request POST \
  --url https://api.bedrock.cv/projects/{project_id}/search \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "query": "fire-rated doors",
  "limit": 20,
  "source_types": [
    "block",
    "feature"
  ],
  "image_url": "gs://bedrock-files/projects/prj_01JABCD123/files/reference-door.png"
}
'
{
  "results": [
    {
      "id": "<string>",
      "content": "<string>",
      "context": {},
      "score": 123,
      "source_type": "block",
      "source_id": "<string>"
    }
  ]
}
Search answers “where does this appear?” by running hybrid semantic + keyword search across all indexed content in a project. Optionally combine with visual similarity search using a reference image. Search is synchronous and returns results immediately (not an async job).

Request

{
  "query": "elevator shaft with two hydraulic lifts",
  "limit": 20
}
FieldTypeRequiredDescription
querystringYesNatural language search query
limitintegerNoMaximum results to return (default: 20)
source_typesstring[]NoFilter by source type (block, feature, file)
image_urlstringNoStorage URI (gs:// or s3://) for visual similarity search
When image_url is provided, search combines text-based results with visual similarity matching. The image must be a storage URI referencing a file within the target project.
{
  "query": "fire alarm pull station",
  "image_url": "gs://bucket/projects/prj_xxx/files/reference.png"
}
Text and visual results are merged and ranked by combined relevance score.

Response

{
  "results": [
    {
      "id": "block:blk_01JABCD100",
      "content": "First floor electrical plan showing panel schedule...",
      "context": "Sheet A-101, Block: Plan View",
      "score": 0.89,
      "source_type": "block",
      "source_id": "blk_01JABCD100"
    }
  ]
}
FieldDescription
idComposite identifier ({source_type}:{source_id})
contentMatched content text
contextHuman-readable location context
scoreRelevance score (higher is better)
source_typeType of content matched (block, feature, or file)
source_idID of the matched entity

Authorizations

Authorization
string
header
required

API key prefixed with sk_. Example: Authorization: Bearer sk_xxx

Headers

X-API-Version
string
default:2026-01-01

API version

Path Parameters

project_id
string
required

Project ID

Body

application/json
query
string
required
limit
number
default:20
source_types
enum<string>[]
Available options:
block,
feature,
file
image_url
string

Response

Search results.

results
object[]