> ## Documentation Index
> Fetch the complete documentation index at: https://docs.bedrock.cv/llms.txt
> Use this file to discover all available pages before exploring further.

# Quick Start

> Create a project, upload a drawing, and query the Drawing Index.

## Prerequisites

* A Bedrock account with an [API key](/guides/api-keys)
* A construction drawing PDF

Set your API key:

```bash theme={null}
export BEDROCK_API_KEY=sk_xxx
```

***

## 1. Create a Project

```bash theme={null}
curl -X POST https://api.bedrock.cv/projects \
  -H "Authorization: Bearer $BEDROCK_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"name": "My First Project"}'
```

```json theme={null}
{
  "id": "prj_01JABCD123",
  "name": "My First Project",
  "created_at": "2024-01-15T10:00:00Z"
}
```

***

## 2. Upload a Drawing

Upload a PDF file, then create a drawing from it.

```bash theme={null}
# Create a file upload
curl -X POST https://api.bedrock.cv/files \
  -H "Authorization: Bearer $BEDROCK_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "project_id": "prj_01JABCD123",
    "filename": "arch-set-rev-b.pdf",
    "content_type": "application/pdf"
  }'
```

```json theme={null}
{
  "id": "fil_01JABCD111",
  "upload_url": "https://storage.bedrock.cv/upload/...",
  "upload_headers": { "Content-Type": "application/pdf" }
}
```

```bash theme={null}
# Upload the PDF to the signed URL
curl -X PUT "https://storage.bedrock.cv/upload/..." \
  -H "Content-Type: application/pdf" \
  --data-binary @arch-set-rev-b.pdf

# Create a drawing from the uploaded file
curl -X POST https://api.bedrock.cv/drawings \
  -H "Authorization: Bearer $BEDROCK_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "project_id": "prj_01JABCD123",
    "file_id": "fil_01JABCD111",
    "name": "Architectural Set Rev B"
  }'
```

```json theme={null}
{
  "id": "drw_01JABCD222",
  "name": "Architectural Set Rev B",
  "job_id": "job_01JABCD333",
  "created_at": "2024-01-15T10:01:00Z"
}
```

***

## 3. Wait for Processing

Bedrock's vision pipeline automatically splits the PDF into sheets, detects blocks, and parses features. Poll the job until it completes:

```bash theme={null}
curl https://api.bedrock.cv/jobs/job_01JABCD333 \
  -H "Authorization: Bearer $BEDROCK_API_KEY"
```

```json theme={null}
{
  "job_id": "job_01JABCD333",
  "type": "drawing.preprocess",
  "status": "Completed",
  "created_at": "2024-01-15T10:01:00Z",
  "completed_at": "2024-01-15T10:02:30Z"
}
```

***

## 4. Query the Drawing Index

Your drawing is now parsed into the Drawing Index. Here are two ways to work with it:

<Tabs>
  <Tab title="REST API">
    **List sheets** in your drawing:

    ```bash theme={null}
    curl "https://api.bedrock.cv/sheets?drawing_id=drw_01JABCD222" \
      -H "Authorization: Bearer $BEDROCK_API_KEY"
    ```

    ```json theme={null}
    {
      "data": [
        { "id": "sht_01A", "sheet_number": "A-101", "title": "First Floor Plan", "discipline": "A" },
        { "id": "sht_01B", "sheet_number": "A-102", "title": "Second Floor Plan", "discipline": "A" },
        { "id": "sht_01C", "sheet_number": "A-501", "title": "Details", "discipline": "A" }
      ]
    }
    ```

    **Query features** — count duplex receptacles on a sheet:

    ```bash theme={null}
    curl "https://api.bedrock.cv/features?sheet_number=E-201&type=duplex_receptacle&project_id=prj_01JABCD123" \
      -H "Authorization: Bearer $BEDROCK_API_KEY"
    ```

    ```json theme={null}
    {
      "data": [
        { "id": "ftr_01A", "type": "duplex_receptacle", "label": null, "parent_feature_id": "ftr_room201" },
        { "id": "ftr_01B", "type": "duplex_receptacle", "label": null, "parent_feature_id": "ftr_room201" },
        { "id": "ftr_01C", "type": "duplex_receptacle", "label": null, "parent_feature_id": "ftr_room202" }
      ],
      "_meta": { "total": 17 }
    }
    ```

    **Get a feature** with its relations:

    ```bash theme={null}
    curl "https://api.bedrock.cv/features/ftr_door104?expand=relations,block" \
      -H "Authorization: Bearer $BEDROCK_API_KEY"
    ```

    See the full [CMS API reference](/cms-api/introduction) for all endpoints.
  </Tab>

  <Tab title="MCP (AI Agents)">
    Connect the Drawing Index to your AI agent and query with natural language.

    Add to your MCP configuration:

    ```json theme={null}
    {
      "mcpServers": {
        "bedrock": {
          "type": "http",
          "url": "https://mcp.bedrock.cv/mcp",
          "headers": { "Authorization": "Bearer sk_xxx" }
        }
      }
    }
    ```

    Then ask your agent:

    > "How many duplex receptacles are on sheet E-201?"

    The agent calls `query_feature` and returns:

    > 17 duplex receptacles on E-201: 4 in Room 201, 3 in Room 202, 2 in Room 203...

    > "What are the specs for door 104?"

    The agent calls `query_feature` to find the door, follows the `scheduled_in` relation to the Door Schedule, and returns:

    > Door 104: 3'-0" x 7'-0", hollow metal, 45-min fire rating, hardware set HW-3.

    See the full [MCP setup guide](/mcp/setup) for Claude, ChatGPT, and Microsoft Copilot configuration.
  </Tab>
</Tabs>

***

## Next Steps

<CardGroup cols={2}>
  <Card title="Core Concepts" icon="book" href="/guides/the-drawing-index">
    Understand the Drawing Index data model — hierarchy, features, relations, and grids.
  </Card>

  <Card title="MCP Workflows" icon="route" href="/mcp/workflows/symbol-counting">
    See how AI agents chain tools to answer construction questions.
  </Card>
</CardGroup>
