Import
Turn a public Google Form, Typeform, Tally, Jotform or Youform into a form document.
POST /v1/import reads the form behind a public link and converts it: the
questions, options, required fields, endings and jumps. It is the same
conversion as the dashboard's Import. Like AI authoring, it saves
nothing. You get the document back, look at it, and post it to POST /v1/forms
to keep it.
It needs form:write.
curl -X POST https://api.chatform.in/v1/import \
-H "x-api-key: $CHATFORM_SECRET_KEY" \
-H "content-type: application/json" \
-d '{"url": "https://forms.gle/…"}'The reply is { doc, report }. report says which provider it read, how many
questions, branches and endings it copied, and lists in notCopied anything it
could not bring across, such as payments, scores, or rules that test a different
question.
Good to know
- Sources. Google Forms, Typeform, Tally, Jotform and Youform links are read
directly. Any other public page is searched for a form on it, and the report
says
website. - It must open without signing in. A Google Forms editor link
(
…/edit) is refused withedit_link; send the link from Send instead. A form behind a sign-in or a password is refused too. - Errors are specific. A link that cannot be imported is a
422whoseerror.codesays why:unsupported_url,edit_link,not_found,sign_in_required,closed_hidden,password_protected,no_questionsorno_form. A source that did not answer is a502withunreachable. - It does not spend your AI allowance. A small model rewords each question to suit a chat. If it is unavailable, the source's own words are kept.
report.closedistruewhen the source form is no longer accepting responses but its questions could still be read.