Our team was manually exporting and re-entering data between Access and Outlook every single day. Their VBA programmer automated the entire workflow in about two weeks. We got back roughly 8 hours a week almost immediately.
Microsoft Access Services
API Integration for MS Access & Excel: Connect Your Data to Any System
Stop re-typing QuickBooks invoices, Salesforce leads and Shopify orders. We connect Microsoft Access and Excel to REST, SOAP and GraphQL APIs with VBA, Power Query and OAuth 2.0, so your data syncs automatically, securely and on a schedule you control. Fixed-scope projects from $1,200.
We had them do a complete rewrite of an Excel spreadsheet that locked up computers, when it was executed. Rajan did a good job of rewriting the spreadsheet and speeding it up. it takes three seconds to refresh compared to 20 minutes it was taking earlier. We'll definitely use Rajan and his team in the future.
What Is API Integration with MS Access and Excel?
API integration with MS Access and Excel means connecting your database or workbook to another application's API so records move between them automatically instead of being typed or pasted. In practice, Access uses VBA (or a SQL staging layer) to call REST, SOAP or GraphQL endpoints, and Excel uses Power Query, VBA or Office Scripts. The result is one consistent dataset, refreshed on demand, on open or on a schedule.
Works with: Microsoft Access 2016, 2019, 2021 and Microsoft 365, plus Excel for Windows and Microsoft 365.
Protocols: REST, SOAP, GraphQL, OData, plus ODBC, CSV and SFTP when no API exists.
Authentication: OAuth 2.0 with automatic token refresh, API keys, basic auth and Microsoft Entra ID (Azure AD).
Sync modes: one-way pull, one-way push, two-way sync, on-demand refresh, scheduled batch.
Pricing: fixed-scope quote after a free review of your API documentation. Projects typically start at $1,200.
Microsoft Access Integrations: 4 Ways to Connect Access to an API
Access has no built-in REST connector and no Power Query, so the right integration pattern depends on volume, authentication and whether the other system can push data to you. Here is how we choose.
| Method | Best for | Strengths | Watch out for |
|---|---|---|---|
| VBA + MSXML2.ServerXMLHTTP | REST or SOAP APIs, scheduled or button-click sync | Full control of headers, OAuth 2.0 tokens, paging and retries; no extra infrastructure | Needs a JSON parser (VBA-JSON); keep secrets out of source code; 64-bit PtrSafe declarations |
| ODBC linked tables / pass-through queries | SQL Server, Azure SQL, PostgreSQL, MySQL and ERPs with ODBC drivers | Live data in forms and reports; server-side filtering | Not an API call; driver and DSN management on every PC |
| Middleware + SQL staging table | Webhooks, high volume, complex OAuth, many users | Reliable, auditable, Access just links to clean tables | Small cloud component to host and monitor |
| SharePoint lists / Dataverse linked tables | Microsoft 365 workflows and Power Automate connectors | Reach hundreds of SaaS apps through Power Automate | Licensing and delegation limits on large lists |
Already running QuickBooks? See our dedicated MS Access QuickBooks integration service. If your source is a SQL database rather than an API, see Excel SQL database integration.
Example: pull API data into Access with VBA
This is a trimmed version of the pattern we deploy: a timeout-protected GET call, bearer-token authentication, explicit handling of HTTP 429 rate limits, JSON parsing, and a transaction so a failed import never leaves half-loaded data. Adapt the table, field names and endpoint to your system.
Option Compare Database
Option Explicit
' Requires JsonConverter.bas (open-source VBA-JSON, MIT license) imported into the project.
' Staging table: tblCustomersStaging (ExternalID Text, CustomerName Text, Email Text, SyncedAt Date/Time)
Private Function ApiGet(ByVal url As String, ByVal token As String) As String
Dim http As Object
Set http = CreateObject("MSXML2.ServerXMLHTTP.6.0")
http.Open "GET", url, False
http.setRequestHeader "Authorization", "Bearer " & token
http.setRequestHeader "Accept", "application/json"
http.setTimeouts 5000, 5000, 15000, 30000 ' resolve, connect, send, receive (ms)
http.send
If http.Status = 429 Then
Err.Raise vbObjectError + 429, "ApiGet", "Rate limited. Retry after: " & http.getResponseHeader("Retry-After")
ElseIf http.Status <> 200 Then
Err.Raise vbObjectError + 500, "ApiGet", "HTTP " & http.Status & " " & http.statusText
End If
ApiGet = http.responseText
End Function
Public Sub ImportCustomers()
Dim payload As Object, rec As Object, rs As DAO.Recordset
Dim ws As DAO.Workspace, inTrans As Boolean
On Error GoTo Fail
Set payload = JsonConverter.ParseJson( _
ApiGet("https://api.example.com/v1/customers?limit=100", GetApiToken()))
Set ws = DBEngine.Workspaces(0)
ws.BeginTrans: inTrans = True
CurrentDb.Execute "DELETE FROM tblCustomersStaging", dbFailOnError
Set rs = CurrentDb.OpenRecordset("tblCustomersStaging", dbOpenDynaset, dbAppendOnly)
For Each rec In payload("data")
rs.AddNew
rs!ExternalID = CStr(rec("id"))
rs!CustomerName = rec("name")
If rec.Exists("email") Then rs!Email = rec("email")
rs!SyncedAt = Now()
rs.Update
Next rec
rs.Close
ws.CommitTrans: inTrans = False
Exit Sub
Fail:
If inTrans Then ws.Rollback
' Log the error to tblSyncLog here, then surface or retry as needed
Debug.Print "Import failed: " & Err.Number & " - " & Err.Description
End SubProduction builds add paging (cursor or offset), exponential back-off, an upsert on ExternalID so reruns never create duplicates, and a tblSyncLog table that records every run.
How to Connect an API to Excel: Power Query, VBA or Office Scripts
Excel gives you more native options than Access. Use Power Query for read-only pulls, VBA when you need to write back to the API or run on a trigger, and Office Scripts with Power Automate when the workbook lives in the cloud.
| Method | Code required | Custom headers / OAuth | Best for |
|---|---|---|---|
| Power Query (Get Data > From Web) | No (M language for advanced cases) | Yes, headers supported; OAuth works best through a token parameter or organizational account | Refreshable reports and dashboards from REST/JSON, OData and CSV endpoints |
| VBA (ServerXMLHTTP + JSON parser) | Yes | Yes, full control including token refresh | POST/PUT/DELETE, writing Excel data back to the API, button-driven workflows |
| Office Scripts + Power Automate | Light TypeScript | Yes, via connectors | Excel for the web and scheduled cloud flows with no desktop dependency |
| WEBSERVICE() worksheet function | No | No headers; not available in Excel for Mac or the web | Quick tests against simple, unauthenticated GET endpoints |
Step-by-step: connect a REST API to Excel with Power Query
- Open the web connector. In Excel, go to Data > Get Data > From Other Sources > From Web and choose Advanced.
- Enter the API URL and headers. Paste the endpoint URL, then add HTTP request headers such as Authorization: Bearer <token> and Accept: application/json.
- Parse the JSON response. In the Power Query editor, convert the response to a table and expand the record columns you need.
- Set data types and load. Set column data types, choose Close & Load To a table or the Data Model.
- Schedule the refresh. Open Query Properties and enable Refresh data when opening the file, or refresh every N minutes while the workbook is open.
For authenticated APIs, a query like this sends the bearer token in a header and shapes the JSON into typed columns:
let
// Token is a Power Query parameter (Home > Manage Parameters), not hard-coded in the query
Source = Json.Document(
Web.Contents(
"https://api.example.com/v1/orders",
[
Headers = [Authorization = "Bearer " & Token, Accept = "application/json"],
Query = [limit = "100", status = "open"]
]
)
),
Rows = Source[data],
AsTable = Table.FromList(Rows, Splitter.SplitByNothing(), null, null, ExtractValues.Error),
Expanded = Table.ExpandRecordColumn(AsTable, "Column1", {"id", "customer", "total", "created_at"}),
Typed = Table.TransformColumnTypes(Expanded, {{"total", type number}, {"created_at", type datetimezone}})
in
TypedTip: store the token in a Power Query parameter rather than in the query text, and never share a workbook with a live token inside. For enterprise setups we move authentication into a secured gateway so end users never see credentials. Related reading: Excel API integration and external system automation and our Excel API and CRM sync case study.
Signs Your Team Needs an API Integration
Staff export a CSV from one system, clean it in Excel and import it into another, every day or every week.
Finance and operations report different totals because each works from a different export.
Customer, product or order records are typed into two or three systems and drift out of sync.
Month-end close depends on one person who knows the manual steps.
A new SaaS tool was adopted and nobody connected it to the Access database or workbook that runs the business.
Auditors ask for a trail of where a number came from and you cannot show it.
Manual handoffs add lag, version mismatches and typos nobody catches until month-end, and every new tool you adopt multiplies them. An integration maps each field once, then moves the data on a schedule with validation and a log of every run. In our projects, replacing recurring re-keying with a scheduled sync removes most of that manual effort and gives every system one consistent dataset.
What's Included in Our API Integration Services
Requirements analysis and API documentation review, including rate limits and versioning
Custom API connector development (REST, SOAP, GraphQL, OData)
Authentication and security (OAuth 2.0 with token refresh, API keys, encrypted secret storage)
Field mapping, transformation and data-type handling
One-way and two-way sync using external IDs and last-modified timestamps
Paging, error handling, retries with exponential back-off, and duplicate prevention
Scheduling: real-time, near-real-time or batch
Data validation and reconciliation reports
Sync logs, monitoring and failure alerts
Testing, documentation, staff handover and ongoing support
Why Choose Us for API Integration with Access & Excel?
We specialize in the Microsoft Access and Excel side of integration, the part generic developers and iPaaS vendors tend to get wrong.
Access and Excel Specialists
Integration is all we do for Access and Excel. We know VBA, DAO, ODBC, Power Query and the quirks of 32-bit vs 64-bit Office, so the build works in your environment, not just in a demo.
Automation That Pays Back
We replace manual re-keying with scheduled or real-time syncs, so your team spends time using data instead of moving it.
Secure by Design
OAuth 2.0, scoped keys, TLS 1.2+, no passwords in VBA or cells, and a log of every run for audit and troubleshooting.
Fixed Scope, Code You Own
You get a written scope and fixed quote, full documentation and code you own. No vendor lock-in and no surprise hourly bills.
Systems We Connect to MS Access and Excel
| System | Typical connection | Authentication | Common use |
|---|---|---|---|
| QuickBooks Online | REST API (Intuit) | OAuth 2.0 | Invoices, customers and payments into Access or Excel reports |
| QuickBooks Desktop | SDK / Web Connector (not REST) | Application certificate | Sync transactions with Access databases |
| Salesforce | REST and Bulk API | OAuth 2.0 | Leads, accounts and opportunities in live Excel reports |
| Shopify | GraphQL Admin API | OAuth 2.0 / app access token | Orders, products and inventory into Access |
| HubSpot, Zoho, Dynamics 365 | REST API / OData | OAuth 2.0 / Entra ID | CRM contacts and deals synced with Access or Excel |
| Stripe, payment and shipping APIs | REST API | Restricted API key | Payment reconciliation and shipment tracking |
| SQL Server, Azure SQL | ODBC / linked tables | Windows or SQL authentication | Move the Access back end to SQL Server and keep the front end |
| Custom or in-house APIs | REST, SOAP or GraphQL | Any standard scheme | Whatever your ERP, WMS or portal exposes |
Security, Reliability and Limits You Should Plan For
Secrets: never hard-code API keys in VBA or cells. We store credentials encrypted, scope them to least privilege and rotate them on a schedule.
Token refresh: OAuth 2.0 access tokens expire, usually promptly. We build automatic refresh so syncs do not fail overnight.
Rate limits: APIs return HTTP 429 when you call too often. We page results, throttle requests and retry with back-off.
Duplicates: every record carries the source system's ID so reruns update rows instead of creating copies.
Webhooks: desktop files cannot receive them, so we use a small cloud endpoint plus a SQL or SharePoint queue that Access and Excel read from.
Size limits: an Access file maxes out at 2 GB and an Excel sheet at 1,048,576 rows. For larger volumes we use a SQL Server back end.
Multi-user: when several people sync at once, we run the integration on one machine or server and share results through the database.
API changes: vendors deprecate versions. We document dependencies and offer monitoring so changes are caught before they break reporting.
Our API Integration Process
A fixed-scope path from API documentation to a monitored production sync.
1. Free Review and Feasibility
We review your API documentation, authentication method, rate limits and data volumes, then confirm what can be automated and how.
2. Data Mapping Design
We map fields between systems, define transformations and validation rules, and decide the sync direction and conflict handling.
3. Connector Development
We build authentication, paging, error handling, retries and the data exchange routines in VBA, Power Query or middleware.
4. Testing and Validation
We test against a sandbox or sample data, force failures, and reconcile record counts and totals between systems.
5. Deployment and Monitoring
We deploy to production, configure scheduling, and set up logs and alerts so failures are visible immediately.
6. Handover and Support
We deliver documentation, train your staff, and offer optional maintenance for API version changes.
How Much Does API Integration with Access or Excel Cost?
Projects typically start at $1,200 and are quoted as a fixed scope after we review your API documentation. The main cost drivers are the number of endpoints, the authentication method (a static API key is simpler than OAuth 2.0 with refresh), one-way versus two-way sync, data volume and how much error handling and monitoring you need. You approve a written scope and price before work starts. To see what your current manual process costs before committing to a build, try our automation audit.
See what the manual process costs before a build
FAQ
Frequently Asked Questions
Find answers to common questions about our services
Ready to Connect Access or Excel to Your Other Systems?
Send us your project details through the RFQ form. Tell us which system you want to connect and we will respond with a detailed proposal and estimate promptly.
Prefer to talk? Call us at +1 385 386 3860
Last updated: October 6, 2026. Reviewed by the Excel Access Expert engineering team.