Limits
Every enforced size, count, and time limit in Struxen, organized by area, with the exact numbers the product checks
Every number on this page is a limit the product actually enforces. Where a limit is enforced on the server as well as in the browser, exceeding it fails the request rather than silently truncating your data.
Counts described as "per project" are hard caps on how many records a project can hold. Counts described as "per page" are how many rows one request returns; the list keeps paging past them.
Uploads
| Limit | Value | Where |
|---|---|---|
| File size, Documents | 500 MB | Per file |
| Files per batch, Documents | 50 | Files past the cap are named, not dropped silently |
| Files uploading at once, Documents | 3 | The rest queue |
| Accepted extensions, Documents | 20 | See File types |
| File size, STRUX attachments | 100 MB | Composer and mobile |
| Accepted extensions, STRUX attachments | 6 | pdf jpg jpeg png tiff tif |
| Drawing set upload | PDF only | No size check is applied on this surface |
| Photo size | 64 MB | Per photo |
| Photos per batch | 200 | 4 upload at once |
| Voice memo size | 128 MB | Daily logs |
| Voice memo sent for transcription | 32 MB | Daily logs |
| Upload link validity | 30 minutes | The signed upload window. A transfer that outruns it fails, which is why the 500 MB cap exists |
Documents and processing
| Limit | Value |
|---|---|
| Pages read for text, specifications | 100 |
| Pages read for text, everything else | 10 |
| Pages read by the vision model | 1 |
| Reviewers per document | 50 |
| Configured document codes per organization | 40 |
| Configured status codes per organization | 40 |
| Document code length | 12 characters |
| Document code label length | 60 characters |
| Autodesk import | 250 files per import |
| Manual Sync now | One per 30 seconds per project |
The Documents surface is desktop only. Below 768 px wide it is replaced by a "Best viewed on desktop" card.
Drawings and sheets
| Limit | Value |
|---|---|
| Sheets per drawing set | 1,000 |
| Revisions per drawing | 200 |
| Revision number | 999 |
| Sheets per register page | 200 |
| Drawings compared in one set comparison | 2,000 |
| Sheet search query | 120 characters |
| Sheet text matches returned | 50 |
| Points in one ink markup stroke | 2,000 |
| Text in one markup | 500 characters |
| Points in one measurement path | 50 |
| Note on an annotation | 2,000 characters |
| Sheet links per page | 200 |
| Markups returned per query | 2,000 |
| Pins carried forward to a new revision | 500 |
| Markups carried forward to a new revision | 1,000 |
Specifications
| Limit | Value |
|---|---|
| Import cost | $0.012 per page, charged to the project's credits |
Import is metered. The confirm dialog states the page count and the estimate before you commit, and credits are deducted as each section completes.
STRUX
| Limit | Value |
|---|---|
| Conversation history kept | 20 turns |
| Turns replayed as follow-up context | The last 4 completed turns |
| Time limit on one question | 5 minutes, after which the request is abandoned with an error |
| Investigate question | 4,000 characters |
| Attachment size | 100 MB |
| Attachment types | pdf jpg jpeg png tiff tif |
| Anonymous demo questions | 10 per IP address per UTC day |
History is held in the browser. It does not survive a reload.
STRUX Agents
| Limit | Value |
|---|---|
| Agent name | 80 characters |
| Agent description | 2,000 characters |
| SOP text | 20,000 characters |
| Collectors per agent | 12 |
| Compose prompt | 8,000 characters |
| Recipient allowlist | 100 addresses |
| Message body | 20,000 characters |
| Default credit budget per run | 12,000 credits |
| Default advisor calls per run | 2 |
| Default run timeout | 300 seconds |
| Maximum credit budget you may set | 50,000 credits |
| Maximum advisor calls you may set | 20 |
| Maximum run timeout you may set | 900 seconds |
The three defaults are what a new agent gets. The three maximums are the ceilings the form accepts if you raise them.
VANTAGE
| Limit | Value |
|---|---|
| Runs in flight | 2 per user per project, shared between checklist runs and Investigate runs |
| Items per checklist | 50 |
| Revisions kept on a checklist | 20 |
| Run record retention | 90 days |
| Investigate question | 4,000 characters |
| Run with no progress | Marked Failed after 10 minutes |
| Run that never starts | Marked Failed after 30 minutes in Queued |
| Single engine execution | 14 minutes |
| Dry runs per authoring session | 10 |
Field operations
RFIs
| Limit | Value |
|---|---|
| Attachments per RFI | 25 |
| Rows in an exported RFI log | 2,000 |
| Revision cycles | 20 |
| Attachment file name | 300 characters |
| Custom field value | 255 characters |
| Number prefix | 30 characters |
Submittals
| Limit | Value |
|---|---|
| Submittals per project | 5,000 |
| Rows per page | 200 |
| Attachments per submittal | 50 |
| Status aliases per status | 12 |
| Title | 300 characters |
| Description | 8,000 characters |
Transmittals
| Limit | Value |
|---|---|
| Recipients per transmittal | 25 |
| Items per transmittal | 200 |
| Transmittals per project | 1,000 |
| Copies of one item | 999 |
Recipients are project directory contacts. There is no free-text address field, so a transmittal can only go to someone already in the directory.
Daily logs
| Limit | Value |
|---|---|
| Sub-logs per day | 500 |
| Attachments per sub-log | 25 |
| Comments per sub-log | 100 |
| Comment body | 4,000 characters |
| Photo evidence rows | 60 |
| Scheduled work rows | 60 |
| AI parses of captured text | 30 per day |
| Captured text | 8,000 characters |
| Delay types per organization | 40 |
| Delay type label | 60 characters |
| Rows per register page | 200 |
One daily log per project per date. Completing it requires the fixed attestation "I acknowledge this report is accurate", which is stored on the record.
Photos
| Limit | Value |
|---|---|
| Photo size | 64 MB |
| Photos per batch | 200 |
| Photos per auto-tag batch | 12 |
| Trades assigned per photo | 3 |
| Photos per page | 200 |
Safety
| Limit | Value |
|---|---|
| Incidents per project | 5,000 |
| Toolbox talks per project | 5,000 |
| People per incident | 50 |
| Witness statements per incident | 50 |
| Corrective actions per incident | 100 |
| Attendees per toolbox talk | 250 |
Inspections
| Limit | Value |
|---|---|
| Inspections per project | 5,000 |
| Signatures per inspection | 50 |
| Activity rows per inspection | 1,000 |
| Items stamped in one bulk action | 100 |
| Conditions per item | 4 |
| Sections per template | 100 |
| Items per section | 1,000 |
| Items per template | 2,500 |
| Templates per organization | 2,000 |
| Comment | 4,000 characters |
| Rows per page | 200 |
Punch list
| Limit | Value |
|---|---|
| Items per project | 5,000 |
| Attachments per item | 100 |
| Comments per item | 500 |
| Items in one send-all | 500 |
| Image sent for AI description | 4 MB |
| Rows per page | 200 |
Observations
| Limit | Value |
|---|---|
| Related items per observation | 50 |
| Items in one bulk action | 200 |
| Title | 500 characters |
| Description | 10,000 characters |
| Comment | 10,000 characters |
| Image sent for AI drafting | 4 MB |
Meetings
| Limit | Value |
|---|---|
| Categories per meeting | 100 |
| Business items per meeting | 500 |
| Tasks per meeting | 500 |
| Attendees per meeting | 500 |
| AI action-item proposals | 25 |
Attendance is editable only in Minutes mode.
Schedule
| Limit | Value |
|---|---|
| Rows in one import | 20,000 |
| Activities imported from an XER file | 20,000 |
| Activity duration | 50,000 days |
| Dependency lag | 3,650 days |
| Activities on the risk panel | 30 |
| Open items sent to the risk model | 40 |
| Activity name | 300 characters |
| Activity description | 2,000 characters |
| Activity notes | 5,000 characters |
| WBS code | 60 characters |
| Activities per page | 500 |
| Look-ahead plans per project | 500 |
| Tasks per look-ahead plan | 1,000 |
Cost and contracts
Covering the LEDGER modules.
| Limit | Value |
|---|---|
| Contracts per project | 4,000 |
| Schedule-of-values lines per contract | 500 |
| Amendments per contract | 500 |
| Commitments per project | 2,000 |
| Lines per commitment | 500 |
| Change orders per commitment | 500 |
| Lien waiver releases per project | 100 |
| Change rows per project | 8,000 |
| Lines per potential change order | 500 |
| Markups referenced per potential change order | 20 |
| T&M tickets referenced per change | 200 |
| Files referenced per change | 200 |
| Change orders promoted in one action | 100 |
| T&M tickets per project | 5,000 |
| Lines per T&M collection | 200 |
| Signatures per T&M ticket | 40 |
| Direct costs per project | 20,000 |
| Direct-cost rows per import batch | 50 |
| Hours on one direct-cost row | 100,000 |
| Cost-code segments | 13 total, 10 of them custom |
| Segment codes per organization | 10,000 |
| Export records per batch | 2,000 |
| Export batches per project | 500 |
File caps on the AI extraction helpers:
| Limit | Value |
|---|---|
| Contract PDF sent for extraction | 4 MB |
| Contract terms document | 3.9 MB, first 100 pages |
| Certificate of insurance | 10 MB |
| Receipt | 10 MB |
| Commitment document | First 60 pages |
Projects, people, and the directory
| Limit | Value |
|---|---|
| Members per project | 500 |
| Members added in one bulk action | 50 |
| Directory contacts per project | 2,000 |
| Phone numbers per contact | 5 |
| Locations per project | 5,000 |
| Vendors per organization | 2,000 |
| Documents per vendor | 500 |
| Contacts per vendor | 20 |
| Projects on the portfolio view | 250 |
| Saved dashboard layout | 16 KB |
| Global search results | 25 |
Account and access
| Limit | Value |
|---|---|
| Password minimum, most accounts | 8 characters |
| Password minimum, accounts created from an invitation | 12 characters |
| Password composition | Lowercase, uppercase, digit, and symbol, all required |
| Sign-in session | Up to 7 days before you must sign in again |
| Access token lifetime | 60 minutes, refreshed silently |
| Invitation validity | 7 days |
| Invitation resends by an admin | 3 per 24 hours, and they do not extend the original expiry |
| Invitation resends requested by the invitee | 1 per hour, and this does issue a fresh 7-day link |
| Verification code | 6 digits |
| Audit log retention | 2 years |
What happens when you hit a limit
Struxen refuses the operation and says which limit stopped it. It does not truncate silently, and it does not accept the first N and drop the rest without telling you.
Two exceptions worth knowing:
- Long lists are truncated, and say so. When a register hits its row cap, it renders the rows it has and marks the list as partial. A truncated list never claims the project has nothing else.
- A zero credit balance blocks AI and document processing only. Reading, browsing, and ordinary record editing keep working. See Billing.
Related
- File types for what Struxen accepts and reads
- Statuses for every status vocabulary in one place
- Troubleshooting when something is refused and the reason is not obvious