Fieldinsight Public API
    • Introduction
    • OAuth
    • Personal API Keys
    • Rate limits
    • Contacts
      • Get contacts
        GET
      • Create contact
        POST
      • Upsert contact
        PUT
      • Patch contact
        PATCH
      • Remove contact
        DELETE
    • Customers
      • Create customer
        POST
      • Get customers
        GET
      • Upsert customer
        PUT
      • Patch customer
        PATCH
      • Remove customer
        DELETE
      • Add contact to customer
        POST
      • Remove contact from customer
        DELETE
    • Sites
      • Create site
        POST
      • Get sites
        GET
      • Upsert site
        PUT
      • Patch site
        PATCH
      • Remove site
        DELETE
      • Add site to project
        POST
      • Add contact to site
        POST
      • Remove contact from site
        DELETE
    • Inventory
      • Get items
        GET
      • Create item
        POST
      • Patch item
        PATCH
      • Upsert item
        PUT
      • Remove item
        DELETE
      • Update stock
        PUT
      • Adjust stock
        PUT
    • Invoices
      • List Invoices
      • Create Invoice
      • Update Invoice
      • Delete Invoice
      • Set export status
      • Get Invoice PDF
      • Get payments
      • Add payment
    • Payment Methods
      • Upsert Payment Method
      • List Payment Methods
      • Delete Payment Method
    • Payment Terms
      • Upsert Payment Term
      • List Payment Terms
      • Delete Payment Term
    • Business Entities
      • Upsert Business Entity
      • List Business Entities
      • Delete Business Entity
    • Jobs
      • Get jobs
      • Create job
      • Update job
    • Item Classes
      • List Item Classes
      • Upsert Item Class
      • Delete Item Class
    • Cost Codes
      • Upsert Cost Code
      • List Cost Codes
      • Delete Cost Code
    • Pay Items
      • Upsert Pay Item
      • List Pay Items
      • Delete Pay Item
    • Account Groups
      • Upsert Account Group
      • List Account Groups
      • Delete Account Group
    • Units of Measure
      • Upsert Unit Of Measure
      • List Unit Of Measures
      • Delete Unit Of Measure
    • Business Divisions
      • Upsert Business Division
      • List Business Divisions
      • Delete Business Division
    • Warehouses
      • Upsert Part Item Warehouse Location
      • List Part Item Warehouse Locations
      • Delete Part Item Warehouse Location
    • Warehouse Positions
      • Upsert Part Item Warehouse Position
      • List Part Item Warehouse Positions
      • Delete Part Item Warehouse Position
    • Users
      • Get users
    • Projects
      • Get projects
      • Create project
      • Patch project
      • Upsert project
      • Remove project
      • Add account group
      • Remove account group
    • Project Types
      • Upsert Project Type
      • List Project Types
      • Delete Project Type
    • Job Statuses
      • Get items
    • Job Types
      • Get list
    • Workflows
      • Get list
    • Asset Types
      • Upsert Asset Type
      • List Asset Types
      • Delete Asset Type
    • Asset Categories
      • Upsert Asset Type Category
      • List Asset Type Categories
      • Delete Asset Type Category
    • Asset Category Groups
      • Upsert Asset Category Group
      • List Asset Category Groups
      • Delete Asset Category Group
    • Asset Models
      • Upsert Asset Model
      • List Asset Models
      • Delete Asset Model
    • Assets
      • Get assets
      • Create asset
      • Patch asset
      • Upsert asset
      • Remove asset
    • Inventory Transactions
      • Get transactions
    • To-do Lists
      • Create task
      • Get tasks
      • Update task
      • Remove task
    • To-dos
      • Create sub task
      • Get sub tasks
      • Update sub task
      • Remove sub task
    • To-do Types
      • Upsert Todo Type
      • List Todo Types
      • Delete Todo Type
    • To-do Statuses
      • Upsert Todo Status
      • List Todo Statuses
      • Delete Todo Status
    • To-do Priorities
      • Upsert Todo Priority
      • List Todo Priorities
      • Delete Todo Priority
    • Quotes
      • List Quotes
      • Create Quote
      • Update Quote
      • Delete Quote
      • Set export status
      • Get Quote PDF
    • Reports
      • List Reports
      • Create Report
      • Update Report
      • Delete Report
      • Set export status
      • Get Report PDF
    • Purchase Orders
      • List Purchase Orders
      • Create Purchase Order
      • Update Purchase Order
      • Delete Purchase Order
      • Set export status
      • Get Purchase Order PDF
    • Customer Statuses
      • Upsert Customer Status
      • List Customer Statuses
      • Delete Customer Status
    • Schemas
      • AccountGroupInput
      • AccountGroupListItem
      • AccountGroupListQuery
      • AssetCategoryExcerpt
      • AssetCategoryGroupInput
      • AssetCategoryGroupListItem
      • AssetCategoryGroupListQuery
      • AssetCustomEntryInput
      • AssetDeleteQuery
      • AssetInput
      • AssetListItem
      • AssetListQuery
      • AssetModelExcerpt
      • AssetModelInput
      • AssetModelListItem
      • AssetModelListQuery
      • AssetPatchInput
      • AssetSaveOutput
      • AssetTypeCategoryInput
      • AssetTypeCategoryListItem
      • AssetTypeCategoryListQuery
      • AssetTypeExcerpt
      • AssetTypeInput
      • AssetTypeListItem
      • AssetTypeListQuery
      • BusinessDivisionInput
      • BusinessDivisionListItem
      • BusinessDivisionListQuery
      • BusinessEntityInput
      • BusinessEntityListItem
      • BusinessEntityListQuery
      • ContactCustomEntryInput
      • ContactDeleteQuery
      • ContactExcerpt
      • ContactInput
      • ContactListQuery
      • ContactPatchInput
      • ContactSaveOutput
      • CostCodeInput
      • CostCodeListItem
      • CostCodeListQuery
      • CreateJobOutput
      • CustomEntryOutput
      • CustomerCustomEntryInput
      • CustomerDeleteQuery
      • CustomerExtraContactInput
      • CustomerExtraContactRemoveInput
      • CustomerListItem
      • CustomerListQuery
      • CustomerPatchInput
      • CustomerSaveOutput
      • CustomerStatusInput
      • CustomerStatusListItem
      • CustomerStatusListQuery
      • CustomerWithContactInput
      • DocumentCreateInput
      • DocumentDeleteQuery
      • DocumentJobExcerpt
      • DocumentLineItemInput
      • DocumentLineItemOutput
      • DocumentListQuery
      • DocumentSectionInput
      • DocumentSectionOutput
      • DocumentUpdateInput
      • ExportErrorInput
      • ExportResultInput
      • InvoiceListItem
      • InvoiceListQuery
      • InvoiceUpdateInput
      • ItemClassExcerpt
      • ItemClassInput
      • ItemClassListItem
      • ItemClassListQuery
      • ItemClassRefInput
      • ItemCreateInput
      • ItemDeleteQuery
      • ItemExcerpt
      • ItemIdOutput
      • ItemIdRootOutput
      • ItemInput
      • ItemListItem
      • ItemListQuery
      • ItemPatchInput
      • JobCustomEntryInput
      • JobInput
      • JobListQuery
      • JobStatusListItem
      • JobStatusListQuery
      • JobTypeListItem
      • JobTypeListQuery
      • LineItemLocationOutput
      • ListResponse[AccountGroupListItem]
      • ListResponse[AssetCategoryGroupListItem]
      • ListResponse[AssetListItem]
      • ListResponse[AssetModelListItem]
      • ListResponse[AssetTypeCategoryListItem]
      • ListResponse[AssetTypeListItem]
      • ListResponse[BusinessDivisionListItem]
      • ListResponse[BusinessEntityListItem]
      • ListResponse[ContactListItem]
      • ListResponse[CostCodeListItem]
      • ListResponse[CustomerListItem]
      • ListResponse[CustomerStatusListItem]
      • ListResponse[InvoiceListItem]
      • ListResponse[ItemClassListItem]
      • ListResponse[ItemListItem]
      • ListResponse[JobListItem]
      • ListResponse[JobStatusListItem]
      • ListResponse[JobTypeListItem]
      • ListResponse[PartItemWarehouseLocationListItem]
      • ListResponse[PartItemWarehousePositionListItem]
      • ListResponse[PayItemListItem]
      • ListResponse[PaymentListItem]
      • ListResponse[PaymentMethodListItem]
      • ListResponse[PaymentTermListItem]
      • ListResponse[ProjectListItem]
      • ListResponse[ProjectTypeListItem]
      • ListResponse[PurchaseOrderListItem]
      • ListResponse[QuoteListItem]
      • ListResponse[ReportListItem]
      • ListResponse[SiteListItem]
      • ListResponse[TodoListItem]
      • ListResponse[TodoListListItem]
      • ListResponse[TodoPriorityListItem]
      • ListResponse[TodoStatusListItem]
      • ListResponse[TodoTypeListItem]
      • ListResponse[TransactionListItem]
      • ListResponse[UnitOfMeasureListItem]
      • ListResponse[UserListItem]
      • ListResponse[WorkflowListItem]
      • OptionRemoveRequest
      • OptionUpsertOutput
      • PartItemWarehouseLocationListItem
      • PartItemWarehouseLocationListQuery
      • PartItemWarehousePositionListItem
      • PartItemWarehousePositionListQuery
      • PayItemInput
      • PayItemListItem
      • PayItemListQuery
      • PaymentInput
      • PaymentListItem
      • PaymentListQuery
      • PaymentMethodInput
      • PaymentMethodListItem
      • PaymentMethodListQuery
      • PaymentMethodOutput
      • PaymentOutput
      • PaymentTermListQuery
      • PaymentTermSchema
      • ProjectAccountGroupInput
      • ProjectDeleteQuery
      • ProjectInput
      • ProjectListItem
      • ProjectListQuery
      • ProjectPatchInput
      • ProjectSaveOutput
      • ProjectTypeExcerpt
      • ProjectTypeInput
      • ProjectTypeListItem
      • ProjectTypeListQuery
      • PurchaseOrderExcerpt
      • PurchaseOrderListItem
      • PurchaseOrderUpdateInput
      • QuoteListItem
      • RecipientOutput
      • ReportListItem
      • SiteCustomEntryInput
      • SiteDeleteQuery
      • SiteExtraContactInput
      • SiteExtraContactRemoveInput
      • SiteListQuery
      • SitePatchInput
      • SiteProjectInput
      • SiteSaveOutput
      • SiteWithContactInput
      • StockAdjustInput
      • StockItemRefInput
      • StockUpdateInput
      • SupplierExcerpt
      • TodoCreateInput
      • TodoDeleteQuery
      • TodoListCreateInput
      • TodoListDeleteQuery
      • TodoListExcerpt
      • TodoListItem
      • TodoListListItem
      • TodoListListQuery
      • TodoListPatchInput
      • TodoListQuery
      • TodoListSaveOutput
      • TodoPatchInput
      • TodoPriorityExcerpt
      • TodoPriorityInput
      • TodoPriorityListItem
      • TodoPriorityListQuery
      • TodoSaveOutput
      • TodoStatusExcerpt
      • TodoStatusInput
      • TodoStatusListItem
      • TodoStatusListQuery
      • TodoTypeExcerpt
      • TodoTypeInput
      • TodoTypeListItem
      • TodoTypeListQuery
      • TransactionListItem
      • TransactionListQuery
      • TransactionType
      • UnitOfMeasureExcerpt
      • UnitOfMeasureInput
      • UnitOfMeasureListItem
      • UnitOfMeasureListQuery
      • UnitOfMeasureRefInput
      • UserListItem
      • UserListQuery
      • WarehouseExcerpt
      • WarehouseInput
      • WarehousePositionInput
      • WarehousePositionRefInput
      • WarehouseRefInput
      • WorkflowListItem
      • WorkflowListQuery
      • ApiError
      • ApiValidationErrors
      • ApiValidationErrorDetail

    Rate limits

    To ensure fair usage and platform stability, the FieldInsight Public API enforces rate limits on all applications.
    Understanding how these limits work and how to handle them correctly is essential for building reliable integrations.

    Overview#

    Your application is limited to:
    60 API requests per minute per business
    This limit applies independently to each business your application interacts with.

    How Rate Limiting Works#

    Requests are counted within a fixed one-minute window.
    Each business has its own window timing, and windows reset at different times.
    Within each window:
    You may make up to 60 requests.
    Once the limit is reached, further requests will be rejected until the window resets.

    Rate Limit Headers#

    Every API response includes headers that describe your current rate limit status.
    HeaderDescription
    X-RateLimit-LimitMaximum number of requests allowed in the current window
    X-RateLimit-RemainingNumber of requests remaining in the current window
    X-RateLimit-ResetTime when the current window resets (UTC epoch seconds)
    These headers allow your application to dynamically adjust its request
    behavior.

    What Happens When You Exceed the Limit#

    If you exceed the rate limit, the API will return:
    HTTP 429 Too Many Requests
    When this happens:
    No further requests should be made for that business
    You must wait until the time specified in X-RateLimit-Reset before retrying

    Client-Side Handling Recommendations#

    To build a robust integration, we strongly recommend implementing proper rate limit handling.

    Always Read the Rate Limit Headers#

    Every response includes rate limit information. Use it to:
    Monitor usage
    Prevent hitting the limit
    Determine when it is safe to retry
    If x-ratelimit-remaining is low, proactively slow down requests rather than waiting for a 429 response.

    Handle HTTP 429 Correctly#

    When a 429 Too Many Requests response is received:
    1.
    Read the X-RateLimit-Reset header
    2.
    Calculate how long to wait
    3.
    Pause requests until after the reset time
    Example pseudo-code:
    Modified at 2026-02-18 02:21:38
    Previous
    Personal API Keys
    Next
    Get contacts
    Built with