Go client library for the Deltek Vantagepoint REST API.
Provides typed access to projects, employees, timesheets, firms, contacts, general ledger, labor detail, AR review, and more.
go get github.com/scjalliance/vantagepointThe Vantagepoint API uses OAuth 2.0 password grant authentication.
package main
import (
"context"
"fmt"
"log"
"github.com/scjalliance/vantagepoint"
)
func main() {
client := vantagepoint.NewClient(
"https://example.deltekfirst.com/Instance/api",
"DatabaseName",
"client-id",
"client-secret",
vantagepoint.WithAutoRefresh(true),
)
ctx := context.Background()
if err := client.Authenticate(ctx, "username", "password"); err != nil {
log.Fatal(err)
}
// List active projects
q := vantagepoint.NewQuery().
Limit(10).
Fields("WBS1", "Name", "Status").
Filter("Status", "eq", "Active")
projects, err := client.ListProjects(ctx, q)
if err != nil {
log.Fatal(err)
}
for _, p := range projects {
fmt.Printf("%s %s\n", p.WBS1, p.Name)
}
}Use NewQuery() to construct filtered, paginated, and sorted requests:
q := vantagepoint.NewQuery().
Limit(50).
Offset(100).
Fields("WBS1", "Name", "Status", "ClientID").
Filter("Status", "eq", "Active").
OrderBy("Name")
projects, err := client.ListProjects(ctx, q)Supported filter operators: eq, ne, gt, lt, ge, le, like, in.
The client covers the following Vantagepoint API resources:
- Projects — WBS1/WBS2/WBS3 (phases and tasks)
- Project Sub-Resources — employees, team members, revenue, firms, awards, contracts, proposals, milestones, links, files
- Employees — with project assignment sub-resource
- Timesheets — three-tier DataEntry (tsControl/tsMaster/tsDetail)
- Firms — clients/vendors with addresses, aliases, links
- Contacts — with links, campaigns, categories
- Organizations
- Activities — with contacts, employees, clients, links
- Labor Codes
- Code Tables
- Invoices — three-tier DataEntry (inControl/inMaster/inDetail)
- Expenses — three-tier DataEntry (exControl/exMaster/exDetail)
- Units — three-tier DataEntry (unControl/unMaster/unDetail)
- Interactive Billing — read-only billing detail endpoints
- GL Summary — aggregated general ledger data
- Labor Detail — per-transaction labor costs
- PSA Ledger — general ledger entries by transaction type
- AR Review — accounts receivable balances and cash receipts
- Metadata — field definitions per table
- Settings — firm-wide configuration, companies, periods, key format
- Phase Budget Report — computed budget/spent/remaining metrics per WBS2
The cmd/vptest directory contains a read-only CLI for exercising API calls against a Vantagepoint instance. See cmd/vptest/VPTEST.md for usage.
This client is developed against the Deltek Vantagepoint REST API. It has been tested with recent Vantagepoint releases. Some endpoints or fields may vary between versions.
MIT — see LICENSE.