Skip to main content

Supported Resources

Public API v2 is consistent where possible, but not every record type supports every action. Use this page before building a generic integration. Legend:
  • Supported: the endpoint exists and is intended for use.
  • Not available: the endpoint is not implemented for this resource.
  • Explicit 405: the route exists but rejects the method because the resource is read-only for that action.
  • 400 unsupported: the route exists but rejects the sub-resource for that record type.
ResourceCreateRead by IDQueryPatchArchive_assertRelationshipsAttribute sub-resources
contactSupportedSupportedSupportedSupportedSupportedSupportedTyped accounts, typed opportunities, and generic relationship namescontact_emails, contact_phone_numbers; other names return 400 unsupported
accountSupportedSupportedSupportedSupportedSupportedSupportedTyped contacts and generic relationship namesdomains; other attribute names are not routed
opportunitySupportedSupportedSupportedSupportedSupportedNot availableTyped contacts and generic relationship namesGeneric attribute names return 400 unsupported
taskSupportedSupportedSupportedSupportedSupportedNot availableGeneric relationship namesGeneric attribute names return 400 unsupported
noteSupportedSupportedSupportedSupportedSupportedNot availableGeneric relationship namesGeneric attribute names return 400 unsupported
meetingExplicit 405SupportedSupportedExplicit 405Explicit 405Not availableGeneric relationship reads onlyGeneric attribute names return 400 unsupported
activitySupportedNot availableSupportedNot availableNot availableNot availableNot availableNot available
Custom objectsSupportedSupportedSupportedSupportedSupportedNot availableGeneric relationship namesNot available

Infrastructure endpoints

EndpointUse it for
GET /api/v2/healthCheck that Public API v2 is mounted. This endpoint is unauthenticated.
GET /api/v2/_schema/{record_type}Inspect available attributes, relationships, field capabilities, and value types for a supported record type.

Important behavior notes

  • Public API v2 is served under /api/v2.
  • Filtering uses POST /api/v2/<record_type>/_query.
  • Create-or-update uses POST /api/v2/contact/_assert and POST /api/v2/account/_assert only.
  • Meeting writes are intentionally read-only and return 405 method_not_allowed.
  • Activity is append-only: create activity logs and query them, but do not update, delete, or fetch by ID.
  • Contact and opportunity stage changes use normal PATCH requests on the stage attribute. Account lifecycle stage uses current_stage_id. There is no dedicated stage-shift endpoint.
  • Generic relationship PATCH is not available. Per-edge PATCH exists only on typed junction relationship endpoints.

Choosing an endpoint

If you are building a sync integration, start with:
  1. Query Records for Sync
  2. Create and Update Records
  3. Manage Relationships
If you are building a generic client, call GET /api/v2/_schema/{record_type} before writing field values.