openapi: 3.0.3 info: title: PostHog actions legal_documents API version: 1.0.0 description: '' tags: - name: legal_documents paths: /api/organizations/{organization_id}/legal_documents/: get: operationId: legal_documents_list parameters: - name: limit required: false in: query description: Number of results to return per page. schema: type: integer - name: offset required: false in: query description: The initial index from which to return the results. schema: type: integer - $ref: '#/components/parameters/OrganizationIdPath' tags: - legal_documents security: - PersonalAPIKeyAuth: - legal_document:read responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedLegalDocumentDTOList' description: '' x-explicit-tags: - core - legal_documents post: operationId: legal_documents_create parameters: - $ref: '#/components/parameters/OrganizationIdPath' tags: - legal_documents requestBody: content: application/json: schema: $ref: '#/components/schemas/CreateLegalDocument' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/CreateLegalDocument' multipart/form-data: schema: $ref: '#/components/schemas/CreateLegalDocument' required: true security: - PersonalAPIKeyAuth: - legal_document:write responses: '201': content: application/json: schema: $ref: '#/components/schemas/LegalDocumentDTO' description: '' x-explicit-tags: - core - legal_documents /api/organizations/{organization_id}/legal_documents/{id}/: get: operationId: legal_documents_retrieve parameters: - in: path name: id schema: type: string required: true - $ref: '#/components/parameters/OrganizationIdPath' tags: - legal_documents security: - PersonalAPIKeyAuth: - legal_document:read responses: '200': content: application/json: schema: $ref: '#/components/schemas/LegalDocumentDTO' description: '' x-explicit-tags: - core /api/organizations/{organization_id}/legal_documents/{id}/download/: get: operationId: legal_documents_download_retrieve description: 'Short-lived redirect to the signed PDF in object storage. 404 while the envelope is still out for signature (or if the upload hasn''t completed yet). The underlying presigned URL expires in ~60s; clients should hit this endpoint each time they want to view the PDF rather than caching.' parameters: - in: path name: id schema: type: string required: true - $ref: '#/components/parameters/OrganizationIdPath' tags: - legal_documents responses: '302': description: No response body '404': description: No response body x-explicit-tags: - core components: schemas: LegalDocumentDTO: type: object description: Output serializer — what the API returns for every row. properties: id: type: string format: uuid document_type: type: string company_name: type: string representative_email: type: string status: type: string created_by: allOf: - $ref: '#/components/schemas/LegalDocumentCreator' nullable: true created_at: type: string format: date-time required: - company_name - created_at - created_by - document_type - id - representative_email - status CreateLegalDocument: type: object description: 'Input serializer for POST. Mirrors the submittable fields on the model plus cross-field rules (BAA addon, DPA mode, uniqueness). The view supplies the organization and submitting user.' properties: document_type: allOf: - $ref: '#/components/schemas/DocumentTypeEnum' description: 'Either ''BAA'' or ''DPA''. * `BAA` - BAA * `DPA` - DPA' company_name: type: string description: The customer legal entity entering the agreement (PandaDoc's Client.Company). maxLength: 255 company_address: type: string description: The customer address (PandaDoc's Client.StreetAddress). maxLength: 512 representative_email: type: string format: email description: Email the signed PandaDoc envelope is sent to (PandaDoc's Client.Email). required: - company_address - company_name - document_type - representative_email LegalDocumentCreator: type: object properties: first_name: type: string email: type: string required: - email - first_name PaginatedLegalDocumentDTOList: type: object required: - count - results properties: count: type: integer example: 123 next: type: string nullable: true format: uri example: http://api.example.org/accounts/?offset=400&limit=100 previous: type: string nullable: true format: uri example: http://api.example.org/accounts/?offset=200&limit=100 results: type: array items: $ref: '#/components/schemas/LegalDocumentDTO' DocumentTypeEnum: enum: - BAA - DPA type: string description: '* `BAA` - BAA * `DPA` - DPA' parameters: OrganizationIdPath: in: path name: organization_id required: true schema: type: string description: ID of the organization you're trying to access. To find the ID of the organization, make a call to /api/organizations/. securitySchemes: PersonalAPIKeyAuth: type: http scheme: bearer x-tagGroups: - name: All endpoints tags: - LLM Analytics - actions - activity_log - activity_logs - advanced_activity_logs - alerts - annotations - approval_policies - batch_exports - cdp - change_requests - code - code-invites - cohorts - comments - conversations - core - customer_analytics - customer_journeys - customer_profile_configs - dashboard_templates - dashboards - data_color_themes - data_modeling_jobs - data_warehouse - dataset_items - datasets - desktop_recordings - domains - early_access_feature - early_access_features - elements - endpoints - environments - error_tracking - evaluation_runs - evaluations - event_definitions - event_filter - event_schemas - events - experiment_holdouts - experiment_saved_metrics - experiments - exports - external_data_schemas - external_data_sources - feature_flags - file_system - file_system_shortcut - flag_value - groups - groups_types - health_issues - heatmap_screenshots - heatmaps - hog_flows - hog_function_templates - hog_functions - insight_variables - insights - integrations - invites - js-snippet - legal_documents - lineage - live_debugger_breakpoints - llm_analytics - llm_prompts - llm_skills - logs - managed_viewsets - max - max_tools - mcp_server_installations - mcp_servers - mcp_store - mcp_tools - members - notebooks - oauth_applications - object_media_previews - organizations - persisted_folder - persons - platform_features - plugin_configs - product_analytics - product_tours - project_secret_api_keys - projects - property_definitions - proxy_records - public_hog_function_templates - query - replay - reverse_proxy - role_external_references - roles - sandbox-environments - sandbox_environments - saved - schema_property_groups - sdk_doctor - session_group_summaries - session_recording_playlists - session_recordings - session_summaries - sessions - signals - subscriptions - surveys - taggers - task-automations - task-runs - task_automations - tasks - uploaded_media - user_home_settings - user_interviews - users - visual_review - warehouse_dag - warehouse_model_paths - warehouse_saved_queries - warehouse_saved_query_folders - warehouse_tables - warehouse_view_link - warehouse_view_links - web_analytics - web_experiments - web_vitals - welcome - workflows