# ConveYour for Developers - [ConveYour for Developers](https://developers.conveyour.com/index.md): REST APIs, webhooks, and Liquid templating for automating onboarding, compliance, and field-team workflows. - [API Conventions](https://developers.conveyour.com/guides/api-conventions.md): The cross-cutting rules every ConveYour endpoint follows — base URL, response envelope, errors, pagination, CSV export, and usage limits. - [Liquid Syntax Guide](https://developers.conveyour.com/guides/liquid-syntax.md): Personalize SMS, email, lessons, and automations with ConveYour's Liquid templating engine. - [Webhook Response Operations](https://developers.conveyour.com/guides/webhook-response-operations.md): Let your endpoint write contact fields back to ConveYour on a successful webhook response. - [Running Reports](https://developers.conveyour.com/guides/running-reports.md): List the reports available to your org, fetch their data, and run row actions. - [Integrations](https://developers.conveyour.com/integrations/integrations.md): Connect ConveYour to the tools your field teams already use — Zapier, DocuSign, SignWell, Okta, Cal.com, and more. - [Authentication](https://developers.conveyour.com/quickstart.md): Get your API credentials and make your first authenticated request. - [Overview](https://developers.conveyour.com/overview/contacts.md): The people in your account, and everything attached to them. - [List contacts](https://developers.conveyour.com/api-reference/contacts/list-contacts.md): Returns a list of contacts in your org. - [Get a contact](https://developers.conveyour.com/api-reference/contacts/get-a-contact.md): Returns a single contact. - [Create a contact](https://developers.conveyour.com/api-reference/contacts/create-a-contact.md): Creates a new contact. - [Update a contact](https://developers.conveyour.com/api-reference/contacts/update-a-contact.md): Updates one or more fields on an existing contact. Only the fields you include are changed. - [Delete a contact](https://developers.conveyour.com/api-reference/contacts/delete-a-contact.md): Permanently deletes a contact. This cannot be undone — use [Archive a contact](/api-reference/contacts/archive-a-contact) for a reversible soft delete. - [Block a contact](https://developers.conveyour.com/api-reference/contacts/block-a-contact.md): Blocks a contact from receiving SMS. - [Merge two contacts](https://developers.conveyour.com/api-reference/contacts/merge-two-contacts.md): Merges two contacts. By default this runs as a **dry run** — it returns a preview without making changes. Set `dry_run` to `false` to execute the merge. - [Resolve contact IDs](https://developers.conveyour.com/api-reference/contacts/resolve-contact-ids.md): Resolves a list of contact IDs to their names and creation timestamps. Useful for bulk lookups without fetching full contact records. - [Unblock a contact](https://developers.conveyour.com/api-reference/contacts/unblock-a-contact.md): Unblocks a previously blocked contact. - [Reveal a secret field](https://developers.conveyour.com/api-reference/contacts/reveal-a-secret-field.md): Returns the decrypted value of a secret/encrypted contact field. - [Compile content for a contact](https://developers.conveyour.com/api-reference/contacts/compile-content-for-a-contact.md): Compiles Liquid template content in the context of a specific contact. If no contact ID is provided, a dummy contact is used. Useful for previewing personalized messages before sending. - [Archive a contact](https://developers.conveyour.com/api-reference/contacts/archive-a-contact.md): Soft-deletes a contact. Archived contacts are hidden from default views but not permanently deleted. - [Unarchive a contact](https://developers.conveyour.com/api-reference/contacts/unarchive-a-contact.md): Restores an archived contact to active status. - [List fields](https://developers.conveyour.com/api-reference/fields/list-fields.md): Returns contact field definitions for the org, organized by **bucket** (a logical grouping). The response is a nested object keyed by bucket name, not a flat array. - [Get a field](https://developers.conveyour.com/api-reference/fields/get-a-field.md): Returns a single field definition by ID. - [Create a field](https://developers.conveyour.com/api-reference/fields/create-a-field.md): Creates a new custom contact field. - [Update a field](https://developers.conveyour.com/api-reference/fields/update-a-field.md): Updates an existing field. Changing a field's `name` after contacts have data stored under it is not recommended — existing contact data will no longer map to the new identifier. - [Delete a field](https://developers.conveyour.com/api-reference/fields/delete-a-field.md): Deletes a custom field. Cannot be used on system fields. Deleting a field does not remove the stored values from existing contacts, but they will no longer be accessible by key. This cannot be undone. - [Validate a field](https://developers.conveyour.com/api-reference/fields/validate-a-field.md): Validates a field definition without saving it. Returns a success response if the definition is valid, or an error response with validation details if not. - [List groups](https://developers.conveyour.com/api-reference/groups-bookmarks/list-groups.md): Returns all bookmarks for the org. Optionally filter to bookmarks assigned to a specific folder. - [Get a group](https://developers.conveyour.com/api-reference/groups-bookmarks/get-a-group.md): Returns a single bookmark by ID. - [Create a group](https://developers.conveyour.com/api-reference/groups-bookmarks/create-a-group.md): Creates a new bookmark (group). - [Update a group](https://developers.conveyour.com/api-reference/groups-bookmarks/update-a-group.md): Updates an existing bookmark. - [Delete a group](https://developers.conveyour.com/api-reference/groups-bookmarks/delete-a-group.md): Deletes a bookmark. If the bookmark has automations (triggers) attached to it, the delete is blocked and a `400` error is returned: `"Unable to delete bookmark because there are Automations attached to it."` Remove or reassign the automations first. - [List folders](https://developers.conveyour.com/api-reference/groups-bookmarks/list-folders.md): Returns all bookmark folders. - [Search groups](https://developers.conveyour.com/api-reference/groups-bookmarks/search-groups.md): Searches bookmarks by name. - [Create a folder](https://developers.conveyour.com/api-reference/groups-bookmarks/create-a-folder.md): Creates a new bookmark folder. - [Reorder groups](https://developers.conveyour.com/api-reference/groups-bookmarks/reorder-groups.md): Reorders bookmarks by updating their `order` field. - [Get a folder](https://developers.conveyour.com/api-reference/groups-bookmarks/get-a-folder.md): Returns a single bookmark folder. - [Get groups for a contact](https://developers.conveyour.com/api-reference/groups-bookmarks/get-groups-for-a-contact.md): Returns all bookmarks that a specific contact belongs to. - [Update a folder](https://developers.conveyour.com/api-reference/groups-bookmarks/update-a-folder.md): Updates a bookmark folder. - [Delete a folder](https://developers.conveyour.com/api-reference/groups-bookmarks/delete-a-folder.md): Deletes a bookmark folder. - [List notes](https://developers.conveyour.com/api-reference/notes/list-notes.md): Returns a paginated list of notes (50 per page). Filter by contact and/or search the note body. - [Create a note](https://developers.conveyour.com/api-reference/notes/create-a-note.md): Creates a note attached to a contact. The caller must own (or share) the contact, or the request is rejected. - [Update a note](https://developers.conveyour.com/api-reference/notes/update-a-note.md): Updates a note. Only the user who created the note (within their org) can update it. - [Delete a note](https://developers.conveyour.com/api-reference/notes/delete-a-note.md): Deletes a note. The caller must own the note's contact. - [List contact tasks](https://developers.conveyour.com/api-reference/tasks/list-contact-tasks.md): Returns tasks attached to contacts, 50 per page. Non-admins only see tasks on contacts shared with them. - [Create a contact task](https://developers.conveyour.com/api-reference/tasks/create-a-contact-task.md): Creates a task attached to a contact. - [Update a contact task](https://developers.conveyour.com/api-reference/tasks/update-a-contact-task.md): Updates a contact task. - [Delete a contact task](https://developers.conveyour.com/api-reference/tasks/delete-a-contact-task.md): Deletes a contact task. - [List links](https://developers.conveyour.com/api-reference/links/list-links.md): Returns all URL records for the org. - [Create a link](https://developers.conveyour.com/api-reference/links/create-a-link.md): Creates a new URL record. The `url` may be a plain link, a link containing `{{field}}` placeholders, or an entire placeholder. Placeholder-only URLs and custom protocol schemes are accepted; other values must be a valid URL after placeholders are resolved. - [Update a link](https://developers.conveyour.com/api-reference/links/update-a-link.md): Updates an existing URL record. Fields not supplied retain their current value. - [Delete a link](https://developers.conveyour.com/api-reference/links/delete-a-link.md): Deletes a URL record. - [List activity](https://developers.conveyour.com/api-reference/schedule/list-activity.md): Returns a paginated feed of contact activity events for the org, sorted by timestamp (newest first). Non-admin keys are automatically scoped to the contacts the user manages. - [Get an activity entry](https://developers.conveyour.com/api-reference/schedule/get-an-activity-entry.md): Returns the raw `data` payload for a single event record. - [Export activity](https://developers.conveyour.com/api-reference/schedule/export-activity.md): Exports rep-stats history as a CSV file. Contacts are scoped the same way as the feed. Returns a CSV download, not JSON. - [Overview](https://developers.conveyour.com/overview/messaging.md): Sending messages and reading the threads they belong to. - [List messages](https://developers.conveyour.com/api-reference/messages/list-messages.md): Returns outbound messages for the org (excludes thread replies — only original sent messages). - [Get a message](https://developers.conveyour.com/api-reference/messages/get-a-message.md): Returns a single message by ID. - [Create a message](https://developers.conveyour.com/api-reference/messages/create-a-message.md): Sends a message to a contact. Set `class` to `"sms"` or `"email"` to control the delivery channel, and identify the recipient with `type: "contact"` + `type_id` (the contact's ID). There is **no `contact_id` field** on this endpoint — a posted `contact_id` is silently dropped and the message will fa… - [Update a message](https://developers.conveyour.com/api-reference/messages/update-a-message.md): Updates an existing message's fields (e.g. subject, body, schedule). - [List conversations](https://developers.conveyour.com/api-reference/messages/list-conversations.md): Returns conversation threads — inbound/outbound message groups for contacts. Use this to power an inbox view. - [List message events](https://developers.conveyour.com/api-reference/messages/list-message-events.md): Returns delivery and engagement events for messages (sends, opens, bounces, reads). You must supply at least one of `contact_id` or `message_id`. - [Assign a message](https://developers.conveyour.com/api-reference/messages/assign-a-message.md): Assigns a conversation thread to one or more users. Returns `"Message Assignment created"` for new assignments or `"Message Assignment updated"` for existing ones. - [List tags](https://developers.conveyour.com/api-reference/tags/list-tags.md): Returns all tags for the org. - [Get a tag](https://developers.conveyour.com/api-reference/tags/get-a-tag.md): Returns a single tag by ID. - [Create a tag](https://developers.conveyour.com/api-reference/tags/create-a-tag.md): Creates a new tag. - [Update a tag](https://developers.conveyour.com/api-reference/tags/update-a-tag.md): Updates an existing tag. - [Delete a tag](https://developers.conveyour.com/api-reference/tags/delete-a-tag.md): Soft-deletes a tag. - [Get tag schema](https://developers.conveyour.com/api-reference/tags/get-tag-schema.md): Returns the field schema for tags. - [Overview](https://developers.conveyour.com/overview/campaigns.md): Automated sequences and the triggers that drive them. - [List campaigns](https://developers.conveyour.com/api-reference/campaigns/list-campaigns.md): Returns campaigns for the org along with supporting metadata. The `data` object is richer than a flat array — it includes `results` (the campaign list), `schemas` (field schemas per campaign type), `types` (campaign type labels), and `allowed_triggers` (trigger type availability). Iterate `data.resu… - [Get a campaign](https://developers.conveyour.com/api-reference/campaigns/get-a-campaign.md): Returns a single campaign by ID. - [Create a campaign](https://developers.conveyour.com/api-reference/campaigns/create-a-campaign.md): Creates a new campaign. - [Update a campaign](https://developers.conveyour.com/api-reference/campaigns/update-a-campaign.md): Updates an existing campaign. - [Delete a campaign](https://developers.conveyour.com/api-reference/campaigns/delete-a-campaign.md): Deletes a campaign. - [Count contacts across campaigns](https://developers.conveyour.com/api-reference/campaigns/count-contacts-across-campaigns.md): Counts contacts matching the filter across all campaigns in scope. - [Get the default campaign](https://developers.conveyour.com/api-reference/campaigns/get-the-default-campaign.md): Returns the org's default campaign. Like `GET /api/campaigns`, the `data` object wraps the campaign in `results` alongside `schemas`, `types`, and `allowed_triggers` metadata — it is not a bare campaign object. Read the default campaign from `data.results`. - [Create a campaign template](https://developers.conveyour.com/api-reference/campaigns/create-a-campaign-template.md): Imports a campaign from a template payload. - [Count contacts in a campaign](https://developers.conveyour.com/api-reference/campaigns/count-contacts-in-a-campaign.md): Counts contacts matching the filter within one campaign. - [Export a campaign](https://developers.conveyour.com/api-reference/campaigns/export-a-campaign.md): Exports a campaign as a portable template file. The response is a **file download** (`Content-Disposition: attachment`) containing the full campaign structure — triggers, lessons, and settings — as a JSON file. Save it and use the payload with `POST /api/campaigns/templates` to import into another o… - [Get a campaign funnel](https://developers.conveyour.com/api-reference/campaigns/get-a-campaign-funnel.md): Returns funnel analytics for a campaign — how many contacts are at each stage. The `message` field in the response is `"Funnnel retrieved"` (three n's) — this is a known typo in the response text, not an error. - [List triggers](https://developers.conveyour.com/api-reference/triggers/list-triggers.md): Returns all triggers for the org, optionally filtered by campaign. - [Create a trigger](https://developers.conveyour.com/api-reference/triggers/create-a-trigger.md): Creates a new trigger. - [Update a trigger](https://developers.conveyour.com/api-reference/triggers/update-a-trigger.md): Updates an existing trigger. - [Delete a trigger](https://developers.conveyour.com/api-reference/triggers/delete-a-trigger.md): Deletes a trigger. - [Count contacts for a trigger](https://developers.conveyour.com/api-reference/triggers/count-contacts-for-a-trigger.md): Counts the contacts a trigger would apply to, within a campaign. - [Reset a trigger](https://developers.conveyour.com/api-reference/triggers/reset-a-trigger.md): Resets one or more contacts for a trigger so it can re-fire for them. - [Validate a trigger](https://developers.conveyour.com/api-reference/triggers/validate-a-trigger.md): Validates a trigger definition without saving it. Returns a success response if the trigger definition is valid, or a list of validation errors if not. - [Overview](https://developers.conveyour.com/overview/content.md): The material you build and deliver to contacts. - [List lessons](https://developers.conveyour.com/api-reference/lessons/list-lessons.md): List or count lessons. Optionally filter by folder. - [Get a lesson](https://developers.conveyour.com/api-reference/lessons/get-a-lesson.md): Returns a single lesson by ID. - [Create a lesson](https://developers.conveyour.com/api-reference/lessons/create-a-lesson.md): Creates a new lesson. - [Update a lesson](https://developers.conveyour.com/api-reference/lessons/update-a-lesson.md): Updates a lesson's metadata or content. - [Delete a lesson](https://developers.conveyour.com/api-reference/lessons/delete-a-lesson.md): Deletes a lesson. - [List folders](https://developers.conveyour.com/api-reference/lessons/list-folders.md): Returns all lesson folders. - [Search lessons](https://developers.conveyour.com/api-reference/lessons/search-lessons.md): Search lessons by keyword. - [Create a folder](https://developers.conveyour.com/api-reference/lessons/create-a-folder.md): Creates a new lesson folder. - [Get a folder](https://developers.conveyour.com/api-reference/lessons/get-a-folder.md): Returns a single lesson folder. - [Get related lessons](https://developers.conveyour.com/api-reference/lessons/get-related-lessons.md): Returns other resources (campaigns, triggers, etc.) that reference this lesson. - [Update a folder](https://developers.conveyour.com/api-reference/lessons/update-a-folder.md): Updates a lesson folder. - [Delete a folder](https://developers.conveyour.com/api-reference/lessons/delete-a-folder.md): Deletes a lesson folder. - [Get a shared lesson item](https://developers.conveyour.com/api-reference/lessons/get-a-shared-lesson-item.md): Returns shared engagement records for a specific lesson item (e.g. poll responses or video uploads visible to other learners). - [Delete a lesson item](https://developers.conveyour.com/api-reference/lessons/delete-a-lesson-item.md): Deletes a specific item (block) within a lesson. - [List snippets](https://developers.conveyour.com/api-reference/snippets/list-snippets.md): Returns all snippets for the org. - [Get a snippet](https://developers.conveyour.com/api-reference/snippets/get-a-snippet.md): Returns a single snippet by ID. - [Create a snippet](https://developers.conveyour.com/api-reference/snippets/create-a-snippet.md): Creates a new snippet. - [Update a snippet](https://developers.conveyour.com/api-reference/snippets/update-a-snippet.md): Updates an existing snippet. - [Delete a snippet](https://developers.conveyour.com/api-reference/snippets/delete-a-snippet.md): Deletes a snippet. - [List folders](https://developers.conveyour.com/api-reference/snippets/list-folders.md): Returns all snippet folders. - [Create a folder](https://developers.conveyour.com/api-reference/snippets/create-a-folder.md): Creates a new snippet folder. - [Get a folder](https://developers.conveyour.com/api-reference/snippets/get-a-folder.md): Returns a single snippet folder. - [Update a folder](https://developers.conveyour.com/api-reference/snippets/update-a-folder.md): Updates a snippet folder. - [Update snippet HTML](https://developers.conveyour.com/api-reference/snippets/update-snippet-html.md): Updates the raw HTML content of a snippet directly. Send the HTML as a plain text body — not JSON. - [Delete a folder](https://developers.conveyour.com/api-reference/snippets/delete-a-folder.md): Deletes a snippet folder. - [List files](https://developers.conveyour.com/api-reference/files/list-files.md): Returns files for the org. Supports filtering by folder, contact, MIME type, and keyword search. Returns up to 1000 files by default; use `page`/`per_page` for pagination. - [Get a file](https://developers.conveyour.com/api-reference/files/get-a-file.md): Returns a single file. - [Create a file](https://developers.conveyour.com/api-reference/files/create-a-file.md): Registers a file metadata record in ConveYour. The actual file must be uploaded to Filestack first — pass the resulting Filestack URL and metadata here. Filenames must be unique within a folder. The request will fail with a 400 error if a file with the same name already exists in the target folder. - [Update a file](https://developers.conveyour.com/api-reference/files/update-a-file.md): Updates file metadata (filename, folder, etc.). The renameable field is **`filename`**, not `name`. A submitted `name` is silently dropped (a no-op) — use `filename` to rename a file. - [Delete a file](https://developers.conveyour.com/api-reference/files/delete-a-file.md): Deletes a file. - [List folders](https://developers.conveyour.com/api-reference/files/list-folders.md): Returns all file folders. - [Create a folder](https://developers.conveyour.com/api-reference/files/create-a-folder.md): Creates a new file folder. - [Get a folder](https://developers.conveyour.com/api-reference/files/get-a-folder.md): Returns a single file folder. - [Update a folder](https://developers.conveyour.com/api-reference/files/update-a-folder.md): Updates a file folder. - [Delete a folder](https://developers.conveyour.com/api-reference/files/delete-a-folder.md): Deletes a file folder. - [List form records](https://developers.conveyour.com/api-reference/forms/list-form-records.md): Returns form records. Optionally filter by collection using `obj_id` or `obj_name`. - [Get a form record](https://developers.conveyour.com/api-reference/forms/get-a-form-record.md): Returns a single form record by ID. - [Create a form record](https://developers.conveyour.com/api-reference/forms/create-a-form-record.md): Creates a new form record. - [Update a form record](https://developers.conveyour.com/api-reference/forms/update-a-form-record.md): Updates a form record. - [Delete a form record](https://developers.conveyour.com/api-reference/forms/delete-a-form-record.md): Deletes a form record. - [List submission collections](https://developers.conveyour.com/api-reference/forms/list-submission-collections.md): Returns all form definitions (submission collections) for the org. - [List submissions](https://developers.conveyour.com/api-reference/forms/list-submissions.md): Returns all form submissions. Filter by form or contact. - [Create a submission collection](https://developers.conveyour.com/api-reference/forms/create-a-submission-collection.md): Creates a new form definition. - [Create a submission](https://developers.conveyour.com/api-reference/forms/create-a-submission.md): Creates a new form submission for a contact. - [Get a submission collection](https://developers.conveyour.com/api-reference/forms/get-a-submission-collection.md): Returns a single form definition (submission collection) by ID. - [Get a submission](https://developers.conveyour.com/api-reference/forms/get-a-submission.md): Returns a single form submission by ID. - [Update a submission collection](https://developers.conveyour.com/api-reference/forms/update-a-submission-collection.md): Updates an existing form definition. - [Update a submission](https://developers.conveyour.com/api-reference/forms/update-a-submission.md): Updates an existing submission — for example, to mark it complete or update field values. - [Delete a submission collection](https://developers.conveyour.com/api-reference/forms/delete-a-submission-collection.md): Deletes a form definition. - [Delete a submission](https://developers.conveyour.com/api-reference/forms/delete-a-submission.md): Deletes a form submission. - [List submission documents](https://developers.conveyour.com/api-reference/forms/list-submission-documents.md): Returns DocuSeal document files for a submission. - [Generate a collection schema](https://developers.conveyour.com/api-reference/forms/generate-a-collection-schema.md): Generates a schema for a form submission collection (e.g. from a connected DocuSeal template). This analyzes the form structure and populates the field definitions automatically. - [Generate a submission document](https://developers.conveyour.com/api-reference/forms/generate-a-submission-document.md): Generates a DocuSeal document for a submission. Requires a DocuSeal integration and a configured field on the submission collection. - [List form collections](https://developers.conveyour.com/api-reference/form-collections/list-form-collections.md): Returns every form collection for the org. - [Get a form collection](https://developers.conveyour.com/api-reference/form-collections/get-a-form-collection.md): Returns a single form collection. - [Create a form collection](https://developers.conveyour.com/api-reference/form-collections/create-a-form-collection.md): Creates a form definition. - [Update a form collection](https://developers.conveyour.com/api-reference/form-collections/update-a-form-collection.md): Updates a form definition. - [Delete a form collection](https://developers.conveyour.com/api-reference/form-collections/delete-a-form-collection.md): Deletes a form definition. - [Get form collection schema](https://developers.conveyour.com/api-reference/form-collections/get-form-collection-schema.md): Returns the field definitions for a form collection. - [List tasks](https://developers.conveyour.com/api-reference/tasks/list-tasks.md): Returns org-level tasks. - [Get a task](https://developers.conveyour.com/api-reference/tasks/get-a-task.md): Returns one task, with related-record detail attached. - [Create a task](https://developers.conveyour.com/api-reference/tasks/create-a-task.md): Creates an org-level task. `related_records` cannot be stored on create — the model saves the task first, then applies them in a second update. - [Update a task](https://developers.conveyour.com/api-reference/tasks/update-a-task.md): Updates an org-level task. - [Delete a task](https://developers.conveyour.com/api-reference/tasks/delete-a-task.md): Deletes an org-level task. - [Get task schema](https://developers.conveyour.com/api-reference/tasks/get-task-schema.md): Returns the field definitions for a task. - [Overview](https://developers.conveyour.com/overview/custom-objects.md): Define your own record types and store rows against them. - [List custom objects](https://developers.conveyour.com/api-reference/custom-objects/list-custom-objects.md): Returns all Custom Object definitions for the org. - [Get a custom object](https://developers.conveyour.com/api-reference/custom-objects/get-a-custom-object.md): Returns a single Custom Object definition by ID. - [Create a custom object](https://developers.conveyour.com/api-reference/custom-objects/create-a-custom-object.md): Creates a new Custom Object definition. - [Update a custom object](https://developers.conveyour.com/api-reference/custom-objects/update-a-custom-object.md): Updates an existing Custom Object definition. Standalone Custom Objects cannot be updated through the API. Attempting this on a standalone object comes back as **HTTP 200** with `status: "failed"` — the handler passes no status code, so branch on `status`. - [Delete a custom object](https://developers.conveyour.com/api-reference/custom-objects/delete-a-custom-object.md): Deletes a Custom Object definition. This also removes all records of this type. Standalone Custom Objects cannot be deleted through the API. Attempting this on a standalone object comes back as **HTTP 200** with `status: "failed"` — the handler passes no status code, so branch on `status`. Deleting… - [Get custom object schema](https://developers.conveyour.com/api-reference/custom-objects/get-custom-object-schema.md): Returns the meta-schema — the field types and options available when defining a Custom Object. Use this before creating a Custom Object to understand which field types are supported. - [List records](https://developers.conveyour.com/api-reference/custom-object-records/list-records.md): Returns a paginated list of records. Filter by object type using `obj_id` or `obj_name`. - [Get a record](https://developers.conveyour.com/api-reference/custom-object-records/get-a-record.md): Returns a single record by its ID. - [Create a record](https://developers.conveyour.com/api-reference/custom-object-records/create-a-record.md): Creates a single new record. Field values are posted **flat** at the top level — there is no `data: {}` wrapper. - [Update a record](https://developers.conveyour.com/api-reference/custom-object-records/update-a-record.md): Updates an existing record. Field values are sent **flat** at the top level — only the fields you include are changed. - [Delete a record](https://developers.conveyour.com/api-reference/custom-object-records/delete-a-record.md): Permanently deletes a record. - [Bulk create records](https://developers.conveyour.com/api-reference/custom-object-records/bulk-create-records.md): Creates or updates multiple records at once (bulk upsert). The request body is a **raw JSON array** of flat record objects — not wrapped in an object. Maximum 100 records per call. Records are upserted by `external_id`. `external_id` is **required** on every record in the batch. A record without it… - [Overview](https://developers.conveyour.com/overview/reporting.md): Read your data back out — reports, analytics events and bulk exports. - [List reports](https://developers.conveyour.com/api-reference/reports/list-reports.md): Returns a list of all available reports for your org, grouped by folder. - [Get a report](https://developers.conveyour.com/api-reference/reports/get-a-report.md): Returns a specific report. By default returns only the report **schema** (controls, fields, visual type) without executing the query. Pass `data=1` to also run the query and include rows. - [List custom reports](https://developers.conveyour.com/api-reference/reports/list-custom-reports.md): Returns all saved custom report configurations for the org. - [Create a custom report](https://developers.conveyour.com/api-reference/reports/create-a-custom-report.md): Creates a new custom report template. The `class` must be the camelCase ID of an existing report (e.g. `campaignsCampaignPerformance`, `officePerformance`). The `input` field configures how each report control parameter behaves for viewers of the shared report: - **`locked`** — the value is fixed; t… - [Get a custom report](https://developers.conveyour.com/api-reference/reports/get-a-custom-report.md): Returns a single custom report configuration. - [Update a custom report](https://developers.conveyour.com/api-reference/reports/update-a-custom-report.md): Updates an existing custom report configuration. Only include fields you want to change. - [Delete a custom report](https://developers.conveyour.com/api-reference/reports/delete-a-custom-report.md): Deletes a custom report configuration. - [Get a shared report](https://developers.conveyour.com/api-reference/reports/get-a-shared-report.md): Returns a shared report without requiring authentication. Access is granted by the `pid` (a capability URL). For secure shared reports, pass a `token` query parameter containing the JWT generated by `POST /api/custom-reports/:id/share`. Shared reports have actions stripped and locked controls hidden… - [Share a custom report](https://developers.conveyour.com/api-reference/reports/share-a-custom-report.md): Generates a shareable URL for a custom report. When the report is `secure=true`, parameters are JWT-encoded so locked values cannot be tampered with. The share URL can be opened by anyone without a ConveYour login. - [Run a report action](https://developers.conveyour.com/api-reference/reports/run-a-report-action.md): Executes a row-level action on selected report rows. Actions are report-specific (e.g. "Export Selected" on the Form Submissions report). Available actions are listed in `data.actions` from the report schema. - [Run an action on a shared report](https://developers.conveyour.com/api-reference/reports/run-an-action-on-a-shared-report.md): Runs a row action on a shared report **without authentication** — the `pid` in the URL is the only thing identifying the caller, exactly like `GET /api/reports/shared/{pid}`. - [Track an event](https://developers.conveyour.com/api-reference/analytics/track-an-event.md): Records one or more events against a contact. Use this to log actions like page views, button clicks, form completions, or any custom event your integration cares about. - [Identify a contact](https://developers.conveyour.com/api-reference/analytics/identify-a-contact.md): Associates a visitor or known contact with a set of traits. Use this to create or update a contact record from the browser — for example, after a form submission or login event. - [Get export status by public ID](https://developers.conveyour.com/api-reference/exports/get-export-status-by-public-id.md): Public export status lookup by `pid`. No authentication required. Returns only non-sensitive fields, intended for a status-polling page. - [Download an export](https://developers.conveyour.com/api-reference/exports/download-an-export.md): Generates a pre-signed download URL for a ready export and redirects (`302`) to it. Requires authentication. Guest users may only download exports they own. - [Download an export by public ID](https://developers.conveyour.com/api-reference/exports/download-an-export-by-public-id.md): Public download by `pid`. No authentication required. Generates a pre-signed URL for a ready export and redirects (`302`) to it. - [Overview](https://developers.conveyour.com/overview/administration.md): Account settings, people, permissions and integrations. - [Get org settings](https://developers.conveyour.com/api-reference/org/get-org-settings.md): Returns the current organization's settings, plan, limits, custom domain, and updatable meta. - [Get billing details](https://developers.conveyour.com/api-reference/org/get-billing-details.md): Returns the default payment card on file plus a billing JWT and the Stripe publishable key. Requires the `manage_billing` permission. - [List invoices](https://developers.conveyour.com/api-reference/org/list-invoices.md): Returns the organization's recent Stripe invoices (up to 12) plus a billing JWT. Requires the `manage_billing` permission. - [Get org usage](https://developers.conveyour.com/api-reference/org/get-org-usage.md): Returns usage and rate information for the organization. - [Update billing notifications](https://developers.conveyour.com/api-reference/org/update-billing-notifications.md): Emails the org's admin users a reminder to check their billing settings. - [Update billing details](https://developers.conveyour.com/api-reference/org/update-billing-details.md): Updates the default payment method. Requires the `manage_billing` permission. The exact fields consumed depend on the `billing_action` supplied. - [Update the billing plan](https://developers.conveyour.com/api-reference/org/update-the-billing-plan.md): Updates the organization's billing plan. Requires the `manage_billing` permission. - [List users](https://developers.conveyour.com/api-reference/users/list-users.md): Returns users for the org. The response object includes the user list under the `users` key along with metadata. The top-level `id` is the **authenticated user's own ID** (not the org ID). The `self` field is an actor profile descriptor object used by the UI — not a plain user record. - [Create a user](https://developers.conveyour.com/api-reference/users/create-a-user.md): Creates a new user account and sends an invitation email. - [Get a user](https://developers.conveyour.com/api-reference/users/get-a-user.md): Returns a single team user by ID, scoped to your org. - [Update a user](https://developers.conveyour.com/api-reference/users/update-a-user.md): Updates an existing user's profile. - [Delete a user](https://developers.conveyour.com/api-reference/users/delete-a-user.md): Soft-deletes a user account. The user is deactivated but not permanently removed. Optionally reassign the user's records to another user. - [Get the current user](https://developers.conveyour.com/api-reference/users/get-the-current-user.md): Returns the authenticated user associated with the API token in use. - [Restore a user](https://developers.conveyour.com/api-reference/users/restore-a-user.md): Restores a previously deleted user account and sends a new invitation email. - [List roles](https://developers.conveyour.com/api-reference/roles/list-roles.md): Returns all roles for the org — the built-in system roles followed by the org's custom roles. - [Get a role](https://developers.conveyour.com/api-reference/roles/get-a-role.md): Returns a single role by ID. Pass a `system_`-prefixed ID to fetch a built-in role, or an ObjectId to fetch a custom role. - [Create a role](https://developers.conveyour.com/api-reference/roles/create-a-role.md): Creates a new custom role. Requires admin. Any permission keys that are not valid are silently dropped before saving. See [Permission keys](#permission-keys) for the full list of valid values. - [Update a role](https://developers.conveyour.com/api-reference/roles/update-a-role.md): Updates an existing custom role. Requires admin. Attempting to edit a system role (a `system_`-prefixed ID) returns `403` with the message `Built-in roles cannot be edited`. - [Delete a role](https://developers.conveyour.com/api-reference/roles/delete-a-role.md): Deletes a custom role. Requires admin. - Attempting to delete a system role returns `403` with `Built-in roles cannot be deleted`. - If any users are still assigned the role, the request returns `400` and the role is not deleted — unassign those users first. - [List teams](https://developers.conveyour.com/api-reference/teams/list-teams.md): Returns all teams. Admin users receive every team in the org; non-admin users receive only the teams they belong to. - [Get a team](https://developers.conveyour.com/api-reference/teams/get-a-team.md): Returns a single team by ID. - [Create a team](https://developers.conveyour.com/api-reference/teams/create-a-team.md): Creates a new team. Requires an admin user. - [Update a team](https://developers.conveyour.com/api-reference/teams/update-a-team.md): Updates an existing team. Requires an admin user. - [Delete a team](https://developers.conveyour.com/api-reference/teams/delete-a-team.md): Deletes a team. Requires an admin user. - [Add users to a team](https://developers.conveyour.com/api-reference/teams/add-users-to-a-team.md): Adds or removes users from a team. Add and remove one user at a time. The caller must have permission to update the affected user. - [Get related team data](https://developers.conveyour.com/api-reference/teams/get-related-team-data.md): Returns a report of records related to the team, grouped by object type with counts. Useful for understanding the impact of deleting a team. Requires an admin user. - [Create a compliance run](https://developers.conveyour.com/api-reference/compliance/create-a-compliance-run.md): Runs a compliance check against one or more contacts. Returns per-contact results inline (sync) or delivers them to a webhook URL (async). - [Get compliance configuration](https://developers.conveyour.com/api-reference/compliance/get-compliance-configuration.md): Returns the current compliance settings for your organization. Use this to verify defaults, confirm saved settings, or read the org config before issuing a compliance run. - [Get compliance run schema](https://developers.conveyour.com/api-reference/compliance/get-compliance-run-schema.md): Returns field definitions — titles, help text, types, and defaults — for every compliance setting key. Use this to build a dynamic settings UI without hardcoding field metadata. - [Update compliance configuration](https://developers.conveyour.com/api-reference/compliance/update-compliance-configuration.md): Updates the compliance configuration settings for your org. Accepts the same keys returned by `GET /api/compliance/config`. - [List webhooks](https://developers.conveyour.com/api-reference/webhooks/list-webhooks.md): Returns all webhook subscriptions registered for the org. - [Get hook credentials](https://developers.conveyour.com/api-reference/webhooks/get-hook-credentials.md): Returns the legacy hook credential pair (`appkey` and `token`) for the authenticated user, if one exists. Auto-minting of hook credentials has been removed. This endpoint only returns an existing credential — it will not create one. Create API keys in **Settings → API** instead. - [Create hook credentials (removed)](https://developers.conveyour.com/api-reference/webhooks/create-hook-credentials-removed.md): **This endpoint has no success response.** It always responds `410 Gone` — there is no path that can succeed, which is why no `2xx` is documented. - [Delete hook credentials](https://developers.conveyour.com/api-reference/webhooks/delete-hook-credentials.md): Deletes the authenticated user's legacy hook credential token. - [List email addresses](https://developers.conveyour.com/api-reference/senders/list-email-addresses.md): Returns all email senders for the org. - [Create an email address](https://developers.conveyour.com/api-reference/senders/create-an-email-address.md): Creates a new email sender. Creating a sender registers its domain with SparkPost and sends a verification email to the sender address. Generic email providers (e.g. `gmail.com`, `yahoo.com`, `yahoomail.com`, `aol.com`, `mac.com`, `mail.com`, `apple.com`, `facebook.com`) are rejected, and an email m… - [Update an email address](https://developers.conveyour.com/api-reference/senders/update-an-email-address.md): Updates an existing sender. The `email` address cannot be changed on update and is ignored if sent. - [Delete an email address](https://developers.conveyour.com/api-reference/senders/delete-an-email-address.md): Deletes a sender. - [Verify an email address](https://developers.conveyour.com/api-reference/senders/verify-an-email-address.md): Verifies a sender. With `verify_email: true`, re-sends the verification email to the sender address. Otherwise, checks the sending domain's SPF/DKIM DNS records with SparkPost and updates the stored verification status. - [List email templates](https://developers.conveyour.com/api-reference/messages/list-email-templates.md): Returns message templates for the org. - [Get an email template](https://developers.conveyour.com/api-reference/messages/get-an-email-template.md): Returns a single message template by ID. - [Create an email template](https://developers.conveyour.com/api-reference/messages/create-an-email-template.md): Creates a new message template. - [Update an email template](https://developers.conveyour.com/api-reference/messages/update-an-email-template.md): Updates an existing message template. - [Delete an email template](https://developers.conveyour.com/api-reference/messages/delete-an-email-template.md): Deletes a message template. ## OpenAPI Specs - [analytics](/api-reference/specs/analytics.json) - [bookmarks-groups](/api-reference/specs/bookmarks-groups.json) - [buckets](/api-reference/specs/buckets.json) - [campaigns](/api-reference/specs/campaigns.json) - [compliance](/api-reference/specs/compliance.json) - [contacts](/api-reference/specs/contacts.json) - [custom-object-records](/api-reference/specs/custom-object-records.json) - [custom-objects](/api-reference/specs/custom-objects.json) - [exports](/api-reference/specs/exports.json) - [fields](/api-reference/specs/fields.json) - [files](/api-reference/specs/files.json) - [form-collections](/api-reference/specs/form-collections.json) - [forms](/api-reference/specs/forms.json) - [lessons](/api-reference/specs/lessons.json) - [messages](/api-reference/specs/messages.json) - [notes](/api-reference/specs/notes.json) - [org](/api-reference/specs/org.json) - [reports](/api-reference/specs/reports.json) - [roles](/api-reference/specs/roles.json) - [schedule](/api-reference/specs/schedule.json) - [senders](/api-reference/specs/senders.json) - [short-urls](/api-reference/specs/short-urls.json) - [snippets](/api-reference/specs/snippets.json) - [tags](/api-reference/specs/tags.json) - [tasks](/api-reference/specs/tasks.json) - [teams](/api-reference/specs/teams.json) - [triggers](/api-reference/specs/triggers.json) - [users](/api-reference/specs/users.json) - [webhooks](/api-reference/specs/webhooks.json) This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.