const url = 'https://platform.fomr.io/v1/forms/example/move';const options = { method: 'POST', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '{"workspace_public_id":"example"}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://platform.fomr.io/v1/forms/example/move \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "workspace_public_id": "example" }'Moves the form into another workspace and answers the form resource. Moving needs the workspaces plan feature and is refused with 402 otherwise; a form already in the target workspace answers 200 and writes nothing. Needs forms:write, or templates:write for a Private Template. Costs 1 API credit.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”The public ID of the form or Private Template.
Request Body
Section titled “Request Body”object
The workspace to move the form into. Moving needs the workspaces plan feature; moving into the current workspace is a no-op.
Example generated
{ "workspace_public_id": "example"}Responses
Section titled “Responses”Default Response
object
The public ID of the form. Use it in every other form call.
Form name shown in the app.
Whether the resource is a Private Template rather than a form.
Lifecycle state: draft while nothing is published, published once a version is live, archived when the form is no longer editable.
Whether publishing would change what respondents see. True for a form that has never been published.
The workspace the form belongs to. Change it with the move operation.
Whether the form takes submissions.
object
Whether the form was closed by hand.
Whether the form takes a submission right now. Derived from is_closed, the schedule, and whether a version is published.
One completed response per respondent IP address.
object
The matching method: ip_address, submission_id, or component.
One completed response per browser, using the completed response ID saved in it.
object
The matching method: ip_address, submission_id, or component.
Rejects a completed response that repeats an earlier answer to one question. Blank optional answers are not checked.
object
The matching method: ip_address, submission_id, or component.
Public ID of the question whose answer must be unique: a visible short text, email, phone, link, or number block on a visible page.
How many submissions the form holds.
object
Submissions the respondent finished.
Partial responses captured before the respondent finished.
object
The custom domain of the share link, such as forms.example.com.
The path after the host, starting with a slash.
Verification state of the domain: verified, pending, or failed.
Whether the plan of the organization keeps the domain serving forms.
The link on the custom domain. It becomes urls.share once the domain is verified and active and a version is published.
When the form was created.
When the form was last changed.
Example
{ "status": "draft", "access": { "duplicate_response_rule": { "type": "ip_address" } }, "domain": { "status": "verified" }}Default Response
object
The stable code to branch on.
A human-readable explanation. Not part of the contract; never branch on it.
The ID of the failed request, also sent as the X-Request-Id response header.
Every value the request got wrong.
object
The path into the request, with property names and numeric array indexes.
What is wrong with the value at this path.
The stable code for the issue. Branch on it, and use it with params to write your own text.
Accepted values when a node type or enum value is rejected.
Example
{ "code": "INVALID_INPUT"}Default Response
object
The stable code to branch on.
A human-readable explanation. Not part of the contract; never branch on it.
The ID of the failed request, also sent as the X-Request-Id response header.
Example
{ "code": "INVALID_INPUT"}Default Response
object
The request sets a field the plan does not include.
A human-readable explanation. Not part of the contract; never branch on it.
The ID of the failed request, also sent as the X-Request-Id response header.
The plan whose features were applied.
Where to review plans and upgrade the organization.
The plan feature the blocked field needs, such as meta_tags or partial_response_access.
The path of the blocked field, such as properties/meta_title. On a write it points into the request body; on publish it points into the Draft Document, and it is empty when the blocker is not a document field.
Example
{ "code": "PRO_FEATURE_REQUIRED", "plan": "free"}Default Response
object
The stable code to branch on.
A human-readable explanation. Not part of the contract; never branch on it.
The ID of the failed request, also sent as the X-Request-Id response header.
Example
{ "code": "INVALID_INPUT"}Default Response
object
Returned for a form that does not exist, is in Trash, or belongs to another organization. The three are not told apart.
A human-readable explanation. Not part of the contract; never branch on it.
The ID of the failed request, also sent as the X-Request-Id response header.
Example
{ "code": "NOT_FOUND"}A rejected call. The organization budget names the policy it rejected the call under; the request floor that bounds hammering sends the envelope alone.
object
The stable code to branch on.
A human-readable explanation. Not part of the contract; never branch on it.
The ID of the failed request, also sent as the X-Request-Id response header.
The policy that rejected the call.
The plan whose numbers were applied.
The policy limit in credits.
Credits already spent in the open window.
Credits still available under the policy.
What the rejected call would have cost.
How long the policy window lasts.
When the window that rejected the call ends.
Seconds to wait before retrying. Also sent as the Retry-After response header.
object
The stable code to branch on.
A human-readable explanation. Not part of the contract; never branch on it.
The ID of the failed request, also sent as the X-Request-Id response header.
Example
{ "code": "INVALID_INPUT", "policy": "minute", "plan": "free"}Default Response
object
The stable code to branch on.
A human-readable explanation. Not part of the contract; never branch on it.
The ID of the failed request, also sent as the X-Request-Id response header.
Example
{ "code": "INVALID_INPUT"}Default Response
object
The requested operation has no available capacity. Retry after the Retry-After header says.
A human-readable explanation. Not part of the contract; never branch on it.
The ID of the failed request, also sent as the X-Request-Id response header.
Seconds to wait before retrying. Also sent as the Retry-After response header.
Example
{ "code": "SERVICE_UNAVAILABLE"}