Skip to main content
Backend Developmentjeremylongshore

veeva-install-auth

'Veeva Vault install auth with REST API and VQL.

Stars
2,267
Source
jeremylongshore/claude-code-plugins-plus-skills
Updated
2026-05-31
Slug
jeremylongshore--claude-code-plugins-plus-skills--veeva-install-auth
View on GitHubRaw SKILL.md

// install — copy + paste into any project

mkdir -p .claude/skills && curl -fsSL https://raw.githubusercontent.com/jeremylongshore/claude-code-plugins-plus-skills/HEAD/plugins/saas-packs/veeva-pack/skills/veeva-install-auth/SKILL.md -o .claude/skills/veeva-install-auth.md

Drops the SKILL.md into .claude/skills/veeva-install-auth.md. Works with Claude Code, Cursor, and any agent that loads SKILL.md files from .claude/skills/.

Veeva Vault Install & Auth

Overview

Authenticate with Veeva Vault REST API using session-based auth. Base URL: https://{vault}.veevavault.com/api/{version}/. All requests require a session ID obtained via username/password or OAuth 2.0.

Instructions

Step 1: Install VAPIL (Java) or HTTP Client

# Java (VAPIL - Vault API Library)
# Add to pom.xml or gradle
# https://github.com/veeva/vault-api-library

# Python/Node.js -- use HTTP client
pip install requests
# or
npm install axios

Step 2: Obtain Session ID

import requests

vault_url = "https://myvault.veevavault.com/api/v24.1"
auth_response = requests.post(f"{vault_url}/auth", data={
    "username": os.environ["VEEVA_USERNAME"],
    "password": os.environ["VEEVA_PASSWORD"],
})
session_id = auth_response.json()["sessionId"]
print(f"Session ID: {session_id[:20]}...")

Step 3: Make Authenticated Request

headers = {"Authorization": session_id}
response = requests.get(f"{vault_url}/metadata/objects", headers=headers)
print(f"Objects: {len(response.json()['objects'])}")

Step 4: VQL Query

query = "SELECT id, name__v, status__v FROM documents WHERE status__v = 'Approved'"
response = requests.post(f"{vault_url}/query", headers=headers, data={"q": query})
for doc in response.json().get("data", []):
    print(f"  {doc['name__v']} (ID: {doc['id']})")

Error Handling

Error Cause Solution
INVALID_SESSION_ID Session expired Re-authenticate
INSUFFICIENT_ACCESS Missing permissions Check security profile
INVALID_DATA Bad VQL syntax Validate query syntax

Resources

Next Steps

Proceed to veeva-hello-world for document operations.