Every field your contacts can carry: the platform’s seeded fields merged with your own, which shadow a seeded field of the same key. Read this to learn which keys fields accepts on POST /contacts and PATCH /contacts/{id}, and what each one expects.
A contact field is a typed, named slot on a contact — order_number, lead_source,
renewal_date. Two things make a field different from a note you keep on your own side:
An agent can speak it.{{contact.order_number}} in an agent’s prompt is replaced with
this contact’s value at the moment the call is placed.
The platform validates it. A field declared number rejects "twelve" on the way in,
rather than surfacing as a confused agent mid-call.
Read this endpoint first. It tells you which keys
PATCH /contacts/{id} will accept
and how each value must be shaped.
The catalog is thirty-six fields, not eleven. InstaView seeds a default set covering
identity, the contact’s employer, orders and invoices, the relationship, appointments and
screening — so most of what you would have defined by hand already exists, with CSV aliases
attached. If you built a form or a table that renders every field it gets back, expect
thirty-six rows rather than a handful, and read category if you want them grouped the way
the dashboard groups them.
A seeded field is the platform’s contract with the prompt compiler and the CSV importer, so
one company editing it directly would change what its token means for everybody. To change a
seeded field’s label or type for your company alone, define your own field with the same
key: it shadows the seeded one, and comes back with isCompanyOverride: true.
Eight keys are RESERVED and cannot be shadowed at all: first_name, last_name,
email, phone, company_name, company_description, agent_name and profile. A
POST /contact-fields on one of those is refused — the platform resolves them itself, so a
company definition would be advertised in the palette and then ignored on the call.isSystem: true alone does not tell you which is which, because most seeded keys
(order_number, is_vip, lead_source) can be shadowed. Check writable if what you
need to know is whether you can send a value for a key.
One of string, number, date, bool, enum or tags. A write is checked against it: a
number field takes 42 or "42" but not "twelve"; a bool field takes true,
"true", "yes" or "1" and their negatives, but not "maybe"; a date field is stored
as an ISO timestamp; an enum field takes only a value from its own enumOptions.A tags field stores a string[] and is the one type that accepts two shapes: an array,
or a comma-separated string, so one CSV cell holding several tags maps onto one field.
See Set Contact Fields
for what it trims, de-duplicates and treats as an erase.
category — which panel the field belongs to
One of identity, organisation, commercial, relationship, scheduling,
recruiting, platform or custom. It is the grouping the dashboard’s variable palette
uses, and the first key this list is ordered by — so iterating the response and breaking on
a change of category gives you the same panels a user sees.Set by InstaView and not writable. A field you define is always custom; a field of yours
that shadows a seeded one reports the seeded field’s category, so job_title stays
under organisation for everybody even after you relabel it.
isPii — personal data, and what it keeps out of a call
A PII field is masked in logs and is excluded from everything an agent gets: it is
neither in the prompt nor in the document the agent can query. That is what keeps email
and phone off every call without anyone deciding, and it is enforced rather than
defaulted.Two things get past it. inEssentialPromptSet below, which is ours — first_name is
personal data and is also the first word of the call. And allowPiiInContext, which is
yours: set it on the one field an agent has to be able to say, and the value joins both the
document and the prompt. For a collections agent the amount owed is the entire reason for
the call. Setting it on a field that is not isPii is a 400, not a no-op.
allowPiiInContext — let one personal field through
Your decision that this particular personal datum belongs on a call. Writable, and only
meaningful on an isPii field. See
Create Contact Field.
inEssentialPromptSet — in the prompt, not just queryable
Read-only, and ours to decide. A short set of fields goes into the prompt of every
context-enabled agent, because a prompt line is always known while a document entry is known
only if the agent thinks to look. Everything else a contact has a value for reaches the
agent through the generated contact document instead, which costs nothing until it is
queried.Both halves are gated by
contextConfig.useContactContext
on the agent. There is no per-field opt-in to maintain: define fields, store values, and an
agent with the switch on can use them.
readOnly — catalogued but not storable
A handful of fields exist so an author can use the token, but resolve from somewhere other
than the contact: company_description is your company’s own blurb, agent_name is the
agent’s. Sending a value for one is a 422 naming the key. They are listed here because an agent author
still needs to see them.
writable — whether you can send a value
The flag to branch on before a write, and not the same thing as !readOnly. Look at
first_name in the response above: readOnly is false, and a value for it is still
refused with a 422. It is one of the keys the platform RESERVES — the identity fields
(first_name, last_name, email, phone) plus company_name, company_description,
agent_name and profile. Those four identity fields are writable, just as properties of
the contact itself rather than as fields.So readOnly answers “where does this value come from” and writable answers “will this
endpoint take one from me”. writable: false always means do not send a value for this key;
it covers every readOnly field as well as every reserved one.
csvAliases — extra header names for imports
Header names an import should also match this field on, beyond the key and label — so a
sheet whose column is called Order # can be recognised as order_number rather than
mapped by hand.Every writable seeded field arrives with aliases in English, Slovak and Czech —
renewal_date carries renewal, renews, dátum obnovenia and more — ready for the
importer to match on. Adding your own with
PATCH /contact-fields/{id} does not
touch InstaView’s. Read the warning below first: nothing consumes any of them yet.
Declared, but nothing consumes it yet. The current CSV importer maps against a fixed
list of built-in contact properties and does not read this array, so setting
csvAliases today changes no import behaviour. It is stored so the catalog is complete
before the contact-field import lands. Until then, map these columns explicitly.
id vs key
id exists only to address PATCH and DELETE. Everywhere else — a prompt token, a
values payload, a CSV mapping — a field is addressed by key.
Ordered by category first — in the fixed order identity, organisation, commercial,
relationship, scheduling, recruiting, platform, custom — then by displayOrder, then
by key. displayOrder therefore only ever separates fields within one category, which is
why each category’s own numbering restarts rather than continuing one long sequence.Unpaginated: your whole catalog is smaller than one page of any other list endpoint, so there
is nothing to page through.
read:contacts (or its read:candidates alias). Changing the catalog needs write:contacts.
Nothing to rotate: any key that can already read your contacts can read their field catalog.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"InstaView API","colors":{"primary":"#2741F9","light":"#4D5FFF","dark":"#1D34C4"},"logo":{"light":"https://mintcdn.com/instaview/srYC_WLR3UAwt0PY/logo/light.svg?fit=max\u0026auto=format\u0026n=srYC_WLR3UAwt0PY\u0026q=85\u0026s=a941bc948e20b3503a55e49b4438bfd8","dark":"https://mintcdn.com/instaview/srYC_WLR3UAwt0PY/logo/dark.svg?fit=max\u0026auto=format\u0026n=srYC_WLR3UAwt0PY\u0026q=85\u0026s=fbf32075feea3b5f404b1aef04c449ea"},"favicon":"https://mintcdn.com/instaview/srYC_WLR3UAwt0PY/favicon.svg?fit=max\u0026auto=format\u0026n=srYC_WLR3UAwt0PY\u0026q=85\u0026s=1499b591dcea46419afceafb5b77004e","api":{"playground":{}},"navbar":{"links":[{"href":"https://support.instaview.sk","label":"Support"}],"primary":{"type":"button","label":"Dashboard","href":"https://app.instaview.sk"}},"footer":{"socials":{"github":"https://github.com/StarIC-s-r-o","linkedin":"https://www.linkedin.com/company/instaviewai"}},"contextual":{"options":["copy","view","chatgpt","claude","perplexity","mcp","cursor","vscode"],"display":"header"},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"instaview","hasAudioNarration":false,"actualSubdomain":"instaview","customDomains":["docs.instaview.sk"],"gitSource":{"type":"github","owner":"staric-s-r-o","repo":"instaview","deployBranch":"main","contentDirectory":"apps/docs","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6adb630a25769d6ebcdc21d7","collectionId":"9e3238e9-e795-4633-9eb1-2fa50fb2b100","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6adb630a25769d6ebcdc21d7"},"entitlements":{},"buildId":"6adb630a25769d6ebcdc21d7","clientVersion":"0.0.3965","searchFilterCounts":[{"language":"default","tag":"API Reference","count":75},{"language":"default","tag":"Documentation","count":20},{"language":"default","tag":"Changelog","count":13},{"language":"default","tag":"Runs","count":10},{"language":"default","tag":"2026","count":10},{"language":"default","tag":"Resources","count":9},{"language":"default","tag":"Agents","count":8},{"language":"default","tag":"Conversations","count":8},{"language":"default","tag":"Sourcing","count":8},{"language":"default","tag":"Webhooks","count":7}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableAskAiSearchBar":true},"hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-v7-file-tree","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"pause-universal-search-reconcile","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"per-site-search-delta","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-private-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-nav-generations","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-agent-model-picker","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"isAtlas":false,"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"api-reference/contact-fields/list-contact-fields","slug":"/api-reference/contact-fields/list-contact-fields","pageMetadata":{"title":"List Contact Fields","openapi":"GET /contact-fields","description":"Every field your contacts can carry: the platform's seeded fields merged with your own, which shadow a seeded field of the same key. Read this to learn which keys `fields` accepts on `POST /contacts` and `PATCH /contacts/{id}`, and what each one expects.","href":"/api-reference/contact-fields/list-contact-fields"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_components.p, {\n children: [\"Every field your contacts can carry: the platform’s seeded fields merged with your own, which shadow a seeded field of the same key. Read this to learn which keys \", _jsx(_components.code, {\n children: \"fields\"\n }), \" accepts on \", _jsx(_components.code, {\n children: \"POST /contacts\"\n }), \" and \", _jsx(_components.code, {\n children: \"PATCH /contacts/{id}\"\n }), \", and what each one expects.\"]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,em:`em`,li:`li`,ol:`ol`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,..._provideComponents(),...props.components},{Accordion,AccordionGroup,Card,CardGroup,CodeBlock,Heading,Table,Warning}=_components;if(!Accordion)_missingMdxReference(`Accordion`,true);if(!AccordionGroup)_missingMdxReference(`AccordionGroup`,true);if(!Card)_missingMdxReference(`Card`,true);if(!CardGroup)_missingMdxReference(`CardGroup`,true);if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:`Lists every field your contacts can carry, and what each one expects.`}),`\n`,_jsx(Heading,{level:`2`,id:`overview`,children:`Overview`}),`\n`,_jsxs(_components.p,{children:[`A contact field is a typed, named slot on a contact — `,_jsx(_components.code,{children:`order_number`}),`, `,_jsx(_components.code,{children:`lead_source`}),`,\n`,_jsx(_components.code,{children:`renewal_date`}),`. Two things make a field different from a note you keep on your own side:`]}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`An agent can speak it.`}),` `,_jsx(_components.code,{children:`{{contact.order_number}}`}),` in an agent’s prompt is replaced with\nthis contact’s value at the moment the call is placed.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`The platform validates it.`}),` A field declared `,_jsx(_components.code,{children:`number`}),` rejects `,_jsx(_components.code,{children:`\"twelve\"`}),` on the way in,\nrather than surfacing as a confused agent mid-call.`]}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`Read this endpoint first. It tells you which keys\n`,_jsx(_components.a,{href:`/api-reference/contacts/update-contact`,children:_jsx(_components.code,{children:`PATCH /contacts/{id}`})}),` will accept\nand how each value must be shaped.`]}),`\n`,_jsx(Warning,{children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`The catalog is thirty-six fields, not eleven.`}),` InstaView seeds a default set covering\nidentity, the contact’s employer, orders and invoices, the relationship, appointments and\nscreening — so most of what you would have defined by hand already exists, with CSV aliases\nattached. If you built a form or a table that renders every field it gets back, expect\nthirty-six rows rather than a handful, and read `,_jsx(_components.code,{children:`category`}),` if you want them grouped the way\nthe dashboard groups them.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`what-you-get-back`,children:`What you get back`}),`\n`,_jsx(_components.p,{children:`Two kinds of field, merged into one list:`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{}),_jsx(_components.th,{children:`Where it comes from`}),_jsx(_components.th,{children:`Can you change it?`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`isSystem: true`})}),_jsx(_components.td,{children:`Seeded by InstaView for every company`}),_jsx(_components.td,{children:`No — but most can be shadowed`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`isSystem: false`})}),_jsx(_components.td,{children:`Defined by you`}),_jsx(_components.td,{children:`Yes`})]})]})]}),`\n`,_jsxs(_components.p,{children:[`A seeded field is the platform’s contract with the prompt compiler and the CSV importer, so\none company editing it directly would change what its token means for everybody. To change a\nseeded field’s label or type `,_jsx(_components.strong,{children:`for your company alone`}),`, define your own field with the same\nkey: it shadows the seeded one, and comes back with `,_jsx(_components.code,{children:`isCompanyOverride: true`}),`.`]}),`\n`,_jsxs(Warning,{children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Eight keys are RESERVED and cannot be shadowed at all`}),`: `,_jsx(_components.code,{children:`first_name`}),`, `,_jsx(_components.code,{children:`last_name`}),`,\n`,_jsx(_components.code,{children:`email`}),`, `,_jsx(_components.code,{children:`phone`}),`, `,_jsx(_components.code,{children:`company_name`}),`, `,_jsx(_components.code,{children:`company_description`}),`, `,_jsx(_components.code,{children:`agent_name`}),` and `,_jsx(_components.code,{children:`profile`}),`. A\n`,_jsx(_components.code,{children:`POST /contact-fields`}),` on one of those is refused — the platform resolves them itself, so a\ncompany definition would be advertised in the palette and then ignored on the call.`]}),_jsxs(_components.p,{children:[_jsx(_components.code,{children:`isSystem: true`}),` alone does not tell you which is which, because most seeded keys\n(`,_jsx(_components.code,{children:`order_number`}),`, `,_jsx(_components.code,{children:`is_vip`}),`, `,_jsx(_components.code,{children:`lead_source`}),`) `,_jsx(_components.em,{children:`can`}),` be shadowed. Check `,_jsx(_components.code,{children:`writable`}),` if what you\nneed to know is whether you can send a value for a key.`]})]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`javascript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`javascript`,children:_jsxs(_components.code,{language:`javascript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:`GET`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` /`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`contact`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`-`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`fields`})]}),`\n`]})})}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`32`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`32`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"data\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"3f1b...\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"key\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"first_name\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"label\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"First name\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"dataType\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"string\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"category\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"identity\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"isPii\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`true`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"isSystem\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`true`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"displayOrder\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`10`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"isCompanyOverride\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`false`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"readOnly\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`false`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"writable\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`false`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"9c22...\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"key\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"renewal_date\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"label\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Renewal date\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"dataType\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"date\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"category\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"commercial\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"csvAliases\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"renewal\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"renewal date\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"renews\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"dátum obnovenia\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`],`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"isPii\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`false`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"isSystem\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`true`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"displayOrder\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`50`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"isCompanyOverride\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`false`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"readOnly\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`false`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"writable\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`true`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` ],`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"total\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`36`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsx(Heading,{level:`2`,id:`reading-the-flags`,children:`Reading the flags`}),`\n`,_jsxs(AccordionGroup,{children:[_jsxs(Accordion,{title:`dataType — how a value is validated`,id:`datatype-how-a-value-is-validated`,children:[_jsxs(_components.p,{children:[`One of `,_jsx(_components.code,{children:`string`}),`, `,_jsx(_components.code,{children:`number`}),`, `,_jsx(_components.code,{children:`date`}),`, `,_jsx(_components.code,{children:`bool`}),`, `,_jsx(_components.code,{children:`enum`}),` or `,_jsx(_components.code,{children:`tags`}),`. A write is checked against it: a\n`,_jsx(_components.code,{children:`number`}),` field takes `,_jsx(_components.code,{children:`42`}),` or `,_jsx(_components.code,{children:`\"42\"`}),` but not `,_jsx(_components.code,{children:`\"twelve\"`}),`; a `,_jsx(_components.code,{children:`bool`}),` field takes `,_jsx(_components.code,{children:`true`}),`,\n`,_jsx(_components.code,{children:`\"true\"`}),`, `,_jsx(_components.code,{children:`\"yes\"`}),` or `,_jsx(_components.code,{children:`\"1\"`}),` and their negatives, but not `,_jsx(_components.code,{children:`\"maybe\"`}),`; a `,_jsx(_components.code,{children:`date`}),` field is stored\nas an ISO timestamp; an `,_jsx(_components.code,{children:`enum`}),` field takes only a value from its own `,_jsx(_components.code,{children:`enumOptions`}),`.`]}),_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`tags`}),` field stores a `,_jsx(_components.code,{children:`string[]`}),` and is the one type that accepts two shapes: an array,\n`,_jsx(_components.strong,{children:`or`}),` a comma-separated string, so one CSV cell holding several tags maps onto one field.\nSee `,_jsx(_components.a,{href:`/api-reference/contacts/update-contact#tags-takes-two-shapes`,children:`Set Contact Fields`}),`\nfor what it trims, de-duplicates and treats as an erase.`]})]}),_jsxs(Accordion,{title:`category — which panel the field belongs to`,id:`category-which-panel-the-field-belongs-to`,children:[_jsxs(_components.p,{children:[`One of `,_jsx(_components.code,{children:`identity`}),`, `,_jsx(_components.code,{children:`organisation`}),`, `,_jsx(_components.code,{children:`commercial`}),`, `,_jsx(_components.code,{children:`relationship`}),`, `,_jsx(_components.code,{children:`scheduling`}),`,\n`,_jsx(_components.code,{children:`recruiting`}),`, `,_jsx(_components.code,{children:`platform`}),` or `,_jsx(_components.code,{children:`custom`}),`. It is the grouping the dashboard’s variable palette\nuses, and the first key this list is ordered by — so iterating the response and breaking on\na change of `,_jsx(_components.code,{children:`category`}),` gives you the same panels a user sees.`]}),_jsxs(_components.p,{children:[`Set by InstaView and not writable. A field you define is always `,_jsx(_components.code,{children:`custom`}),`; a field of yours\nthat shadows a seeded one reports the `,_jsx(_components.strong,{children:`seeded`}),` field’s category, so `,_jsx(_components.code,{children:`job_title`}),` stays\nunder `,_jsx(_components.code,{children:`organisation`}),` for everybody even after you relabel it.`]})]}),_jsxs(Accordion,{title:`isPii — personal data, and what it keeps out of a call`,id:`ispii-personal-data-and-what-it-keeps-out-of-a-call`,children:[_jsxs(_components.p,{children:[`A PII field is masked in logs and is `,_jsx(_components.strong,{children:`excluded`}),` from everything an agent gets: it is\nneither in the prompt nor in the document the agent can query. That is what keeps `,_jsx(_components.code,{children:`email`}),`\nand `,_jsx(_components.code,{children:`phone`}),` off every call without anyone deciding, and it is enforced rather than\ndefaulted.`]}),_jsxs(_components.p,{children:[`Two things get past it. `,_jsx(_components.code,{children:`inEssentialPromptSet`}),` below, which is ours — `,_jsx(_components.code,{children:`first_name`}),` is\npersonal data and is also the first word of the call. And `,_jsx(_components.code,{children:`allowPiiInContext`}),`, which is\nyours: set it on the one field an agent has to be able to say, and the value joins both the\ndocument and the prompt. For a collections agent the amount owed is the entire reason for\nthe call. Setting it on a field that is not `,_jsx(_components.code,{children:`isPii`}),` is a `,_jsx(_components.code,{children:`400`}),`, not a no-op.`]})]}),_jsx(Accordion,{title:`allowPiiInContext — let one personal field through`,id:`allowpiiincontext-let-one-personal-field-through`,children:_jsxs(_components.p,{children:[`Your decision that this particular personal datum belongs on a call. Writable, and only\nmeaningful on an `,_jsx(_components.code,{children:`isPii`}),` field. See\n`,_jsx(_components.a,{href:`/api-reference/contact-fields/create-contact-field`,children:`Create Contact Field`}),`.`]})}),_jsxs(Accordion,{title:`inEssentialPromptSet — in the prompt, not just queryable`,id:`inessentialpromptset-in-the-prompt-not-just-queryable`,children:[_jsx(_components.p,{children:`Read-only, and ours to decide. A short set of fields goes into the prompt of every\ncontext-enabled agent, because a prompt line is always known while a document entry is known\nonly if the agent thinks to look. Everything else a contact has a value for reaches the\nagent through the generated contact document instead, which costs nothing until it is\nqueried.`}),_jsxs(_components.p,{children:[`Both halves are gated by\n`,_jsx(_components.a,{href:`/api-reference/agents/create-agent#telling-the-agent-about-the-person-it-is-calling`,children:_jsx(_components.code,{children:`contextConfig.useContactContext`})}),`\non the agent. There is no per-field opt-in to maintain: define fields, store values, and an\nagent with the switch on can use them.`]})]}),_jsx(Accordion,{title:`readOnly — catalogued but not storable`,id:`readonly-catalogued-but-not-storable`,children:_jsxs(_components.p,{children:[`A handful of fields exist so an author can use the token, but resolve from somewhere other\nthan the contact: `,_jsx(_components.code,{children:`company_description`}),` is your company’s own blurb, `,_jsx(_components.code,{children:`agent_name`}),` is the\nagent’s. Sending a value for one is a `,_jsx(_components.code,{children:`422`}),` naming the key. They are listed here because an agent author\nstill needs to see them.`]})}),_jsxs(Accordion,{title:`writable — whether you can send a value`,id:`writable-whether-you-can-send-a-value`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`The flag to branch on before a write`}),`, and not the same thing as `,_jsx(_components.code,{children:`!readOnly`}),`. Look at\n`,_jsx(_components.code,{children:`first_name`}),` in the response above: `,_jsx(_components.code,{children:`readOnly`}),` is `,_jsx(_components.code,{children:`false`}),`, and a value for it is still\nrefused with a `,_jsx(_components.code,{children:`422`}),`. It is one of the keys the platform RESERVES — the identity fields\n(`,_jsx(_components.code,{children:`first_name`}),`, `,_jsx(_components.code,{children:`last_name`}),`, `,_jsx(_components.code,{children:`email`}),`, `,_jsx(_components.code,{children:`phone`}),`) plus `,_jsx(_components.code,{children:`company_name`}),`, `,_jsx(_components.code,{children:`company_description`}),`,\n`,_jsx(_components.code,{children:`agent_name`}),` and `,_jsx(_components.code,{children:`profile`}),`. Those four identity fields `,_jsx(_components.em,{children:`are`}),` writable, just as properties of\n`,_jsx(_components.a,{href:`/api-reference/contacts/update-contact`,children:`the contact itself`}),` rather than as fields.`]}),_jsxs(_components.p,{children:[`So `,_jsx(_components.code,{children:`readOnly`}),` answers “where does this value come from” and `,_jsx(_components.code,{children:`writable`}),` answers “will this\nendpoint take one from me”. `,_jsx(_components.code,{children:`writable: false`}),` always means do not send a value for this key;\nit covers every `,_jsx(_components.code,{children:`readOnly`}),` field as well as every reserved one.`]})]}),_jsxs(Accordion,{title:`csvAliases — extra header names for imports`,id:`csvaliases-extra-header-names-for-imports`,children:[_jsxs(_components.p,{children:[`Header names an import should also match this field on, beyond the key and label — so a\nsheet whose column is called `,_jsx(_components.code,{children:`Order #`}),` can be recognised as `,_jsx(_components.code,{children:`order_number`}),` rather than\nmapped by hand.`]}),_jsxs(_components.p,{children:[`Every writable seeded field arrives with aliases in English, Slovak and Czech —\n`,_jsx(_components.code,{children:`renewal_date`}),` carries `,_jsx(_components.code,{children:`renewal`}),`, `,_jsx(_components.code,{children:`renews`}),`, `,_jsx(_components.code,{children:`dátum obnovenia`}),` and more — ready for the\nimporter to match on. Adding your own with\n`,_jsx(_components.a,{href:`/api-reference/contact-fields/update-contact-field`,children:_jsx(_components.code,{children:`PATCH /contact-fields/{id}`})}),` does not\ntouch InstaView’s. Read the warning below first: nothing consumes any of them yet.`]}),_jsx(Warning,{children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Declared, but nothing consumes it yet.`}),` The current CSV importer maps against a fixed\nlist of built-in contact properties and does not read this array, so setting\n`,_jsx(_components.code,{children:`csvAliases`}),` today changes no import behaviour. It is stored so the catalog is complete\nbefore the contact-field import lands. Until then, map these columns explicitly.`]})})]}),_jsx(Accordion,{title:`id vs key`,id:`id-vs-key`,children:_jsxs(_components.p,{children:[_jsx(_components.code,{children:`id`}),` exists only to address `,_jsx(_components.code,{children:`PATCH`}),` and `,_jsx(_components.code,{children:`DELETE`}),`. Everywhere else — a prompt token, a\nvalues payload, a CSV mapping — a field is addressed by `,_jsx(_components.code,{children:`key`}),`.`]})})]}),`\n`,_jsx(Heading,{level:`2`,id:`ordering-and-paging`,children:`Ordering and paging`}),`\n`,_jsxs(_components.p,{children:[`Ordered by `,_jsx(_components.code,{children:`category`}),` first — in the fixed order `,_jsx(_components.code,{children:`identity`}),`, `,_jsx(_components.code,{children:`organisation`}),`, `,_jsx(_components.code,{children:`commercial`}),`,\n`,_jsx(_components.code,{children:`relationship`}),`, `,_jsx(_components.code,{children:`scheduling`}),`, `,_jsx(_components.code,{children:`recruiting`}),`, `,_jsx(_components.code,{children:`platform`}),`, `,_jsx(_components.code,{children:`custom`}),` — then by `,_jsx(_components.code,{children:`displayOrder`}),`, then\nby `,_jsx(_components.code,{children:`key`}),`. `,_jsx(_components.code,{children:`displayOrder`}),` therefore only ever separates fields `,_jsx(_components.strong,{children:`within`}),` one category, which is\nwhy each category’s own numbering restarts rather than continuing one long sequence.`]}),`\n`,_jsx(_components.p,{children:`Unpaginated: your whole catalog is smaller than one page of any other list endpoint, so there\nis nothing to page through.`}),`\n`,_jsx(Heading,{level:`2`,id:`scopes`,children:`Scopes`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`read:contacts`}),` (or its `,_jsx(_components.code,{children:`read:candidates`}),` alias). Changing the catalog needs `,_jsx(_components.code,{children:`write:contacts`}),`.\nNothing to rotate: any key that can already read your contacts can read their field catalog.`]}),`\n`,_jsx(Heading,{level:`2`,id:`related-resources`,children:`Related Resources`}),`\n`,_jsxs(CardGroup,{cols:2,children:[_jsx(Card,{title:`Create Contact Field`,icon:`plus`,href:`/api-reference/contact-fields/create-contact-field`,children:_jsx(_components.p,{children:`Define a field of your own`})}),_jsx(Card,{title:`Update Contact`,icon:`pen`,href:`/api-reference/contacts/update-contact`,children:_jsx(_components.p,{children:`Store values against a contact`})}),_jsx(Card,{title:`Get Contact`,icon:`eye`,href:`/api-reference/contacts/get-contact`,children:_jsx(_components.p,{children:`Read one contact’s values`})}),_jsx(Card,{title:`Update Contact Field`,icon:`pen`,href:`/api-reference/contact-fields/update-contact-field`,children:_jsx(_components.p,{children:`Change one of your own fields`})})]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"List Contact Fields","openapi":"GET /contact-fields","description":"Every field your contacts can carry: the platform's seeded fields merged with your own, which shadow a seeded field of the same key. Read this to learn which keys `fields` accepts on `POST /contacts` and `PATCH /contacts/{id}`, and what each one expects.","href":"/api-reference/contact-fields/list-contact-fields"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Overview","slug":"overview","depth":2,"children":[]},{"title":"What you get back","slug":"what-you-get-back","depth":2,"children":[]},{"title":"Reading the flags","slug":"reading-the-flags","depth":2,"children":[]},{"title":"Ordering and paging","slug":"ordering-and-paging","depth":2,"children":[]},{"title":"Scopes","slug":"scopes","depth":2,"children":[]},{"title":"Related Resources","slug":"related-resources","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"description":"Every field your contacts can carry: the platform's seeded fields merged with your own, which shadow a seeded field of the same key. Read this to learn which keys `fields` accepts on `POST /contacts` and `PATCH /contacts/{id}`, and what each one expects.","operationId":"PublicContactFieldsController_listContactFields_v1","parameters":["c736142d-1bac-478a-9a77-ccb81b9d0ac4"],"responses":{"200":"fda8b9d1-c82e-4b3a-b44e-befd8bba96d7"},"security":["5e856a29-0185-4b6a-870d-b70ceb114b9b","519438e4-c966-4fa4-81c9-c52a8dfab1e3"],"summary":"List contact fields (public API)","tags":["Public Contact Fields"],"method":"get","type":"path","servers":["fefe9da2-a252-4644-8424-0eaff357a7a8"],"path":"/contact-fields","baseUrlOptions":["https://api.instaview.sk"],"title":"List contact fields (public API)","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"c736142d-1bac-478a-9a77-ccb81b9d0ac4":{"name":"companyId","required":false,"in":"query","description":"Required for ATS API keys to specify which company to access. Ignored for standard company API keys.","schema":{"type":"string","isRequired":false,"description":"Required for ATS API keys to specify which company to access. Ignored for standard company API keys.","uniqueKey":"","typeLabel":"string"}}},"responses":{"fda8b9d1-c82e-4b3a-b44e-befd8bba96d7":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"description":"Every field this company can use, ordered by displayOrder then key","type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"Field id. Needed only to address PATCH and DELETE; every other surface uses `key`.","format":"uuid","example":"123e4567-e89b-12d3-a456-426614174000","isRequired":true,"uniqueKey":"data.items.[INDEX].id","typeLabel":"string\u003cuuid>"},"key":{"type":"string","description":"The key you address this field by, in `{{contact.\u003ckey>}}` and in a values payload","example":"order_number","isRequired":true,"uniqueKey":"data.items.[INDEX].key","typeLabel":"string"},"label":{"type":"string","description":"Human label, shown wherever the field is offered for editing","example":"Order number","isRequired":true,"uniqueKey":"data.items.[INDEX].label","typeLabel":"string"},"dataType":{"type":"string","description":"The value type this field accepts. Writes are validated against it. `tags` is a `string[]` and accepts either an array or a comma-separated string, so one CSV cell maps onto one field.","enum":["string","number","date","bool","enum","tags"],"example":"string","isRequired":true,"uniqueKey":"data.items.[INDEX].dataType","typeLabel":"enum\u003cstring>"},"category":{"type":"string","description":"Which panel of the catalog this field belongs to — the grouping the dashboard's variable palette uses, and the first key this list is ordered by. Set by InstaView and not writable: a field you define is always `custom`, and a field of yours that shadows a seeded one reports the seeded field's category so the grouping is the same for every company.","enum":["identity","organisation","commercial","relationship","scheduling","recruiting","platform","custom"],"example":"commercial","isRequired":true,"uniqueKey":"data.items.[INDEX].category","typeLabel":"enum\u003cstring>"},"isPii":{"type":"boolean","description":"Personal data. Masked in logs, and EXCLUDED from everything that reaches the agent — the prompt and the generated contact document alike — unless `allowPiiInContext` is set on this field, or the platform lists it in the essential prompt set (`inEssentialPromptSet`).","example":false,"isRequired":true,"uniqueKey":"data.items.[INDEX].isPii","typeLabel":"boolean"},"isSystem":{"type":"boolean","description":"A field the platform defines and every company shares. A seeded field cannot be edited or deleted directly; for most of them you can define your own field with the same key to override the label and type for your company alone. Eight keys are RESERVED and refuse even that (`first_name`, `last_name`, `email`, `phone`, `company_name`, `company_description`, `agent_name`, `profile`), because the platform resolves them itself.","example":false,"isRequired":true,"uniqueKey":"data.items.[INDEX].isSystem","typeLabel":"boolean"},"allowPiiInContext":{"type":"boolean","description":"Let this one personal field reach the agent anyway. It joins the generated contact document AND the prompt, because a queryable value is one the agent might never think to look up, and reliability is the point for a field like an outstanding balance. Only meaningful when `isPii` is true; sending it on a field that is not personal data is rejected rather than ignored.","example":false,"isRequired":true,"uniqueKey":"data.items.[INDEX].allowPiiInContext","typeLabel":"boolean"},"inEssentialPromptSet":{"type":"boolean","description":"Read-only. Whether the platform puts this field in every context-enabled agent's prompt: a short set covering what an agent needs to open a call correctly. Not settable — everything else the contact has reaches the agent through the generated contact document instead, which is queried mid-call rather than paid for on every dial.","example":false,"isRequired":true,"uniqueKey":"data.items.[INDEX].inEssentialPromptSet","typeLabel":"boolean"},"displayOrder":{"type":"number","description":"Ascending display order; ties break on key","example":50,"isRequired":true,"uniqueKey":"data.items.[INDEX].displayOrder","typeLabel":"number"},"isCompanyOverride":{"type":"boolean","description":"True when this is your own field overriding a seeded field of the same key","example":false,"isRequired":true,"uniqueKey":"data.items.[INDEX].isCompanyOverride","typeLabel":"boolean"},"readOnly":{"type":"boolean","description":"Catalogued so an agent author can use the token, but resolved by the platform on every call rather than stored per contact (`company_description` is your company's own blurb, not the contact's data). Sending a value for one is a 422. Note this is not the whole of what you can write — check `writable` for that.","example":false,"isRequired":true,"uniqueKey":"data.items.[INDEX].readOnly","typeLabel":"boolean"},"writable":{"type":"boolean","description":"Whether `fields` on `POST /contacts` or `PATCH /contacts/{id}` accepts a value for this key. The one flag to branch on before writing: `readOnly` alone is not enough, because a key the platform RESERVES (`email`, `first_name`, `phone` and the rest of the identity fields) reports `readOnly: false` and is still refused with a 422 — those are writable, but through the contact resource's own properties rather than as a field. False also for every read-only key, so a false here always means \"do not send a value for this\".","example":true,"isRequired":true,"uniqueKey":"data.items.[INDEX].writable","typeLabel":"boolean"},"enumOptions":{"description":"The allowed values, for an ENUM field. Absent for every other type.","example":["pricing page","webinar","referral"],"type":"array","items":{"type":"string","uniqueKey":"data.items.[INDEX].enumOptions.items.[INDEX]","typeLabel":"string"},"uniqueKey":"data.items.[INDEX].enumOptions","typeLabel":"string[]"},"csvAliases":{"description":"Extra CSV header names this field also matches during an import Stored for the contact-field importer, which has not shipped: setting this changes no import behaviour today.","example":["Order #","OrderNo"],"type":"array","items":{"type":"string","uniqueKey":"data.items.[INDEX].csvAliases.items.[INDEX]","typeLabel":"string"},"uniqueKey":"data.items.[INDEX].csvAliases","typeLabel":"string[]"},"description":{"type":"string","description":"What the field means","example":"The order this call is about","uniqueKey":"data.items.[INDEX].description","typeLabel":"string"}},"required":["id","key","label","dataType","category","isPii","isSystem","allowPiiInContext","inEssentialPromptSet","displayOrder","isCompanyOverride","readOnly","writable"],"uniqueKey":"data.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"data","typeLabel":"object[]"},"total":{"type":"number","description":"Number of fields in the catalog","example":12,"isRequired":true,"uniqueKey":"total","typeLabel":"number"}},"required":["data","total"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"data":[{"id":"123e4567-e89b-12d3-a456-426614174000","key":"order_number","label":"Order number","dataType":"string","category":"commercial","isPii":false,"isSystem":false,"allowPiiInContext":false,"inEssentialPromptSet":false,"displayOrder":50,"isCompanyOverride":false,"readOnly":false,"writable":true,"enumOptions":["pricing page","webinar","referral"],"csvAliases":["Order #","OrderNo"],"description":"The order this call is about"}],"total":12}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"5e856a29-0185-4b6a-870d-b70ceb114b9b":{"bearer":{"type":"http","scheme":"bearer","description":"API key for authentication using Bearer scheme","scopes":[],"schemeName":"bearer"}},"519438e4-c966-4fa4-81c9-c52a8dfab1e3":{"bearer":{"type":"http","scheme":"bearer","description":"API key for authentication using Bearer scheme","scopes":[],"schemeName":"bearer"}}},"servers":{"fefe9da2-a252-4644-8424-0eaff357a7a8":{"url":"https://api.instaview.sk","description":"Production API Gateway"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","description":"API key for authentication using Bearer scheme","scopes":[],"schemeName":"bearer"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"API key for authentication using Bearer scheme","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"bearer","name":"Authorization"}],"title":"bearer"},{"schemes":[{"scheme":{"type":"http","scheme":"bearer","description":"API key for authentication using Bearer scheme","scopes":[],"schemeName":"bearer"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"API key for authentication using Bearer scheme","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"bearer","name":"Authorization"}],"title":"bearer"}]},"originalFileLocation":"api-reference/openapi.json"},"subdomain":"instaview","siteName":"InstaView API","title":"List Contact Fields - InstaView API","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-09-09T17:20:23.418Z","originalFileLocation":"api-reference/contact-fields/list-contact-fields.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Every field your contacts can carry: the platform\u0026#x27;s seeded fields merged with your own, which shadow a seeded field of the same key. Read this to learn which keys fields accepts on POST /contacts and PATCH /contacts/{id}, and what each one expects.\">\u003cmeta data-mint-head name=\"application-name\" content=\"InstaView API\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/instaview/FzS1-dDCztzdlzmX/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/instaview/FzS1-dDCztzdlzmX/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/instaview/FzS1-dDCztzdlzmX/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/instaview/FzS1-dDCztzdlzmX/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/instaview/FzS1-dDCztzdlzmX/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/instaview/FzS1-dDCztzdlzmX/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/instaview/FzS1-dDCztzdlzmX/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/instaview/FzS1-dDCztzdlzmX/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/instaview/FzS1-dDCztzdlzmX/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"List Contact Fields - InstaView API\">\u003cmeta data-mint-head property=\"og:description\" content=\"Every field your contacts can carry: the platform\u0026#x27;s seeded fields merged with your own, which shadow a seeded field of the same key. Read this to learn which keys fields accepts on POST /contacts and PATCH /contacts/{id}, and what each one expects.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"InstaView API\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.instaview.sk/api-reference/contact-fields/list-contact-fields\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://instaview.mintlify.app/_mintlify/api/og/v2?division=Contact+Fields\u0026amp;title=List+Contact+Fields\u0026amp;description=Every+field+your+contacts+can+carry%3A+the+platform%27s+seeded+fields+merged+with+your+own%2C+which+shadow+a+seeded+field+of+the+same+key.+Read+this+to+learn+which+ke\u0026amp;theme=1444b1b95306a409923bc3c0\u0026amp;signature=28eed29b989aaa9a0b4778914fbc8d57155c1c30782a6099e080c395b27e2663\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"List Contact Fields - InstaView API\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Every field your contacts can carry: the platform\u0026#x27;s seeded fields merged with your own, which shadow a seeded field of the same key. Read this to learn which keys fields accepts on POST /contacts and PATCH /contacts/{id}, and what each one expects.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://instaview.mintlify.app/_mintlify/api/og/v2?division=Contact+Fields\u0026amp;title=List+Contact+Fields\u0026amp;description=Every+field+your+contacts+can+carry%3A+the+platform%27s+seeded+fields+merged+with+your+own%2C+which+shadow+a+seeded+field+of+the+same+key.+Read+this+to+learn+which+ke\u0026amp;theme=1444b1b95306a409923bc3c0\u0026amp;signature=28eed29b989aaa9a0b4778914fbc8d57155c1c30782a6099e080c395b27e2663\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/instaview/FzS1-dDCztzdlzmX/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"InstaView API\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#2741F9\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.instaview.sk/api-reference/contact-fields/list-contact-fields\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/contact-fields/list-contact-fields.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.instaview.sk/#organization\",\"name\":\"InstaView API\",\"url\":\"https://docs.instaview.sk\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/instaview/srYC_WLR3UAwt0PY/logo/light.svg?fit=max\u0026auto=format\u0026n=srYC_WLR3UAwt0PY\u0026q=85\u0026s=a941bc948e20b3503a55e49b4438bfd8\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.instaview.sk#website\",\"name\":\"InstaView API\",\"url\":\"https://docs.instaview.sk\",\"publisher\":{\"@id\":\"https://docs.instaview.sk/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.instaview.sk/api-reference/contact-fields/list-contact-fields#webpage\",\"url\":\"https://docs.instaview.sk/api-reference/contact-fields/list-contact-fields\",\"name\":\"List Contact Fields\",\"description\":\"Every field your contacts can carry: the platform's seeded fields merged with your own, which shadow a seeded field of the same key. Read this to learn which keys fields accepts on POST /contacts and PATCH /contacts/{id}, and what each one expects.\",\"dateModified\":\"2026-09-09T17:20:23.418Z\",\"isPartOf\":{\"@id\":\"https://docs.instaview.sk#website\"},\"breadcrumb\":{\"@id\":\"https://docs.instaview.sk/api-reference/contact-fields/list-contact-fields#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.instaview.sk/api-reference/contact-fields/list-contact-fields#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"InstaView API\",\"item\":\"https://docs.instaview.sk\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"List Contact Fields\",\"item\":\"https://docs.instaview.sk/api-reference/contact-fields/list-contact-fields\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.instaview.sk/api-reference/contact-fields/list-contact-fields#apireference\",\"headline\":\"List Contact Fields\",\"name\":\"List Contact Fields\",\"description\":\"Every field your contacts can carry: the platform's seeded fields merged with your own, which shadow a seeded field of the same key. Read this to learn which keys fields accepts on POST /contacts and PATCH /contacts/{id}, and what each one expects.\",\"url\":\"https://docs.instaview.sk/api-reference/contact-fields/list-contact-fields\",\"mainEntityOfPage\":{\"@id\":\"https://docs.instaview.sk/api-reference/contact-fields/list-contact-fields#webpage\"},\"dateModified\":\"2026-09-09T17:20:23.418Z\",\"publisher\":{\"@id\":\"https://docs.instaview.sk/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.instaview.sk#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"InstaView API\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"InstaView API","nav":{"global":null,"tabs":[{"tab":"Documentation","icon":"book","pages":[{"title":"Documentation","href":"/introduction"}]},{"tab":"API Reference","icon":"code","groups":[{"group":"Overview","pages":[{"title":"API Reference","href":"/api-reference/introduction"}]},{"group":"Agents","pages":[{"title":"List Agents","openapi":"GET /agents","href":"/api-reference/agents/list-agents"},{"title":"Design an Agent","openapi":"POST /agents/composer","href":"/api-reference/agents/compose-agent"},{"title":"Refine a Composed Agent","openapi":"POST /agents/composer/{sessionId}/messages","href":"/api-reference/agents/refine-agent"},{"title":"Poll a Composer Session","openapi":"GET /agents/composer/{sessionId}","href":"/api-reference/agents/get-composer-session"},{"title":"Create Agent","openapi":"POST /agents","href":"/api-reference/agents/create-agent"},{"title":"Get Agent","openapi":"GET /agents/{id}","href":"/api-reference/agents/get-agent"},{"title":"Update Agent","openapi":"PATCH /agents/{id}","href":"/api-reference/agents/update-agent"},{"title":"Delete Agent","openapi":"DELETE /agents/{id}","href":"/api-reference/agents/delete-agent"}]},{"group":"Agent Knowledge Base","pages":[{"title":"List Knowledge Documents","openapi":"GET /agents/{id}/knowledge","href":"/api-reference/agents/knowledge/list-knowledge"},{"title":"Start Knowledge Upload","openapi":"POST /agents/{id}/knowledge","href":"/api-reference/agents/knowledge/start-upload"},{"title":"Complete Knowledge Upload","openapi":"POST /agents/{id}/knowledge/{documentId}/complete","href":"/api-reference/agents/knowledge/complete-upload"},{"title":"Update Knowledge Document","openapi":"PATCH /agents/{id}/knowledge/{documentId}","href":"/api-reference/agents/knowledge/update-knowledge"},{"title":"Delete Knowledge Document","openapi":"DELETE /agents/{id}/knowledge/{documentId}","href":"/api-reference/agents/knowledge/delete-knowledge"}]},{"group":"Jobs","pages":[{"title":"List Jobs","openapi":"GET /jobs","href":"/api-reference/jobs/list-jobs"},{"title":"Create Job","openapi":"POST /jobs","href":"/api-reference/jobs/create-job"},{"title":"Create Job from URL","openapi":"POST /jobs/url","href":"/api-reference/jobs/create-job-from-url"},{"title":"Get Job","openapi":"GET /jobs/{id}","href":"/api-reference/jobs/get-job"},{"title":"Update Job","openapi":"PATCH /jobs/{id}","href":"/api-reference/jobs/update-job"},{"title":"Delete Job","openapi":"DELETE /jobs/{id}","href":"/api-reference/jobs/delete-job"}]},{"group":"Contacts","pages":[{"title":"List Contacts","openapi":"GET /contacts","href":"/api-reference/contacts/list-contacts"},{"title":"Create Contact","openapi":"POST /contacts","href":"/api-reference/contacts/create-contact"},{"title":"Get Contact","openapi":"GET /contacts/{id}","href":"/api-reference/contacts/get-contact"},{"title":"Update Contact","openapi":"PATCH /contacts/{id}","href":"/api-reference/contacts/update-contact"},{"title":"Delete Contact","openapi":"DELETE /contacts/{id}","href":"/api-reference/contacts/delete-contact"}]},{"group":"Contact Documents","pages":[{"title":"List Contact Documents","openapi":"GET /contacts/{id}/documents","href":"/api-reference/contacts/documents/list-documents"},{"title":"Start Contact Document Upload","openapi":"POST /contacts/{id}/documents/uploads","href":"/api-reference/contacts/documents/start-upload"},{"title":"Complete Contact Document Upload","openapi":"POST /contacts/{id}/documents/{documentId}/complete","href":"/api-reference/contacts/documents/complete-upload"},{"title":"Update Contact Document","openapi":"PATCH /contacts/{id}/documents/{documentId}","href":"/api-reference/contacts/documents/update-document"},{"title":"Delete Contact Document","openapi":"DELETE /contacts/{id}/documents/{documentId}","description":"Permanently deletes an uploaded document, the stored file and the copy held by the voice provider. This cannot be undone.\n\nThe `CV` document cannot be deleted here: it is produced from the contact's processed CV, and would be listed again on the next read. Deactivate it instead, or delete the contact's CV. A contact's documents are also deleted, storage and provider copies included, when the contact reaches its GDPR retention date.","href":"/api-reference/contacts/documents/delete-document"}]},{"group":"Contact Fields","pages":[{"title":"List Contact Fields","openapi":"GET /contact-fields","href":"/api-reference/contact-fields/list-contact-fields"},{"title":"Create Contact Field","openapi":"POST /contact-fields","description":"Creates a field for your company. A key matching a seeded field shadows it for you alone; a key the platform reserves for itself is refused. A company may define at most 50 fields.","href":"/api-reference/contact-fields/create-contact-field"},{"title":"Update Contact Field","openapi":"PATCH /contact-fields/{id}","href":"/api-reference/contact-fields/update-contact-field"},{"title":"Delete Contact Field","openapi":"DELETE /contact-fields/{id}","href":"/api-reference/contact-fields/delete-contact-field"}]},{"group":"Companies","pages":[{"title":"List Companies","openapi":"GET /company","href":"/api-reference/companies/list-companies"},{"title":"Create Company","openapi":"POST /company","href":"/api-reference/companies/create-company"},{"title":"Get Company","openapi":"GET /company/{id}","href":"/api-reference/companies/get-company"},{"title":"Update Company","openapi":"PATCH /company/{id}","href":"/api-reference/companies/update-company"},{"title":"Delete Company","openapi":"DELETE /company/{id}","href":"/api-reference/companies/delete-company"}]},{"group":"Conversations","pages":[{"title":"List Conversations","openapi":"GET /conversations","href":"/api-reference/conversations/list-conversations"},{"title":"Create Conversation","openapi":"POST /conversations","href":"/api-reference/conversations/create-conversation"},{"title":"Get Conversation","openapi":"GET /conversations/{id}","href":"/api-reference/conversations/get-conversation"},{"title":"Get Conversation Analysis PDF","openapi":"GET /conversations/{id}/analysis-pdf","href":"/api-reference/conversations/get-conversation-analysis-pdf"},{"title":"Invoke New Call Attempt","openapi":"POST /conversations/{id}/call-attempts","href":"/api-reference/conversations/invoke-call-attempt"},{"title":"Reschedule Call Attempt","openapi":"PATCH /conversations/{id}/call-attempts/{attemptId}","href":"/api-reference/conversations/reschedule-call-attempt"},{"title":"Delete Call Attempt","openapi":"DELETE /conversations/{id}/call-attempts/{attemptId}","href":"/api-reference/conversations/delete-call-attempt"},{"title":"Delete Conversation","openapi":"DELETE /conversations/{id}","href":"/api-reference/conversations/delete-conversation"}]},{"group":"Runs","pages":[{"title":"Create Run","openapi":"POST /runs","href":"/api-reference/runs/create-run"},{"title":"Get Run","openapi":"GET /runs/{id}","href":"/api-reference/runs/get-run"},{"title":"List Run Conversations","openapi":"GET /runs/{id}/conversations","href":"/api-reference/runs/list-run-conversations"},{"title":"Attach Contacts","openapi":"POST /runs/{id}/contacts","href":"/api-reference/runs/attach-run-contacts"},{"title":"Detach Contact","openapi":"DELETE /runs/{id}/contacts/{contactId}","href":"/api-reference/runs/detach-run-contact"},{"title":"Launch Run","openapi":"POST /runs/{id}/launch","href":"/api-reference/runs/launch-run"},{"title":"Pause Run","openapi":"POST /runs/{id}/pause","href":"/api-reference/runs/pause-run"},{"title":"Resume Run","openapi":"POST /runs/{id}/resume","href":"/api-reference/runs/resume-run"},{"title":"Cancel Run","openapi":"POST /runs/{id}/cancel","href":"/api-reference/runs/cancel-run"},{"title":"Delete Run","openapi":"DELETE /runs/{id}","href":"/api-reference/runs/delete-run"}]},{"group":"Billing","pages":[{"title":"Get Usage Statistics","openapi":"GET /billing/usage","href":"/api-reference/billing/get-usage"}]},{"group":"Voice","pages":[{"title":"Generate Audio","openapi":"POST /voice","href":"/api-reference/voice/generate-audio"}]},{"group":"Webhooks","pages":[{"title":"List Webhooks","api":"GET /webhooks","href":"/api-reference/webhooks/list-webhooks"},{"title":"Create Webhook","api":"POST /webhooks","href":"/api-reference/webhooks/create-webhook"},{"title":"Get Webhook","api":"GET /webhooks/{id}","href":"/api-reference/webhooks/get-webhook"},{"title":"Update Webhook","api":"PATCH /webhooks/{id}","href":"/api-reference/webhooks/update-webhook"},{"title":"Delete Webhook","api":"DELETE /webhooks/{id}","href":"/api-reference/webhooks/delete-webhook"},{"title":"Test Webhook","api":"POST /webhooks/{id}/test","href":"/api-reference/webhooks/test-webhook"},{"title":"Reset Circuit Breaker","api":"POST /webhooks/{id}/reset-circuit","href":"/api-reference/webhooks/reset-circuit"}]},{"group":"Sourcing","pages":[{"title":"Initiate Sourcing Run","openapi":"POST /sourcing","href":"/api-reference/sourcing/initiate-sourcing"},{"title":"Initiate Sourcing Preview Run","openapi":"POST /sourcing/preview","href":"/api-reference/sourcing/initiate-sourcing-preview"},{"title":"Get Sourcing Preview Results","openapi":"GET /sourcing/preview/{id}/results","href":"/api-reference/sourcing/get-sourcing-preview-results"},{"title":"Patch Sourcing Run","openapi":"PATCH /sourcing/{id}","href":"/api-reference/sourcing/patch-sourcing"},{"title":"Get Sourcing Results","openapi":"GET /sourcing/{id}/results","href":"/api-reference/sourcing/get-sourcing-results"},{"title":"Initiate Enrichment Run","openapi":"POST /sourcing/enrich","href":"/api-reference/sourcing/initiate-enrichment"},{"title":"Get Enrichment Results","openapi":"GET /sourcing/enrich/{id}/results","href":"/api-reference/sourcing/get-enrich-results"},{"title":"Render HTML Candidate Cards","openapi":"POST /sourcing/render-html","href":"/api-reference/sourcing/render-html"}]},{"group":"Phone Numbers","pages":[{"title":"List Phone Numbers","openapi":"GET /phone-numbers","href":"/api-reference/phone-numbers/list-phone-numbers"}]}]},{"tab":"Changelog","icon":"clock","pages":[{"title":"Changelog","href":"/changelog/introduction"}]}]},"title":"List Contact Fields - InstaView API","buildId":"dpl_849ArpqvBiCczQiT1Y1stNGpbqHT","deploymentId":"dpl_849ArpqvBiCczQiT1Y1stNGpbqHT","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-Bbp7I60D.js","utils-C3RIvJha.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-DqD-vLt8.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-B31Loprg.js","snippetPresets-DKpk-b8t.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-Cj65AhOR.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-BXtn5gcC.js","shallow-RY2b03Cp.js","getApiPlaygroundDisplay-B0jeiPk3.js","CodeSnippet-CYgBjjwn.js","CodeSnippets-DOngDrYB.js","Page-n7I5XbKb.js","getPastedJson-DRQbJx-T.js","icon-CQiQCicY.js","MethodPill-BKTLdNtu.js","DuplicateIcon-B9jpAdat.js","createIcon-DCddRrXv.js","DynamicMarkdown-a8hUKrw6.js","SectionHeading-eECVV2eH.js","axios-vUo_bRtp.js","Markdown--GF7ZIpf.js","clsx-DZLdJUrt.js","lib--scc4DXi.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-2LoAhjKH.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-Zwc0ZncM.js"]}