> For clean Markdown of any page, append .md to the page URL. > For a complete documentation index, see https://contentful.com/developers/docs/llms.txt. > For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://contentful.com/_mcp/server. # Create a space membership POST https://api.contentful.com/spaces/{space_id}/space_memberships Content-Type: application/vnd.contentful.management.v1+json Use this endpoint to create a space membership (or invite a user to a space). A user can and must be flagged as 'admin' or assigned to certain roles. Reference: https://contentful.com/developers/docs/references/content-management-api/space-memberships/create-a-space-membership ## Authentication - `Authorization` header (bearer token, required) — Bearer authentication of the form `Bearer `, where token is your auth token. ## Request ### Path parameters - `space_id` (string, required) — ID of the space in form of a string ### Body (application/vnd.contentful.management.v1+json) This endpoint expects a map from string to any. - `map from string to any` ## Response ### 201 Created - Resource created successfully - `map from string to any` ## Examples **Request** ```json { "admin": false, "email": "foo@example.com", "roles": [ { "sys": { "id": "1ElgCn1mi1UHSBLTP2v4TD", "linkType": "Role", "type": "Link" } } ] } ``` **Response** ```json { "admin": false, "roles": [ { "sys": { "id": "1ElgCn1mi1UHSBLTP2v4TD", "linkType": "Role", "type": "Link" } } ], "sys": { "createdAt": "2025-06-19T02:14:19.000Z", "createdBy": { "sys": { "id": "7BslKh9TdKGOK41VmLDjFZ", "linkType": "User", "type": "Link" } }, "id": "0xWanD4AZI2AR35wW9q51n", "type": "SpaceMembership", "updatedAt": "2025-06-19T02:14:19.000Z", "updatedBy": { "sys": { "id": "4FLrUHftHW3v2BLi9fzfjU", "linkType": "User", "type": "Link" } }, "version": 0 }, "user": { "sys": { "id": "7BslKh9TdKGOK41VmLDjFZ", "linkType": "User", "type": "Link" } } } ``` **SDK Code** ```android Android // Create the Contentful client. final CMAClient client = new CMAClient .Builder() .setAccessToken("") .setSpaceId("") .setEnvironmentId("") .build(); final CMASpaceMembership membership = new CMASpaceMembership() .setAdmin(true) .setEmail("luigi@contentful.com"); client .spaceMemberships() .async() .create( "", membership, new CMACallback() { @Override protected void onSuccess(CMASpaceMembership result) { new AlertDialog.Builder(context) .setTitle("Contentful") .setMessage("Creating a new space membership was successful." + "\n\nResult: " + result) .show(); } @Override protected void onFailure(RuntimeException exception) { // An error occurred! Inform the user. new AlertDialog.Builder(context) .setTitle("Contentful Error") .setMessage("Could not create a new membership." + "\n\nReason: " + exception.toString()) .show(); super.onFailure(exception); } } ); ``` ```java Java // Create the Contentful client. final CMAClient client = new CMAClient .Builder() .setAccessToken("") .setSpaceId("") .setEnvironmentId("") .build(); final CMASpaceMembership spaceMembership = new CMASpaceMembership() .setAdmin(true) .setEmail("mario@contentful.com"); final CMASpaceMembership createdMembership = client .spaceMemberships() .create("", spaceMembership); ``` ```kotlin Kotlin // Create the Contentful client. val client = CMAClient.Builder() .setAccessToken("") .setSpaceId("") .setEnvironmentId("") .build() val spaceMembership = CMASpaceMembership() .setAdmin(true) .setEmail("mario@contentful.com") val createdMembership = client .spaceMemberships() .create("", spaceMembership) ``` ```swift Swift We currently don't provide a CMA SDK for this platform. ``` ```js-legacy JavaScript (legacy) import { createClient } from 'contentful-management' const client = createClient({ accessToken: '' }, { type: 'legacy' }) client.getSpace('') .then((space) => space.createSpaceMembership({ admin: false, roles: [ { sys: { type: 'Link', linkType: 'Role', id: '' } } ], email: 'foo@example.com' })) .then((spaceMembership) => console.log(spaceMembership)) .catch(console.error) ``` ```javascript JavaScript import { createClient } from 'contentful-management' // Client init const client = contentful.createClient({ accessToken: '' }) const spaceMembership = await client.spaceMembership.create( { spaceId: '', }, { admin: false, roles: [ { sys: { type: 'Link', linkType: 'Role', id: '', }, }, ], email: 'foo@example.com', } ); ``` ```php PHP $client = new \Contentful\Management\Client(''); $space = $client->getSpaceProxy(''); $spaceMembership = new \Contentful\Management\Resource\SpaceMembership(); $spaceMembership->setAdmin(false) ->setEmail('foo@example.com') ->addRole(new \Contentful\Core\Api\Link('', 'Role')); $space->create($spaceMembership); ``` ```ruby Ruby require 'contentful/management' client = Contentful::Management::Client.new('') space_membership = client.space_memberships('').create( email: 'foo@example.com', admin: false, roles: [ { sys: { type: 'Link', linkType: 'Role', id: '' } } ] ) ``` ```python Python from contentful_management import Client client = Client('') space_membership = client.space_memberships('').create({ 'email': 'foo@example.com', 'admin': False, 'roles': [ { 'sys': { 'type': 'Link', 'linkType': 'Role', 'id': '' } } ] }) ``` ```.net .NET // This client should only be created once per application. var httpClient = new HttpClient(); var client = new ContentfulManagementClient(httpClient, "", ""); var newMembership = new SpaceMembership(); newMembership.Roles = new List() { "" }; newMembership.Admin = true; newMembership.User = new User() { // The user must already exist. It cannot be automatically created through the membership. SystemProperties = new SystemProperties() { Id = "", LinkType = "User", Type = "Link" } }; await client.CreateSpaceMembership(newMembership); ```