2 API
Section 1 — Connections
Integration Hub
9:41
Integrations
3
of 6
Your Tech Stack
3 connected, 3 available
3 Active 3 Available
Connected ServicesManage
QuickBooks Online
Synced 2h ago
Stripe Connect
Active — Payments enabled
Google Calendar
Synced 15m ago
Available IntegrationsBrowse All
Slack
Job alerts & team notifications
Recommended
HubSpot
CRM contacts & deal pipeline
ServiceTitan
Field service management
Browse Marketplace
ContractorIntegrations screen — useQuery(api.integrations.contractorIntegrations.getConnectedIntegrations)
Integration Detail
9:41
QuickBooks
Connected & Syncing
Since Jan 15, 2026
Live
Sync Status
Last Sync Today 7:42 AM
Sync Frequency
Every 2 hours
Records Synced 1,247
Errors 0
Data MappingConfigure
Invoices
3Bids Jobs → QB Invoices
Active
Expenses
Material costs → QB Expenses
Active
Customers
Poster contacts → QB Customers
Paused
Actions
Sync Now
View Sync History
Disconnect
IntegrationDetail screen — useQuery(api.integrations.contractorIntegrations.getIntegrationById)
Section 2 — API Management
API Tokens
9:41
API Tokens
API tokens grant programmatic access Keep tokens secret. Rotate them regularly. Never share them in public repos.
Active Tokens (3)
Production API
Created Feb 1, 2026
Active
3b_live_sk••••••••••••••Xk7m
read:jobs write:bids
Used 2h ago
Edit
Revoke
Staging / Test
Created Jan 20, 2026
Sandbox
3b_test_sk••••••••••••••Ym3q
read:jobs write:bids webhooks
Used 4d ago
Edit
Revoke
Dashboard Read-Only
Created Feb 10, 2026
Expiring
3b_live_ro••••••••••••••Zp1a
read:jobs read:contacts
Expires in 5 days
Renew
Revoke
Generate New Token
ApiTokensList screen — useQuery(api.developer.tokens.list)
Create Token
9:41
Create Token
Token Name
Production Webhook Relay
A descriptive name to identify this token
Expiration
90 days
Token automatically expires after this period
Permissions
read:jobs
View job listings, details, and status
write:bids
Submit and manage bid proposals
read:contacts
View customer contact information
webhooks
Receive real-time event notifications
write:profile
Update business profile information
read:payments
View payment history and payouts
IP Whitelist (Optional)
e.g. 192.168.1.0/24
Restrict token usage to specific IP addresses
Generate Token
CreateTokenForm screen — useMutation(api.developer.tokens.create)
Token Created
9:41
Token Created
Token Generated
Copy your token now. For security, it will not be shown again.
Your API Token
3b_live_sk_a4f9c1e7d8b3f56290e1d
7c8a4b5f623e9d1a0c7f4b8e5d2
This is the only time you will see this token Store it securely in your environment variables or a secrets manager. If lost, you will need to generate a new one.
Security Best Practices Store in environment variables, never in code. Set IP whitelist for production tokens. Rotate every 90 days. Use least-privilege scope permissions.
Done
TokenCreatedSuccess screen — one-time display, token cleared from memory on dismiss
Webhook Config
9:41
Webhooks
Endpoint URL
https://api.mycompany.io/webhooks/3bids
Signing Secret
whsec_••••••••••••••n4Kp
Use this to verify webhook payload authenticity
Event SubscriptionsSelect All
job.created bid.submitted payment.received bid.accepted job.completed contract.signed review.posted payout.sent
Send Test Event
Recent DeliveriesView All
job.created
Today 9:32 AM — 142ms
200
bid.submitted
Today 9:15 AM — 89ms
200
payment.received
Today 8:47 AM — 5012ms
504
job.created
Yesterday 4:18 PM — 102ms
200
bid.submitted
Yesterday 3:55 PM — 67ms
200
WebhookConfig screen — useQuery(api.developer.webhooks.getConfig), useMutation(api.developer.webhooks.test)
Section 3 — Monitoring
API Usage
9:41
API Usage
24h
7d
30d
90d
Total Requests
12,847
+18%
Avg Response
127ms
-12ms
Error Rate
0.3%
-0.1%
Uptime
99.9%
Last 30d
Request Volume
MonTueWedThuFriSatSun
Rate LimitUpgrade
4,200 used 10,000 / hour
Top Endpoints
GET
/v1/jobs
4,312 calls — 98ms avg
POST
/v1/bids
3,891 calls — 145ms avg
GET
/v1/contacts
2,104 calls — 87ms avg
GET
/v1/payments
1,540 calls — 112ms avg
POST
/v1/webhooks/test
1,000 calls — 203ms avg
ApiUsageDashboard screen — useQuery(api.developer.usage.getSummary), useQuery(api.developer.usage.getTimeSeries)
Developer Docs
9:41
API Reference
Sandbox
Production
Base URL
https://api.3bids.io/v1
Authentication
HTTP Header
Authorization: Bearer 3b_live_sk_your_token_here
Endpoints
GET
/jobs
List available jobs in your area
GET
/jobs/:id
Get job details by ID
POST
/bids
Submit a bid on a job
GET
/bids
List your submitted bids
GET
/payments
Payment history & payouts
PUT
/profile
Update contractor profile
Example Request
cURL
curl -X GET \
  "https://api.3bids.io/v1/jobs" \
  -H "Authorization: Bearer 3b_live_sk_..." \
  -H "Content-Type: application/json"
Example Response
JSON
{
  "data": [
    {
      "id": "j_8f3a91c2",
      "title": "Kitchen Remodel",
      "status": "open",
      "budget": 15000,
      "city": "Akron",
      "state": "OH"
    }
  ],
  "meta": {
    "total": 47,
    "page": 1,
    "limit": 25
  }
}
Full Documentation Visit docs.3bids.io for complete API reference, SDKs, and integration guides.
DeveloperDocs screen — static content with sandbox/production toggle, links to docs.3bids.io
1 Hub
Integration Hub + Detail
9:41
Integrations
Your Tech Stack
3 of 6
3 connected, 3 available
Connected Services
QuickBooks Online
Synced 2h ago
Live
Stripe Connect
Active — Payments enabled
Live
Google Calendar
Synced 15m ago
Live
Available
Slack
Job alerts & notifications
Recommended
HubSpot
CRM contacts & deals
QuickBooks Online
Connected & Syncing
Since Jan 15, 2026
Live
Last SyncToday 7:42 AM
FrequencyEvery 2 hours
Records1,247
Errors0
Data Mapping
Invoices
3Bids Jobs → QB Invoices
Active
Expenses
Material costs → QB Expenses
Active
Customers
Poster contacts → QB Customers
Paused

API Tokens + Webhooks
9:41
Developer Tools
Active Tokens (3)
Production API
Created Feb 1, 2026
Active
3b_live_sk••••••Xk7m
read:jobs write:bids Used 2h ago
Staging / Test
Created Jan 20, 2026
Sandbox
3b_test_sk••••••Ym3q
read:jobs write:bids webhooks
Dashboard Read-Only
Expires in 5 days
Expiring
3b_live_ro••••••Zp1a
read:jobs read:contacts
Webhook Configuration
Endpoint URL
https://api.mycompany.io/webhooks/3bids
Signing Secret
whsec_••••••n4Kp
Event Subscriptions
job.created bid.submitted payment.received bid.accepted job.completed contract.signed
Recent Deliveries
job.created
Today 9:32 AM — 142ms
200
bid.submitted
Today 9:15 AM — 89ms
200
payment.received
Today 8:47 AM — 5012ms
504

API Usage + Developer Docs
9:41
Monitoring
API Usage (7 Days)
12,847
Requests
+18%
127ms
Avg Response
-12ms
0.3%
Error Rate
99.9%
Uptime
Rate Limit
4,200 used10,000 / hour
Top Endpoints
GET
/v1/jobs
4,312 calls
POST
/v1/bids
3,891 calls
GET
/v1/contacts
2,104 calls
API Reference
Base URL
https://api.3bids.io/v1
Auth Header
Authorization: Bearer 3b_live_sk_your_token
Endpoints
GET
/jobs
List available jobs
POST
/bids
Submit a bid
GET
/payments
Payment history
PUT
/profile
Update contractor profile
Full Documentation Visit docs.3bids.io for complete API reference, SDKs, and integration guides.
Developer — Dashboard
https://app.3bids.io/contractor/developer
3BidsIntegrations
Dashboard ⌘1
API Tokens ⌘2
Webhooks ⌘3
API Usage ⌘4
Docs ⌘5
Connected ⌘6
Marketplace ⌘7
MK
Mike Kowalski
Contractor
Settings ⌘,
Developer Dashboard
12,847
Total Requests
127ms
Avg Response
0.3%
Error Rate
99.9%
Uptime
Connected Integrations
QuickBooks
Synced 2h ago
Live
Stripe Connect
Payments enabled
Live
Google Calendar
Synced 15m ago
Live
API Tokens (3 Active)
Production API
read:jobs, write:bids
Active
Staging / Test
read:jobs, write:bids, webhooks
Sandbox
Dashboard Read-Only
Expires in 5 days
Expiring
Top Endpoints
GET/v1/jobs4,312
POST/v1/bids3,891
GET/v1/contacts2,104
GET/v1/payments1,540
Recent Webhook Deliveries
job.created
9:32 AM · 142ms
200
bid.submitted
9:15 AM · 89ms
200
payment.received
8:47 AM · 5012ms
504
Rate Limit
4,200 used10,000/hr
Security Tip Rotate API tokens every 90 days. Use IP whitelisting for production tokens.

Developer — API Tokens
https://app.3bids.io/contractor/developer/tokens
3BidsIntegrations
Dashboard ⌘1
API Tokens ⌘2
Webhooks ⌘3
API Usage ⌘4
Docs ⌘5
Connected ⌘6
Marketplace ⌘7
MK
Mike Kowalski
Contractor
Settings ⌘,
API Tokens
Production API
Created Feb 1, 2026
Active
3b_live_sk••••Xk7m
read:jobswrite:bids
Used 2h ago
Staging / Test
Created Jan 20, 2026
Sandbox
3b_test_sk••••Ym3q
read:jobswrite:bidswebhooks
Used 4d ago
Dashboard Read-Only
Expires in 5 days
Expiring
3b_live_ro••••Zp1a
read:jobsread:contacts
Expires in 5 days
Security Best Practices Store tokens in environment variables, never in code. Set IP whitelists for production tokens. Rotate every 90 days. Use least-privilege scope permissions.
Monitoring & Docs
https://app.3bids.io/contractor/api/monitoring
3BidsAPI
Dashboard
API Tokens
Monitoring
Webhooks
API Docs
MK
Mike Kowalski
Contractor

Monitoring & Docs

API usage analytics, rate limits, and error tracking

12.4K
API Calls
99.7%
Uptime
142ms
Avg Latency
0.3%
Error Rate
Rate Limits
Requests/min60 / 100
Requests/day8.2K / 50K
Concurrent12 / 25
Recent Errors
429 Rate Limit
2 min ago
429
401 Unauthorized
1 hour ago
401
200 OK
Just now
200
Rate Limit Best PracticeImplement exponential backoff when you receive 429 responses. Cache responses where possible to reduce API call volume.

Data Architecture

API Tokens & Integration Management — developer tools, webhook config, and usage monitoring.

Source Files

  • screen IntegrationHub
  • screen IntegrationDetail
  • screen ApiTokens
  • screen CreateToken
  • screen WebhookConfig
  • screen ApiUsage

Convex Queries

  • query getIntegrations
  • query getTokens
  • query getWebhooks
  • query getUsageStats

Convex Mutations

  • mutation createToken
  • mutation revokeToken
  • mutation createWebhook
  • mutation updateWebhook

Integration Lifecycle

Disconnected
Connecting
Connected
Error

Key Design Decisions

Token Security

Tokens are hashed on creation — only the prefix is stored. Full token shown once on creation, never again.

Webhook Reliability

Automatic retries with exponential backoff. Delivery logs track every attempt with status codes and response times.

Granular Permissions

Each token scoped to specific endpoints — read jobs, write bids, manage webhooks. Least privilege by default.

Rate Limiting

Per-token rate limits with 429 responses. Usage dashboard shows real-time consumption against plan limits.

Back to Top