/v1/ versioning convention, the HTTPS requirements, and what’s known about test or sandbox environments.
The single documented base URL
GET /v1/users is GET https://api.vomo.org/v1/users.
A few example requests showing the full URL structure:
/v1) is part of the base URL — not part of individual endpoint paths. When the documentation refers to an endpoint as GET /users, the full URL is https://api.vomo.org/v1/users.
The /v1 versioning convention
Volunteer’s base URL includes an explicit /v1 segment. This is different from the other two Virtuous APIs:
What this means for partner integrations
The presence of/v1 suggests the platform may introduce future versions (/v2, etc.) without breaking existing integrations. Integrations targeting /v1 should continue to work as long as the v1 contract is maintained, even after a v2 is released.
This is purely speculative for now — no v2 exists. But the URL pattern is set up for a future migration to be possible.
For practical integration code, hardcode the /v1 in your base URL constant:
HTTPS is required
All Volunteer API requests must use HTTPS. The platform does not respond to plain HTTP requests, and any code that attemptshttp://api.vomo.org/v1/users will fail or be redirected.
In practice, this means every integration uses
https:// in its URL constant. Don’t try to override certificate validation, use self-signed certs against the production host, or otherwise loosen the TLS posture.
TLS version
The Volunteer API requires TLS 1.2 or later. Most modern HTTP libraries default to this, but legacy clients (very old Java, old PHP, certain embedded systems) may need explicit configuration. If you see TLS handshake errors, check the client’s TLS configuration before suspecting the API.Test and sandbox environments
The Volunteer OpenAPI spec documents one host: production. There’s no separately-documented sandbox URL. ⚠️ Spec gap: The OpenAPI spec doesn’t expose a sandbox or test environment. Test and development access is typically handled by issuing a token against a dedicated test organization on the production host, rather than by using a separate URL. Coordinate with the customer’s VOMO concierge if a dedicated test environment is needed.What this means in practice
For partner integration development:
The production host is
https://api.vomo.org/v1 regardless of which approach you use. Isolation is at the organization (token) level, not the URL level.
Don’t develop against a real customer’s production data
A common anti-pattern: developing the integration against a real customer’s live VOMO account. This produces test users mingled with real users, test groups in production reports, and potentially destructive operations affecting real records. The right path is to coordinate a test organization upfront. If the customer doesn’t have one, request that one be set up before integration development begins.Service health and status
The Volunteer OpenAPI spec doesn’t document a status page URL or health-check endpoint. For partner integrations operating at scale, knowing when the API is degraded matters — sustained5xx responses or elevated latency may indicate a platform issue rather than an integration bug.
What partner integrations can do
Don’t poll the API to detect health — that wastes rate-limit budget. Track the health of real workloads instead.
Latency and geographic considerations
The spec doesn’t document the API’s deployment geography or expected latency from different regions. In practice, partner integrations should expect:
These are typical web API characteristics, not specific guarantees. For latency-sensitive workloads, measure from your actual deployment environment.
Implications for sync architecture
For integrations doing bulk reads (backfills, daily reconciliation), latency adds up. A backfill of 100,000 users with 100ms round-trip per request takes ~3 hours even with no rate-limit throttling. Plan for this when scoping the backfill window. The patterns on Sync Architecture Patterns cover backfill design for large datasets.URL construction patterns
A few practices that prevent common URL-construction bugs:Don’t hand-concatenate query parameters
URLSearchParams handles it correctly.
Don’t hand-construct paginated URLs
links.next. Use it. Manual page-number construction works today but can break if the pagination scheme evolves.
Don’t strip /v1/ from URLs returned by the API
The links field in paginated responses includes the full URL with /v1/:
Be cautious with trailing slashes
The Volunteer paths don’t include trailing slashes in the spec:/.
A reference base URL setup
A minimal, well-organized base URL setup for a partner integration:- Defines the base URL in one place (easy to change for future v2).
- Auto-detects whether a path or full URL is passed (so
followLinkworks withlinks.next). - Centralizes auth headers (no per-call boilerplate).
- Throws structured errors (caller doesn’t deal with raw
Responseobjects).
Where to go next
Walk through a slightly richer call now that the URL structure is clear.The Bearer token pattern used with this base URL.How thelinks.next URLs returned by the API work.The longer discussion of /v1 and what a future /v2 might mean.
The Volunteer API has a single documented base URL. This page covers the URL structure, the /v1/ versioning convention, the HTTPS requirements, and what’s known about test or sandbox environments.
The single documented base URL
GET /v1/users is GET https://api.vomo.org/v1/users.
A few example requests showing the full URL structure:
/v1) is part of the base URL — not part of individual endpoint paths. When the documentation refers to an endpoint as GET /users, the full URL is https://api.vomo.org/v1/users.
The /v1 versioning convention
Volunteer’s base URL includes an explicit /v1 segment. This is different from the other two Virtuous APIs:
What this means for partner integrations
The presence of/v1 suggests the platform may introduce future versions (/v2, etc.) without breaking existing integrations. Integrations targeting /v1 should continue to work as long as the v1 contract is maintained, even after a v2 is released.
This is purely speculative for now — no v2 exists. But the URL pattern is set up for a future migration to be possible.
For practical integration code, hardcode the /v1 in your base URL constant:
HTTPS is required
All Volunteer API requests must use HTTPS. The platform does not respond to plain HTTP requests, and any code that attemptshttp://api.vomo.org/v1/users will fail or be redirected.
In practice, this means every integration uses
https:// in its URL constant. Don’t try to override certificate validation, use self-signed certs against the production host, or otherwise loosen the TLS posture.
TLS version
The Volunteer API requires TLS 1.2 or later. Most modern HTTP libraries default to this, but legacy clients (very old Java, old PHP, certain embedded systems) may need explicit configuration. If you see TLS handshake errors, check the client’s TLS configuration before suspecting the API.Test and sandbox environments
The Volunteer OpenAPI spec documents one host: production. There’s no separately-documented sandbox URL. ⚠️ Spec gap: The OpenAPI spec doesn’t expose a sandbox or test environment. Test and development access is typically handled by issuing a token against a dedicated test organization on the production host, rather than by using a separate URL. Coordinate with the customer’s VOMO concierge if a dedicated test environment is needed.What this means in practice
For partner integration development:
The production host is
https://api.vomo.org/v1 regardless of which approach you use. Isolation is at the organization (token) level, not the URL level.
Don’t develop against a real customer’s production data
A common anti-pattern: developing the integration against a real customer’s live VOMO account. This produces test users mingled with real users, test groups in production reports, and potentially destructive operations affecting real records. The right path is to coordinate a test organization upfront. If the customer doesn’t have one, request that one be set up before integration development begins.Service health and status
The Volunteer OpenAPI spec doesn’t document a status page URL or health-check endpoint. For partner integrations operating at scale, knowing when the API is degraded matters — sustained5xx responses or elevated latency may indicate a platform issue rather than an integration bug.
What partner integrations can do
Don’t poll the API to detect health — that wastes rate-limit budget. Track the health of real workloads instead.
Latency and geographic considerations
The spec doesn’t document the API’s deployment geography or expected latency from different regions. In practice, partner integrations should expect:
These are typical web API characteristics, not specific guarantees. For latency-sensitive workloads, measure from your actual deployment environment.
Implications for sync architecture
For integrations doing bulk reads (backfills, daily reconciliation), latency adds up. A backfill of 100,000 users with 100ms round-trip per request takes ~3 hours even with no rate-limit throttling. Plan for this when scoping the backfill window. The patterns on Sync Architecture Patterns cover backfill design for large datasets.URL construction patterns
A few practices that prevent common URL-construction bugs:Don’t hand-concatenate query parameters
URLSearchParams handles it correctly.
Don’t hand-construct paginated URLs
links.next. Use it. Manual page-number construction works today but can break if the pagination scheme evolves.
Don’t strip /v1/ from URLs returned by the API
The links field in paginated responses includes the full URL with /v1/:
Be cautious with trailing slashes
The Volunteer paths don’t include trailing slashes in the spec:/.
A reference base URL setup
A minimal, well-organized base URL setup for a partner integration:- Defines the base URL in one place (easy to change for future v2).
- Auto-detects whether a path or full URL is passed (so
followLinkworks withlinks.next). - Centralizes auth headers (no per-call boilerplate).
- Throws structured errors (caller doesn’t deal with raw
Responseobjects).
Where to go next
Walk through a slightly richer call now that the URL structure is clear.The Bearer token pattern used with this base URL.How thelinks.next URLs returned by the API work.The longer discussion of /v1 and what a future /v2 might mean.