SDK Method Map¶
Use this map to choose between raw HTTP, Python SDK, and TypeScript SDK calls. Access levels describe the typical SaaS role required; your workspace permissions and key scopes still apply.
| Resource | Access | Raw Endpoint Family | Python SDK | TypeScript SDK | Notes |
|---|---|---|---|---|---|
| Projects | Customer or organization member | /api/v1/projects/ |
client.projects.list(), get(), create(), update(), delete() |
client.projects.list(), get(), create(), update(), delete() |
Supports idempotency on create/update. |
| Customers | Project editor or owner | /api/v1/customers/ |
client.endcustomers.list(), get(), get_by_external_id(), create(), update(), delete() |
client.customers.list(), get(), getByExternalId(), create(), update(), delete() |
External IDs are useful for runtime mapping. |
| Customer credits | Customer viewer/editor | /api/v1/customers/{id}/credits |
client.endcustomer_credits.list(), grant(), reverse() |
client.customerCredits.list(), grant(), reverse() |
Reads return grant history plus a derived balance. Grant and reversal requests support idempotency. |
| Customer keys | Customer or project owner/editor | /api/v1/customer-keys/ |
client.endcustomer_keys.list(), get(), create(), update(), delete() |
client.customerKeys.list(), get(), create(), update(), delete() |
Full key is shown once. |
| User API keys | Current user | /api/v1/user-api-keys/ |
client.user_keys.list(), create(), update(), delete(), rotate() |
client.userKeys.list(), create(), update(), delete(), rotate() |
Use for management automation. |
| Usage | Customer runtime key or management key | /api/v1/usage/* |
client.usage.preflight(), log(), preflight_with_key(), log_with_key(), query(), estimate_cost(), mismatch_diagnostics(), profitability_pivot() |
client.usage.preflight(), log(), preflightWithKey(), logWithKey(), query(), estimateCost(), mismatchDiagnostics(), profitabilityPivot() |
Runtime key flows use payload field key; internal replay and batch operations are not part of the public reference. |
| Partial usage | Enabled management key | /api/v1/partial/* |
client.partial_usage.list_projects(), get_project(), delete_project(), finalize_project(), plus customer/provider variants |
client.partialUsage.listProjects(), getProject(), deleteProject(), finalizeProject(), plus customer/provider variants |
Created by user-key usage logging with unresolved external IDs. |
| Pricing rules | Project editor or owner | /api/v1/pricing-rules/ |
client.pricing_rules.list(), get(), create(), update(), delete() |
client.pricingRules.list(), get(), create(), update(), delete() |
Project-scoped pricing overrides. |
| Billing | Customer/project billing role | /api/v1/customers/{id}/billing/*, /api/v1/billing-preview/* |
client.billing.list_customer_cycles(), generate_draft_invoice(), generate_draft_invoice_async(), get_task(), get_document(), get_ledger(), preview_project_line_items() |
client.billing.listCustomerCycles(), generateDraftInvoice(), generateDraftInvoiceAsync(), getTask(), getDocument(), getLedger(), previewProjectLineItems() |
Use idempotency for side effects where supported. |
| Billing templates | Organization billing admin | /api/v1/billing-templates/ |
client.billing_templates.list(), create(), get(), update(), delete(), activate(), clone(), create_rule(), update_rule(), delete_rule() |
client.billingTemplates.list(), create(), get(), update(), delete(), activate(), clone(), createRule(), updateRule(), deleteRule() |
Used by billing documents. |
| Guardrails | Project editor or owner | /api/v1/guardrails/ |
client.guardrails.list(), get(), create(), update(), delete() |
client.guardrails.list(), get(), create(), update(), delete() |
Thresholds use raw counts. |
| Provider settings | Organization or project admin | /api/v1/provider-settings/* |
client.providers.get_effective_setting(), provider policy/settings methods |
client.providers.getEffectiveSetting(), provider policy/settings methods |
Provider catalog writes and syncs are Spendware-managed unless explicitly enabled for your account. |
| Organizations | Organization owner/admin | /api/v1/tenants/ |
client.tenants.* |
client.organizations.* |
Includes memberships, invitations, identity providers, and Stripe sessions. |
| Account audit | Current user or organization owner | /api/v1/account-audit-events/me, /tenant/{tenant_id} |
client.account_audit.list_me(), list_organization() |
client.accountAudit.listMe(), listOrganization() |
Global support audit endpoints are not part of the public reference. |
| Webhooks | Organization webhook admin | Webhooks API /api/v1/endpoints, /events, /deliveries |
client.webhooks.list_endpoints(), create_endpoint(), get_endpoint(), update_endpoint(), delete_endpoint(), rotate_endpoint_secret(), trigger_endpoint_test(), list_events(), redeliver_event(), list_deliveries(), list_delivery_attempts() |
client.webhooks.listEndpoints(), createEndpoint(), getEndpoint(), updateEndpoint(), deleteEndpoint(), rotateEndpointSecret(), triggerEndpointTest(), listEvents(), redeliverEvent(), listDeliveries(), listDeliveryAttempts() |
Requires webhooksBaseUrl when webhooks runs separately. |
If an endpoint is visible in the API reference but not listed here, use raw HTTP or contact Spendware support for SDK coverage guidance.