1. Partner Entry
PartnerPage API
  • Introduction
  • Authentication
  • Object Overview
  • Verify and handle webhook deliveries
  • Directory webhook events and payloads
  • Partner lead webhook event
  • Build your own directory site
  • Directory
    • Forms
      • Get all custom forms
      • Get all currency field options
      • Get all contact request form
      • Get default contact request form
      • Create a cotact request custom form
      • Delete a contact request custom form
    • Callouts
      • Get all callouts
      • Get a callout
      • Create a new callout
      • Update a directory callout
      • Delete a directory callout
    • Badges
      • Get all badges
      • Get a badge
      • Create a badge
      • Update a badge
      • Delete a badge
    • Certifications
      • Get all certifications
      • Get a certification
      • Create a certification
      • Update a certification
      • Delete a certification
    • Filters
      • Filter Options
        • Get all filter options
        • Get a filter option
        • Create a filter option
        • Update a filter option
        • Deletes a filter option
      • Get all filters
      • Get a filter
      • Create a filter
      • Update a filter
      • Deletes a filter
      • Get all internal filters
      • Get all filters for external directory
    • Filter Maps
      • Get all filter option mappings
      • Get a filter option mapping
      • Create a new filter option mapping
      • Update a filter option mapping
      • Delete a filter option mapping
      • Get all filter option mappings for external directory
    • Matchmaking
      • Get all matchmaking requests
    • Tiers
      • Get all tiers
      • Get a tier
      • Create a tier
      • Update a tier
      • Delete a tier
      • Get all entries assigned to an specific tier
      • Assign or Unassign entries to an specific tier
    • Verifications
      • Get all verifications
      • Get a verification
      • Create a verification
      • Update a verification
      • Delete a verification
    • Settings
      • Retrieve the settings for a directory
      • Update the settings for a directory
    • Public directory
      • List a directory's filters and their options
      • List and search a directory's partners
      • Get a partner's profile by slug
    • List directories
    • Get a directory
    • Create a directory
    • Update a directory
  • Entry
    • App Entry
      • Callouts
        • Get all callouts
        • Get an entry callout
        • Create a new callout
        • Update a callout
        • Delete a callout
      • Get an app entry
      • Create new app entry
      • Update app entry
      • Delete a app entry
      • Update the recommended order of an app entry
    • Partner Entry
      • Badges
        • Get all badges
        • Get a badge
        • Create a badge
        • Update a badge
        • Delete a badge
      • Callouts
        • Get all callouts
        • Get a callout
        • Create a callout
        • Update a callout
        • Delete a callout
      • Certifications (General)
        • Get all certifications
        • Get a certification
        • Create a certification
        • Update a certification
        • Delete a certification
      • Certifications (Industry)
        • Get all industry certifications
        • Get an industry certification
        • Create an industry certification
        • Update an industry certification
        • Delete an industry certification
      • Certifications (Segment)
        • Get all segment certifications
        • Get a segment certification
        • Create a segment certification
        • Update a segment certification
        • Delete a segment certification
      • Client
        • Get all Clients
        • Get a client
        • Create a client
        • Update a client
        • Delete a client
      • Keywords
        • Get all keywords
        • Get a keyword
        • Create a keyword
        • Update keyword
        • Delete a keyword
      • Locations
        • Get all location
        • Get a location
        • Create a location
        • Update a location
        • Delete a location
      • Media
        • Get all media
        • Get a media
        • Create a media
        • Update a media
        • Delete a media
      • Resources
        • Internal
          • Get all Internal resources
          • Get an internal resource
          • Create an internal resource
          • Update an internal resource
          • Delete an internal resource
        • Get all resouces
        • Get a resource
        • Create a resource
        • Update a resource
        • Delete a resource
      • Special Offers
        • Get all special offer
        • Get a special offer
        • Create a special offer
        • Update a special offer
        • Delete a special offer
      • Testimonials
        • Internal
          • Get all internal testimonial
          • Get an internal testimonial
          • Create an internal testimonial
          • Update an internal testimonial
          • Delete an internal testimonial
        • Get all testimonials
        • Get a testimonial
        • Create a testimonial
        • Update a testimonial
        • Delete a testimonial
      • Use Cases
        • Internal
          • Get all internal use cases
          • Get an internal use cases
          • Create an internal use case
          • Update an internal use case
          • Delete an internal use case
        • Get all use cases
        • Get a use case details
        • Create a use case
        • Update a use case
        • Delete a use case
      • Verifications
        • Get all verifications
        • Get a verification
        • Create a verification
        • Update a verification
        • Delete a verification
      • Contact Information
        • Return entry contact information
      • Invite
        • Get organization matches for partner invite
        • Get partner entry owner organization invite
        • Get partner entry owner user invites
        • Invite organization to own partner entry
        • Invite users to partner entry ownership
      • Entry Edits Approval Flow
        • Partner Entry Submit Review
        • Partner Entry Approve Review
        • Partner Entry Reject Changes
        • Partner Entry Discard Review
      • Get a partner's internal directory profile by slug
        GET
      • Get a partner entry
        GET
      • Create a partner entry
        POST
      • Update a partner entry
        PATCH
      • Delete a partner entry
        DELETE
      • Bulk upsert partner entries
        POST
      • Update the recommended order of a partner entry
        POST
    • List directory entries
      GET
  • Contact Request
    • Attachment
      • List contact request attachments
      • Create contact request attachment
      • Delete contact request attachment
    • Get all contact requests
    • Get a contact request
    • Create a new partner contact request
  • Matchmaking
    • Get all matchmaking requests
    • Get a matchmaking request
    • Create a new directory matchmaking request
    • Get all partners assigned to matchmaking requests
    • Assign an owner to a matchmaking request
    • Set partners to a matchmaking request
  • Review
    • directory-review-list
    • directory-review-detail
    • directory-review-create
    • Update a review
    • Delete a review
    • reviewsDirectoryExportRetrieve
  1. Partner Entry

Bulk upsert partner entries

POST
https://v1.api.partnerpage.io/api/directory/private/v1alpha/external/directories/{directoryId}/entries/partners/bulk/
Create or update partner entries in a directory in a single batch. Each row is identified by exactly one of entry_id or external_id; rows identified by external_id are upserted when no matching entry exists. Batch size is capped by the configured maximum. The response contains a per-entry result with action (created, updated, unchanged, or failed). Successful rows include the resulting entry. Failed rows include a top-level message for authorization or not-found failures, and errors when the row has structured field validation failures. A row with message equal to Profile is being updated; retry this row can be resent after a concurrent profile update finishes.
Fields a row does not send are left unchanged.
Directory-owner rows publish the submitted fields even while a partner has ongoing changes or a draft in review. Submitted values are authoritative, including values already live: they are copied into the draft without changing its approval state. Pending fields and sections omitted from the row are preserved.
tier: ID of one of the directory's tiers. null puts the entry back on the directory's default tier. Directory owners only; the row fails when tiers are not enabled or the tier belongs to another directory.
featured, displayOnInternalDirectory, internalDescription and the internal...Cta... fields: directory owners only; the row fails when the matching feature (featured entries, internal directory) is not enabled.
userAssignedFilterOptions: replaces the entry's options in every filter with the sent list.
userAssignedFilterOptionsByFilter: list of {filterId, optionIds}; replaces the options of the listed filters only and keeps every other filter as it is. An empty optionIds clears that filter. Cannot be combined with userAssignedFilterOptions in the same row. Option rules (selection limits, required filters, approval flow) are checked on the resulting full list and reported under userAssignedFilterOptions.
certifications: list of {certificationId, quantity} using the directory's certifications; replaces the entry's certifications with exactly this list, in this order. quantity is optional and defaults to 1. An empty list removes every certification. A partner holds at most 10, and a certification can be listed once. The row fails when certifications are not enabled or a certification belongs to another directory.
badges: list of {id} using the directory's badges; replaces the entry's badges with exactly this list, in this order (an order sent with a badge is ignored). An empty list removes every badge; null keeps them. A partner holds at most 10, and a badge can be listed once. The row fails when badges are not enabled and the list is not empty, or a badge belongs to another directory. When the directory manages badges, an entry owner's row with a changed list fails with errors.badges, or with message if the badges change between that check and the write; an unchanged list is accepted. Each successful row's entry lists the badges in badge order.
A row with a field this endpoint does not accept (for example emails: bulk rows never send owner invitations) fails with an error per unknown field. Fields returned by the partner read response are accepted, and read-only ones (id, type, slug, lastModified, awards, systemAssignedFilterOptions, ...) are ignored, so a row copied from a read can be sent back.

Request

Authorization
API Key
Add parameter in header
Authorization
Example:
Authorization: ********************
or
Path Params

Body Params
application/json
Required

Examples

Responses

🟢200
application/json
Per-entry results
Bodyapplication/json

🟠400
🟠404
Request Request Example
Shell
JavaScript
Java
Swift
curl --location 'https://v1.api.partnerpage.io/api/directory/private/v1alpha/external/directories//entries/partners/bulk/' \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '{
    "entries": [
        {
            "externalId": "0015g00000XyZabAAF",
            "title": "Acme Agency",
            "status": "public",
            "tier": "6f1c2a8e-3b7d-4c55-9a2e-1d0b8f4e7c21",
            "certifications": [
                {
                    "certificationId": "9b2e4f60-1c3a-4d8e-b7f5-2a6c0d9e8b14"
                },
                {
                    "certificationId": "c4d1a7e2-5f9b-4e03-8a6d-7b2f1e0c9d35",
                    "quantity": 2
                }
            ]
        },
        {
            "entryId": "3e8a1f4c-7b2d-4a96-b0e5-9c1d2f6a8b73",
            "certifications": [],
            "badges": [
                {
                    "id": "5a7d2c91-8e4b-4f36-a1c0-3b9e6d2f7a48"
                },
                {
                    "id": "e2b6f8a3-0d5c-4719-9e8a-6c4b1d3f5a27"
                }
            ]
        }
    ]
}'
Response Response Example
[
    {
        "entryId": "09a8b554-45ca-4bab-a638-265db4b3e828",
        "externalId": "string",
        "action": "created",
        "entry": {
            "href": "string",
            "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
            "title": "string",
            "headline": "string",
            "type": "string",
            "slug": "string",
            "customSlug": "string",
            "status": "hidden",
            "icon": "string",
            "image": "string",
            "iconDark": "string",
            "imageDark": "string",
            "website": "http://example.com",
            "lastModified": {
                "modified": "string",
                "user": {
                    "id": "string",
                    "fullName": "string",
                    "email": "user@example.com",
                    "type": "string"
                }
            },
            "userAssignedFilterOptions": "string",
            "systemAssignedFilterOptions": "string",
            "mappedAssignedFilterOptions": "string",
            "canSubmitForReview": true,
            "readyForReview": true,
            "externalId": "string",
            "description": "string",
            "umamiShareId": "string",
            "integrationDescription": "string",
            "location": "string",
            "callToActionUrl": "string",
            "callToActionLabel": "string",
            "externalUrl": "http://example.com",
            "awards": [
                {
                    "title": "string",
                    "file": "string",
                    "fileUrl": "string",
                    "order": 0,
                    "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
                }
            ],
            "badges": [
                {
                    "property1": "string",
                    "property2": "string"
                }
            ],
            "directory": "5277859d-f92c-478c-acab-7680a97fea68",
            "approvalFlow": "string",
            "supportEmail": "string",
            "developerName": "string",
            "availability": true,
            "iconUrl": "string",
            "imageUrl": "string",
            "embedTitle": "string",
            "embedSrc": "http://example.com",
            "profileFields": {
                "property1": "string",
                "property2": "string"
            },
            "embedHeight": 0
        },
        "message": "string",
        "errors": null
    }
]
Modified at 2026-10-28 14:08:11
Previous
Delete a partner entry
Next
Update the recommended order of a partner entry
Built with