Create an entry
Creates an entry and its initial document, in the collection given by collectionID, collectionPath, or collectionSlugPath (the top level by default). The name defaults to Untitled, or comes from the title of the supplied document or mdx. fields sets property values and fragment MDX by field name or key. path places the entry at a full name path and creates missing parent collections; a name already used there is a conflict. A repeated request with the same Idempotency-Key header returns the first result for 24 hours. Creation selects an available sibling name with a numeric suffix when needed. Names are trimmed and NFC-normalized. Derived URL slugs must be unique across sibling entries and collections, including case and punctuation variants. Names cannot contain a slash or equal a single dot or two dots. A collection schema sets the initial content without a document; a document must match it.
Required API key permissions: entries. Write permissions also grant read access for the same resource.
Authentication
apiKeyhttp, bearer, Andesine API keyUse an Andesine API key as a Bearer token
oauthhttp, bearer, Andesine OAuth access tokenUse an OAuth access token with andesine:api scope. Send x-workspace-id for workspace operations. Current user permissions apply.
Headers
x-workspace-idstringRequired for OAuth: ID of the workspace to access. API keys use their own workspace.
Request body *
application/jsonBodyobject9 fields
idstringID of the entry
namestringName of the entry
collectionIDstringID of the collection this entry belongs to
documentobjectProseMirror JSON of the entry document, which must match the editor and the collection schema
5 fields
type*stringattrsobject1 field
{key}anycontentarray of ContentNodeInput5 fields
type*stringattrsobject1 field
{key}anycontentarray of ContentNodeInputmarksarray of ContentMark2 fields
type*stringattrsobject1 field
{key}anytextstringmarksarray of ContentMark2 fields
type*stringattrsobject1 field
{key}anytextstringmdxstringContent as MDX: the title as H1, properties as elements in place, fragments as elements, and images as asset:; frontmatter properties are also read, and entries.update and versions.create import image URLs
fieldsobjectField values by name or key, set on the initial content
1 field
{key}any ofProperty value, or MDX for a fragment
Options
Any of
Option 1string
Option 2number
Option 3boolean
Option 4array of string
Option 5null
pathstringFull name path of the entry, for example /Guides/Setup
collectionPathstringName path of an existing parent collection
collectionSlugPathstringSlug path of an existing parent collection
Responses
200OKapplication/json
Bodyobject6 fields
id*stringID of the entry
name*stringName of the entry
order*stringLexoRank order of the entry
collectionIDstringID of the collection this entry belongs to
path*stringslugPath*string400Bad Requestapplication/json
Bodyone ofOptions
One of
Option 1object
defined*constanttruecode*constant"BAD_REQUEST"status*constant400message*string"Bad Request"dataValidationErrorData2 fields
hintsarray of stringSuggested next steps. Wording can change; use error codes and structured data for program logic.
issuesarray of ValidationIssue3 fields
message*stringcodestringpatharray of any ofOptions
Any of
Option 1string
Option 2number
Option 3object
key*any ofOptions
Any of
Option 1string
Option 2number
Option 2object
defined*constanttruecode*constant"CONTENT_FORMAT_INVALID"status*constant400message*string"CONTENT_FORMAT_INVALID"data*object3 fields
hintsarray of stringSuggested next steps. Wording can change; use error codes and structured data for program logic.
linenumberLine of the error in the source
columnnumberColumn of the error in the source
Option 3object
defined*constantfalsecode*stringstatus*numbermessage*stringdataany401Unauthorizedapplication/json
Bodyone ofOptions
One of
Option 1object
defined*constanttruecode*constant"UNAUTHORIZED"status*constant401message*string"Unauthorized"dataErrorData1 field
hintsarray of stringSuggested next steps. Wording can change; use error codes and structured data for program logic.
Option 2object
defined*constantfalsecode*stringstatus*numbermessage*stringdataany403Forbiddenapplication/json
Bodyone ofOptions
One of
Option 1object
defined*constanttruecode*constant"FORBIDDEN"status*constant403message*string"Forbidden"dataForbiddenErrorData4 fields
hintsarray of stringSuggested next steps. Wording can change; use error codes and structured data for program logic.
missingPermissionsarray of stringrequiredPlanconstant"pro"actionstringThe requested action that was denied
Option 2object
defined*constantfalsecode*stringstatus*numbermessage*stringdataany404Not Foundapplication/json
Bodyone ofOptions
One of
Option 1object
defined*constanttruecode*constant"NOT_FOUND"status*constant404message*string"Not Found"dataErrorData1 field
hintsarray of stringSuggested next steps. Wording can change; use error codes and structured data for program logic.
Option 2object
defined*constantfalsecode*stringstatus*numbermessage*stringdataany409Conflictapplication/json
Bodyone ofOptions
One of
Option 1object
defined*constanttruecode*constant"CONFLICT"status*constant409message*string"Conflict"dataErrorData1 field
hintsarray of stringSuggested next steps. Wording can change; use error codes and structured data for program logic.
Option 2object
defined*constanttruecode*constant"CONTENT_NAME_CONFLICT"status*constant409message*string"CONTENT_NAME_CONFLICT"data*ContentNameConflictErrorData4 fields
hintsarray of stringSuggested next steps. Wording can change; use error codes and structured data for program logic.
name*stringslug*stringConflicting URL slug derived from the name
parentID*any ofOptions
Any of
Option 1string
Option 2null
Option 3object
defined*constanttruecode*constant"CONTENT_SCHEMA_INVALID"status*constant409message*string"CONTENT_SCHEMA_INVALID"data*ContentSchemaInvalidErrorData5 fields
hintsarray of stringSuggested next steps. Wording can change; use error codes and structured data for program logic.
entryIDstringversionIDstringrevisionID*any ofOptions
Any of
Option 1string
Option 2null
issues*array of ContentSchemaIssue4 fields
code*string"invalid_schema", "invalid_structure", "missing_field", "unknown_field", "duplicate_field", "field_kind_mismatch", "field_key_mismatch", "property_type_mismatch", "invalid_property_value", "invalid_field_options", "invalid_allowed_blocks", "invalid_fragment_content"message*stringpath*array of any ofOptions
Any of
Option 1string
Option 2number
fieldIDstringOption 4object
defined*constanttruecode*constant"CONTENT_LINK_INVALID"status*constant409message*string"CONTENT_LINK_INVALID"data*object2 fields
hintsarray of stringSuggested next steps. Wording can change; use error codes and structured data for program logic.
href*stringLink that doesn't point to an entry
Option 5object
defined*constanttruecode*constant"CONTENT_IMAGE_UNAVAILABLE"status*constant409message*string"CONTENT_IMAGE_UNAVAILABLE"data*object4 fields
hintsarray of stringSuggested next steps. Wording can change; use error codes and structured data for program logic.
url*stringImage URL in the content
assetID*stringImported image
assetStatus*stringStatus of the image when the write stopped waiting
Option 6object
defined*constanttruecode*constant"IDEMPOTENCY_KEY_IN_PROGRESS"status*constant409message*string"A request with this Idempotency-Key is in progress"data*ErrorData1 field
hintsarray of stringSuggested next steps. Wording can change; use error codes and structured data for program logic.
Option 7object
defined*constanttruecode*constant"SCHEMA_FIELD_KEY_CONFLICT"status*constant409message*string"SCHEMA_FIELD_KEY_CONFLICT"data*SchemaFieldKeyConflictErrorData4 fields
hintsarray of stringSuggested next steps. Wording can change; use error codes and structured data for program logic.
key*stringkind*string"fragment", "property"fieldIDs*array of stringOption 8object
defined*constanttruecode*constant"SCHEMA_MIGRATION_IN_PROGRESS"status*constant409message*string"A schema migration is in progress for this collection"data*SchemaMigrationErrorData2 fields
hintsarray of stringSuggested next steps. Wording can change; use error codes and structured data for program logic.
migrationID*stringOption 9object
defined*constantfalsecode*stringstatus*numbermessage*stringdataany422Unprocessable Contentapplication/json
Bodyone ofOptions
One of
Option 1object
defined*constanttruecode*constant"IDEMPOTENCY_KEY_REUSED"status*constant422message*string"This Idempotency-Key was used with a different request"data*ErrorData1 field
hintsarray of stringSuggested next steps. Wording can change; use error codes and structured data for program logic.
Option 2object
defined*constantfalsecode*stringstatus*numbermessage*stringdataany429Too Many Requestsapplication/json
Bodyone ofOptions
One of
Option 1object
defined*constanttruecode*constant"TOO_MANY_REQUESTS"status*constant429message*string"Too Many Requests"dataRateLimitErrorData3 fields
hintsarray of stringSuggested next steps. Wording can change; use error codes and structured data for program logic.
limitstringThe limit that was reached: a short-term rate limit, or a monthly API call, AI credit, or spending limit
"rate", "api-calls", "ai-credits", "spending"retryAfterSecondsnumberMinimum delay before another attempt, in seconds. Also sent in Retry-After.
Option 2object
defined*constantfalsecode*stringstatus*numbermessage*stringdataany500Internal Server Errorapplication/json
Bodyone ofOptions
One of
Option 1object
defined*constanttruecode*constant"INTERNAL_SERVER_ERROR"status*constant500message*string"Internal Server Error"dataErrorData1 field
hintsarray of stringSuggested next steps. Wording can change; use error codes and structured data for program logic.
Option 2object
defined*constantfalsecode*stringstatus*numbermessage*stringdataany503Service Unavailableapplication/json
Bodyone ofOptions
One of
Option 1object
defined*constanttruecode*constant"SERVICE_UNAVAILABLE"status*constant503message*string"Service Unavailable"dataErrorData1 field
hintsarray of stringSuggested next steps. Wording can change; use error codes and structured data for program logic.
Option 2object
defined*constantfalsecode*stringstatus*numbermessage*stringdataany